<?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>7138</bug_id>
          
          <creation_ts>2006-02-07 18:45:50 -0800</creation_ts>
          <short_desc>Implement tabindex for all elements, enabling accessible web apps</short_desc>
          <delta_ts>2009-01-12 15:24:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>420+</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://developer.mozilla.org/en/docs/Key-navigable_custom_DHTML_widgets</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>10489</blocked>
    
    <blocked>13846</blocked>
    
    <blocked>4986</blocked>
    
    <blocked>12132</blocked>
    
    <blocked>12728</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aaron Leventhal">aaronlevbugs</reporter>
          <assigned_to name="Alice Liu">alice.barraclough</assigned_to>
          <cc>alice.barraclough</cc>
    
    <cc>annevk</cc>
    
    <cc>aroben</cc>
    
    <cc>brian</cc>
    
    <cc>bugs-webkit</cc>
    
    <cc>cgriego</cc>
    
    <cc>david.bolter</cc>
    
    <cc>eigentone</cc>
    
    <cc>fengjin</cc>
    
    <cc>gavin.sharp</cc>
    
    <cc>ian</cc>
    
    <cc>info</cc>
    
    <cc>ismail</cc>
    
    <cc>jab_creations</cc>
    
    <cc>jesse</cc>
    
    <cc>jl</cc>
    
    <cc>jongund</cc>
    
    <cc>kanda</cc>
    
    <cc>marcus</cc>
    
    <cc>schwer</cc>
    
    <cc>webkit</cc>
    
    <cc>xk1t</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31795</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2006-02-07 18:45:50 -0800</bug_when>
    <thetext>Support tabindex for all elements, thus enabling accessible DHTML/AJAX web applications. Both IE and Gecko-based browsers such as Firefox now support tabIndex on all elements. The Web Applications spec from WHATWG also enables tabIndex for all elements (http://whatwg.org/specs/web-apps/current-work/#the-tabindex)

Basically, any element such as a div or span can be added to the default tab order by setting tabindex=&quot;0&quot;. In addition, any item with tabindex=&quot;-1&quot; can be focused via script or mouse. 

The tabindex system is needed for developing custom widgets which are accessible, from simple widgets like a slider to container widgets like a menubar, tree view or spreadsheet. IBM needs this for web apps it is developing, in order for them to run properly on Safari. Other large organizations are also picking up DHTML accessibility.

* The Gecko documentation on what the behavior should be is here: http://www.mozilla.org/access/keyboard/tabindex
* The MSDN docs for IE&apos;s tabindex behavior is here: http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/tabindex.asp
* Test cases and more docs about DHTML accessibility here: http://www.mozilla.org/access/dhtml
* W3C standards work in this area: http://www.w3.org/WAI/PF/roadmap/DHTMLRoadmap110505.html

Work we had to do in Gecko (see https://bugzilla.mozilla.org/show_bug.cgi?id=171366):
- Have each element class support an IsFocusable method which also returns a boolean out to indicate whether it is tabbable.
  Specific implementations of the method need to upcall to the generic element&apos;s method, which jas the generic tabindex implementation..
  Then the scripting, mouse click handling and tab key handling  code needs to use the new IsFocusable() method.
- Support the focus() method in nsIDOMNSHTMLElement, which is outside of the official DOM interface but is supported fro all elements.
- Add rules to the default style sheet so that any element with :focus receives a focus outline
- Make cancelling an keydown event cancel the keypress event, for purposes of compatibility with IE. Authors writing cross-browser content should use keydown events to process keystrokes, because IE won&apos;t fire keypress events for non-alphanumeric keys.
- Ensure that all elements which are focusable are exposed in the accessibility API hierarchy, so that when they get focused there is an object to fire an accessibility event for.
- Any element that can receive focus must fire onfocus/onblur</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32766</commentid>
    <comment_count>1</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-15 14:16:39 -0800</bug_when>
    <thetext>Seems a reasonable request, confirming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36806</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Malone">markmalone</who>
    <bug_when>2007-01-05 14:34:50 -0800</bug_when>
    <thetext>rdar://4911289</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36564</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-01-07 05:04:22 -0800</bug_when>
    <thetext>See also Bug 9460.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15948</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-04-02 11:58:55 -0700</bug_when>
    <thetext>This would help the Web Inspector, since I am converting more of it to HTML. Right now I am working around this with a JavaScript solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9938</commentid>
    <comment_count>5</comment_count>
    <who name="Nicholas Shanks">nickshanks</who>
    <bug_when>2007-05-15 16:30:03 -0700</bug_when>
    <thetext>There is a school of thought that considers tabindex harmful because it changes the users expectations:

e.g.

&lt;input type=text tabindex=1 /&gt;
&lt;input type=text tabindex=2 /&gt;
&lt;input type=text tabindex=4 /&gt;
&lt;input type=text tabindex=3 /&gt;

obviously real-world examples are (usually) more complex, but doing something other than what the user expects from a system UI she is used to is a bad thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9880</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-05-15 17:00:47 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; There is a school of thought that considers tabindex harmful because it changes
&gt; the users expectations:
&gt; 
&gt; e.g.
&gt; 
&gt; &lt;input type=text tabindex=1 /&gt;
&gt; &lt;input type=text tabindex=2 /&gt;
&gt; &lt;input type=text tabindex=4 /&gt;
&gt; &lt;input type=text tabindex=3 /&gt;
&gt; 
&gt; obviously real-world examples are (usually) more complex, but doing something
&gt; other than what the user expects from a system UI she is used to is a bad
&gt; thing.
&gt; 

   I would hope that web authors would be using tabindex to make the tab order _more_ intuitive and/or closer to the system behavior, not less so.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9852</commentid>
    <comment_count>7</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2007-05-16 06:34:32 -0700</bug_when>
    <thetext>Adam, check out how tabindex=&quot;-1&quot; and tabindex=&quot;0&quot; are used to make container widgets that work like their system counterparts. From the sounds of it you&apos;re thinking about reordering the tab navigation which isn&apos;t what this is really about.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9312</commentid>
    <comment_count>8</comment_count>
    <who name="David Bolter">david.bolter</who>
    <bug_when>2007-05-23 09:06:14 -0700</bug_when>
    <thetext>I think the severity of this is arguable much greater than &quot;enhancement&quot;. We (at dojotoolkit) need this if we are to fully support (i.e. provide keyboard control) WebKit for our DHTML widgets (dijits).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>9288</commentid>
    <comment_count>9</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-05-23 10:33:40 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think the severity of this is arguable much greater than &quot;enhancement&quot;. We
&gt; (at dojotoolkit) need this if we are to fully support (i.e. provide keyboard
&gt; control) WebKit for our DHTML widgets (dijits).

Bug 13846 was filed to track issues for the Dojo Toolkit.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5986</commentid>
    <comment_count>10</comment_count>
    <who name="Jesse Costello-Good">jesse</who>
    <bug_when>2007-06-28 10:05:34 -0700</bug_when>
    <thetext>We at TIBCO would very much like this to make it in to Safari ASAP. It is common in Ajax to make custom GUI controls that don&apos;t use any of the native browser INPUT tags. In order to make these Ajax controls seems like native controls we need to be able to focus SPAN and DIV.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5457</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-07-05 21:58:52 -0700</bug_when>
    <thetext>*** Bug 13464 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3355</commentid>
    <comment_count>12</comment_count>
    <who name="Victor Tsaran">vtsaran</who>
    <bug_when>2007-08-01 14:21:20 -0700</bug_when>
    <thetext>TabIndexability would be an important addition for sophari-based browsers, like the one used by Nokia on S60FP1 devices. Taming this basic issue would hopefully prevent DHTML apps on mobilephone to get out of hand by providing developers with a possibility of making these applications accessible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57051</commentid>
    <comment_count>13</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2007-09-25 18:34:07 -0700</bug_when>
    <thetext>Need testcases?

Simple test cases from Opera: 
http://tc.labs.opera.com/html/global-attributes/tabindex/

Advanced test cases from Mozilla: 
http://www.mozilla.org/access/dhtml/checkbox
http://www.mozilla.org/access/dhtml/tree
http://www.mozilla.org/access/dhtml/spreadsheet
http://www.mozilla.org/access/dhtml/pretty-slider

Should also test against Dojo toolkit, which uses this extensively.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57053</commentid>
    <comment_count>14</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2007-09-25 18:41:17 -0700</bug_when>
    <thetext>Note: Opera, IE and Firefox all have this capability now.

Also, the bug for actual ARIA support is bug 12132.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59454</commentid>
    <comment_count>15</comment_count>
    <who name="John A. Bilicki III">jab_creations</who>
    <bug_when>2007-10-25 12:06:27 -0700</bug_when>
    <thetext>A live test case, http://www.jabcreations.net/ which provides both a complex layout and accessibility. Firefox, Opera, and IE are all accessible on my site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68907</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-01-31 02:55:58 -0800</bug_when>
    <thetext>*** Bug 17114 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74487</commentid>
    <comment_count>17</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2008-03-19 17:13:08 -0700</bug_when>
    <thetext>I have some notes on how to implement this here:
http://developer.mozilla.org/en/docs/ARIA_User_Agent_Implementors_Guide#11.3.1.1_HTML_5_Tabindex

If you bug Simon Pieters (zcorpan) from Opera he will give you links to some simple test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74671</commentid>
    <comment_count>18</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2008-03-21 11:51:25 -0700</bug_when>
    <thetext>*** Bug 17983 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75284</commentid>
    <comment_count>19</comment_count>
    <who name="Johan Lund">jl</who>
    <bug_when>2008-03-26 03:08:55 -0700</bug_when>
    <thetext>The Bindows AJAX framework will not be able to fully support webkit until this has been fixed.
Our custom focusing system requires it.
Please implement this functionality as soon as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75301</commentid>
    <comment_count>20</comment_count>
    <who name="Johan Lund">jl</who>
    <bug_when>2008-03-26 08:37:13 -0700</bug_when>
    <thetext>For Bindows support we will be needing at least focusable elements of type div and tr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76394</commentid>
    <comment_count>21</comment_count>
    <who name="Brian Moeskau">brian</who>
    <bug_when>2008-04-05 14:56:43 -0700</bug_when>
    <thetext>Add another vote for fixing this from the Ext JS team.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77317</commentid>
    <comment_count>22</comment_count>
    <who name="Sebastian Werner">info</who>
    <bug_when>2008-04-11 14:58:01 -0700</bug_when>
    <thetext>We (the qooxdoo team) have worked around the thing, but it would still be great to have native support for this in webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78522</commentid>
    <comment_count>23</comment_count>
      <attachid>20746</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2008-04-22 02:37:18 -0700</bug_when>
    <thetext>Created attachment 20746
patch and regression test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78529</commentid>
    <comment_count>24</comment_count>
      <attachid>20746</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-04-22 05:44:20 -0700</bug_when>
    <thetext>Comment on attachment 20746
patch and regression test

Is it OK that we&apos;re changing public OS X headers? Is it OK that we&apos;re removing headers that projects using WebKit are likely currently using?

+    bool m_hasChangedTabIndex : 1;

Does Node have room for this extra bit?

There might be a better name for this member, but I&apos;m having trouble thinking of it. Names I&apos;ve considered include m_hasExplicitTabIndex, m_didSetTabIndex, m_hasTabIndex.

+++ WebCore/html/HTMLElement.idl	(working copy)
@@ -35,6 +35,10 @@ module html {
                  attribute [ConvertNullToNullString] DOMString dir;
                  attribute [ConvertNullToNullString] DOMString className;
 
+                 attribute long            tabIndex;
+        void               blur();
+        void               focus();
+

Indentation looks funny here but it probably is just matching the funny indentation of the rest of the file.

+++ WebCore/html/HTMLLegendElement.cpp	(working copy)
@@ -45,7 +45,7 @@ HTMLLegendElement::~HTMLLegendElement()
 
 bool HTMLLegendElement::isFocusable() const
 {
-    return false;
+    return m_hasChangedTabIndex;
 }

Should this behavior be in HTMLElement instead?

It would be good to test Shift-Tab in the regression test as well.

Your test doesn&apos;t seem to test calling focus() on any elements. I think this is a good thing to test, since focus() working on elements that are not normally focusable is the main effect of your patch!

I&apos;m not going to r+ or r- this yet, because I&apos;m interested in the answers to my questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78530</commentid>
    <comment_count>25</comment_count>
    <who name="Sjoerd Visscher">sjoerd</who>
    <bug_when>2008-04-22 06:23:15 -0700</bug_when>
    <thetext>Hmm, there seems to be an incompatibility between IE and Firefox with tabIndex=&quot;-1&quot;. In IE, elements that are not focusable are also not focusable when tabIndex=&quot;-1&quot;. In Firefox they are focusable, and this seems what you have implemented here.

But the HTML 5 spec seems to be compatible with IE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78532</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-04-22 06:36:24 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Hmm, there seems to be an incompatibility between IE and Firefox with
&gt; tabIndex=&quot;-1&quot;. In IE, elements that are not focusable are also not focusable
&gt; when tabIndex=&quot;-1&quot;. In Firefox they are focusable, and this seems what you have
&gt; implemented here.

When you say &quot;focusable&quot;, do you mean that they are included in the tab order (i.e., you can press Tab to reach them), or that you can call element.focus() on them and they will gain keyboard focus, or both, or something different entirely?

&gt; But the HTML 5 spec seems to be compatible with IE.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78533</commentid>
    <comment_count>27</comment_count>
    <who name="Sjoerd Visscher">sjoerd</who>
    <bug_when>2008-04-22 06:40:29 -0700</bug_when>
    <thetext>With focusable I mean that both .focus() and clicking on the element draws focus outlines on the element. I did not test if that also means that they receive keyboard events, but I would think so.

I have also raised this issue on the whatwg list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78534</commentid>
    <comment_count>28</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2008-04-22 06:48:31 -0700</bug_when>
    <thetext>Putting tabindex=&quot;-1&quot; on normally unfocusable items should make them focusable via click or script, but not tabbable. However, IE has what I consider a bug in that those items receive focus but don&apos;t provide a default focus appearance for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78535</commentid>
    <comment_count>29</comment_count>
    <who name="Aaron Leventhal">aaronlevbugs</who>
    <bug_when>2008-04-22 06:52:49 -0700</bug_when>
    <thetext>The WhatWG spec appears to be wrong, in that it says:
&gt; A negative integer specifies that the element should be removed from the tab 
&gt; order. If the element does normally take focus, it may still be focused using 
&gt; other means (e.g. it could be focused by a click). 
It should also say that a negative integer makes elements focusable but not tabbable, whether they are normally focusable or not.

IE certainly does that -- they just don&apos;t show focus, which is really a section 508 mistake on their part. For IE the author has to put in an onfocus handler and set element.style to show focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78539</commentid>
    <comment_count>30</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2008-04-22 07:14:25 -0700</bug_when>
    <thetext>Yes, aaronlev is right. Though theres a difference between IE and Firefox on the handling of invalid values, such as tabindex=blah or tabindex=1s. HTML5 follows IE here (&quot;ignore&quot; the attribute).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78544</commentid>
    <comment_count>31</comment_count>
      <attachid>20746</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-04-22 09:44:40 -0700</bug_when>
    <thetext>Comment on attachment 20746
patch and regression test

Really great work! I&apos;m happy to see this getting fixed and I love having the new thorough test.

+        * bindings/objc/PublicDOMInterfaces.h:
+        -Remove focus, blur, tabindex from descendants of DOMHTMLElement.

This comment confused me. You&apos;re not removing these -- you&apos;re moving them to HTMLElement.

I think the name m_hasChangedTabIndex could be improved. I suggest m_tabIndexSetExplicitly, or m_hasTabIndex  or m_tabIndexWasSet or m_tabIndexWasSetExplicitly. WebCore::Document uses m_titleSetExplicitly for a similar situation.

     bool m_focused : 1;
+    bool m_hasChangedTabIndex : 1;
     bool m_active : 1;

You didn&apos;t change the comment below that says &quot;1 bit left&quot;; I think you took the last bit, so it has to say &quot;no bits left&quot;.

-            setTabIndex(max(static_cast&lt;int&gt;(std::numeric_limits&lt;short&gt;::min()), min(indexstring.toInt(), static_cast&lt;int&gt;(std::numeric_limits&lt;short&gt;::max()))));
+            Node::setTabIndex(max(static_cast&lt;int&gt;(std::numeric_limits&lt;short&gt;::min()), min(indexstring.toInt(), static_cast&lt;int&gt;(std::numeric_limits&lt;short&gt;::max()))));

I&apos;m not happy with the idiom used here. I think the internal Node::setTabIndex function should be renamed to get it out of the way of the public HTMLElement::setTabIndex function. It&apos;s usually not good style to hide one non-virtual function with another that does something different. Where else is Node::setTabIndex called? Maybe we can make it be a protected function member?

-    return isContentEditable() &amp;&amp; parent() &amp;&amp; !parent()-&gt;isContentEditable();
+    return (m_hasChangedTabIndex || (isContentEditable() &amp;&amp; parent() &amp;&amp; !parent()-&gt;isContentEditable()));

Another way to write this would be to call Element::isFocusable() instead of checking the m_hasChangedTabIndex flag directly. I&apos;d like to see that flag be private if possible (see below).

No need for that outer set of parentheses around the entire return expression. Please omit them.

 bool HTMLFieldSetElement::isFocusable() const
 {
-    return false;
+    return m_hasChangedTabIndex;
 }

Another way to do this is to call Element::isFocusable, since we&apos;re trying to undo what HTMLElement and HTMLGenericFormElement do. I think that&apos;s better than having a copy of the logic from Node::isFocusable here, but you might not agree. Same comment about HTMLLabelElement, HTMLLegendElement, HTMLOptGroupElement, and HTMLOptionElement.

You might be able to make the flag private rather than protected if you eliminate these. For future maintenance it would be much better if the tabIndex-related data members were private. We may want to change them around without changing all the code.

+&lt;!--imbedded elements--&gt;

I think these are &quot;embedded&quot; as opposed to &quot;imbedded&quot;.

+    printToConsole(elem.id + &quot; blured&quot;);

Typo here: &quot;blured&quot; instead of &quot;blurred&quot; with two &quot;r&quot;s.

+        document.write(focusCount+&quot; focus / &quot;+blurCount+&quot; blur events disatched&lt;br&gt;&quot;+consoleOutput.innerHTML);

Typo here: &quot;disatched&quot; instead of &quot;dispatched&quot;.

+&lt;frame src=&quot;data:text/html,&lt;div id=&apos;theConsole&apos;&gt;Console:&lt;/div&gt;&quot;/&gt;

I don&apos;t think the text &quot;Console:&quot; makes the output easier to read.

I think this test should go in the fast/forms directory rather than fast/events -- even though the test involves the focus and blur events, I think it&apos;s really about the form element support for being focused. The test checks that elements can be focused, but I don&apos;t see tests to check each element&apos;s behavior with no tabIndex, tabIndex of -1, tabIndex of 0, and a positive tabIndex.

The test checks the behavior of the tab key, but tabIndex has other effects as well. For example, it controls whether focus() works at all on some elements. We need tests to cover these changes in behavior.

I&apos;m interested in having tests to check that we have reasonable behavior when a tabIndex is set to values like: -2, -32767, -32768, -32769, 32767, 32768, and also large integers at the 2^31 and 2^32 boundaries. I worry that we truncate integers and do unpredictable things in those cases.

I&apos;d like the test output to be a little clearer about whether it&apos;s a success or failure. Currently the output doesn&apos;t make it clear that it&apos;s success. Also, the test doesn&apos;t seem to check the differences in behaviors. For example, where&apos;s the test for the difference between tabIndex of 0 and tabIndex of -1?

r=me, as-is, but I&apos;d like to see some refinements too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78550</commentid>
    <comment_count>32</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-22 11:49:23 -0700</bug_when>
    <thetext>I&apos;m not sure fast/forms makes sense, since tabIndex allows things that are not form elements to be focued too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78669</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-04-23 09:51:03 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; With focusable I mean that both .focus() and clicking on the element draws
&gt; focus outlines on the element. I did not test if that also means that they
&gt; receive keyboard events, but I would think so.
&gt; 
&gt; I have also raised this issue on the whatwg list.

Here&apos;s the link to the email thread. There&apos;s some interesting discussion in there:

http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-April/014512.html

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78759</commentid>
    <comment_count>34</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2008-04-24 02:53:47 -0700</bug_when>
    <thetext>I&apos;ve revamped the HTML5 spec. Let me know if I missed anything. It should be much more precise about what should happen now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78763</commentid>
    <comment_count>35</comment_count>
    <who name="Sjoerd Visscher">sjoerd</who>
    <bug_when>2008-04-24 03:23:00 -0700</bug_when>
    <thetext>Just one thing: &quot;The tabIndex DOM attribute must reflect the value of the tabIndex content attribute. If the attribute is not present, or parsing its value returns an error, then the DOM attribute must return 0 for elements that are focusable and &amp;#8722;1 for elements that are not focusable.&quot;

This does not make sense. A tabIndex=&quot;-1&quot; means that the element is focusable, so returning -1 for the DOM attribute for unfocusable elements is wrong. The only value that makes sense is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78773</commentid>
    <comment_count>36</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2008-04-24 06:47:36 -0700</bug_when>
    <thetext>FWIW: IE returns 0 for such elements (attribute absent, attribute error, or not focusable by default) and Firefox and Opera -1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78774</commentid>
    <comment_count>37</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2008-04-24 06:48:30 -0700</bug_when>
    <thetext>I should have added, if you want to determine whether an element is focuable having an additional getter would probably be good because contenteditable and maybe other attributes can influence that as well. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79187</commentid>
    <comment_count>38</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2008-04-28 18:33:11 -0700</bug_when>
    <thetext>I re-vamped the test to have much better output, and to test .focus instead of tabbing, the former of which this patch is really about.  Also addressed all of Darin&apos;s comments, some of which overlapped with Adam&apos;s comments.  fast/dom/tabindex-clamp already addresses Darin&apos;s desire for a boundary condition on assignment test. 

I also addressed the recently added specification that elements with tabindex unspecified or parsed unsuccessfully shall return 0 for normally focusable elements and -1 for all others.  Previous return value was undefined for the latter. 

committed r32664</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105407</commentid>
    <comment_count>39</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-12 15:24:19 -0800</bug_when>
    <thetext>*** Bug 20596 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20746</attachid>
            <date>2008-04-22 02:37:18 -0700</date>
            <delta_ts>2008-04-22 09:44:40 -0700</delta_ts>
            <desc>patch and regression test</desc>
            <filename>tabindexPatch.txt</filename>
            <type>text/plain</type>
            <size>82284</size>
            <attacher name="Alice Liu">alice.barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjM4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMDgtMDQtMjIgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
IDxyZGFyOi8vcHJvYmxlbS80OTExMjg5PiBBZGQgdGFiaW5kZXggcHJvcGVydHkgdG8gYWxsIGNo
aWxkcmVuIAorICAgICAgICBvZiBIVE1MRWxlbWVudCAoNzEzOCkKKyAgICAgICAgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzOAorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZXZlbnRzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVBy
aXZhdGUuaDoKKyAgICAgICAgLURPTUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmggYW5kIERPTUhU
TUxMZWdlbmRFbGVtZW50UHJpdmF0ZS5oIGFyZSBubyBsb25nZXIgbmVlZGVkCisKKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDoKKyAgICAgICAgLVJlbW92ZSBm
b2N1cywgYmx1ciwgdGFiaW5kZXggZnJvbSBkZXNjZW5kYW50cyBvZiBET01IVE1MRWxlbWVudC4K
KworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Ok5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNGb2N1c2FibGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmlzRm9jdXNhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRUYWJJbmRleCk6CisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRmllbGRTZXRFbGVtZW50Ojppc0ZvY3VzYWJsZSk6CisgICAg
ICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxM
YWJlbEVsZW1lbnQ6OmlzRm9jdXNhYmxlKToKKyAgICAgICAgKiBodG1sL0hUTUxMZWdlbmRFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMZWdlbmRFbGVtZW50Ojppc0ZvY3VzYWJs
ZSk6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKToKKyAgICAgICAgKiBodG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVt
ZW50Ojppc0ZvY3VzYWJsZSk6CisgICAgICAgIC1UaGUgY29uY2VwdCBvZiBiZWluZyBmb2N1c2Fi
bGUgbm93IG5lZWRzIHRvIGFjY291bnQgZm9yIHRhYmluZGV4IGF0dHJpYnV0ZS4KKworICAgICAg
ICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRUYWJJbmRleCk6Cisg
ICAgICAgIC1OZWVkIHRvIHVzZSBhIGJpdCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgdGFiaW5k
ZXggd2FzIGV4cGxpY2l0bHkgc2V0IHRvIDAgb3Igd2FzIGp1c3QgaW5pdGlhbGl6ZWQgdG8gMC4K
KworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwv
SFRNTEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50Lmlk
bDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5pZGw6Cisg
ICAgICAgICogaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5pZGw6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgLVJlbW92
aW5nIGF0dHJpYnV0ZSBhbmQgbWV0aG9kcyBmcm9tIGRlc2NlbmRhbnRzIG9mIEhUTUxFbGVtZW50
CisKIDIwMDgtMDQtMjIgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBRdCBidWlsZCBmaXguCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMzE3ODcpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzM4LDggKzMzOCw2IEBACiAJ
CTFDRkNFRTk2MEFBQ0M0MDEwMDM0ODc1MCAvKiBET01IVE1MQm9keUVsZW1lbnRQcml2YXRlLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQ0ZDRUU4RDBBQUNDM0NEMDAzNDg3NTAgLyogRE9NSFRNTEJvZHlFbGVtZW50UHJpdmF0
ZS5oICovOyB9OwogCQkxQ0ZDRUU5NzBBQUNDNDAxMDAzNDg3NTAgLyogRE9NSFRNTEJ1dHRvbkVs
ZW1lbnRQcml2YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZDRUU4RTBBQUNDM0NEMDAzNDg3NTAgLyogRE9NSFRNTEJ1
dHRvbkVsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCTFDRkNFRTk4MEFBQ0M0MDEwMDM0ODc1MCAv
KiBET01IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQ0VFOEYwQUFDQzNDRDAwMzQ4
NzUwIC8qIERPTUhUTUxJbWFnZUVsZW1lbnRQcml2YXRlLmggKi87IH07Ci0JCTFDRkNFRTk5MEFB
Q0M0MDEwMDM0ODc1MCAvKiBET01IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2Vu
ZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQ0VF
OTAwQUFDQzNDRDAwMzQ4NzUwIC8qIERPTUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmggKi87IH07
Ci0JCTFDRkNFRTlBMEFBQ0M0MDEwMDM0ODc1MCAvKiBET01IVE1MTGVnZW5kRWxlbWVudFByaXZh
dGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDRkNFRTkxMEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01IVE1MTGVnZW5kRWxlbWVu
dFByaXZhdGUuaCAqLzsgfTsKIAkJMUNGQ0VFOUIwQUFDQzQwMTAwMzQ4NzUwIC8qIERPTUhUTUxM
aW5rRWxlbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkNFRTkyMEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01I
VE1MTGlua0VsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCTFDRkNFRTlEMEFBQ0M0MDEwMDM0ODc1
MCAvKiBET01IVE1MU3R5bGVFbGVtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQ0VFOTQwQUFDQzNDRDAw
MzQ4NzUwIC8qIERPTUhUTUxTdHlsZUVsZW1lbnRQcml2YXRlLmggKi87IH07CiAJCTFDRkNFRTlF
MEFBQ0M0MDEwMDM0ODc1MCAvKiBET01IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUNGQ0VFOTUwQUFDQzNDRDAwMzQ4NzUwIC8qIERPTUhUTUxUZXh0QXJlYUVsZW1lbnRQcml2YXRl
LmggKi87IH07CkBAIC00MDM3LDkgKzQwMzUsNyBAQAogCQkJCTg1NzVERjgyMEFBNjEyRDYwMEY1
REJCNSAvKiBET01IVE1MSXNJbmRleEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovLAogCQkJCTg1QkE0RDJCMEFBNjg4OUYwMDg4MDUyRCAvKiBET01IVE1MTElFbGVtZW50Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk4NUJBNENFNzBBQTY4NjUxMDA4ODA1
MkQgLyogRE9NSFRNTExhYmVsRWxlbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8s
Ci0JCQkJMUNGQ0VFOTkwQUFDQzQwMTAwMzQ4NzUwIC8qIERPTUhUTUxMYWJlbEVsZW1lbnRQcml2
YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk4NUJBNENFODBBQTY4NjUx
MDA4ODA1MkQgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovLAotCQkJCTFDRkNFRTlBMEFBQ0M0MDEwMDM0ODc1MCAvKiBET01IVE1MTGVnZW5kRWxl
bWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTg1NzVERjg2
MEFBNjEzMEUwMEY1REJCNSAvKiBET01IVE1MTGlua0VsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovLAogCQkJCTFDRkNFRTlCMEFBQ0M0MDEwMDM0ODc1MCAvKiBET01IVE1MTGlu
a0VsZW1lbnRQcml2YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk4NUVD
QkYwQzBBQTc2Mjg5MDA1NDRGMEIgLyogRE9NSFRNTE1hcEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovLApAQCAtNDc0MCw4ICs0NzM2LDYgQEAKIAkJMUNGQ0VFOEQwQUFDQzND
RDAwMzQ4NzUwIC8qIERPTUhUTUxCb2R5RWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEJvZHlFbGVtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQ0ZDRUU4RTBBQUNDM0NEMDAzNDg3NTAgLyogRE9NSFRNTEJ1
dHRvbkVsZW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TUhUTUxCdXR0b25FbGVtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQ0ZDRUU4RjBBQUNDM0NEMDAzNDg3NTAgLyogRE9NSFRNTEltYWdlRWxlbWVudFByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEltYWdlRWxlbWVudFBy
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUNGQ0VFOTAwQUFDQzNDRDAw
MzQ4NzUwIC8qIERPTUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTFDRkNFRTkxMEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01IVE1MTGVn
ZW5kRWxlbWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
SFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFDRkNFRTkyMEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01IVE1MTGlua0VsZW1lbnRQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxMaW5rRWxlbWVudFByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNGQ0VFOTQwQUFDQzNDRDAwMzQ4
NzUwIC8qIERPTUhUTUxTdHlsZUVsZW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUhUTUxTdHlsZUVsZW1lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDRkNFRTk1MEFBQ0MzQ0QwMDM0ODc1MCAvKiBET01IVE1MVGV4dEFy
ZWFFbGVtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01I
VE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtOTcxMCwxMCArOTcwNCw4IEBACiAJCQkJODU5QTlDNDIwQUE1RTNCRDAwQjY5NEIyIC8qIERP
TUhUTUxJc0luZGV4RWxlbWVudC5tbSAqLywKIAkJCQk4NUJBNENEOTBBQTY4NjFCMDA4ODA1MkQg
LyogRE9NSFRNTExhYmVsRWxlbWVudC5oICovLAogCQkJCTg1QkE0Q0RBMEFBNjg2MUIwMDg4MDUy
RCAvKiBET01IVE1MTGFiZWxFbGVtZW50Lm1tICovLAotCQkJCTFDRkNFRTkwMEFBQ0MzQ0QwMDM0
ODc1MCAvKiBET01IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZS5oICovLAogCQkJCTg1QkE0Q0RCMEFB
Njg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGVnZW5kRWxlbWVudC5oICovLAogCQkJCTg1QkE0Q0RD
MEFBNjg2MUIwMDg4MDUyRCAvKiBET01IVE1MTGVnZW5kRWxlbWVudC5tbSAqLywKLQkJCQkxQ0ZD
RUU5MTBBQUNDM0NEMDAzNDg3NTAgLyogRE9NSFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlLmggKi8s
CiAJCQkJODVCQTREMDMwQUE2ODg2ODAwODgwNTJEIC8qIERPTUhUTUxMSUVsZW1lbnQuaCAqLywK
IAkJCQk4NUJBNEQwNDBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTExJRWxlbWVudC5tbSAqLywK
IAkJCQk4NTk5MkVCNjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50LmggKi8s
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcml2YXRlLmgJKHJldmlzaW9uIDMxNzg3KQorKysg
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcs
OCArNDcsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRnJhbWVFbGVtZW50UHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MSW1hZ2VFbGVtZW50UHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MTGFiZWxFbGVtZW50UHJpdmF0ZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1M
TGVnZW5kRWxlbWVudFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTExpbmtFbGVt
ZW50UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MT3B0aW9uc0NvbGxlY3Rpb25Q
cml2YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxQcmVFbGVtZW50UHJpdmF0ZS5oPgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCShyZXZp
c2lvbiAzMTc4NykKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2Vz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw4ICsxNzgsNiBAQAogLSAoQk9PTCloYXNBdHRyaWJ1
dGU6KE5TU3RyaW5nICopbmFtZTsKIC0gKEJPT0wpaGFzQXR0cmlidXRlTlM6KE5TU3RyaW5nICop
bmFtZXNwYWNlVVJJIDooTlNTdHJpbmcgKilsb2NhbE5hbWU7CiAtIChCT09MKWhhc0F0dHJpYnV0
ZU5TOihOU1N0cmluZyAqKW5hbWVzcGFjZVVSSSBsb2NhbE5hbWU6KE5TU3RyaW5nICopbG9jYWxO
YW1lOwotLSAodm9pZClmb2N1czsKLS0gKHZvaWQpYmx1cjsKIC0gKHZvaWQpc2Nyb2xsSW50b1Zp
ZXc6KEJPT0wpYWxpZ25XaXRoVG9wOwogLSAodm9pZClzY3JvbGxJbnRvVmlld0lmTmVlZGVkOihC
T09MKWNlbnRlcklmTmVlZGVkOwogQGVuZApAQCAtMjY3LDEyICsyNjUsOSBAQAogQHByb3BlcnR5
KGNvcHkpIE5TU3RyaW5nICpyZWw7CiBAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnJldjsKIEBw
cm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqc2hhcGU7Ci1AcHJvcGVydHkgaW50IHRhYkluZGV4Owog
QHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICp0YXJnZXQ7CiBAcHJvcGVydHkoY29weSkgTlNTdHJp
bmcgKnR5cGU7CiBAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TVVJMICphYnNvbHV0ZUxpbmtV
Ukw7Ci0tICh2b2lkKWJsdXI7Ci0tICh2b2lkKWZvY3VzOwogQGVuZAogCiBAaW50ZXJmYWNlIERP
TUhUTUxBcHBsZXRFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKQEAgLTI5Niw3ICsyOTEsNiBAQAog
QHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICpocmVmOwogQHByb3BlcnR5IEJPT0wgbm9IcmVmOwog
QHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICpzaGFwZTsKLUBwcm9wZXJ0eSBpbnQgdGFiSW5kZXg7
CiBAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnRhcmdldDsKIEBwcm9wZXJ0eShyZWFkb25seSwg
Y29weSkgTlNVUkwgKmFic29sdXRlTGlua1VSTDsKIEBlbmQKQEAgLTMzMCw3ICszMjQsNiBAQAog
QHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICphY2Nlc3NLZXk7CiBAcHJvcGVydHkgQk9PTCBkaXNh
YmxlZDsKIEBwcm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqbmFtZTsKLUBwcm9wZXJ0eSBpbnQgdGFi
SW5kZXg7CiBAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0eXBlOwogQHByb3Bl
cnR5KGNvcHkpIE5TU3RyaW5nICp2YWx1ZTsKIEBlbmQKQEAgLTM3OSw2ICszNzIsOSBAQAogQHBy
b3BlcnR5KGNvcHkpIE5TU3RyaW5nICpjb250ZW50RWRpdGFibGU7CiBAcHJvcGVydHkocmVhZG9u
bHkpIEJPT0wgaXNDb250ZW50RWRpdGFibGU7CiBAcHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5T
U3RyaW5nICp0aXRsZURpc3BsYXlTdHJpbmc7CitAcHJvcGVydHkgaW50IHRhYkluZGV4OworLSAo
dm9pZClibHVyOworLSAodm9pZClmb2N1czsKIEBlbmQKIAogQGludGVyZmFjZSBET01IVE1MRW1i
ZWRFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKQEAgLTQ5NSwxNCArNDkxLDExIEBACiBAcHJvcGVy
dHkgQk9PTCByZWFkT25seTsKIEBwcm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqc2l6ZTsKIEBwcm9w
ZXJ0eShjb3B5KSBOU1N0cmluZyAqc3JjOwotQHByb3BlcnR5IGludCB0YWJJbmRleDsKIEBwcm9w
ZXJ0eShjb3B5KSBOU1N0cmluZyAqdHlwZTsKIEBwcm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqdXNl
TWFwOwogQHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICp2YWx1ZTsKIEBwcm9wZXJ0eShyZWFkb25s
eSwgY29weSkgTlNTdHJpbmcgKmFsdERpc3BsYXlTdHJpbmc7CiBAcHJvcGVydHkocmVhZG9ubHks
IGNvcHkpIE5TVVJMICphYnNvbHV0ZUltYWdlVVJMOwotLSAodm9pZClibHVyOwotLSAodm9pZClm
b2N1czsKIC0gKHZvaWQpc2VsZWN0OwogLSAodm9pZCljbGljazsKIEBlbmQKQEAgLTU4OCw3ICs1
ODEsNiBAQAogQHByb3BlcnR5IGludCBoc3BhY2U7CiBAcHJvcGVydHkoY29weSkgTlNTdHJpbmcg
Km5hbWU7CiBAcHJvcGVydHkoY29weSkgTlNTdHJpbmcgKnN0YW5kYnk7Ci1AcHJvcGVydHkgaW50
IHRhYkluZGV4OwogQHByb3BlcnR5KGNvcHkpIE5TU3RyaW5nICp0eXBlOwogQHByb3BlcnR5KGNv
cHkpIE5TU3RyaW5nICp1c2VNYXA7CiBAcHJvcGVydHkgaW50IHZzcGFjZTsKQEAgLTY1OSwxMiAr
NjUxLDkgQEAKIEBwcm9wZXJ0eSBCT09MIG11bHRpcGxlOwogQHByb3BlcnR5KGNvcHkpIE5TU3Ry
aW5nICpuYW1lOwogQHByb3BlcnR5IGludCBzaXplOwotQHByb3BlcnR5IGludCB0YWJJbmRleDsK
IC0gKHZvaWQpYWRkOihET01IVE1MRWxlbWVudCAqKWVsZW1lbnQgOihET01IVE1MRWxlbWVudCAq
KWJlZm9yZTsKIC0gKHZvaWQpYWRkOihET01IVE1MRWxlbWVudCAqKWVsZW1lbnQgYmVmb3JlOihE
T01IVE1MRWxlbWVudCAqKWJlZm9yZTsKIC0gKHZvaWQpcmVtb3ZlOihpbnQpaW5kZXg7Ci0tICh2
b2lkKWJsdXI7Ci0tICh2b2lkKWZvY3VzOwogQGVuZAogCiBAaW50ZXJmYWNlIERPTUhUTUxTdHls
ZUVsZW1lbnQgOiBET01IVE1MRWxlbWVudApAQCAtNzYxLDExICs3NTAsOCBAQAogQHByb3BlcnR5
KGNvcHkpIE5TU3RyaW5nICpuYW1lOwogQHByb3BlcnR5IEJPT0wgcmVhZE9ubHk7CiBAcHJvcGVy
dHkgaW50IHJvd3M7Ci1AcHJvcGVydHkgaW50IHRhYkluZGV4OwogQHByb3BlcnR5KHJlYWRvbmx5
LCBjb3B5KSBOU1N0cmluZyAqdHlwZTsKIEBwcm9wZXJ0eShjb3B5KSBOU1N0cmluZyAqdmFsdWU7
Ci0tICh2b2lkKWJsdXI7Ci0tICh2b2lkKWZvY3VzOwogLSAodm9pZClzZWxlY3Q7CiBAZW5kCiAK
SW5kZXg6IFdlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL05v
ZGUuY3BwCShyZXZpc2lvbiAzMTc4NykKKysrIFdlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzMsNiArMTMzLDcgQEAgTm9kZTo6Tm9kZShEb2N1bWVudCAqZG9jKQogICAg
ICAgbV9pc0xpbmsoZmFsc2UpLAogICAgICAgbV9hdHRyV2FzU3BlY2lmaWVkT3JFbGVtZW50SGFz
UmFyZURhdGEoZmFsc2UpLAogICAgICAgbV9mb2N1c2VkKGZhbHNlKSwKKyAgICAgIG1faGFzQ2hh
bmdlZFRhYkluZGV4KGZhbHNlKSwKICAgICAgIG1fYWN0aXZlKGZhbHNlKSwKICAgICAgIG1faG92
ZXJlZChmYWxzZSksCiAgICAgICBtX2luQWN0aXZlQ2hhaW4oZmFsc2UpLApAQCAtMzg5LDEyICsz
OTAsMTIgQEAgdm9pZCBOb2RlOjpzZXRDaGFuZ2VkKFN0eWxlQ2hhbmdlVHlwZSBjaAogCiBib29s
IE5vZGU6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIG1faGFzQ2hhbmdlZFRhYkluZGV4OwogfQogCiBib29sIE5vZGU6OmlzS2V5Ym9hcmRGb2N1
c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGlzRm9jdXNhYmxlKCk7
CisgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkgJiYgdGFiSW5kZXgoKSA+PSAwOwogfQogCiBib29s
IE5vZGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApJbmRleDogV2ViQ29yZS9kb20vTm9kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMzE3ODcpCisrKyBX
ZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1Miw3ICsyNTIsMTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRIb3ZlcmVkKGJvb2wgYiA9IHRydWUpIHsgbV9ob3Zl
cmVkID0gYjsgfQogCiAgICAgc2hvcnQgdGFiSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3RhYklu
ZGV4OyB9Ci0gICAgdm9pZCBzZXRUYWJJbmRleChzaG9ydCBpKSB7IG1fdGFiSW5kZXggPSBpOyB9
CisgICAgdm9pZCBzZXRUYWJJbmRleChzaG9ydCBpKQorICAgIHsgCisgICAgICAgIG1fdGFiSW5k
ZXggPSBpOyAKKyAgICAgICAgbV9oYXNDaGFuZ2VkVGFiSW5kZXggPSB0cnVlOworICAgIH0KIAog
ICAgIC8qKgogICAgICAqIFdoZXRoZXIgdGhpcyBub2RlIGNhbiByZWNlaXZlIHRoZSBrZXlib2Fy
ZCBmb2N1cy4KQEAgLTQ5Miw2ICs0OTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzTGlu
ayA6IDE7CiAgICAgYm9vbCBtX2F0dHJXYXNTcGVjaWZpZWRPckVsZW1lbnRIYXNSYXJlRGF0YSA6
IDE7IC8vIHVzZWQgaW4gQXR0ciBmb3Igb25lIHRoaW5nIGFuZCBFbGVtZW50IGZvciBhbm90aGVy
CiAgICAgYm9vbCBtX2ZvY3VzZWQgOiAxOworICAgIGJvb2wgbV9oYXNDaGFuZ2VkVGFiSW5kZXgg
OiAxOwogICAgIGJvb2wgbV9hY3RpdmUgOiAxOwogICAgIGJvb2wgbV9ob3ZlcmVkIDogMTsKICAg
ICBib29sIG1faW5BY3RpdmVDaGFpbiA6IDE7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5pZGwJKHJldmlzaW9uIDMxNzg3KQorKysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTMgKzM0LDkgQEAgbW9kdWxlIGh0bWwgewogICAg
ICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcmVsOwog
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcmV2
OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
c2hhcGU7Ci0gICAgICAgIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4OwogICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdGFyZ2V0OwogICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsKIAotICAg
ICAgICB2b2lkIGJsdXIoKTsKLSAgICAgICAgdm9pZCBmb2N1cygpOwotCiAgICAgICAgIC8vIElF
IEV4dGVuc2lvbnMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBoYXNoOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhvc3Q7CkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gMzE3ODcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFy
ZWFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBocmVmOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBub0hyZWY7CiAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBzaGFwZTsKLSAgICAgICAg
YXR0cmlidXRlIGxvbmcgdGFiSW5kZXg7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB0YXJnZXQ7CiAKICAgICAgICAgLy8gSUUgRXh0ZW5zaW9u
cwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAzMTc4NykKKysr
IFdlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgYWNjZXNzS2V5Owog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRpc2FibGVk
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nICAgICAgICAgICAgbmFtZTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBs
b25nICAgICAgICAgICAgICAgICB0YWJJbmRleDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
ICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAK
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMzE3ODcpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTQogICAgICAgICBpbmRleHN0cmluZyA9
IGdldEF0dHJpYnV0ZSh0YWJpbmRleEF0dHIpOwogICAgICAgICBpZiAoaW5kZXhzdHJpbmcubGVu
Z3RoKCkpCiAgICAgICAgICAgICAvLyBDbGFtcCB0YWJpbmRleCB0byB0aGUgcmFuZ2Ugb2YgJ3No
b3J0JyB0byBtYXRjaCBGaXJlZm94J3MgYmVoYXZpb3IuCi0gICAgICAgICAgICBzZXRUYWJJbmRl
eChtYXgoc3RhdGljX2Nhc3Q8aW50PihzdGQ6Om51bWVyaWNfbGltaXRzPHNob3J0Pjo6bWluKCkp
LCBtaW4oaW5kZXhzdHJpbmcudG9JbnQoKSwgc3RhdGljX2Nhc3Q8aW50PihzdGQ6Om51bWVyaWNf
bGltaXRzPHNob3J0Pjo6bWF4KCkpKSkpOworICAgICAgICAgICAgTm9kZTo6c2V0VGFiSW5kZXgo
bWF4KHN0YXRpY19jYXN0PGludD4oc3RkOjpudW1lcmljX2xpbWl0czxzaG9ydD46Om1pbigpKSwg
bWluKGluZGV4c3RyaW5nLnRvSW50KCksIHN0YXRpY19jYXN0PGludD4oc3RkOjpudW1lcmljX2xp
bWl0czxzaG9ydD46Om1heCgpKSkpKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBs
YW5nQXR0cikgewogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50CiAgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gZGlyQXR0cikgewpAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgSFRNTEVs
ZW1lbnQ6OmFkZEhUTUxBbGlnbm1lbnQoTWFwcGUKIAogYm9vbCBIVE1MRWxlbWVudDo6aXNGb2N1
c2FibGUoKSBjb25zdAogewotICAgIHJldHVybiBpc0NvbnRlbnRFZGl0YWJsZSgpICYmIHBhcmVu
dCgpICYmICFwYXJlbnQoKS0+aXNDb250ZW50RWRpdGFibGUoKTsKKyAgICByZXR1cm4gKG1faGFz
Q2hhbmdlZFRhYkluZGV4IHx8IChpc0NvbnRlbnRFZGl0YWJsZSgpICYmIHBhcmVudCgpICYmICFw
YXJlbnQoKS0+aXNDb250ZW50RWRpdGFibGUoKSkpOwogfQogCiBib29sIEhUTUxFbGVtZW50Ojpp
c0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0IApAQCAtNzAzLDYgKzcwMywxMSBAQCB2b2lkIEhUTUxF
bGVtZW50OjpzZXRDbGFzc05hbWUoY29uc3QgU3RyCiAgICAgc2V0QXR0cmlidXRlKGNsYXNzQXR0
ciwgdmFsdWUpOwogfQogCit2b2lkIEhUTUxFbGVtZW50OjpzZXRUYWJJbmRleChpbnQgdmFsdWUp
Cit7CisgICAgc2V0QXR0cmlidXRlKHRhYmluZGV4QXR0ciwgU3RyaW5nOjpudW1iZXIodmFsdWUp
KTsKK30KKwogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTEVsZW1lbnQ6OmNoaWxkcmVu
KCkKIHsKICAgICByZXR1cm4gbmV3IEhUTUxDb2xsZWN0aW9uKHRoaXMsIEhUTUxDb2xsZWN0aW9u
OjpOb2RlQ2hpbGRyZW4pOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDMxNzg3KQorKysg
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0RGlyKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBj
bGFzc05hbWUoKSBjb25zdDsKICAgICB2b2lkIHNldENsYXNzTmFtZShjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIHNldFRhYkluZGV4KGludCk7ICAgIAogCiAgICAgU3RyaW5nIGlubmVySFRNTCgp
IGNvbnN0OwogICAgIFN0cmluZyBvdXRlckhUTUwoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmlkbAkocmV2aXNpb24gMzE3ODcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkaXI7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBjbGFzc05hbWU7CiAKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAg
ICAgICAgICB0YWJJbmRleDsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGJsdXIoKTsKKyAg
ICAgICAgdm9pZCAgICAgICAgICAgICAgIGZvY3VzKCk7CisKICAgICAgICAgLy8gRXh0ZW5zaW9u
cwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgaW5uZXJIVE1MCiAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAzMTc4NykKKysrIFdlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBib29sIEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNo
ZWNrRFREKGNvbnN0CiAKIGJvb2wgSFRNTEZpZWxkU2V0RWxlbWVudDo6aXNGb2N1c2FibGUoKSBj
b25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9oYXNDaGFuZ2VkVGFiSW5k
ZXg7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTEZpZWxkU2V0RWxlbWVudDo6dHlwZSgp
IGNvbnN0CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCShyZXZpc2lvbiAzMTc4NykK
KysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NDUsMTMgKzQ1LDEwIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgICBzaXplOyAvLyBDaGFuZ2VkIHN0cmluZyAtPiBsb25nIGFzIHBhcnQg
b2YgRE9NIGxldmVsIDIKICNlbmRpZgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3JjOwotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgbG9uZyAgICAgICAgICAgIHRhYkluZGV4OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkg
ZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1
ZTsKICAgICAgICAgCi0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBibHVyKCk7Ci0gICAgICAg
IHZvaWQgICAgICAgICAgICAgICBmb2N1cygpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAg
c2VsZWN0KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBjbGljaygpOwogICAgICAgICAK
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5jcHAJKHJldmlzaW9uIDMxNzg3KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBAIEhUTUxMYWJlbEVsZW1lbnQ6On5IVE1MTGFiZWxFbGVtZW50KCkKIAogYm9vbCBIVE1M
TGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBtX2hhc0NoYW5nZWRUYWJJbmRleDsKIH0KIAogSFRNTEVsZW1lbnQqIEhUTUxM
YWJlbEVsZW1lbnQ6OmNvcnJlc3BvbmRpbmdDb250cm9sKCkKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MTGFiZWxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVs
RWxlbWVudC5pZGwJKHJldmlzaW9uIDMxNzg3KQorKysgV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVs
ZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw2IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWNjZXNzS2V5
OwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
aHRtbEZvcjsKLQotICAgICAgICB2b2lkIGZvY3VzKCk7CiAgICAgfTsKIAogfQpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAzMTc4NykKKysrIFdlYkNvcmUvaHRt
bC9IVE1MTGVnZW5kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAg
SFRNTExlZ2VuZEVsZW1lbnQ6On5IVE1MTGVnZW5kRWxlbWVudCgpCiAKIGJvb2wgSFRNTExlZ2Vu
ZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG1faGFzQ2hhbmdlZFRhYkluZGV4OwogfQogCiBSZW5kZXJPYmplY3QqIEhUTUxMZWdl
bmRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxl
KiBzdHlsZSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTGVnZW5kRWxlbWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmlkbAkocmV2aXNpb24gMzE3
ODcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw4ICsyOCw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIEhUTUxGb3JtRWxlbWVudCBmb3JtOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWNjZXNzS2V5OwogICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgYWxpZ247Ci0KLSAgICAgICAgdm9pZCBm
b2N1cygpOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAko
cmV2aXNpb24gMzE3ODcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBoc3BhY2U7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICBuYW1l
OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgICAgICAgc3RhbmRieTsKLSAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcg
ICAgICAgICAgICB0YWJJbmRleDsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHR5cGU7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICB1c2VN
YXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgdnNwYWNlOwpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAkocmV2aXNpb24gMzE3ODcpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDcgKzQzLDcgQEAgSFRNTE9wdEdyb3VwRWxlbWVudDo6SFRNTE9wdEdyb3VwRWxlbWVudAog
CiBib29sIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1faGFzQ2hhbmdlZFRhYkluZGV4OwogfQogCiBjb25z
dCBBdG9taWNTdHJpbmcmIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnR5cGUoKSBjb25zdApJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAzMTc4NykKKysrIFdlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcg
QEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6ZGV0YWNoKCkKIAogYm9vbCBIVE1MT3B0aW9uRWxl
bWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gbV9oYXNDaGFuZ2VkVGFiSW5kZXg7CiB9CiAKIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTE9w
dGlvbkVsZW1lbnQ6OnR5cGUoKSBjb25zdApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aWRsCShyZXZpc2lvbiAzMTc4NykKKysrIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIG11bHRpcGxlOwogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAg
ICAgbmFtZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICBzaXpl
OwotICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIHRhYkluZGV4Owog
ICAgICAgICAKICAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBhZGQoaW4gSFRNTEVsZW1lbnQg
ZWxlbWVudCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gSFRNTEVsZW1lbnQg
YmVmb3JlKQpAQCAtNjEsOCArNjAsNiBAQCBtb2R1bGUgaHRtbCB7CiAjZWxzZQogICAgICAgICB2
b2lkICAgICAgICAgICAgICAgcmVtb3ZlKGluIGxvbmcgaW5kZXgpOwogI2VuZGlmCi0gICAgICAg
IHZvaWQgICAgICAgICAgICAgICBibHVyKCk7Ci0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBm
b2N1cygpOwogCiAgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBpbiBET00gTGV2ZWwg
MiBJREwsIGJ1dCBhcmUgbWVudGlvbmVkIGluIHRoZSBzdGFuZGFyZDoKICAgICAgICAgLy8gIlRo
ZSBjb250YWluZWQgb3B0aW9ucyBjYW4gYmUgZGlyZWN0bHkgYWNjZXNzZWQgdGhyb3VnaCB0aGUg
c2VsZWN0IGVsZW1lbnQgYXMgYSBjb2xsZWN0aW9uLiIKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGwJKHJldmlzaW9uIDMxNzg3KQorKysgV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMiArMzMsOSBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgICAgICAgICAgICBuYW1lOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgIGJvb2xlYW4gICAgICAgICAgICAgIHJlYWRPbmx5OwogICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIHJvd3M7Ci0gICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgdGFiSW5kZXg7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKICAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHZh
bHVlOwogICAgICAgICAKLSAgICAgICAgdm9pZCAgICAgYmx1cigpOwotICAgICAgICB2b2lkICAg
ICBmb2N1cygpOwogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgIC8vIFdpbklF
ICYgRmlyZUZveCBleHRlbnNpb246CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMzIzODApCisrKyBXZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA4LTA0LTIy
ICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCA8cmRhcjovL3Byb2JsZW0vNDkxMTI4OT4g
QWRkIHRhYmluZGV4IHByb3BlcnR5IHRvIGFsbCBjaGlsZHJlbiAKKyAgICAgICAgb2YgSFRNTEVs
ZW1lbnQgKDcxMzgpCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMzgKKworICAgICAgICAqIE1pZ3JhdGVIZWFkZXJzLm1ha2U6CisgICAgICAgIFJlbW92
aW5nIERPTUhUTUxMYWJlbEVsZW1lbnRQcml2YXRlLmggYW5kIERPTUhUTUxMZWdlbmRFbGVtZW50
UHJpdmF0ZS5oCisgICAgICAgIGJlY2F1c2Ugbm93IHRoYXQgZm9jdXMoKSBoYXMgYmVlbiBtb3Zl
ZCB0byBET01IVE1MRWxlbWVudC5oLCB0aGVzZQorICAgICAgICBmaWxlcyBhcmUgbm8gbG9uZ2Vy
IG5lZWRlZC4KKwogMjAwOC0wNC0yMCAgTWF0dCBMaWxlayAgPHdlYmtpdEBtYXR0bGlsZWsuY29t
PgogCiAgICAgICAgIE15c3RlcmlvdXNseSByZXZpZXdlZCBieSBtaXR6fGF3YXkuCkluZGV4OiBX
ZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9N
aWdyYXRlSGVhZGVycy5tYWtlCShyZXZpc2lvbiAzMTc4NykKKysrIFdlYktpdC9tYWMvTWlncmF0
ZUhlYWRlcnMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTI0LDkgKzEyNCw3IEBAIGFsbCA6IFwK
ICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NSFRNTElzSW5kZXhFbGVtZW50LmggXAogICAg
ICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01IVE1MTElFbGVtZW50LmggXAogICAgICQoUFVCTElD
X0hFQURFUlNfRElSKS9ET01IVE1MTGFiZWxFbGVtZW50LmggXAotICAgICQoUFJJVkFURV9IRUFE
RVJTX0RJUikvRE9NSFRNTExhYmVsRWxlbWVudFByaXZhdGUuaCBcCiAgICAgJChQVUJMSUNfSEVB
REVSU19ESVIpL0RPTUhUTUxMZWdlbmRFbGVtZW50LmggXAotICAgICQoUFJJVkFURV9IRUFERVJT
X0RJUikvRE9NSFRNTExlZ2VuZEVsZW1lbnRQcml2YXRlLmggXAogICAgICQoUFVCTElDX0hFQURF
UlNfRElSKS9ET01IVE1MTGlua0VsZW1lbnQuaCBcCiAgICAgJChQUklWQVRFX0hFQURFUlNfRElS
KS9ET01IVE1MTGlua0VsZW1lbnRQcml2YXRlLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElS
KS9ET01IVE1MTWFwRWxlbWVudC5oIFwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDMyMzgwKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDgt
MDQtMjIgIEFsaWNlIExpdSAgPGFsaWNlLmxpdUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IDxyZGFyOi8vcHJvYmxlbS80OTEx
Mjg5PiBBZGQgdGFiaW5kZXggcHJvcGVydHkgdG8gYWxsIGNoaWxkcmVuIAorICAgICAgICBvZiBI
VE1MRWxlbWVudCAoNzEzOCkKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzEzOAorCisgICAgICAgIG1pbm9yIHVwZGF0ZXMgdG8gdGhlc2UgZXhpc3Rpbmcg
dGVzdHM6CisgICAgICAgICogZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wbHVnaW4tYXR0cmlidXRlcy1lbnVtZXJhdGlvbi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlv
bi5qczoKKworICAgICAgICBmaWxlcyBmb3IgdGVzdGluZyBlbmhhbmNlbWVudDoKKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvYWJlLnBuZzogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLWZyYW1lMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9yZXNvdXJjZXMvdGFiaW5kZXgtZm9jdXMtYmx1ci1h
bGwtZnJhbWUyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy90
YWJpbmRleC1mb2N1cy1ibHVyLWFsbC1pZnJhbWUxLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3Jlc291cmNlcy90YWJpbmRleC1mb2N1cy1ibHVyLWFsbC1pZnJhbWUyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Jlc291cmNlcy90YWJpbmRleC1mb2N1cy1i
bHVyLWFsbC5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdGFiaW5kZXgtZm9jdXMt
Ymx1ci1hbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90YWJp
bmRleC1mb2N1cy1ibHVyLWFsbC5odG1sOiBBZGRlZC4KKwogMjAwOC0wNC0yMSAgTWFyayBSb3dl
ICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgY2FzZSBvbiB0aGUgZmlsZSBu
YW1lcyBvZiB0ZXN0IHJlc3VsdHMgZm9yIHN2Zy9jdXN0b20vYWx0Z2x5cGguc3ZnLCBhbmQgcmVt
b3ZlIGFuIGV4dHJhIC1leHBlY3RlZC50eHQgdGhhdCB3YXMgY2hlY2tlZCBpbiB3aXRoIGluY29y
cmVjdApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVy
YXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzMTc4NykKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDcgKzMyLDcgQEAgUEFTUyByZXN1bHRBcnJheVsyXS5pIGlzICcyJwogUEFTUyByZXN1bHRBcnJh
eVsyXS5pdGVtIGlzIG5hbWVkTm9kZU1hcC5pdGVtKDIpCiAKIFtvYmplY3QgSFRNTEZvcm1FbGVt
ZW50XQotUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTEzCitQQVNTIHJlc3VsdEFycmF5Lmxl
bmd0aCBpcyAxMTQKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKIFBBU1MgcmVzdWx0QXJy
YXlbMF0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF0K
IFBBU1MgcmVzdWx0QXJyYXlbMV0uaSBpcyAnMScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3BsdWdpbi1hdHRyaWJ1dGVzLWVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wbHVnaW4tYXR0cmlidXRlcy1lbnVtZXJhdGlvbi1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDMxNzg3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vcGx1Z2lu
LWF0dHJpYnV0ZXMtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
Niw3ICsxNiw2IEBAIGRlY2xhcmUKIGZvcm0KIGhzcGFjZQogc3RhbmRieQotdGFiSW5kZXgKIHR5
cGUKIHVzZU1hcAogdnNwYWNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMv
ZG9tTGlzdEVudW1lcmF0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRpb24uanMJKHJldmlzaW9uIDMxNzg3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMTMwLDcgKzEzMCw3IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVt
IiwgIm5hbWVkTm8KIC8vIEhUTUxGb3JtRWxlbWVudAogdmFyIGh0bWxGb3JtRWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmb3JtJylbMF07CiByZXN1bHRBcnJheSA9IGl0
ZXJhdGVMaXN0KGh0bWxGb3JtRWxlbWVudCk7Ci1zaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3Ro
IiwgIjExMyIpOworc2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxMTQiKTsKIHNob3Vs
ZEJlKCJyZXN1bHRBcnJheVswXS5pIiwgIicwJyIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzBd
Lml0ZW0iLCAiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdIik7CiBz
aG91bGRCZSgicmVzdWx0QXJyYXlbMV0uaSIsICInMSciKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90YWJpbmRleC1mb2N1cy1ibHVyLWFsbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90YWJpbmRl
eC1mb2N1cy1ibHVyLWFsbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjU2
IEBACisxMjcgZm9jdXMgLyAxMjcgYmx1ciBldmVudHMgZGlzYXRjaGVkCitDb25zb2xlOgorYjEg
Zm9jdXNlZAorYjEgYmx1cmVkCit0dDEgZm9jdXNlZAordHQxIGJsdXJlZAorc3ViMSBmb2N1c2Vk
CitzdWIxIGJsdXJlZAoraW5zMSBmb2N1c2VkCitpbnMxIGJsdXJlZAorZGQxYSBmb2N1c2VkCitk
ZDFhIGJsdXJlZAordWwxIGZvY3VzZWQKK3VsMSBibHVyZWQKK3RleHQxIGZvY3VzZWQKK3RleHQx
IGJsdXJlZAorcmFkaW9DaG9pY2UxYSBmb2N1c2VkCityYWRpb0Nob2ljZTFhIGJsdXJlZAorYnV0
dG9uMSBmb2N1c2VkCitidXR0b24xIGJsdXJlZAorc2VhcmNoMSBmb2N1c2VkCitzZWFyY2gxIGJs
dXJlZAorc3VibWl0MSBmb2N1c2VkCitzdWJtaXQxIGJsdXJlZAorc2FtcDIgZm9jdXNlZAorc2Ft
cDIgYmx1cmVkCittYXAyIGZvY3VzZWQKK21hcDIgYmx1cmVkCithY3JvbnltMiBmb2N1c2VkCith
Y3JvbnltMiBibHVyZWQKK3NtYWxsMiBmb2N1c2VkCitzbWFsbDIgYmx1cmVkCitlbTIgZm9jdXNl
ZAorZW0yIGJsdXJlZAorZGl2MmQgZm9jdXNlZAorZGl2MmQgYmx1cmVkCitkZWwyIGZvY3VzZWQK
K2RlbDIgYmx1cmVkCitzcGFuMiBmb2N1c2VkCitzcGFuMiBibHVyZWQKK2NvbGdyb3VwMiBmb2N1
c2VkCitjb2xncm91cDIgYmx1cmVkCit0aDIgZm9jdXNlZAordGgyIGJsdXJlZAorZGl2MmYgZm9j
dXNlZAorZGl2MmYgYmx1cmVkCitmb3JtMiBmb2N1c2VkCitmb3JtMiBibHVyZWQKK2NoZWNrYm94
MiBmb2N1c2VkCitjaGVja2JveDIgYmx1cmVkCityYWRpb0Nob2ljZTJiIGZvY3VzZWQKK3JhZGlv
Q2hvaWNlMmIgYmx1cmVkCitzZWFyY2gyIGZvY3VzZWQKK3NlYXJjaDIgYmx1cmVkCithdWRpbzIg
Zm9jdXNlZAorYXVkaW8yIGJsdXJlZAorcDIgZm9jdXNlZAorcDIgYmx1cmVkCitjZW50ZXIyIGZv
Y3VzZWQKK2NlbnRlcjIgYmx1cmVkCitoNF8yIGZvY3VzZWQKK2g0XzIgYmx1cmVkCitzdHJpa2Uy
IGZvY3VzZWQKK3N0cmlrZTIgYmx1cmVkCit0ZDJiIGZvY3VzZWQKK3RkMmIgYmx1cmVkCitkdDJh
IGZvY3VzZWQKK2R0MmEgYmx1cmVkCitsaTJiIGZvY3VzZWQKK2xpMmIgYmx1cmVkCitsaTJkIGZv
Y3VzZWQKK2xpMmQgYmx1cmVkCitzZWxlY3QyIGZvY3VzZWQKK3NlbGVjdDIgYmx1cmVkCit0ZXh0
YXJlYTIgZm9jdXNlZAordGV4dGFyZWEyIGJsdXJlZAordmlkZW8yIGZvY3VzZWQKK3ZpZGVvMiBi
bHVyZWQKK2JkbzIgZm9jdXNlZAorYmRvMiBibHVyZWQKK2JyMiBmb2N1c2VkCiticjIgYmx1cmVk
CitiMiBmb2N1c2VkCitiMiBibHVyZWQKK3R0MiBmb2N1c2VkCit0dDIgYmx1cmVkCitzdHJvbmcy
IGZvY3VzZWQKK3N0cm9uZzIgYmx1cmVkCitrYmQyIGZvY3VzZWQKK2tiZDIgYmx1cmVkCitoMV8y
IGZvY3VzZWQKK2gxXzIgYmx1cmVkCitoNV8yIGZvY3VzZWQKK2g1XzIgYmx1cmVkCitzdWIyIGZv
Y3VzZWQKK3N1YjIgYmx1cmVkCitpbnMyIGZvY3VzZWQKK2luczIgYmx1cmVkCitkaXYyZSBmb2N1
c2VkCitkaXYyZSBibHVyZWQKK2NvbDJhIGZvY3VzZWQKK2NvbDJhIGJsdXJlZAordGJvZHkyIGZv
Y3VzZWQKK3Rib2R5MiBibHVyZWQKK3RkMmMgZm9jdXNlZAordGQyYyBibHVyZWQKK2RkMmEgZm9j
dXNlZAorZGQyYSBibHVyZWQKK3VsMiBmb2N1c2VkCit1bDIgYmx1cmVkCittZW51MiBmb2N1c2Vk
CittZW51MiBibHVyZWQKK2ltYWdlMiBmb2N1c2VkCitpbWFnZTIgYmx1cmVkCitmaWVsZHNldDIg
Zm9jdXNlZAorZmllbGRzZXQyIGJsdXJlZAorcGFzc3dvcmQyIGZvY3VzZWQKK3Bhc3N3b3JkMiBi
bHVyZWQKK29wdGdyb3VwMiBmb2N1c2VkCitvcHRncm91cDIgYmx1cmVkCit0ZXh0MiBmb2N1c2Vk
Cit0ZXh0MiBibHVyZWQKK3JhZGlvQ2hvaWNlMmEgZm9jdXNlZAorcmFkaW9DaG9pY2UyYSBibHVy
ZWQKK2ZpbGUyIGZvY3VzZWQKK2ZpbGUyIGJsdXJlZAoraW5wdXRJbWFnZTIgZm9jdXNlZAoraW5w
dXRJbWFnZTIgYmx1cmVkCitpbnB1dEJ1dHRvbjIgZm9jdXNlZAoraW5wdXRCdXR0b24yIGJsdXJl
ZAorcmFuZ2UyIGZvY3VzZWQKK3JhbmdlMiBibHVyZWQKK3Jlc2V0MiBmb2N1c2VkCityZXNldDIg
Ymx1cmVkCitkaXYzYSBmb2N1c2VkCitkaXYzYSBibHVyZWQKK2RsMyBmb2N1c2VkCitkbDMgYmx1
cmVkCitkZDNiIGZvY3VzZWQKK2RkM2IgYmx1cmVkCitvcHRpb24zYiBmb2N1c2VkCitvcHRpb24z
YiBibHVyZWQKK2NoZWNrYm94MyBmb2N1c2VkCitjaGVja2JveDMgYmx1cmVkCityYWRpb0Nob2lj
ZTNhIGZvY3VzZWQKK3JhZGlvQ2hvaWNlM2EgYmx1cmVkCitidXR0b24zIGZvY3VzZWQKK2J1dHRv
bjMgYmx1cmVkCitzZWFyY2gzIGZvY3VzZWQKK3NlYXJjaDMgYmx1cmVkCitzdWJtaXQzIGZvY3Vz
ZWQKK3N1Ym1pdDMgYmx1cmVkCitiaWc0IGZvY3VzZWQKK2JpZzQgYmx1cmVkCitkaXY0YyBmb2N1
c2VkCitkaXY0YyBibHVyZWQKK3N1cDQgZm9jdXNlZAorc3VwNCBibHVyZWQKK3ByZTQgZm9jdXNl
ZAorcHJlNCBibHVyZWQKK2R0NGIgZm9jdXNlZAorZHQ0YiBibHVyZWQKK2xpNGEgZm9jdXNlZAor
bGk0YSBibHVyZWQKK2lzaW5kZXg0IGZvY3VzZWQKK2lzaW5kZXg0IGJsdXJlZAorZmlsZTQgZm9j
dXNlZAorZmlsZTQgYmx1cmVkCitocjQgZm9jdXNlZAoraHI0IGJsdXJlZAorZGZuNCBmb2N1c2Vk
CitkZm40IGJsdXJlZAoraDZfNCBmb2N1c2VkCitoNl80IGJsdXJlZAordGFibGU0IGZvY3VzZWQK
K3RhYmxlNCBibHVyZWQKK3Rmb290NCBmb2N1c2VkCit0Zm9vdDQgYmx1cmVkCitsaTRjIGZvY3Vz
ZWQKK2xpNGMgYmx1cmVkCitvcHRpb240YSBmb2N1c2VkCitvcHRpb240YSBibHVyZWQKK2lucHV0
QnV0dG9uNCBmb2N1c2VkCitpbnB1dEJ1dHRvbjQgYmx1cmVkCitkaXY0YiBmb2N1c2VkCitkaXY0
YiBibHVyZWQKK2Jsb2NrcXVvdGU0IGZvY3VzZWQKK2Jsb2NrcXVvdGU0IGJsdXJlZAordmFyNCBm
b2N1c2VkCit2YXI0IGJsdXJlZAoraDJfNCBmb2N1c2VkCitoMl80IGJsdXJlZAorY29sNGIgZm9j
dXNlZAorY29sNGIgYmx1cmVkCit0cjRhIGZvY3VzZWQKK3RyNGEgYmx1cmVkCitpbWc0IGZvY3Vz
ZWQKK2ltZzQgYmx1cmVkCitwYXNzd29yZDQgZm9jdXNlZAorcGFzc3dvcmQ0IGJsdXJlZAorcmVz
ZXQ0IGZvY3VzZWQKK3Jlc2V0NCBibHVyZWQKK2RpdjRhIGZvY3VzZWQKK2RpdjRhIGJsdXJlZAor
YWJicjQgZm9jdXNlZAorYWJicjQgYmx1cmVkCitxNCBmb2N1c2VkCitxNCBibHVyZWQKK21hcnF1
ZWU0IGZvY3VzZWQKK21hcnF1ZWU0IGJsdXJlZAoraTQgZm9jdXNlZAoraTQgYmx1cmVkCitjYW52
YXM0IGZvY3VzZWQKK2NhbnZhczQgYmx1cmVkCitjb2RlNCBmb2N1c2VkCitjb2RlNCBibHVyZWQK
K2NpdGU0IGZvY3VzZWQKK2NpdGU0IGJsdXJlZAoraDNfNCBmb2N1c2VkCitoM180IGJsdXJlZAor
czQgZm9jdXNlZAorczQgYmx1cmVkCit1NCBmb2N1c2VkCit1NCBibHVyZWQKK2ZvbnQ0IGZvY3Vz
ZWQKK2ZvbnQ0IGJsdXJlZAorY2FwdGlvbjQgZm9jdXNlZAorY2FwdGlvbjQgYmx1cmVkCit0aGVh
ZDQgZm9jdXNlZAordGhlYWQ0IGJsdXJlZAordGQ0YSBmb2N1c2VkCit0ZDRhIGJsdXJlZAorZGw0
IGZvY3VzZWQKK2RsNCBibHVyZWQKK2RkNGIgZm9jdXNlZAorZGQ0YiBibHVyZWQKK29sNCBmb2N1
c2VkCitvbDQgYmx1cmVkCitkaXI0IGZvY3VzZWQKK2RpcjQgYmx1cmVkCitkaXY0ZyBmb2N1c2Vk
CitkaXY0ZyBibHVyZWQKK29wdGlvbjRiIGZvY3VzZWQKK29wdGlvbjRiIGJsdXJlZAordGV4dDQg
Zm9jdXNlZAordGV4dDQgYmx1cmVkCitjaGVja2JveDQgZm9jdXNlZAorY2hlY2tib3g0IGJsdXJl
ZAorcmFkaW9DaG9pY2U0YiBmb2N1c2VkCityYWRpb0Nob2ljZTRiIGJsdXJlZAorYnV0dG9uNCBm
b2N1c2VkCitidXR0b240IGJsdXJlZAorc2VhcmNoNCBmb2N1c2VkCitzZWFyY2g0IGJsdXJlZAor
c3VibWl0NCBmb2N1c2VkCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RhYmluZGV4
LWZvY3VzLWJsdXItYWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RhYmluZGV4
LWZvY3VzLWJsdXItYWxsLmpzIj48L3NjcmlwdD4KKworPGZyYW1lc2V0IGNvbHM9IjMzJSwgMzMl
LCAqIiBvbmxvYWQ9InRlc3QoKSI+Cis8ZnJhbWUgc3JjPSJyZXNvdXJjZXMvdGFiaW5kZXgtZm9j
dXMtYmx1ci1hbGwtZnJhbWUxLmh0bWwiLz4KKzxmcmFtZSBzcmM9InJlc291cmNlcy90YWJpbmRl
eC1mb2N1cy1ibHVyLWFsbC1mcmFtZTIuaHRtbCIvPgorPGZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0
bWwsPGRpdiBpZD0ndGhlQ29uc29sZSc+Q29uc29sZTo8L2Rpdj4iLz4KKzwvZnJhbWVzZXQ+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvdGFiaW5kZXgt
Zm9jdXMtYmx1ci1hbGwtZnJhbWUxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLWZyYW1lMS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4
LWZvY3VzLWJsdXItYWxsLWZyYW1lMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4NiBA
QAorPHNjcmlwdD4KK2Z1bmN0aW9uIGRlc2lnbmF0ZUhhbmRsZXJzKGVsZW0pCit7CisgICAgdmFy
IGNoaWxkTm9kZXMgPSBlbGVtLmNoaWxkTm9kZXM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBj
aGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNoaWxkTm9kZXNbaV0uYWRkRXZlbnRM
aXN0ZW5lcignZm9jdXMnLGZ1bmN0aW9uICgpIHsgcGFyZW50LmRvRm9jdXModGhpcykgfSwgZmFs
c2UpOworICAgICAgICBjaGlsZE5vZGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLGZ1bmN0
aW9uICgpIHsgcGFyZW50LmRvQmx1cih0aGlzKSB9LCBmYWxzZSk7CisgICAgICAgIGlmIChjaGls
ZE5vZGVzW2ldLmNoaWxkTm9kZXMubGVuZ3RoICYmIGNoaWxkTm9kZXNbaV0uaWQgIT0iaWZyYW1l
MSIpCisgICAgICAgICAgICBkZXNpZ25hdGVIYW5kbGVycyhjaGlsZE5vZGVzW2ldKTsKKyAgICB9
ICAgICAgIAorfQorPC9zY3JpcHQ+CisKKzxib2R5IGlkPSJmcmFtZTFib2R5IiB0YWJpbmRleD0i
MCIgb25sb2FkPSJkZXNpZ25hdGVIYW5kbGVycyhkb2N1bWVudC5ib2R5KSI+CisKKzwhLS1hbmNo
b3IgdHlwZXMtLT4KKzxhIGhyZWY9ImFQYWdlVGhhdERvZXNudEV4aXN0Lmh0bWwiIHRhYmluZGV4
PSItMSIgaWQ9ImExIj5hbmNob3I8L2E+PGJyPgorPGltZyBzcmMgPSJhYmUucG5nIiB3aWR0aD0i
NzYiIGhlaWdodD0iMTAzIiBhbHQ9ImhvbmVzdCBhYmUiIHVzZW1hcCA9IiN0aGVNYXBOYW1lIiAv
PgorPG1hcCBuYW1lPSJ0aGVNYXBOYW1lIiBpZD0ibWFwMSI+CisgIDxhcmVhIHNoYXBlID0icmVj
dCIgY29vcmRzID0iMCwwLDc2LDUwIiBocmVmPSJhbm90aGVyUGFnZVRoYXREb2VzbnRFeGlzdC5o
dG1sIiB0YXJnZXQgPSJfYmxhbmsiIGFsdD0icmVjdEFyZWExIiB0YWJpbmRleD0iMSIgaWQ9ImFy
ZWExYSIvPgorICA8YXJlYSBzaGFwZSA9InJlY3QiIGNvb3JkcyA9IjAsNTAsNzYsMTAzIiBocmVm
PSJ5ZXRBbm90aGVyUGFnZS5odG1sIiB0YXJnZXQgPSJfYmxhbmsiIGFsdD0icmVjdEFyZWEyIiB0
YWJpbmRleD0iMCIgaWQ9ImFyZWExYiIvPgorPC9tYXA+PGJyPgorCis8IS0tbWVkaWEgZWxlbWVu
dHMtLT4KKzxkaXYgaWQ9ImRpdjFhIiB0YWJpbmRleD0iLTEiPgorPGF1ZGlvIGNvbnRyb2xzIHNy
Yz0iLi4vLi4vLi4vbWVkaWEvY29udGVudC90ZXN0LndhdiIgaWQ9ImF1ZGlvMSI+PC9hdWRpbz48
YnI+Cis8dmlkZW8gY29udHJvbHMgdGFiaW5kZXg9IjIiIGlkPSJ2aWRlbzEiPgorICAgIDxzb3Vy
Y2Ugc3JjPSIuLi8uLi8uLi9tZWRpYS9jb250ZW50L3Rlc3QubXA0IiB0eXBlPSJ2aWRlby9tcGVn
IiBpZD0ic291cmNlMSI+Cis8L3ZpZGVvPjxicj4KKzwvZGl2PgorCis8IS0taW1iZWRkZWQgZWxl
bWVudHMtLT4KK2FwcGxldDo8YnI+Cis8YXBwbGV0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBj
b2RlPSIiIHRhYmluZGV4PSItMSIgaWQ9ImFwcGxldDEiPjwvYXBwbGV0Pjxicj4KK29iamVjdDo8
YnI+Cis8b2JqZWN0IHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBpZD0ib2JqZWN0MSI+PC9vYmplY3Q+PGJyPgorZW1iZWQ6
PGJyPgorPGVtYmVkIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB0YWJpbmRleD0iMyIgaWQ9ImVtYmVkMSI+PC9lbWJlZD48
YnI+CisKKzwhLS1wcmVzZW50YXRpb24tcmVsYXRlZCBlbGVtZW50cy0tPgorPGRpdiBpZD0iZGl2
MWIiIHRhYmluZGV4PSIwIj4KKzxhYmJyIHRpdGxlPSJ0aGUgdG9vbHRpcCIgdGFiaW5kZXg9Ii0x
IiBpZD0iYWJicjEiPmFiYnIgbWFrZXMgYSB0b29sdGlwPC9hYmJyPjxicj4KKzxhY3JvbnltIHRp
dGxlPSJ0aGUgdG9vbHRpcCIgaWQ9ImFjcm9ueW0xIj5hY3JvbnltIG1ha2VzIGEgdG9vbHRpcDwv
YWNyb255bT48YnI+Cis8YmRvIGRpcj0icnRsIiB0YWJpbmRleD0iMyIgaWQ9ImJkbzEiPnRleHQg
Z29pbmcgcmlnaHQtdG8tbGVmdDwvYmRvPjxicj4KK2EgYmxvY2txdW90ZTo8YmxvY2txdW90ZSB0
YWJpbmRleD0iMCIgaWQ9ImJsb2NrcXVvdGUxIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwg
Y29uc2VjdGV0dWVyIGFkaXBpc2NpbmcgZWxpdC4gRHVpcyBldSBuaXNpLiBGdXNjZSBhbGlxdWV0
IG1hc3NhIG5vbiBmZWxpcy4gU2VkIGNvbnNlY3RldHVlci4gSW4gaGFjIGhhYml0YXNzZSBwbGF0
ZWEgZGljdHVtc3QuIE51bmMgdml0YWUgbnVsbGEuIFF1aXNxdWUgdHJpc3RpcXVlIHNvbGxpY2l0
dWRpbiBsaWJlcm8uPC9ibG9ja3F1b3RlPgorYSBzaG9ydCBxdW90ZTo8cSB0YWJpbmRleD0iLTEi
IGlkPSJxMSI+VmVuaSwgVmlkaSwgVmljaTwvcT4KKzxwIGlkPSJwMSI+cGFyYWdyYXBoPC9wPgor
bGluZSBicmVhazo8YnIgdGFiaW5kZXg9IjIiIGlkPSJicjEiPgoraG9yaXpvbnRhbCBydWxlOjxo
ciB0YWJpbmRleD0iMCIgaWQ9ImhyMSI+Cis8bWFycXVlZSB0YWJpbmRleD0iLTEiIGlkPSJtYXJx
dWVlMSI+bWFycXVlZSB0ZXh0PC9tYXJxdWVlPgorPGNlbnRlciBpZD0iY2VudGVyMSI+Y2VudGVy
ZWQgdGV4dDwvY2VudGVyPgorPC9kaXY+CisKKzwhLS1mb250IHN0eWxlIHRhZ3MtLT4KKzxiIHRh
YmluZGV4PSIxIiBpZD0iYjEiPkJvbGQgdGV4dDwvYj48YnI+Cis8YmlnIHRhYmluZGV4PSIwIiBp
ZD0iYmlnMSI+QmlnIHRleHQ8L2JpZz48YnI+Cis8aSB0YWJpbmRleD0iLTEiIGlkPSJpMSI+SXRh
bGljIHRleHQ8L2k+PGJyPgorPHNtYWxsIGlkPSJzbWFsbDEiPlNtYWxsIHRleHQ8L3NtYWxsPjxi
cj4KKzx0dCB0YWJpbmRleD0iMSIgaWQ9InR0MSI+VGVsZXR5cGUgdGV4dDwvdHQ+PGJyPgorCis8
IS0tY2FudmFzIGVsZW1lbnQtLT4KKzxkaXYgaWQ9ImRpdjFjIiB0YWJpbmRleD0iMCI+CitjYW52
YXM6PGJyPgorPGNhbnZhcyB3aWR0aD0nMjAwJyBoZWlnaHQ9JzEwMCcgdGFiaW5kZXg9Ii0xIiBp
ZD0iY2FudmFzMSI+PC9jYW52YXM+PGJyPgorPC9kaXY+CisKKzwhLS1QaHJhc2UgZWxlbWVudHMt
LT4KKzxlbSBpZD0iZW0xIj5lbTwvZW0+PGJyPgorPHN0cm9uZyB0YWJpbmRleD0iMiIgaWQ9InN0
cm9uZzEiPnN0cm9uZzwvc3Ryb25nPjxicj4KKzxkZm4gdGFiaW5kZXg9IjAiIGlkPSJkZm4xIj5k
Zm48L2Rmbj48YnI+Cis8Y29kZSB0YWJpbmRleD0iLTEiIGlkPSJjb2RlMSI+Y29kZTwvY29kZT48
YnI+Cis8c2FtcCBpZD0ic2FtcDEiPnNhbXA8L3NhbXA+PGJyPgorPGtiZCB0YWJpbmRleD0iMyIg
aWQ9ImtiZDEiPmtiZDwva2JkPjxicj4KKzx2YXIgdGFiaW5kZXg9IjAiIGlkPSJ2YXIxIj52YXI8
L3Zhcj48YnI+Cis8Y2l0ZSB0YWJpbmRleD0iLTEiIGlkPSJjaXRlMSI+Y2l0ZTwvY2l0ZT48YnI+
CisKKzwhLS1oZWFkaW5nIHRhZ3MtLT4KKzxkaXYgaWQ9ImRpdjFkIj4KKzxoMSB0YWJpbmRleD0i
MyIgaWQ9ImgxXzEiPkhlYWRpbmcgMTwvaDE+Cis8aDIgdGFiaW5kZXg9IjAiIGlkPSJoMl8xIj5I
ZWFkaW5nIDI8L2gyPgorPGgzIHRhYmluZGV4PSItMSIgaWQ9ImgzXzEiPkhlYWRpbmcgMzwvaDM+
Cis8aDQgaWQ9Img0XzEiPkhlYWRpbmcgNDwvaDQ+Cis8aDUgdGFiaW5kZXg9IjIiIGlkPSJoNV8x
Ij5IZWFkaW5nIDU8L2g1PgorPGg2IHRhYmluZGV4PSIwIiBpZD0iaDZfMSI+SGVhZGluZyA2PC9o
Nj4KKzwvZGl2PgorCis8IS0tb3RoZXIgc3R5bGUtcmVsYXRlZCB0YWdzLS0+Cis8cyB0YWJpbmRl
eD0iLTEiIGlkPSJzMSI+c3RyaWtldGhyb3VnaCAoc1RhZyk8L3M+PGJyPgorPHN0cmlrZSBpZD0i
c3RyaWtlMSI+c3RyaWtldGhyb3VnaCAoc3RyaWtlVGFnKTwvc3RyaWtlPjxicj4KKzxzdWIgdGFi
aW5kZXg9IjEiIGlkPSJzdWIxIj5zdWJzY3JpcHQ8L3N1Yj48YnI+Cis8c3VwIHRhYmluZGV4PSIw
IiBpZD0ic3VwMSI+c3VwZXJzY3JpcHQ8L3N1cD48YnI+Cis8dSB0YWJpbmRleD0iLTEiIGlkPSJ1
MSI+dW5kZXJsaW5lZDwvdT48YnI+Cis8ZGVsIGlkPSJkZWwxIj5kZWxldGU8L2RlbD48YnI+Cis8
aW5zIHRhYmluZGV4PSIxIiBpZD0iaW5zMSI+aW5zZXJ0PC9pbnM+PGJyPgorPHByZSB0YWJpbmRl
eD0iMCIgaWQ9InByZTEiPnByZWZvcm1hdHRlZDwvcHJlPgorYmFzaWMgdXNhZ2Ugb2YgPGZvbnQg
dGFiaW5kZXg9Ii0xIiBpZD0iZm9udDEiPmZvbnQ8L2ZvbnQ+IHRhZzxicj4KK2Jhc2ljIHVzYWdl
IG9mIDxzcGFuIGlkPSJzcGFuMSI+c3Bhbjwvc3Bhbj4gdGFnPGJyPgorCis8IS0tdGFibGVzLS0+
Cis8ZGl2IGlkPSJkaXYxZSIgdGFiaW5kZXg9IjIiPgorPHRhYmxlIGJvcmRlcj0iMSIgdGFiaW5k
ZXg9IjAiIGlkPSJ0YWJsZTEiPgorPGNhcHRpb24gdGFiaW5kZXg9Ii0xIiBpZD0iY2FwdGlvbjEi
PnRhYmxlIGNhcHRpb248L2NhcHRpb24+Cis8Y29sZ3JvdXAgc3Bhbj0iMiIgaWQ9ImNvbGdyb3Vw
MSI+Cis8Y29sIHdpZHRoPSIxMDAiIHRhYmluZGV4PSIzIiBpZD0iY29sMWEiPjwvY29sPgorPGNv
bCB3aWR0aD0iMjUwIiB0YWJpbmRleD0iMCIgaWQ9ImNvbDFiIj48L2NvbD4KKzwvY29sZ3JvdXA+
Cis8dGhlYWQgdGFiaW5kZXg9Ii0xIiBpZD0idGhlYWQxIj48dHI+PHRoIGlkPSJ0aDEiPgordGFi
bGUgaGVhZGVyCis8L3RoPjwvdHI+PC90aGVhZD48dGJvZHkgdGFiaW5kZXg9IjMiIGlkPSJ0Ym9k
eTEiPgorPHRyIHRhYmluZGV4PSIwIiBpZD0idHIxIj4KKzx0ZCB0YWJpbmRleD0iLTEiIGlkPSJ0
ZDFhIj50YWJsZSBjZWxsIDE8L3RkPgorPHRkIGlkPSJ0ZDFiIj50YWJsZSBjZWxsIDI8L3RkPgor
PHRkIHRhYmluZGV4PSIyIiBpZD0idGQxYyI+dGFibGUgY2VsbCAzPC90ZD4KKzwvdHI+PC90Ym9k
eT4KKzx0Zm9vdCB0YWJpbmRleD0iMCIgaWQ9InRmb290MSI+PHRyPjx0ZD4KK3RhYmxlIGZvb3Rl
cgorPC90ZD48L3RyPjwvdGZvb3Q+Cis8L3RhYmxlPgorPC9kaXY+CisKKzwhLS1kZWZpbml0aW9u
IGxpc3QtLT4KKzxkbCB0YWJpbmRleD0iLTEiIGlkPSJkbDEiPmRlZmluaXRpb24gbGlzdAorPGR0
IGlkPSJkdDFhIj50ZXJtMTwvZHQ+Cis8ZGQgdGFiaW5kZXg9IjEiIGlkPSJkZDFhIj5kZWZpbml0
aW9uMTwvZGQ+Cis8ZHQgdGFiaW5kZXg9IjAiIGlkPSJkdDFiIj50ZXJtMjwvZHQ+Cis8ZGQgdGFi
aW5kZXg9Ii0xIiBpZD0iZGQxYiI+ZGVmaW5pdGlvbjI8L2RkPgorPC9kbD4KKyAgICAKKzwhLS1s
aXN0cyAtLT4KKzxkaXYgaWQ9ImRpdjFmIj4KKzx1bCB0YWJpbmRleD0iMSIgaWQ9InVsMSI+dW5v
cmRlcmVkIGxpc3QKKzxsaSB0YWJpbmRleD0iMCIgaWQ9ImxpMWEiPiB1bCBsaQorPC91bD4KKzxv
bCB0YWJpbmRleD0iLTEiIGlkPSJvbDEiPm9yZGVyZWQgbGlzdAorPGxpIGlkPSJsaTFiIj4gb2wg
bGkKKzwvb2w+Cis8bWVudSB0YWJpbmRleD0iMiIgaWQ9Im1lbnUxIj5tZW51IGxpc3QKKzxsaSB0
YWJpbmRleD0iMCIgaWQ9ImxpMWMiPiBtZW51IGxpCis8L21lbnU+Cis8ZGlyIHRhYmluZGV4PSIt
MSIgaWQ9ImRpcjEiPmRpcmVjdG9yeSBsaXN0Cis8bGkgaWQ9ImxpMWQiPiBkaXIgbGkKKzwvZGly
PgorPC9kaXY+CisKKzwhLS1pbWFnZXMtLT4KKzxpbWFnZSBzcmM9ImFiZS5wbmciIHRhYmluZGV4
PSIzIiBpZD0iaW1hZ2UxIj48YnI+Cis8aW1nIHNyYz0iYWJlLnBuZyIgdGFiaW5kZXg9IjAiIGlk
PSJpbWcxIj48YnI+CisKKzwhLS1mb3Jtcy0tPgorPGRpdiBpZD0iZGl2MWciIHRhYmluZGV4PSIt
MSI+Cis8Zm9ybSBpZD0iZm9ybTEiPgorPGZpZWxkc2V0IHRhYmluZGV4PSIzIiBpZD0iZmllbGRz
ZXQxIj4KKyAgICA8bGVnZW5kIGlkPSJsZWdlbmQxIiB0YWJpbmRleD0iMCI+bGVnZW5kMTwvbGVn
ZW5kPgorICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBhc3N3b3JkMSIgdGFiaW5kZXg9
Ii0xIj4KKzwvZmllbGRzZXQ+Cis8c2VsZWN0IGlkPSJzZWxlY3QxIj4KKyAgICA8b3B0Z3JvdXAg
bGFiZWw9Imdyb3VwMSIgdGFiaW5kZXg9IjIiIGlkPSJvcHRncm91cDEiPgorICAgICAgICA8b3B0
aW9uIHRhYmluZGV4PSIwIiBpZD0ib3B0aW9uMWEiPm9wdGlvbjE8L29wdGlvbj4KKyAgICAgICAg
PG9wdGlvbj5vcHRpb24yPC9vcHRpb24+CisgICAgPC9vcHRncm91cD4KKyAgICA8b3B0Z3JvdXAg
bGFiZWw9Imdyb3VwMiI+CisgICAgICAgIDxvcHRpb24+b3B0aW9uMzwvb3B0aW9uPgorICAgICAg
ICA8b3B0aW9uIHRhYmluZGV4PSItMSIgaWQ9Im9wdGlvbjFiIj5vcHRpb240PC9vcHRpb24+Cisg
ICAgPC9vcHRncm91cD4KKzwvc2VsZWN0Pjxicj4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj50
ZXh0YXJlYTE8L3RleHRhcmVhPjxicj4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dDEiIHZh
bHVlPSJ0ZXh0MSIgdGFiaW5kZXg9IjEiPjxicj4KKzxpc2luZGV4IGlkPSJpc2luZGV4MSIgcHJv
bXB0PSJpc2luZGV4MSIgdGFiaW5kZXg9IjAiLz48YnI+Cis8bGFiZWwgaWQ9ImxhYmVsMWEiIGZv
cj0iY2hlY2tib3gxIiB0YWJpbmRleD0iLTEiPmxhYmVsIGZvciBjaGVja2JveDwvbGFiZWw+PGlu
cHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY2hlY2tib3gxIj48YnI+Cis8bGFiZWwgaWQ9ImxhYmVs
MWIiIGZvcj0icmFkaW9DaG9pY2UxYSIgdGFiaW5kZXg9IjEiPmxhYmVsIGZvciByYWRpb0Nob2lj
ZSBBPC9sYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJyYWRpb0Nob2ljZTFhIiBuYW1lPSJy
YWRpbzEiIHRhYmluZGV4PSIwIj48YnI+Cis8bGFiZWwgaWQ9ImxhYmVsMWMiIGZvcj0icmFkaW9D
aG9pY2UxYiIgdGFiaW5kZXg9Ii0xIj5sYWJlbCBmb3IgcmFkaW9DaG9pY2UgQjwvbGFiZWw+PGlu
cHV0IHR5cGU9InJhZGlvIiBpZD0icmFkaW9DaG9pY2UxYiIgbmFtZT0icmFkaW8xIj48YnI+Cis8
aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUxIiB0YWJpbmRleD0iMiI+PGJyPgoraW5wdXQgdHlw
ZT0iaGlkZGVuIjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW4xIiB0YWJpbmRleD0iLTEi
Pjxicj4KK2lucHV0IHR5cGU9ImltYWdlIjxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImlucHV0SW1h
Z2UxIiBzcmM9ImFiZS5wbmciIHRhYmluZGV4PSIzIj48YnI+Cis8YnV0dG9uIGlkPSJidXR0b24x
IiB0YWJpbmRleD0iMCI+YnV0dG9uMTwvYnV0dG9uPjxicj4KKzxpbnB1dCB0eXBlPSJidXR0b24i
IGlkPSJpbnB1dEJ1dHRvbjEiIHZhbHVlPSJpbnB1dEJ1dHRvbjEiIHRhYmluZGV4PSItMSI+PGJy
PgorPGlucHV0IHR5cGU9InNlYXJjaCIgaWQ9InNlYXJjaDEiIHBsYWNlaG9sZGVyPSJzZWFyY2gx
Ij48YnI+Cis8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJyYW5nZTEiIHRhYmluZGV4PSIzIj48YnI+
Cis8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0MSIgdGFiaW5kZXg9IjAiPgorPGlucHV0
IHR5cGU9InJlc2V0IiBpZD0icmVzZXQxIiB0YWJpbmRleD0iLTEiPjxicj4KKzwvZm9ybT4KKzwv
ZGl2PgorCis8aWZyYW1lIHdpZHRoPSIxMDAlIiBoZWlnaHQ9Ijc1JSIgc3JjPSJ0YWJpbmRleC1m
b2N1cy1ibHVyLWFsbC1pZnJhbWUxLmh0bWwiIGlkPSJpZnJhbWUxIj4KKworPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXIt
YWxsLWZyYW1lMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jl
c291cmNlcy90YWJpbmRleC1mb2N1cy1ibHVyLWFsbC1mcmFtZTIuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy90YWJpbmRleC1mb2N1cy1ibHVy
LWFsbC1mcmFtZTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxODYgQEAKKzxzY3JpcHQ+
CitmdW5jdGlvbiBkZXNpZ25hdGVIYW5kbGVycyhlbGVtKQoreworICAgIHZhciBjaGlsZE5vZGVz
ID0gZWxlbS5jaGlsZE5vZGVzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGROb2Rlcy5s
ZW5ndGg7IGkrKykgeworICAgICAgICBjaGlsZE5vZGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2Zv
Y3VzJyxmdW5jdGlvbiAoKSB7IHBhcmVudC5kb0ZvY3VzKHRoaXMpIH0sIGZhbHNlKTsKKyAgICAg
ICAgY2hpbGROb2Rlc1tpXS5hZGRFdmVudExpc3RlbmVyKCdibHVyJyxmdW5jdGlvbiAoKSB7IHBh
cmVudC5kb0JsdXIodGhpcykgfSwgZmFsc2UpOworICAgICAgICBpZiAoY2hpbGROb2Rlc1tpXS5j
aGlsZE5vZGVzLmxlbmd0aCAmJiBjaGlsZE5vZGVzW2ldLmlkICE9ImlmcmFtZTIiKQorICAgICAg
ICAgICAgZGVzaWduYXRlSGFuZGxlcnMoY2hpbGROb2Rlc1tpXSk7CisgICAgfSAgICAgICAKK30K
Kzwvc2NyaXB0PgorCis8Ym9keSBpZD0iZnJhbWUyYm9keSIgb25sb2FkPSJkZXNpZ25hdGVIYW5k
bGVycyhkb2N1bWVudC5ib2R5KSI+CisKKzwhLS1hbmNob3IgdHlwZXMtLT4KKzxhIGhyZWY9ImFQ
YWdlVGhhdERvZXNudEV4aXN0Lmh0bWwiIHRhYmluZGV4PSIxIiBpZD0iYTMiPmFuY2hvcjwvYT48
YnI+Cis8aW1nIHNyYyA9ImFiZS5wbmciIHdpZHRoPSI3NiIgaGVpZ2h0PSIxMDMiIGFsdD0iaG9u
ZXN0IGFiZSIgdXNlbWFwID0iI3RoZU1hcE5hbWUiIC8+Cis8bWFwIG5hbWU9InRoZU1hcE5hbWUi
IHRhYmluZGV4PSIwIiBpZD0ibWFwMyI+CisgIDxhcmVhIHNoYXBlID0icmVjdCIgY29vcmRzID0i
MCwwLDc2LDUwIiBocmVmPSJhbm90aGVyUGFnZVRoYXREb2VzbnRFeGlzdC5odG1sIiB0YXJnZXQg
PSJfYmxhbmsiIGFsdD0icmVjdEFyZWExIiB0YWJpbmRleD0iLTEiIGlkPSJhcmVhM2EiLz4KKyAg
PGFyZWEgc2hhcGUgPSJyZWN0IiBjb29yZHMgPSIwLDUwLDc2LDEwMyIgaHJlZj0ieWV0QW5vdGhl
clBhZ2UuaHRtbCIgdGFyZ2V0ID0iX2JsYW5rIiBhbHQ9InJlY3RBcmVhMyIgaWQ9ImFyZWEzYiIv
PgorPC9tYXA+PGJyPgorCis8IS0tbWVkaWEgZWxlbWVudHMtLT4KKzxkaXYgaWQ9ImRpdjNhIiB0
YWJpbmRleD0iMSI+Cis8YXVkaW8gY29udHJvbHMgc3JjPSIuLi8uLi8uLi9tZWRpYS9jb250ZW50
L3Rlc3Qud2F2IiB0YWJpbmRleD0iMCIgaWQ9ImF1ZGlvMyI+PC9hdWRpbz48YnI+Cis8dmlkZW8g
Y29udHJvbHMgdGFiaW5kZXg9Ii0xIiBpZD0idmlkZW8zIj4KKyAgICA8c291cmNlIHNyYz0iLi4v
Li4vLi4vbWVkaWEvY29udGVudC90ZXN0Lm1wNCIgdHlwZT0idmlkZW8vbXBlZyIgaWQ9InNvdXJj
ZTMiPgorPC92aWRlbz48YnI+Cis8L2Rpdj4KKworPCEtLWltYmVkZGVkIGVsZW1lbnRzLS0+Cith
cHBsZXQ6PGJyPgorPGFwcGxldCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgY29kZT0iIiB0YWJp
bmRleD0iMiIgaWQ9ImFwcGxldDMiPjwvYXBwbGV0Pjxicj4KK29iamVjdDo8YnI+Cis8b2JqZWN0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIiB0YWJpbmRleD0iMCIgaWQ9Im9iamVjdDMiPjwvb2JqZWN0Pjxicj4KK2VtYmVk
Ojxicj4KKzxlbWJlZCB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdGFiaW5kZXg9Ii0xIiBpZD0iZW1iZWQzIj48L2VtYmVk
Pjxicj4KKworPCEtLXByZXNlbnRhdGlvbi1yZWxhdGVkIGVsZW1lbnRzLS0+Cis8ZGl2IGlkPSJk
aXYzYiI+Cis8YWJiciB0aXRsZT0idGhlIHRvb2x0aXAiIHRhYmluZGV4PSIzIiBpZD0iYWJicjMi
PmFiYnIgbWFrZXMgYSB0b29sdGlwPC9hYmJyPjxicj4KKzxhY3JvbnltIHRpdGxlPSJ0aGUgdG9v
bHRpcCIgdGFiaW5kZXg9IjAiIGlkPSJhY3JvbnltMyI+YWNyb255bSBtYWtlcyBhIHRvb2x0aXA8
L2Fjcm9ueW0+PGJyPgorPGJkbyBkaXI9InJ0bCIgdGFiaW5kZXg9Ii0xIiBpZD0iYmRvMyI+dGV4
dCBnb2luZyByaWdodC10by1sZWZ0PC9iZG8+PGJyPgorYSBibG9ja3F1b3RlOjxibG9ja3F1b3Rl
IGlkPSJibG9ja3F1b3RlMyI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVl
ciBhZGlwaXNjaW5nIGVsaXQuIER1aXMgZXUgbmlzaS4gRnVzY2UgYWxpcXVldCBtYXNzYSBub24g
ZmVsaXMuIFNlZCBjb25zZWN0ZXR1ZXIuIEluIGhhYyBoYWJpdGFzc2UgcGxhdGVhIGRpY3R1bXN0
LiBOdW5jIHZpdGFlIG51bGxhLiBRdWlzcXVlIHRyaXN0aXF1ZSBzb2xsaWNpdHVkaW4gbGliZXJv
LjwvYmxvY2txdW90ZT4KK2Egc2hvcnQgcXVvdGU6PHEgdGFiaW5kZXg9IjMiIGlkPSJxMyI+VmVu
aSwgVmlkaSwgVmljaTwvcT4KKzxwIHRhYmluZGV4PSIwIiBpZD0icDMiPnBhcmFncmFwaDwvcD4K
K2xpbmUgYnJlYWs6PGJyIHRhYmluZGV4PSItMSIgaWQ9ImJyMyI+Citob3Jpem9udGFsIHJ1bGU6
PGhyIGlkPSJocjMiPgorPG1hcnF1ZWUgdGFiaW5kZXg9IjIiIGlkPSJtYXJxdWVlMyI+bWFycXVl
ZSB0ZXh0PC9tYXJxdWVlPgorPGNlbnRlciB0YWJpbmRleD0iMCIgaWQ9ImNlbnRlcjMiPmNlbnRl
cmVkIHRleHQ8L2NlbnRlcj4KKzwvZGl2PgorCis8IS0tZm9udCBzdHlsZSB0YWdzLS0+Cis8YiB0
YWJpbmRleD0iLTEiIGlkPSJiMyI+Qm9sZCB0ZXh0PC9iPjxicj4KKzxiaWcgaWQ9ImJpZzMiPkJp
ZyB0ZXh0PC9iaWc+PGJyPgorPGkgdGFiaW5kZXg9IjIiIGlkPSJpMyI+SXRhbGljIHRleHQ8L2k+
PGJyPgorPHNtYWxsIHRhYmluZGV4PSIwIiBpZD0ic21hbGwzIj5TbWFsbCB0ZXh0PC9zbWFsbD48
YnI+Cis8dHQgdGFiaW5kZXg9Ii0xIiBpZD0idHQzIj5UZWxldHlwZSB0ZXh0PC90dD48YnI+CisK
KzwhLS1jYW52YXMgZWxlbWVudC0tPgorPGRpdiBpZD0iZGl2M2MiPgorY2FudmFzOjxicj4KKzxj
YW52YXMgd2lkdGg9JzIwMCcgaGVpZ2h0PScxMDAnIHRhYmluZGV4PSIzIiBpZD0iY2FudmFzMyI+
PC9jYW52YXM+PGJyPgorPC9kaXY+CisKKzwhLS1QaHJhc2UgZWxlbWVudHMtLT4KKzxlbSB0YWJp
bmRleD0iMCIgaWQ9ImVtMyI+ZW08L2VtPjxicj4KKzxzdHJvbmcgdGFiaW5kZXg9Ii0xIiBpZD0i
c3Ryb25nMyI+c3Ryb25nPC9zdHJvbmc+PGJyPgorPGRmbiBpZD0iZGZuMyI+ZGZuPC9kZm4+PGJy
PgorPGNvZGUgdGFiaW5kZXg9IjIiIGlkPSJjb2RlMyI+Y29kZTwvY29kZT48YnI+Cis8c2FtcCB0
YWJpbmRleD0iMCIgaWQ9InNhbXAzIj5zYW1wPC9zYW1wPjxicj4KKzxrYmQgdGFiaW5kZXg9Ii0x
IiBpZD0ia2JkMyI+a2JkPC9rYmQ+PGJyPgorPHZhciBpZD0idmFyMyI+dmFyPC92YXI+PGJyPgor
PGNpdGUgdGFiaW5kZXg9IjMiIGlkPSJjaXRlMyI+Y2l0ZTwvY2l0ZT48YnI+CisKKzwhLS1oZWFk
aW5nIHRhZ3MtLT4KKzxkaXYgaWQ9ImRpdjNkIiB0YWJpbmRleD0iMCI+Cis8aDEgdGFiaW5kZXg9
Ii0xIiBpZD0iaDFfMyI+SGVhZGluZyAxPC9oMT4KKzxoMiBpZD0iaDJfMyI+SGVhZGluZyAyPC9o
Mj4KKzxoMyB0YWJpbmRleD0iMyIgaWQ9ImgzXzMiPkhlYWRpbmcgMzwvaDM+Cis8aDQgdGFiaW5k
ZXg9IjAiIGlkPSJoNF8zIj5IZWFkaW5nIDQ8L2g0PgorPGg1IHRhYmluZGV4PSItMSIgaWQ9Img1
XzMiPkhlYWRpbmcgNTwvaDU+Cis8aDYgaWQ9Img2XzMiPkhlYWRpbmcgNjwvaDY+Cis8L2Rpdj4K
KworPCEtLW90aGVyIHN0eWxlLXJlbGF0ZWQgdGFncy0tPgorPHMgdGFiaW5kZXg9IjIiIGlkPSJz
MyI+c3RyaWtldGhyb3VnaCAoc1RhZyk8L3M+PGJyPgorPHN0cmlrZSB0YWJpbmRleD0iMCIgaWQ9
InN0cmlrZTMiPnN0cmlrZXRocm91Z2ggKHN0cmlrZVRhZyk8L3N0cmlrZT48YnI+Cis8c3ViIHRh
YmluZGV4PSItMSIgaWQ9InN1YjMiPnN1YnNjcmlwdDwvc3ViPjxicj4KKzxzdXAgaWQ9InN1cDMi
PnN1cGVyc2NyaXB0PC9zdXA+PGJyPgorPHUgdGFiaW5kZXg9IjMiIGlkPSJ1MyI+dW5kZXJsaW5l
ZDwvdT48YnI+Cis8ZGVsIHRhYmluZGV4PSIwIiBpZD0iZGVsMyI+ZGVsZXRlPC9kZWw+PGJyPgor
PGlucyB0YWJpbmRleD0iLTEiIGlkPSJpbnMzIj5pbnNlcnQ8L2lucz48YnI+Cis8cHJlIGlkPSJw
cmUzIj5wcmVmb3JtYXR0ZWQ8L3ByZT4KK2Jhc2ljIHVzYWdlIG9mIDxmb250IHRhYmluZGV4PSIy
IiBpZD0iZm9udDMiPmZvbnQ8L2ZvbnQ+IHRhZzxicj4KK2Jhc2ljIHVzYWdlIG9mIDxzcGFuIHRh
YmluZGV4PSIwIiBpZD0ic3BhbjMiPnNwYW48L3NwYW4+IHRhZzxicj4KKworPCEtLXRhYmxlcy0t
PgorPGRpdiBpZD0iZGl2M2UiIHRhYmluZGV4PSIyIj4KKzx0YWJsZSBib3JkZXI9IjEiIGlkPSJ0
YWJsZTMiPgorPGNhcHRpb24gdGFiaW5kZXg9IjMiIGlkPSJjYXB0aW9uMyI+dGFibGUgY2FwdGlv
bjwvY2FwdGlvbj4KKzxjb2xncm91cCBzcGFuPSIzIiB0YWJpbmRleD0iMCIgaWQ9ImNvbGdyb3Vw
MyI+Cis8Y29sIHdpZHRoPSIxMDAiIHRhYmluZGV4PSItMSIgaWQ9ImNvbDNhIj48L2NvbD4KKzxj
b2wgd2lkdGg9IjI1MCIgaWQ9ImNvbDNiIj48L2NvbD4KKzwvY29sZ3JvdXA+Cis8dGhlYWQgdGFi
aW5kZXg9IjMiIGlkPSJ0aGVhZDMiPjx0cj48dGggdGFiaW5kZXg9IjAiIGlkPSJ0aDMiPgordGFi
bGUgaGVhZGVyCis8L3RoPjwvdHI+PC90aGVhZD48dGJvZHkgdGFiaW5kZXg9Ii0xIiBpZD0idGJv
ZHkzIj4KKzx0ciBpZD0idHIzIj4KKzx0ZCB0YWJpbmRleD0iMiIgaWQ9InRkM2EiPnRhYmxlIGNl
bGwgMTwvdGQ+Cis8dGQgdGFiaW5kZXg9IjAiIGlkPSJ0ZDNiIj50YWJsZSBjZWxsIDI8L3RkPgor
PHRkIHRhYmluZGV4PSItMSIgaWQ9InRkM2MiPnRhYmxlIGNlbGwgMzwvdGQ+Cis8L3RyPjwvdGJv
ZHk+Cis8dGZvb3QgaWQ9InRmb290MyI+PHRyPjx0ZD4KK3RhYmxlIGZvb3RlcgorPC90ZD48L3Ry
PjwvdGZvb3Q+Cis8L3RhYmxlPgorPC9kaXY+CisKKzwhLS1kZWZpbml0aW9uIGxpc3QtLT4KKzxk
bCB0YWJpbmRleD0iMSIgaWQ9ImRsMyI+ZGVmaW5pdGlvbiBsaXN0Cis8ZHQgdGFiaW5kZXg9IjAi
IGlkPSJkdDNhIj50ZXJtMTwvZHQ+Cis8ZGQgdGFiaW5kZXg9Ii0xIiBpZD0iZGQzYSI+ZGVmaW5p
dGlvbjE8L2RkPgorPGR0IGlkPSJkdDNiIj50ZXJtMjwvZHQ+Cis8ZGQgdGFiaW5kZXg9IjEiIGlk
PSJkZDNiIj5kZWZpbml0aW9uMjwvZGQ+Cis8L2RsPgorICAgIAorPCEtLWxpc3RzIC0tPgorPGRp
diBpZD0iZGl2M2YiIHRhYmluZGV4PSIwIj4KKzx1bCB0YWJpbmRleD0iLTEiIGlkPSJ1bDMiPnVu
b3JkZXJlZCBsaXN0Cis8bGkgaWQ9ImxpM2EiPiB1bCBsaQorPC91bD4KKzxvbCB0YWJpbmRleD0i
MiIgaWQ9Im9sMyI+b3JkZXJlZCBsaXN0Cis8bGkgdGFiaW5kZXg9IjAiIGlkPSJsaTNiIj4gb2wg
bGkKKzwvb2w+Cis8bWVudSB0YWJpbmRleD0iLTEiIGlkPSJtZW51MyI+bWVudSBsaXN0Cis8bGkg
aWQ9ImxpM2MiPiBtZW51IGxpCis8L21lbnU+Cis8ZGlyIHRhYmluZGV4PSIzIiBpZD0iZGlyMyI+
ZGlyZWN0b3J5IGxpc3QKKzxsaSB0YWJpbmRleD0iMCIgaWQ9ImxpM2QiPiBkaXIgbGkKKzwvZGly
PgorPC9kaXY+CisKKzwhLS1pbWFnZXMtLT4KKzxpbWFnZSBzcmM9ImFiZS5wbmciIHRhYmluZGV4
PSItMSIgaWQ9ImltYWdlMyI+PGJyPgorPGltZyBzcmM9ImFiZS5wbmciIGlkPSJpbWczIj48YnI+
CisKKzwhLS1mb3Jtcy0tPgorPGRpdiBpZD0iZGl2M2ciIHRhYmluZGV4PSIzIj4KKzxmb3JtIHRh
YmluZGV4PSIwIiBpZD0iZm9ybTMiPgorPGZpZWxkc2V0IHRhYmluZGV4PSItMSIgaWQ9ImZpZWxk
c2V0MyI+CisgICAgPGxlZ2VuZCBpZD0ibGVnZW5kMyI+bGVnZW5kMTwvbGVnZW5kPgorICAgIDxp
bnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBhc3N3b3JkMyIgdGFiaW5kZXg9IjIiPgorPC9maWVs
ZHNldD4KKzxzZWxlY3QgaWQ9InNlbGVjdDMiIHRhYmluZGV4PSIwIj4KKyAgICA8b3B0Z3JvdXAg
bGFiZWw9Imdyb3VwMSIgdGFiaW5kZXg9Ii0xIiBpZD0ib3B0Z3JvdXAzIj4KKyAgICAgICAgPG9w
dGlvbiBpZD0ib3B0aW9uM2EiPm9wdGlvbjE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5vcHRp
b24yPC9vcHRpb24+CisgICAgPC9vcHRncm91cD4KKyAgICA8b3B0Z3JvdXAgbGFiZWw9Imdyb3Vw
MyI+CisgICAgICAgIDxvcHRpb24+b3B0aW9uMzwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uIHRh
YmluZGV4PSIxIiBpZD0ib3B0aW9uM2IiPm9wdGlvbjQ8L29wdGlvbj4KKyAgICA8L29wdGdyb3Vw
PgorPC9zZWxlY3Q+PGJyPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTMiIHRhYmluZGV4PSIwIj50
ZXh0YXJlYTwvdGV4dGFyZWE+PGJyPgorPGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZXh0MyIgdmFs
dWU9InRleHQiIHRhYmluZGV4PSItMSI+PGJyPgorPGlzaW5kZXggaWQ9ImlzaW5kZXgzIiBwcm9t
cHQ9ImlzaW5kZXgiLz48YnI+Cis8bGFiZWwgaWQ9ImxhYmVsM2EiIGZvcj0iY2hlY2tib3gzIiB0
YWJpbmRleD0iMSI+bGFiZWwgZm9yIGNoZWNrYm94PC9sYWJlbD48aW5wdXQgdHlwZT0iY2hlY2ti
b3giIGlkPSJjaGVja2JveDMiIHRhYmluZGV4PSIwIj48YnI+Cis8bGFiZWwgaWQ9ImxhYmVsM2Ii
IGZvcj0icmFkaW9DaG9pY2UzYSIgdGFiaW5kZXg9Ii0xIj5sYWJlbCBmb3IgcmFkaW9DaG9pY2Ug
QTwvbGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBpZD0icmFkaW9DaG9pY2UzYSIgbmFtZT0icmFk
aW8zIj48YnI+Cis8bGFiZWwgaWQ9ImxhYmVsM2MiIGZvcj0icmFkaW9DaG9pY2UzYiIgdGFiaW5k
ZXg9IjIiPmxhYmVsIGZvciByYWRpb0Nob2ljZSBCPC9sYWJlbD48aW5wdXQgdHlwZT0icmFkaW8i
IGlkPSJyYWRpb0Nob2ljZTNiIiBuYW1lPSJyYWRpbzMiIHRhYmluZGV4PSIwIj48YnI+Cis8aW5w
dXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUzIiB0YWJpbmRleD0iLTEiPjxicj4KK2lucHV0IHR5cGU9
ImhpZGRlbiI8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGlkZGVuMyIgdGFiaW5kZXg9IjMiPjxi
cj4KK2lucHV0IHR5cGU9ImltYWdlIjxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImlucHV0SW1hZ2Uz
IiBzcmM9ImFiZS5wbmciIHRhYmluZGV4PSItMSI+PGJyPgorPGJ1dHRvbiBpZD0iYnV0dG9uMyI+
YnV0dG9uPC9idXR0b24+PGJyPgorPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImlucHV0QnV0dG9u
MyIgdmFsdWU9ImlucHV0QnV0dG9uIiB0YWJpbmRleD0iMyI+PGJyPgorPGlucHV0IHR5cGU9InNl
YXJjaCIgaWQ9InNlYXJjaDMiIHBsYWNlaG9sZGVyPSJzZWFyY2giIHRhYmluZGV4PSIwIj48YnI+
Cis8aW5wdXQgdHlwZT0icmFuZ2UiIGlkPSJyYW5nZTMiIHRhYmluZGV4PSItMSI+PGJyPgorPGlu
cHV0IHR5cGU9InN1Ym1pdCIgaWQ9InN1Ym1pdDMiPgorPGlucHV0IHR5cGU9InJlc2V0IiBpZD0i
cmVzZXQzIiB0YWJpbmRleD0iMiI+PGJyPgorPC9mb3JtPgorPC9kaXY+CisKKzxpZnJhbWUgd2lk
dGg9IjEwMCUiIGhlaWdodD0iNzUlIiBzcmM9InRhYmluZGV4LWZvY3VzLWJsdXItYWxsLWlmcmFt
ZTIuaHRtbCIgdGFiaW5kZXg9IjAiIGlkPSJpZnJhbWUyIj4KKworPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxsLWlm
cmFtZTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJj
ZXMvdGFiaW5kZXgtZm9jdXMtYmx1ci1hbGwtaWZyYW1lMS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmluZGV4LWZvY3VzLWJsdXItYWxs
LWlmcmFtZTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxODQgQEAKKzxzY3JpcHQ+Citm
dW5jdGlvbiBkZXNpZ25hdGVIYW5kbGVycyhlbGVtKQoreworICAgIHZhciBjaGlsZE5vZGVzID0g
ZWxlbS5jaGlsZE5vZGVzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGROb2Rlcy5sZW5n
dGg7IGkrKykgeworICAgICAgICBjaGlsZE5vZGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3Vz
JyxmdW5jdGlvbiAoKSB7IHBhcmVudC5wYXJlbnQuZG9Gb2N1cyh0aGlzKSB9LCBmYWxzZSk7Cisg
ICAgICAgIGNoaWxkTm9kZXNbaV0uYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsZnVuY3Rpb24gKCkg
eyBwYXJlbnQucGFyZW50LmRvQmx1cih0aGlzKSB9LCBmYWxzZSk7CisgICAgICAgIGlmIChjaGls
ZE5vZGVzW2ldLmNoaWxkTm9kZXMubGVuZ3RoKQorICAgICAgICAgICAgZGVzaWduYXRlSGFuZGxl
cnMoY2hpbGROb2Rlc1tpXSk7CisgICAgfSAgICAgICAKK30KKzwvc2NyaXB0PgorCis8Ym9keSBp
ZD0iaWZyYW1lMWJvZHkiIHRhYmluZGV4PSItMSIgb25sb2FkPSJkZXNpZ25hdGVIYW5kbGVycyhk
b2N1bWVudC5ib2R5KSI+CisKKzwhLS1hbmNob3IgdHlwZXMtLT4KKzxhIGhyZWY9ImFQYWdlVGhh
dERvZXNudEV4aXN0Lmh0bWwiIGlkPSJhMiI+YW5jaG9yPC9hPjxicj4KKzxpbWcgc3JjID0iYWJl
LnBuZyIgd2lkdGg9Ijc2IiBoZWlnaHQ9IjEwMyIgYWx0PSJob25lc3QgYWJlIiB1c2VtYXAgPSIj
dGhlTWFwTmFtZSIgLz4KKzxtYXAgbmFtZT0idGhlTWFwTmFtZSIgdGFiaW5kZXg9IjIiIGlkPSJt
YXAyIj4KKyAgPGFyZWEgc2hhcGUgPSJyZWN0IiBjb29yZHMgPSIwLDAsNzYsNTAiIGhyZWY9ImFu
b3RoZXJQYWdlVGhhdERvZXNudEV4aXN0Lmh0bWwiIHRhcmdldCA9Il9ibGFuayIgYWx0PSJyZWN0
QXJlYTEiIHRhYmluZGV4PSIwIiBpZD0iYXJlYTJhIi8+CisgIDxhcmVhIHNoYXBlID0icmVjdCIg
Y29vcmRzID0iMCw1MCw3NiwxMDMiIGhyZWY9InlldEFub3RoZXJQYWdlLmh0bWwiIHRhcmdldCA9
Il9ibGFuayIgYWx0PSJyZWN0QXJlYTIiIHRhYmluZGV4PSItMSIgaWQ9ImFyZWEyYiIvPgorPC9t
YXA+PGJyPgorCis8IS0tbWVkaWEgZWxlbWVudHMtLT4KKzxkaXYgaWQ9ImRpdjJhIj4KKzxhdWRp
byBjb250cm9scyBzcmM9Ii4uLy4uLy4uL21lZGlhL2NvbnRlbnQvdGVzdC53YXYiIHRhYmluZGV4
PSIzIiBpZD0iYXVkaW8yIj48L2F1ZGlvPjxicj4KKzx2aWRlbyBjb250cm9scyB0YWJpbmRleD0i
MCIgaWQ9InZpZGVvMiI+CisgICAgPHNvdXJjZSBzcmM9Ii4uLy4uLy4uL21lZGlhL2NvbnRlbnQv
dGVzdC5tcDQiIHR5cGU9InZpZGVvL21wZWciIGlkPSJzb3VyY2UyIj4KKzwvdmlkZW8+PGJyPgor
PC9kaXY+CisKKzwhLS1pbWJlZGRlZCBlbGVtZW50cy0tPgorYXBwbGV0Ojxicj4KKzxhcHBsZXQg
d2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGNvZGU9IiIgaWQ9ImFwcGxldDIiPjwvYXBwbGV0Pjxi
cj4KK29iamVjdDo8YnI+Cis8b2JqZWN0IHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qt
bmV0c2NhcGUiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB0YWJpbmRleD0iMyIgaWQ9Im9iamVj
dDIiPjwvb2JqZWN0Pjxicj4KK2VtYmVkOjxicj4KKzxlbWJlZCB0eXBlPSJhcHBsaWNhdGlvbi94
LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgdGFiaW5kZXg9
IjAiIGlkPSJlbWJlZDIiPjwvZW1iZWQ+PGJyPgorCis8IS0tcHJlc2VudGF0aW9uLXJlbGF0ZWQg
ZWxlbWVudHMtLT4KKzxkaXYgaWQ9ImRpdjJiIiB0YWJpbmRleD0iLTEiPgorPGFiYnIgdGl0bGU9
InRoZSB0b29sdGlwIiBpZD0iYWJicjIiPmFiYnIgbWFrZXMgYSB0b29sdGlwPC9hYmJyPjxicj4K
KzxhY3JvbnltIHRpdGxlPSJ0aGUgdG9vbHRpcCIgdGFiaW5kZXg9IjIiIGlkPSJhY3JvbnltMiI+
YWNyb255bSBtYWtlcyBhIHRvb2x0aXA8L2Fjcm9ueW0+PGJyPgorPGJkbyBkaXI9InJ0bCIgdGFi
aW5kZXg9IjAiIGlkPSJiZG8yIj50ZXh0IGdvaW5nIHJpZ2h0LXRvLWxlZnQ8L2Jkbz48YnI+Cith
IGJsb2NrcXVvdGU6PGJsb2NrcXVvdGUgdGFiaW5kZXg9Ii0xIiBpZD0iYmxvY2txdW90ZTIiPkxv
cmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ZXIgYWRpcGlzY2luZyBlbGl0LiBE
dWlzIGV1IG5pc2kuIEZ1c2NlIGFsaXF1ZXQgbWFzc2Egbm9uIGZlbGlzLiBTZWQgY29uc2VjdGV0
dWVyLiBJbiBoYWMgaGFiaXRhc3NlIHBsYXRlYSBkaWN0dW1zdC4gTnVuYyB2aXRhZSBudWxsYS4g
UXVpc3F1ZSB0cmlzdGlxdWUgc29sbGljaXR1ZGluIGxpYmVyby48L2Jsb2NrcXVvdGU+CithIHNo
b3J0IHF1b3RlOjxxIGlkPSJxMiI+VmVuaSwgVmlkaSwgVmljaTwvcT4KKzxwIHRhYmluZGV4PSIz
IiBpZD0icDIiPnBhcmFncmFwaDwvcD4KK2xpbmUgYnJlYWs6PGJyIHRhYmluZGV4PSIwIiBpZD0i
YnIyIj4KK2hvcml6b250YWwgcnVsZTo8aHIgdGFiaW5kZXg9Ii0xIiBpZD0iaHIyIj4KKzxtYXJx
dWVlIGlkPSJtYXJxdWVlMiI+bWFycXVlZSB0ZXh0PC9tYXJxdWVlPgorPGNlbnRlciB0YWJpbmRl
eD0iMyIgaWQ9ImNlbnRlcjIiPmNlbnRlcmVkIHRleHQ8L2NlbnRlcj4KKzwvZGl2PgorCis8IS0t
Zm9udCBzdHlsZSB0YWdzLS0+Cis8YiB0YWJpbmRleD0iMCIgaWQ9ImIyIj5Cb2xkIHRleHQ8L2I+
PGJyPgorPGJpZyB0YWJpbmRleD0iLTEiIGlkPSJiaWcyIj5CaWcgdGV4dDwvYmlnPjxicj4KKzxp
IGlkPSJpMiI+SXRhbGljIHRleHQ8L2k+PGJyPgorPHNtYWxsIHRhYmluZGV4PSIyIiBpZD0ic21h
bGwyIj5TbWFsbCB0ZXh0PC9zbWFsbD48YnI+Cis8dHQgdGFiaW5kZXg9IjAiIGlkPSJ0dDIiPlRl
bGV0eXBlIHRleHQ8L3R0Pjxicj4KKworPCEtLWNhbnZhcyBlbGVtZW50LS0+Cis8ZGl2IGlkPSJk
aXYyYyIgdGFiaW5kZXg9Ii0xIj4KK2NhbnZhczo8YnI+Cis8Y2FudmFzIHdpZHRoPScyMDAnIGhl
aWdodD0nMTAwJyBpZD0iY2FudmFzMiI+PC9jYW52YXM+PGJyPgorPC9kaXY+CisKKzwhLS1QaHJh
c2UgZWxlbWVudHMtLT4KKzxlbSB0YWJpbmRleD0iMiIgaWQ9ImVtMiI+ZW08L2VtPjxicj4KKzxz
dHJvbmcgdGFiaW5kZXg9IjAiIGlkPSJzdHJvbmcyIj5zdHJvbmc8L3N0cm9uZz48YnI+Cis8ZGZu
IHRhYmluZGV4PSItMSIgaWQ9ImRmbjIiPmRmbjwvZGZuPjxicj4KKzxjb2RlIGlkPSJjb2RlMiI+
Y29kZTwvY29kZT48YnI+Cis8c2FtcCB0YWJpbmRleD0iMSIgaWQ9InNhbXAyIj5zYW1wPC9zYW1w
Pjxicj4KKzxrYmQgdGFiaW5kZXg9IjAiIGlkPSJrYmQyIj5rYmQ8L2tiZD48YnI+Cis8dmFyIHRh
YmluZGV4PSItMSIgaWQ9InZhcjIiPnZhcjwvdmFyPjxicj4KKzxjaXRlIGlkPSJjaXRlMiI+Y2l0
ZTwvY2l0ZT48YnI+CisKKzwhLS1oZWFkaW5nIHRhZ3MtLT4KKzxkaXYgaWQ9ImRpdjJkIiB0YWJp
bmRleD0iMiI+Cis8aDEgdGFiaW5kZXg9IjAiIGlkPSJoMV8yIj5IZWFkaW5nIDE8L2gxPgorPGgy
IHRhYmluZGV4PSItMSIgaWQ9ImgyXzIiPkhlYWRpbmcgMjwvaDI+Cis8aDMgaWQ9ImgzXzIiPkhl
YWRpbmcgMzwvaDM+Cis8aDQgdGFiaW5kZXg9IjMiIGlkPSJoNF8yIj5IZWFkaW5nIDQ8L2g0Pgor
PGg1IHRhYmluZGV4PSIwIiBpZD0iaDVfMiI+SGVhZGluZyA1PC9oNT4KKzxoNiB0YWJpbmRleD0i
LTEiIGlkPSJoNl8yIj5IZWFkaW5nIDY8L2g2PgorPC9kaXY+CisKKzwhLS1vdGhlciBzdHlsZS1y
ZWxhdGVkIHRhZ3MtLT4KKzxzIGlkPSJzMiI+c3RyaWtldGhyb3VnaCAoc1RhZyk8L3M+PGJyPgor
PHN0cmlrZSB0YWJpbmRleD0iMyIgaWQ9InN0cmlrZTIiPnN0cmlrZXRocm91Z2ggKHN0cmlrZVRh
Zyk8L3N0cmlrZT48YnI+Cis8c3ViIHRhYmluZGV4PSIwIiBpZD0ic3ViMiI+c3Vic2NyaXB0PC9z
dWI+PGJyPgorPHN1cCB0YWJpbmRleD0iLTEiIGlkPSJzdXAyIj5zdXBlcnNjcmlwdDwvc3VwPjxi
cj4KKzx1IGlkPSJ1MiI+dW5kZXJsaW5lZDwvdT48YnI+Cis8ZGVsIHRhYmluZGV4PSIyIiBpZD0i
ZGVsMiI+ZGVsZXRlPC9kZWw+PGJyPgorPGlucyB0YWJpbmRleD0iMCIgaWQ9ImluczIiPmluc2Vy
dDwvaW5zPjxicj4KKzxwcmUgdGFiaW5kZXg9Ii0xIiBpZD0icHJlMiI+cHJlZm9ybWF0dGVkPC9w
cmU+CitiYXNpYyB1c2FnZSBvZiA8Zm9udCBpZD0iZm9udDIiPmZvbnQ8L2ZvbnQ+IHRhZzxicj4K
K2Jhc2ljIHVzYWdlIG9mIDxzcGFuIHRhYmluZGV4PSIyIiBpZD0ic3BhbjIiPnNwYW48L3NwYW4+
IHRhZzxicj4KKworPCEtLXRhYmxlcy0tPgorPGRpdiBpZD0iZGl2MmUiIHRhYmluZGV4PSIwIj4K
Kzx0YWJsZSBib3JkZXI9IjEiIHRhYmluZGV4PSItMSIgaWQ9InRhYmxlMiI+Cis8Y2FwdGlvbiBp
ZD0iY2FwdGlvbjIiPnRhYmxlIGNhcHRpb248L2NhcHRpb24+Cis8Y29sZ3JvdXAgc3Bhbj0iMiIg
dGFiaW5kZXg9IjIiIGlkPSJjb2xncm91cDIiPgorPGNvbCB3aWR0aD0iMTAwIiB0YWJpbmRleD0i
MCIgaWQ9ImNvbDJhIj48L2NvbD4KKzxjb2wgd2lkdGg9IjI1MCIgdGFiaW5kZXg9Ii0xIiBpZD0i
Y29sMmIiPjwvY29sPgorPC9jb2xncm91cD4KKzx0aGVhZCBpZD0idGhlYWQyIj48dHI+PHRoIHRh
YmluZGV4PSIyIiBpZD0idGgyIj4KK3RhYmxlIGhlYWRlcgorPC90aD48L3RyPjwvdGhlYWQ+PHRi
b2R5IHRhYmluZGV4PSIwIiBpZD0idGJvZHkyIj4KKzx0ciB0YWJpbmRleD0iLTEiIGlkPSJ0cjIi
PgorPHRkIGlkPSJ0ZDJhIj50YWJsZSBjZWxsIDE8L3RkPgorPHRkIHRhYmluZGV4PSIzIiBpZD0i
dGQyYiI+dGFibGUgY2VsbCAyPC90ZD4KKzx0ZCB0YWJpbmRleD0iMCIgaWQ9InRkMmMiPnRhYmxl
IGNlbGwgMzwvdGQ+Cis8L3RyPjwvdGJvZHk+Cis8dGZvb3QgdGFiaW5kZXg9Ii0xIiBpZD0idGZv
b3QyIj48dHI+PHRkPgordGFibGUgZm9vdGVyCis8L3RkPjwvdHI+PC90Zm9vdD4KKzwvdGFibGU+
Cis8L2Rpdj4KKworPCEtLWRlZmluaXRpb24gbGlzdC0tPgorPGRsIGlkPSJkbDIiPmRlZmluaXRp
b24gbGlzdAorPGR0IHRhYmluZGV4PSIzIiBpZD0iZHQyYSI+dGVybTE8L2R0PgorPGRkIHRhYmlu
ZGV4PSIwIiBpZD0iZGQyYSI+ZGVmaW5pdGlvbjE8L2RkPgorPGR0IHRhYmluZGV4PSItMSIgaWQ9
ImR0MmIiPnRlcm0yPC9kdD4KKzxkZCBpZD0iZGQyYiI+ZGVmaW5pdGlvbjI8L2RkPgorPC9kbD4K
KyAgICAKKzwhLS1saXN0cyAtLT4KKzxkaXYgaWQ9ImRpdjJmIiB0YWJpbmRleD0iMiI+Cis8dWwg
dGFiaW5kZXg9IjAiIGlkPSJ1bDIiPnVub3JkZXJlZCBsaXN0Cis8bGkgdGFiaW5kZXg9Ii0xIiBp
ZD0ibGkyYSI+IHVsIGxpCis8L3VsPgorPG9sIGlkPSJvbDIiPm9yZGVyZWQgbGlzdAorPGxpIHRh
YmluZGV4PSIzIiBpZD0ibGkyYiI+IG9sIGxpCis8L29sPgorPG1lbnUgdGFiaW5kZXg9IjAiIGlk
PSJtZW51MiI+bWVudSBsaXN0Cis8bGkgdGFiaW5kZXg9Ii0xIiBpZD0ibGkyYyI+IG1lbnUgbGkK
KzwvbWVudT4KKzxkaXIgaWQ9ImRpcjIiPmRpcmVjdG9yeSBsaXN0Cis8bGkgdGFiaW5kZXg9IjMi
IGlkPSJsaTJkIj4gZGlyIGxpCis8L2Rpcj4KKzwvZGl2PgorCis8IS0taW1hZ2VzLS0+Cis8aW1h
Z2Ugc3JjPSJhYmUucG5nIiB0YWJpbmRleD0iMCIgaWQ9ImltYWdlMiI+PGJyPgorPGltZyBzcmM9
ImFiZS5wbmciIHRhYmluZGV4PSItMSIgaWQ9ImltZzIiPjxicj4KKworPCEtLWZvcm1zLS0+Cis8
ZGl2IGlkPSJkaXYyZyI+Cis8Zm9ybSB0YWJpbmRleD0iMiIgaWQ9ImZvcm0yIj4KKzxmaWVsZHNl
dCB0YWJpbmRleD0iMCIgaWQ9ImZpZWxkc2V0MiI+CisgICAgPGxlZ2VuZCBpZD0ibGVnZW5kMiIg
dGFiaW5kZXg9Ii0xIj5sZWdlbmQ8L2xlZ2VuZD4KKyAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQi
IGlkPSJwYXNzd29yZDIiPgorPC9maWVsZHNldD4KKzxzZWxlY3QgaWQ9InNlbGVjdDIiIHRhYmlu
ZGV4PSIzIj4KKyAgICA8b3B0Z3JvdXAgbGFiZWw9Imdyb3VwMSIgdGFiaW5kZXg9IjAiIGlkPSJv
cHRncm91cDIiPgorICAgICAgICA8b3B0aW9uIHRhYmluZGV4PSItMSIgaWQ9Im9wdGlvbjJhIj5v
cHRpb24xPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+b3B0aW9uMjwvb3B0aW9uPgorICAgIDwv
b3B0Z3JvdXA+CisgICAgPG9wdGdyb3VwIGxhYmVsPSJncm91cDIiPgorICAgICAgICA8b3B0aW9u
Pm9wdGlvbjM8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbiBpZD0ib3B0aW9uMmIiPm9wdGlvbjQ8
L29wdGlvbj4KKyAgICA8L29wdGdyb3VwPgorPC9zZWxlY3Q+PGJyPgorPHRleHRhcmVhIGlkPSJ0
ZXh0YXJlYTIiIHRhYmluZGV4PSIzIj50ZXh0YXJlYTwvdGV4dGFyZWE+PGJyPgorPGlucHV0IHR5
cGU9InRleHQiIGlkPSJ0ZXh0MiIgdmFsdWU9InRleHQiIHRhYmluZGV4PSIwIj48YnI+Cis8aXNp
bmRleCBpZD0iaXNpbmRleDIiIHByb21wdD0iaXNpbmRleCIgdGFiaW5kZXg9Ii0xIi8+PGJyPgor
PGxhYmVsIGlkPSJsYWJlbDJhIiBmb3I9ImNoZWNrYm94MiI+bGFiZWwgZm9yIGNoZWNrYm94PC9s
YWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja2JveDIiIHRhYmluZGV4PSIyIj48
YnI+Cis8bGFiZWwgaWQ9ImxhYmVsMmIiIGZvcj0icmFkaW9DaG9pY2UyYSIgdGFiaW5kZXg9IjAi
PmxhYmVsIGZvciByYWRpb0Nob2ljZSBBPC9sYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJy
YWRpb0Nob2ljZTJhIiBuYW1lPSJyYWRpbzIiIHRhYmluZGV4PSItMSI+PGJyPgorPGxhYmVsIGlk
PSJsYWJlbDJjIiBmb3I9InJhZGlvQ2hvaWNlMmIiPmxhYmVsIGZvciByYWRpb0Nob2ljZSBCPC9s
YWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIGlkPSJyYWRpb0Nob2ljZTJiIiBuYW1lPSJyYWRpbzIi
IHRhYmluZGV4PSIyIj48YnI+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUyIiB0YWJpbmRl
eD0iMCI+PGJyPgoraW5wdXQgdHlwZT0iaGlkZGVuIjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJo
aWRkZW4yIj48YnI+CitpbnB1dCB0eXBlPSJpbWFnZSI8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJp
bnB1dEltYWdlMiIgc3JjPSJhYmUucG5nIiB0YWJpbmRleD0iMCI+PGJyPgorPGJ1dHRvbiBpZD0i
YnV0dG9uMiIgdGFiaW5kZXg9Ii0xIj5idXR0b248L2J1dHRvbj48YnI+Cis8aW5wdXQgdHlwZT0i
YnV0dG9uIiBpZD0iaW5wdXRCdXR0b24yIiB2YWx1ZT0iaW5wdXRCdXR0b24iPjxicj4KKzxpbnB1
dCB0eXBlPSJzZWFyY2giIGlkPSJzZWFyY2gyIiBwbGFjZWhvbGRlcj0ic2VhcmNoIiB0YWJpbmRl
eD0iMiI+PGJyPgorPGlucHV0IHR5cGU9InJhbmdlIiBpZD0icmFuZ2UyIiB0YWJpbmRleD0iMCI+
PGJyPgorPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9InN1Ym1pdDIiIHRhYmluZGV4PSItMSI+Cis8
aW5wdXQgdHlwZT0icmVzZXQiIGlkPSJyZXNldDIiPjxicj4KKzwvZm9ybT4KKzwvZGl2PgorCis8
L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvdGFiaW5kZXgt
Zm9jdXMtYmx1ci1hbGwtaWZyYW1lMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Jlc291cmNlcy90YWJpbmRleC1mb2N1cy1ibHVyLWFsbC1pZnJhbWUyLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9yZXNvdXJjZXMvdGFiaW5k
ZXgtZm9jdXMtYmx1ci1hbGwtaWZyYW1lMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4
MyBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIGRlc2lnbmF0ZUhhbmRsZXJzKGVsZW0pCit7CisgICAg
dmFyIGNoaWxkTm9kZXMgPSBlbGVtLmNoaWxkTm9kZXM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBjaGlsZE5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNoaWxkTm9kZXNbaV0uYWRkRXZl
bnRMaXN0ZW5lcignZm9jdXMnLGZ1bmN0aW9uICgpIHsgcGFyZW50LnBhcmVudC5kb0ZvY3VzKHRo
aXMpIH0sIGZhbHNlKTsKKyAgICAgICAgY2hpbGROb2Rlc1tpXS5hZGRFdmVudExpc3RlbmVyKCdi
bHVyJyxmdW5jdGlvbiAoKSB7IHBhcmVudC5wYXJlbnQuZG9CbHVyKHRoaXMpIH0sIGZhbHNlKTsK
KyAgICAgICAgaWYgKGNoaWxkTm9kZXNbaV0uY2hpbGROb2Rlcy5sZW5ndGgpCisgICAgICAgICAg
ICBkZXNpZ25hdGVIYW5kbGVycyhjaGlsZE5vZGVzW2ldKTsKKyAgICB9ICAgICAgIAorfQorPC9z
Y3JpcHQ+Cis8Ym9keSBpZD0iaWZyYW1lMmJvZHkiIHRhYmluZGV4PSIxIiBvbmxvYWQ9ImRlc2ln
bmF0ZUhhbmRsZXJzKGRvY3VtZW50LmJvZHkpIiBvbmJsdXI9InBhcmVudC5wYXJlbnQuc3RvcFRl
c3Q9dHJ1ZTsiPgorCis8IS0tYW5jaG9yIHR5cGVzLS0+Cis8YSBocmVmPSJhUGFnZVRoYXREb2Vz
bnRFeGlzdC5odG1sIiB0YWJpbmRleD0iMCIgaWQ9ImE0Ij5hbmNob3I8L2E+PGJyPgorPGltZyBz
cmMgPSJhYmUucG5nIiB3aWR0aD0iNzYiIGhlaWdodD0iMTAzIiBhbHQ9ImhvbmVzdCBhYmUiIHVz
ZW1hcCA9IiN0aGVNYXBOYW1lIiAvPgorPG1hcCBuYW1lPSJ0aGVNYXBOYW1lIiB0YWJpbmRleD0i
LTEiIGlkPSJtYXA0Ij4KKyAgPGFyZWEgc2hhcGUgPSJyZWN0IiBjb29yZHMgPSIwLDAsNzYsNTAi
IGhyZWY9ImFub3RoZXJQYWdlVGhhdERvZXNudEV4aXN0Lmh0bWwiIHRhcmdldCA9Il9ibGFuayIg
YWx0PSJyZWN0QXJlYTEiIGlkPSJhcmVhNGEiLz4KKyAgPGFyZWEgc2hhcGUgPSJyZWN0IiBjb29y
ZHMgPSIwLDUwLDc2LDEwMyIgaHJlZj0ieWV0QW5vdGhlclBhZ2UuaHRtbCIgdGFyZ2V0ID0iX2Js
YW5rIiBhbHQ9InJlY3RBcmVhMiIgdGFiaW5kZXg9IjEiIGlkPSJhcmVhNGIiLz4KKzwvbWFwPjxi
cj4KKworPCEtLW1lZGlhIGVsZW1lbnRzLS0+Cis8ZGl2IGlkPSJkaXY0YSIgdGFiaW5kZXg9IjAi
PgorPGF1ZGlvIGNvbnRyb2xzIHNyYz0iLi4vLi4vLi4vbWVkaWEvY29udGVudC90ZXN0LndhdiIg
dGFiaW5kZXg9Ii0xIiBpZD0iYXVkaW80Ij48L2F1ZGlvPjxicj4KKzx2aWRlbyBjb250cm9scyBp
ZD0idmlkZW80Ij4KKyAgICA8c291cmNlIHNyYz0iLi4vLi4vLi4vbWVkaWEvY29udGVudC90ZXN0
Lm1wNCIgdHlwZT0idmlkZW8vbXBlZyIgaWQ9InNvdXJjZTQiPgorPC92aWRlbz48YnI+Cis8L2Rp
dj4KKworPCEtLWltYmVkZGVkIGVsZW1lbnRzLS0+CithcHBsZXQ6PGJyPgorPGFwcGxldCB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgY29kZT0iIiB0YWJpbmRleD0iMCIgaWQ9ImFwcGxldDQiPjwv
YXBwbGV0Pjxicj4KK29iamVjdDo8YnI+Cis8b2JqZWN0IHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Vi
a2l0LXRlc3QtbmV0c2NhcGUiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB0YWJpbmRleD0iLTEi
IGlkPSJvYmplY3Q0Ij48L29iamVjdD48YnI+CitlbWJlZDo8YnI+Cis8ZW1iZWQgdHlwZT0iYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
IGlkPSJlbWJlZDQiPjwvZW1iZWQ+PGJyPgorCis8IS0tcHJlc2VudGF0aW9uLXJlbGF0ZWQgZWxl
bWVudHMtLT4KKzxkaXYgaWQ9ImRpdjRiIiB0YWJpbmRleD0iMyI+Cis8YWJiciB0aXRsZT0idGhl
IHRvb2x0aXAiIHRhYmluZGV4PSIwIiBpZD0iYWJicjQiPmFiYnIgbWFrZXMgYSB0b29sdGlwPC9h
YmJyPjxicj4KKzxhY3JvbnltIHRpdGxlPSJ0aGUgdG9vbHRpcCIgdGFiaW5kZXg9Ii0xIiBpZD0i
YWNyb255bTQiPmFjcm9ueW0gbWFrZXMgYSB0b29sdGlwPC9hY3JvbnltPjxicj4KKzxiZG8gZGly
PSJydGwiIGlkPSJiZG80Ij50ZXh0IGdvaW5nIHJpZ2h0LXRvLWxlZnQ8L2Jkbz48YnI+CithIGJs
b2NrcXVvdGU6PGJsb2NrcXVvdGUgdGFiaW5kZXg9IjMiIGlkPSJibG9ja3F1b3RlNCI+TG9yZW0g
aXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuIER1aXMg
ZXUgbmlzaS4gRnVzY2UgYWxpcXVldCBtYXNzYSBub24gZmVsaXMuIFNlZCBjb25zZWN0ZXR1ZXIu
IEluIGhhYyBoYWJpdGFzc2UgcGxhdGVhIGRpY3R1bXN0LiBOdW5jIHZpdGFlIG51bGxhLiBRdWlz
cXVlIHRyaXN0aXF1ZSBzb2xsaWNpdHVkaW4gbGliZXJvLjwvYmxvY2txdW90ZT4KK2Egc2hvcnQg
cXVvdGU6PHEgdGFiaW5kZXg9IjAiIGlkPSJxNCI+VmVuaSwgVmlkaSwgVmljaTwvcT4KKzxwIHRh
YmluZGV4PSItMSIgaWQ9InA0Ij5wYXJhZ3JhcGg8L3A+CitsaW5lIGJyZWFrOjxiciBpZD0iYnI0
Ij4KK2hvcml6b250YWwgcnVsZTo8aHIgdGFiaW5kZXg9IjIiIGlkPSJocjQiPgorPG1hcnF1ZWUg
dGFiaW5kZXg9IjAiIGlkPSJtYXJxdWVlNCI+bWFycXVlZSB0ZXh0PC9tYXJxdWVlPgorPGNlbnRl
ciB0YWJpbmRleD0iLTEiIGlkPSJjZW50ZXI0Ij5jZW50ZXJlZCB0ZXh0PC9jZW50ZXI+Cis8L2Rp
dj4KKworPCEtLWZvbnQgc3R5bGUgdGFncy0tPgorPGIgaWQ9ImI0Ij5Cb2xkIHRleHQ8L2I+PGJy
PgorPGJpZyB0YWJpbmRleD0iMSIgaWQ9ImJpZzQiPkJpZyB0ZXh0PC9iaWc+PGJyPgorPGkgdGFi
aW5kZXg9IjAiIGlkPSJpNCI+SXRhbGljIHRleHQ8L2k+PGJyPgorPHNtYWxsIHRhYmluZGV4PSIt
MSIgaWQ9InNtYWxsNCI+U21hbGwgdGV4dDwvc21hbGw+PGJyPgorPHR0IGlkPSJ0dDQiPlRlbGV0
eXBlIHRleHQ8L3R0Pjxicj4KKworPCEtLWNhbnZhcyBlbGVtZW50LS0+Cis8ZGl2IGlkPSJkaXY0
YyIgdGFiaW5kZXg9IjEiPgorY2FudmFzOjxicj4KKzxjYW52YXMgd2lkdGg9JzIwMCcgaGVpZ2h0
PScxMDAnIHRhYmluZGV4PSIwIiBpZD0iY2FudmFzNCI+PC9jYW52YXM+PGJyPgorPC9kaXY+CisK
KzwhLS1QaHJhc2UgZWxlbWVudHMtLT4KKzxlbSB0YWJpbmRleD0iLTEiIGlkPSJlbTQiPmVtPC9l
bT48YnI+Cis8c3Ryb25nIGlkPSJzdHJvbmc0Ij5zdHJvbmc8L3N0cm9uZz48YnI+Cis8ZGZuIHRh
YmluZGV4PSIyIiBpZD0iZGZuNCI+ZGZuPC9kZm4+PGJyPgorPGNvZGUgdGFiaW5kZXg9IjAiIGlk
PSJjb2RlNCI+Y29kZTwvY29kZT48YnI+Cis8c2FtcCB0YWJpbmRleD0iLTEiIGlkPSJzYW1wNCI+
c2FtcDwvc2FtcD48YnI+Cis8a2JkIGlkPSJrYmQ0Ij5rYmQ8L2tiZD48YnI+Cis8dmFyIHRhYmlu
ZGV4PSIzIiBpZD0idmFyNCI+dmFyPC92YXI+PGJyPgorPGNpdGUgdGFiaW5kZXg9IjAiIGlkPSJj
aXRlNCI+Y2l0ZTwvY2l0ZT48YnI+CisKKzwhLS1oZWFkaW5nIHRhZ3MtLT4KKzxkaXYgaWQ9ImRp
djRkIiB0YWJpbmRleD0iLTEiPgorPGgxIGlkPSJoMV80Ij5IZWFkaW5nIDE8L2gxPgorPGgyIHRh
YmluZGV4PSIzIiBpZD0iaDJfNCI+SGVhZGluZyAyPC9oMj4KKzxoMyB0YWJpbmRleD0iMCIgaWQ9
ImgzXzQiPkhlYWRpbmcgMzwvaDM+Cis8aDQgdGFiaW5kZXg9Ii0xIiBpZD0iaDRfNCI+SGVhZGlu
ZyA0PC9oND4KKzxoNSBpZD0iaDVfNCI+SGVhZGluZyA1PC9oNT4KKzxoNiB0YWJpbmRleD0iMiIg
aWQ9Img2XzQiPkhlYWRpbmcgNjwvaDY+Cis8L2Rpdj4KKworPCEtLW90aGVyIHN0eWxlLXJlbGF0
ZWQgdGFncy0tPgorPHMgdGFiaW5kZXg9IjAiIGlkPSJzNCI+c3RyaWtldGhyb3VnaCAoc1RhZyk8
L3M+PGJyPgorPHN0cmlrZSB0YWJpbmRleD0iLTEiIGlkPSJzdHJpa2U0Ij5zdHJpa2V0aHJvdWdo
IChzdHJpa2VUYWcpPC9zdHJpa2U+PGJyPgorPHN1YiBpZD0ic3ViNCI+c3Vic2NyaXB0PC9zdWI+
PGJyPgorPHN1cCB0YWJpbmRleD0iMSIgaWQ9InN1cDQiPnN1cGVyc2NyaXB0PC9zdXA+PGJyPgor
PHUgdGFiaW5kZXg9IjAiIGlkPSJ1NCI+dW5kZXJsaW5lZDwvdT48YnI+Cis8ZGVsIHRhYmluZGV4
PSItMSIgaWQ9ImRlbDQiPmRlbGV0ZTwvZGVsPjxicj4KKzxpbnMgaWQ9Imluc3Q0Ij5pbnNlcnQ8
L2lucz48YnI+Cis8cHJlIHRhYmluZGV4PSIxIiBpZD0icHJlNCI+cHJlZm9ybWF0dGVkPC9wcmU+
CitiYXNpYyB1c2FnZSBvZiA8Zm9udCB0YWJpbmRleD0iMCIgaWQ9ImZvbnQ0Ij5mb250PC9mb250
PiB0YWc8YnI+CitiYXNpYyB1c2FnZSBvZiA8c3BhbiB0YWJpbmRleD0iLTEiIGlkPSJzcGFuNCI+
c3Bhbjwvc3Bhbj4gdGFnPGJyPgorCis8IS0tdGFibGVzLS0+Cis8ZGl2IGlkPSJkaXY0ZSI+Cis8
dGFibGUgYm9yZGVyPSIxIiB0YWJpbmRleD0iMiIgaWQ9InRhYmxlNCI+Cis8Y2FwdGlvbiB0YWJp
bmRleD0iMCIgaWQ9ImNhcHRpb240Ij50YWJsZSBjYXB0aW9uPC9jYXB0aW9uPgorPGNvbGdyb3Vw
IHNwYW49IjIiIHRhYmluZGV4PSItMSIgaWQ9ImNvbGdyb3VwNCI+Cis8Y29sIHdpZHRoPSIxMDAi
IGlkPSJjb2w0YSI+PC9jb2w+Cis8Y29sIHdpZHRoPSIyNTAiIHRhYmluZGV4PSIzIiBpZD0iY29s
NGIiPjwvY29sPgorPC9jb2xncm91cD4KKzx0aGVhZCB0YWJpbmRleD0iMCIgaWQ9InRoZWFkNCI+
PHRyPjx0aCB0YWJpbmRleD0iLTEiIGlkPSJ0aDQiPgordGFibGUgaGVhZGVyCis8L3RoPjwvdHI+
PC90aGVhZD48dGJvZHkgaWQ9InRib2R5NCI+Cis8dHIgdGFiaW5kZXg9IjMiIGlkPSJ0cjRhIj4K
Kzx0ZCB0YWJpbmRleD0iMCIgaWQ9InRkNGEiPnRhYmxlIGNlbGwgMTwvdGQ+Cis8dGQgdGFiaW5k
ZXg9Ii0xIiBpZD0idHI0YiI+dGFibGUgY2VsbCAyPC90ZD4KKzx0ZCBpZD0idGQ0YiI+dGFibGUg
Y2VsbCAzPC90ZD4KKzwvdHI+PC90Ym9keT4KKzx0Zm9vdCB0YWJpbmRleD0iMiIgaWQ9InRmb290
NCI+PHRyPjx0ZD4KK3RhYmxlIGZvb3RlcgorPC90ZD48L3RyPjwvdGZvb3Q+Cis8L3RhYmxlPgor
PC9kaXY+CisKKzwhLS1kZWZpbml0aW9uIGxpc3QtLT4KKzxkbCB0YWJpbmRleD0iMCIgaWQ9ImRs
NCI+ZGVmaW5pdGlvbiBsaXN0Cis8ZHQgdGFiaW5kZXg9Ii0xIiBpZD0iZHQ0YSI+dGVybTE8L2R0
PgorPGRkIGlkPSJkZDRhIj5kZWZpbml0aW9uMTwvZGQ+Cis8ZHQgdGFiaW5kZXg9IjEiIGlkPSJk
dDRiIj50ZXJtMjwvZHQ+Cis8ZGQgdGFiaW5kZXg9IjAiIGlkPSJkZDRiIj5kZWZpbml0aW9uMjwv
ZGQ+Cis8L2RsPgorICAgIAorPCEtLWxpc3RzIC0tPgorPGRpdiBpZD0iZGl2NGYiIHRhYmluZGV4
PSItMSI+Cis8dWwgaWQ9InVsNCI+dW5vcmRlcmVkIGxpc3QKKzxsaSB0YWJpbmRleD0iMSIgaWQ9
ImxpNGEiPiB1bCBsaQorPC91bD4KKzxvbCB0YWJpbmRleD0iMCIgaWQ9Im9sNCI+b3JkZXJlZCBs
aXN0Cis8bGkgdGFiaW5kZXg9Ii0xIiBpZD0ibGk0YiI+IG9sIGxpCis8L29sPgorPG1lbnUgaWQ9
Im1lbnU0Ij5tZW51IGxpc3QKKzxsaSB0YWJpbmRleD0iMiIgaWQ9ImxpNGMiPiBtZW51IGxpCis8
L21lbnU+Cis8ZGlyIHRhYmluZGV4PSIwIiBpZD0iZGlyNCI+ZGlyZWN0b3J5IGxpc3QKKzxsaSB0
YWJpbmRleD0iLTEiIGlkPSJsaTRkIj4gZGlyIGxpCis8L2Rpcj4KKzwvZGl2PgorCis8IS0taW1h
Z2VzLS0+Cis8aW1hZ2Ugc3JjPSJhYmUucG5nIiBpZD0iaW1hZ2U0Ij48YnI+Cis8aW1nIHNyYz0i
YWJlLnBuZyIgdGFiaW5kZXg9IjMiIGlkPSJpbWc0Ij48YnI+CisKKzwhLS1mb3Jtcy0tPgorPGRp
diBpZD0iZGl2NGciIHRhYmluZGV4PSIwIj4KKzxmb3JtIHRhYmluZGV4PSItMSIgaWQ9ImZvcm00
Ij4KKzxmaWVsZHNldCBpZD0iZmllbGRzZXQ0Ij4KKyAgICA8bGVnZW5kIGlkPSJsZWdlbmQ0IiB0
YWJpbmRleD0iMyI+bGVnZW5kNDwvbGVnZW5kPgorICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIg
aWQ9InBhc3N3b3JkNCIgdGFiaW5kZXg9IjMiPiA8IS0tIHNob3VsZCBiZSB0YWJpbmRleDAsIGJ1
dCBjaGFuZ2luZyB0byAzLS0+Cis8L2ZpZWxkc2V0PgorPHNlbGVjdCBpZD0ic2VsZWN0NCIgdGFi
aW5kZXg9Ii0xIj4KKyAgICA8b3B0Z3JvdXAgbGFiZWw9Imdyb3VwMSIgaWQ9Im9wdGdyb3VwNCI+
CisgICAgICAgIDxvcHRpb24gdGFiaW5kZXg9IjIiIGlkPSJvcHRpb240YSI+b3B0aW9uMTwvb3B0
aW9uPgorICAgICAgICA8b3B0aW9uPm9wdGlvbjI8L29wdGlvbj4KKyAgICA8L29wdGdyb3VwPgor
ICAgIDxvcHRncm91cCBsYWJlbD0iZ3JvdXAyIj4KKyAgICAgICAgPG9wdGlvbj5vcHRpb24zPC9v
cHRpb24+CisgICAgICAgIDxvcHRpb24gdGFiaW5kZXg9IjAiIGlkPSJvcHRpb240YiI+b3B0aW9u
NDwvb3B0aW9uPgorICAgIDwvb3B0Z3JvdXA+Cis8L3NlbGVjdD48YnI+Cis8dGV4dGFyZWEgaWQ9
InRleHRhcmVhNCIgdGFiaW5kZXg9Ii0xIj50ZXh0YXJlYTE8L3RleHRhcmVhPjxicj4KKzxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dDQiIHZhbHVlPSJ0ZXh0Ij48YnI+Cis8aXNpbmRleCBpZD0i
aXNpbmRleDQiIHByb21wdD0iaXNpbmRleCIgdGFiaW5kZXg9IjEiLz48YnI+Cis8bGFiZWwgaWQ9
ImxhYmVsNGEiIGZvcj0iY2hlY2tib3g0IiB0YWJpbmRleD0iMCI+bGFiZWwgZm9yIGNoZWNrYm94
PC9sYWJlbD48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjaGVja2JveDQiIHRhYmluZGV4PSIw
Ij48YnI+Cis8bGFiZWwgaWQ9ImxhYmVsNGIiIGZvcj0icmFkaW9DaG9pY2U0YSIgdGFiaW5kZXg9
Ii0xIj5sYWJlbCBmb3IgcmFkaW9DaG9pY2UgQTwvbGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBp
ZD0icmFkaW9DaG9pY2U0YSIgbmFtZT0icmFkaW80IiB0YWJpbmRleD0iLTEiPjxicj4KKzxsYWJl
bCBpZD0ibGFiZWw0YyIgZm9yPSJyYWRpb0Nob2ljZTRiIj5sYWJlbCBmb3IgcmFkaW9DaG9pY2Ug
QjwvbGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBpZD0icmFkaW9DaG9pY2U0YiIgbmFtZT0icmFk
aW80Ij48YnI+Cis8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGU0IiB0YWJpbmRleD0iMSI+PGJy
PgoraW5wdXQgdHlwZT0iaGlkZGVuIjxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW40IiB0
YWJpbmRleD0iMCI+PGJyPgoraW5wdXQgdHlwZT0iaW1hZ2UiPGlucHV0IHR5cGU9ImltYWdlIiBp
ZD0iaW5wdXRJbWFnZTQiIHNyYz0iYWJlLnBuZyIgdGFiaW5kZXg9Ii0xIj48YnI+Cis8YnV0dG9u
IGlkPSJidXR0b240Ij5idXR0b248L2J1dHRvbj48YnI+Cis8aW5wdXQgdHlwZT0iYnV0dG9uIiBp
ZD0iaW5wdXRCdXR0b240IiB2YWx1ZT0iaW5wdXRCdXR0b24iIHRhYmluZGV4PSIyIj48YnI+Cis8
aW5wdXQgdHlwZT0ic2VhcmNoIiBpZD0ic2VhcmNoNCIgcGxhY2Vob2xkZXI9InNlYXJjaCIgdGFi
aW5kZXg9IjAiPjxicj4KKzxpbnB1dCB0eXBlPSJyYW5nZSIgaWQ9InJhbmdlNCIgdGFiaW5kZXg9
Ii0xIj48YnI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0ic3VibWl0NCI+Cis8aW5wdXQgdHlw
ZT0icmVzZXQiIGlkPSJyZXNldDQiIHRhYmluZGV4PSIzIj48YnI+Cis8L2Zvcm0+Cis8L2Rpdj4K
KworPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcmVzb3VyY2VzL3RhYmlu
ZGV4LWZvY3VzLWJsdXItYWxsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3Jlc291cmNlcy90YWJpbmRleC1mb2N1cy1ibHVyLWFsbC5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Jlc291cmNlcy90YWJpbmRleC1mb2N1cy1ibHVyLWFs
bC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisK
K3ZhciBjb25zb2xlT3V0cHV0OwordmFyIHN0b3BUZXN0ID0gZmFsc2U7Cit2YXIgZm9jdXNDb3Vu
dCA9IDA7Cit2YXIgYmx1ckNvdW50ID0gMDsKK2Z1bmN0aW9uIHByaW50VG9Db25zb2xlKHN0cikK
K3sKKyAgICBpZiAoIWNvbnNvbGVPdXRwdXQpIHsKKyAgICAgICAgY29uc29sZU91dHB1dCA9IHdp
bmRvdy5mcmFtZXNbMl0uZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoZUNvbnNvbGUiKTsKKyAg
ICB9CisgICAgY29uc29sZU91dHB1dC5pbm5lckhUTUwgKz0gIjxicj4iICsgc3RyOworfQorCitm
dW5jdGlvbiBkb0ZvY3VzKGVsZW0pCit7CisgICAgZm9jdXNDb3VudCsrOworICAgIHByaW50VG9D
b25zb2xlKGVsZW0uaWQgKyAiIGZvY3VzZWQiKTsKK30KKworZnVuY3Rpb24gZG9CbHVyKGVsZW0p
Cit7CisgICAgYmx1ckNvdW50Kys7CisgICAgcHJpbnRUb0NvbnNvbGUoZWxlbS5pZCArICIgYmx1
cmVkIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHdoaWxlKCFzdG9w
VGVzdCkKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIlx0Iik7CisgICAgCisgICAg
ICAgIGRvY3VtZW50LndyaXRlKGZvY3VzQ291bnQrIiBmb2N1cyAvICIrYmx1ckNvdW50KyIgYmx1
ciBldmVudHMgZGlzYXRjaGVkPGJyPiIrY29uc29sZU91dHB1dC5pbm5lckhUTUwpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9yZXNvdXJjZXMvYWJlLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxl
IG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9y
ZXNvdXJjZXMvYWJlLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBs
aWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRXdBQUFCbkNB
SUFBQUFsbmpPSkFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFnCkFFbEVRVlI0bkcxOGFX
d2M1M24vek96TTdNenNmUzkzZVIraWVJaWtwRWhSU01tV0xjZUtiVGxISGNXdUV6dk5sN1FvZ2g2
ZmlnSkYKZ2FKbys2a0ZDalJBZzdiL3drbFFGMDFodUdrVnFYSWR5YlVzNnFZa2t1SWxMc1ZkY3Nu
bDN2ZnM3QnovRHovTzY1SGMrVUFzOTVoNQozL2U1ZnMvdmVkNlh2bkxsaWlBSWtpU3hMR3NZaHFx
cW1xWVpoaUZKRXNNd0RNUFFORTFSRkUzVCtGZlROSTdqTkUxck5wc013emdjCkRrM1RhcldhTE1z
Mm00Mm02WGE3M1c2M2RWMm5hWnFtYVVWUk9JNHpERU9XWlZWVmJUWWJ3ekM2cnF1cTZuUTZPWTVy
TnB1cXFncUMKSUlvaXd6QTJtODFtczJFa3VJbXU2KzEydTlWcXNTekw4enpIY2JnSmh0UnNOdkhD
WnJrd0RGM1hEY1BRZFoxbFdaWmhHSXFpRE1QUQpOQTB6cENpSzR6aE1EeC9oVFlxaVdKYkZnMjAy
bXlpS2dpQlVLcFZTcWVUeGVEUk5veWpLYnJjekRGT3YxOXZ0TnNNd2Ryc2Q3MHVTClJGR1VwbWsw
VGJNczIyZzAydTIyb2lnMm04M2xjZ21DWUJpR29paUdZZEEwYmJQWnNEVDRpYTdydUMwbVFGRVVt
VDlHUlpzWG1UeGsKaG5teWVKZE1tcUlvU014bXMrSDMrSWpJczkxdTIydzJRUkF3aUhhN0xRakN3
TUJBdFZwdE5CcXFxaklNWXhnR0Zwdm5lY2lFcG1tcwpXcXZWd3FkdXR4c3l4RGV4OEhnY0dRT2Vx
S3FxWVJqNE9kRXNpQVFESTlNakk4Yzdobm50VHhjTGc1dXlMQXVGd2IzSUpIRWp2OTlmCnI5Y3Bp
b0oybGN0bFdaWVpobkU2blR6UE54cU5lcjJ1cWlwdWdsOUJXYUNsUE05am1YbWU1M2tlejFWVlZW
RVV1OTN1Y3JscXRacjEKdDBSdVdEdkt2TWdFaU9pSXhoS3pJcHJJa2c4d2RYSVhWVlhKN2F3cWtj
MW1ZN0dZSkVrN096dUpSS0xSYURpZFRyZmJuY2xrZkQ2ZgpJQWlRbTkxdTEzVzlWcXN4RENNSUFz
dXlXSGlvQUVWUmlxSm9tc1l3REd5TW9pajhGVVVSaXdLUkV0VWxPZ1U1NHlOaStXUnU1SUtOCjdJ
c05DMEFzRFpkVnk1OTU3ZlY2RGNPNGVmUG1lKys5OXovLzh6K0dZWVREWVo3blIwWkdSa1pHaG9h
RzRFNHdkTHZkRGo5RVVSVHgKR1VRT2VCWlVsNklvV1paYnJaWWtTUkFqUmtrRWlMK1lGZkdJRUJj
Ukk5Nzg0ckJadUFlZTU2Mlcrb3dkNHdjWW1jZmorY1V2ZnZIMwpmLy8zZCsvZWRUZ2NzVmlzMld4
bU1wbk56YzIxdGJYUjBkRm9OTXJ6dkNBSW9WQW9IQTdMc3B6TDVRekRpRWFqRG9lalZDb1ZpMFZk
CjE5MXVONVJGa3FSUUtCUU1CaUV1S0RQKzRsL01CSXFBc1dGVytCY3JRZ1JJWm1oVmVGYVdaV2dY
K1NXbUJGMkNZaEM5MVhWOVoyZG4KZG5aMmFXbko0L0g0L2Y2OXZUMVpsZ09CQU1keGUzdDdxcXF1
cjYvWGFyVjJ1ejA0T0hqNDhPR3RyYTNGeFVWWmxnOGNPT0J5dVZaWApWemMyTm5SZGowYWpvaWp5
UEMrS1lpd1dHeDBkSFJnWThIcTlmcjhmTTdRS0JNcUZBZENXQzZ0Zy9aZGNWbHVsUC9yb0l5eTgz
VzZICk9rSHVOcHV0M1c1cm1vWi84VE9PNDRyRjR1dXZ2NjRvU3IxZTkvbDhITWVGdzJHZnp5Zkxj
bmQzOStEZ29NZmpLWmZMaVVRaWtVamsKOC9uZTNsNVlZTEZZekdhejVYSVpIbFdXNVhnOFBqVTFO
VHc4ekRCTVBwK25hZHJ2OS9NOEg0L0gzVzYzS0lyeGVEd2FqWEljcCt1NgpMTXVWU3NYbGN1bTZY
cTFXb2RYUUJTSU1DQloyUVF4NFA0UVFyME9jT0pRRVZ2R01pVzV2YjFlclZWM1hGVVZwTkJwWWRW
VlZoNGFHCnN0bHNLcFh5ZXIwOVBUMzkvZjNkM2QzVmFuVnpjM052YnkrVlN1VnlPUmlucnV1NGVi
bGN6bVF5VHFkVDEvVmtNcG5MNVhSZEZ3VEIKWnJQVjYvVm1zK24xZXNmR3hzNmNPZlA4ODgrTG91
aDJ1M1ZkNXpqTzcvZGpBb3FpUVB1c1V5SWVGRlBiUndLMEpmTEFBUEE5cStwegpISWZWeW1henhH
c3BpZ0svVWk2WEh6MTZKRWtTeDNGNDArbDA5dmIyZG5aMlFyQzZycmRhTGNSWXNvNkZRbUZoWVdG
M2Q5ZG1zeFdMClJRaVo1M203M1c2MzIxbVczZHJhU2lRUzgvUHpzN096My8zdWR3OGVQTmhxdGZE
b1NxVWlDQUtSa0RVUVlCRWhWZmhVMXJCY1ZnRFIKYnJkaHFNU2hJYUJsczFtOENkMUdyRyszMndR
aFlWMUtwZExpNHVMYTJ0cms1R1M5WG9jY0twVUs1bW0zMnltS2FqUWErWHkrVUNnZwo1RElNSTRv
aVFCekRNQTZIUXhURmJEYWJTQ1RxOWZxaFE0Y09IanlJUnp1ZFRrM1RYQzRYNEFTeFE2dXpoTlpB
Y3ArREFTdXNzWVlnCk1rbmcxZlgxOVdhejJXNjNlWjRuOFZCUkZOZ01ZQURtZ0g4cmxRcjBCVExI
R3VOdVVBMzRHRWdBa2xRVXBWS3A1UE41ajhlREdOaG8KTkJLSkJPQXhWQlNCcWxnczRsbEVPYTJL
U1p1NGw3WGEyek9PaTN3YnIyVlpMaGFMR3hzYkJEcmpxYmlSTE10T3A1UGdkU0FZdDl0ZApLQlRJ
U2tQNFdCVGdac3dUWUpDb0djd1NDMGRSVkx2ZHJ0VnF4V0tSb3FpT2pvNTZ2ZDVxdGVyMU9zSWVG
SWMyTVRvSkIwQ2R1Q2RyCnhRcFdSMHdzazhEYVpyT1p6K2VUeVNSTjA1SWtTWkpVcTlYZ2ZnVkJD
SWZEMEFpR1lkeHVOL0tHU3FYaThYaGdwYlFKWDl2dE5sQVIKQWhYY0c4L3pVUDVXcXdVNVErd1ly
dFBwM05uWldWaFlpRVFpZ2lEQWNDaUtpa2FqbFVxRndGM0VSb3dXZDhQa240SjFWZ3NtWXNRawo4
ZmhxdGJxMXRkVnV0OTF1dDl2dGhzcEpraVNLSW9UWmFyVmtXU2JRbWVmNWFyVktWQWpvL0JtOEJ1
TmhHQVpBRCtDV1lSZ0FRTnlOCm9xaWJOMi8rNUNjL2VmTGt5ZVRrNU9qb3FNL25LeFFLOVhxZFJB
dmM4SXZoZ0FKMnBVMUFoOWtUY0NjSVFyUFpoRXBrTWhtUHgxTXEKbFRpTzgzZzhyVlpyYjI4UG9i
WFpiQllLQlNJaUVvZzFUVk5WbGVNNHVFUkprbUNXSG8rbnU3djcxS2xUSG8vSGJyZG5NcG1IRHg4
dQpMeTlEc1JHZm9iR3lMUE04NzNLNTRJYzJOalorL09NZmQzZDMvOG1mL01taFE0ZmNibmU5WGlm
NmlWbGdnYUNySkp5d0JCblFUK005CmhtR3ExU3JCVmo2ZnI5bHNycXlzMUdvMUFrME53MmcwR28x
R0E2T3hvbWNTREFuQ2FqYWJGRVVORGc1KzYxdmZldTIxMXdLQmdOUHAKWkZtMlhDNC9lZkxrenAw
N0Z5OWV2SG56Sm1NbWFMVmF6VEFNaDhPaDYzcXBWSUszcDJrNm1VeCs4TUVIa1VoRUZFV0h3L0ZN
L21BTgorNStEQVpMRldNRUFIR0M5WHZkNFBPMTJHeTcrOGVQSDE2OWZSOEFrd29jL0ZBUUJWb2VJ
MG1xMWNGdWd0bmE3N2ZmN2p4MDdkdWJNCm1hbXBxV0F3aVBBRjZ3b0dnN0ZZYkh4OGZIQndjSHg4
L0ZlLytsV3RWcU1veXV2MTF1djF2YjA5U1pLNnVyb3FsUXB1VzYxV0wxeTQKOE9hYmI0YkRZYmd4
NnlTLzZEZ3BpbUt4MkFRbGtJVWg2d0czdWJXMTlmSEhIeTh0TFRtZFRpUzRSRThROTFxdEZ1YVBw
OXJ0OW1Bdwo2UGY3anh3NU1qbzZPalUxRlkxR1lmeGdPb0FOY0N1SHcrSDMrNy82MWE5T1RVMk5q
WTFkdkhqeDAwOC9iYlZheUU1VVZTMlZTZzZIClExVlZHR0VtazBtbjA3RllEQSsxWWgyTTJUcEpt
cVpaNHQ4SkpNQlhWVlVWUlJFcTEyNjM3OTY5ZS9YcVZRd0xubDJTSk9nUGJ0VFQKMCtQMWVqMGVE
NVRUNC9IMDlmVjFkWFc5OXRwclpBVTVqbU5aVnBibFVxa1VDQVFNd3lDY0NITGxycTZ1SC96Z0I0
Y1BIMzcvL2ZjdgpYYnBVTHBjRlFkQTByZFZxd1lCcnRSclA4NjFXYTNaMmRueDhuQ0NRWjVTV01y
TlRpR28vbjhSYkpJV0RFMmRaRmpSVXJWYTdmLy8rCjl2WTJMQVJlbnVkNW44OG5pcUxQNXdzRUFy
RllMQmdNUmlJUmw4dkY4N3piN2U3bzZBaUh3NlZTU1JBRW51ZmhoM0JibjgrSDhBTy8Kd25FY3FC
T2J6YVpwMnBlKzlDVy8zejh5TW5MMTZ0VTdkKzdJc3R6WDE1ZlA1d09CZ0tJb0ZFVXBpdkxaWjU5
QjhpUkJzYzZUc3BBSgpORTJ6UkltSkpQRTludWVoUzVJa2JXeHNKQklKT0d2SU1CQUlEQThQZDNk
M2U3M2VlRHplMWRYRmNad2tTVTZuVTVJa1VCdmdwaHdPCkI1WVB0cXBwR3NoQnhOSjkyTVd5MEJv
OHZWd3VpNkw0Mm11dmpZNk8vdk0vLy9PVksxZEtwUkpFN1hBNDZ2VzZydXVaVE9iMjdkczkKUFQw
K240OU16N0F3RzFZYWdTVUVqelZqaHVWVUtoVzh5R2F6aFVMQjZYU20wMm1lNS8xKy84VEV4TW1U
Sjd1N3V4RW5nOEZnS0JRQwpFb0pIWVZsVzEvVkdvMkczMnhWRkFYN0F4UEExd0YzRE1CQWVSVkcw
Mld5dFZrc1FCSWZEZ2ZqcDgvbUN3U0J5RklaaElHMVpsaUdsCmh3OGZRdWEwbVhCYURmS3BkQVJy
akdmRHFiSXNDLzBCZWJPN3U4dHhYQ0FRcUZRcVRxZXpYcThmUG56NGxWZGVPWExraU1mamNibGMK
OFhnY1lpZlR3NjNoUWtuZW9DZ0t3ZE1rbThQNmFwcUczQXBmUTBCeXU5MWVyM2R3Y0xDL3Y5OHdE
SS9IazB3bVgzMzFWUWc4bVV3KwplZkprZm40K2s4azBHZzA4RkpRYVFqZHRJVFQybjBTMGxNaGRG
RVVvbU4xdUQ0ZkRTR1RCNVJ3N2Rpd2FqYklzRzRsRUVBOWdWNFJsCmd4Smk3YXhZaW9CSjYwT3Rs
MkVZUE04REcwRUxSa2RIRHg4KzNOSFJBUU5qR09hZGQ5NUJZZ214QTk4RERDUEFnb2FHL2VNdlF5
anoKWjl3c0lTQUVRWEM3M1dBckdJWkIraTlKa2l6TGRydGRGRVhEek1lUkNzTGtvQVVlajRjZ0Ir
c0tHcFkwMXdxU0NjV0dyTjh3akw2Kwp2aE1uVG95T2pyYmI3ZjcrL21xMU9qTXpNejA5SFl2RkVv
a0VRQklTUzhwayttRDJWdWkyUDhsbjFwV3NoOTF1eDdlRHdTQ1NQVW1TCllMU0E3QlJGUVZkYlQx
OGtueVlTZm9aTnN6bzVxNmlCYjUxT3A5MXVCLy9VMmRrNU9qb2FEQVpwbWw1ZVhxN1ZhaU1qSThQ
RHc1RkkKWkdWbEpaL1BJMUFUbnBIZ1dITHRKemhrMHNUSHd2V3BxZ3I0ZXVEQWdYQTRURElNRU1H
TlJrUFRORW1TbXMwbVNYTndRK2dxWUJEOQpCYXovVEV3akY4Rk0wRnNBR2ttU09qczd6NTQ5dTc2
K1BqOC9mK2ZPblVLaHdISGNxNisrMm1nMGxwZVhLNVVLWWcvS0xjQVAxbVZsCmlNTzFYbGdNV1ph
cjFhcW1hUjZQWjNoNE9CZ01JcXhoQW9qZ2xVcWwyV3hXS3BWR285RnNObHV0Rm9hSURBT0ZFSEtS
eFNaaDJqbzkKS0FoMHAxNnZJL2RIY3V4MnU4K2VQWHZvMEtGU3FYVHg0c1ZDb2JDN3U5dHNObjAr
My9MeWNqS1pWQlFGSUJFQjNKbzY2N3IrMUQrawo0SU1McmgvOHYyRVlLR09CZlNrVUNpQjc0Qmp0
ZG51bFVxbFVLdFZxdFZhclljS0tvaUIyazRzQUR5andNL01FQ0tITTBwQXN5NmdtCklJeEZJcEhm
K3EzZjZ1am9lUHo0TVZiNTh1WEwyOXZiR3hzYkN3c0xlM3Q3Z2lEQUZBbFgvamwydFU2U3NvQllD
TVRoY0RpZHprYWoKc2IyOW5VNm5rWCs1WEM0UWR2RjRIUDROR1RNY29KWDhoejhrc1pkTWhqTFJs
VldTbUtTaUtENmZ6MmF6d2VBWnM0TFNhclZHUmtiNgordnFheldheFdBd0dnNDhlUGRyYjJ6dDgr
UER5OHZMdzhIQTBHc1hTd0F0YTZhdDk0TVpZV0Vrays0cWl1TjN1YXJWcXM5bENvZERzCjdDd2t3
N0pzTXBuTTUvT3FxbnE5M29NSEQxSVVCU0VqZ3F1cTZuQTRrQ3NIZzBHR1lTcVZDcncwU2FZaHJt
S3hDSldHU1FQV05ob04KU0UrU3BIUTZUVkVVR01CeXVmemd3WU5Iang1eEhKZE9wd09CQU5pZGxa
VVZsbVdkVG1kSFJ3Zm9RaXdXS0JWY0xCWWViMUZtbUFZNgpKNWE1c3JKeS8vNzlUQ2FqNjNvNm5V
Ymt3SUxCUXlDMUkzVTdWVlZoV2dCb2tpUWhGMnMybXh6SE9Sd09lQlNQeDRNblF1YUtvcWlxCkdn
d0dtODBtWWxnK245L1kyT2pwNlRsNjlHaXoyVXdtazZWU1NkZDFRQlNXWlp2TlpyMWVYMXBhTWd4
amZIejgyTEZqa1VoRWx1VkMKb1lCVWMxK1NFQjFqS1JEQVFTR2pwMm02VnF2ZHZYdjN4bzBibVV6
RzYvVm1zOW1CZ1lHaG9TR2Z6OWZaMlFsS0c3WG5WcXVGZUZpdApWajBlRDh1eTBHcFM5QlZGRVds
S3NWaVVaUmw0QS9rcUZnV2hHTkVMQTVpYm04dG1zMGVQSGwxZVhwNmZud2RHNys3dWJyVmE0WEI0
CmUzdTdWcXVwcXByUDU0dkZvcXFxd1AxMnU5M0tYVDFsa3pCV1RCdUpPYy96K1h4K1lXRmhjM01U
RWJYWmJDSjhZUkNRUEg0aVNSSU0KVzFWVmZCa0VLWlRUNFhESXNweEtwUllXRmg0K2ZGZ3FsYWFu
cDBkR1JrakJyMVFxd1F0Z3VXVlp4aU9XbDVkM2RuWWtTWUovTGhhTApvaWllUFh0MmFHaW9VcW44
OUtjLzNkN2VoaEVLZ2xBdWwxbVd4Vm9RajgyUytQWk1VRWFJVTFVMWxVcHRibTRDMzJtYXRyYTIx
bXcyCkZ4WVdvTFJ1dHpzUUNQajkvcDZlbnZIeGNhUXY4SEpRN0VxbGtzMW1xOVZxc1ZoY1hGeDgr
UEFodEE0MUVpU2lXRTI0UjFtVzRiMWsKV1VhT0JyK2R5K1ZxdFpyYjdRNkZRb2NQSHg0WUdMaDE2
OWFkTzNlZ2QrMTJ1MVFxQVhVUjBFOGd4K2VTTkw1UVdxWW9xbDZ2bDBvbApWVlVCZEhSZHoyYXp4
V0lSU1laaEdBQjlraVNCbTNLNzNXQmZPanM3bDVlWG56eDU0bks1NXVibVZsWldjcmxjT3AwRzEr
eDBPamMyCk5qNzg4RU5rRWkrKytPTFkyQmpIY2RWcUZYZ2RCUytQeHdNR2hLS29iRGFyNjdyWDZ4
VkY4ZDY5ZTd1N3U5ZXVYZHZlM3ZaNnZVaFcKWkZsdU5wdm81MEJ1L2JtNldxTXpZeWxaa3lEbThY
aDZlbm9LaFVJcWxVTDZnNFFEdEpxaUtLamtvQ2pnZERxN3U3dkQ0ZkM3Nzc0cgp5L0tISDM2WXkr
VlNxWlNpS0JnM3lwTFZhbFVVeGUzdGJZcWlvdEhvMXRaV1IwZEhNQmlFNnlMcHBTQUlyVllybDh2
SnNwekpaRnd1CjE3Rmp4K3IxK3R6Y25DaUtMNy84c2lSSlY2NWNBYzhDV2d4Qm04VGh6NzByd2F0
V2VXcWFCbXdkaThWcXRkclcxbFlxbGRKMUhlREcKWnJPSm9raFJGRHdFYkFtVTdPN3VialFhL1oz
ZitaMnVycTVVS29VZzVIUTZLWXFxMVdvMFRZUElSSXF6czdOejRjS0ZYLy82MXlkUApubnpublhl
bXA2ZlJEMExUZExGWWJMVmFjTTdsY2htREdSb2FXbDVlaGd2OHhqZStBWko2ZTN1NzJXenlQQjhL
aGNCM2tSVDg4emhKCjB6U29SNlN6SE1jUlpnVkxjdURBZ1V3bTgrREJBNTduUWMvQk1TTG5SRCtF
dytIQXA1cW16Y3pNZ0JRK2YvNzgrKysvWHk2WEVRWTEKVGZONnZhVlNxYSt2NytEQmc0SWdvR2ds
Q01MTm16Y0ZRVUExSGlRZ1NwUTJtMjFuWjRlbTZYYTdQVEF3a00xbWs4bGtOQm9OQkFLSQpUTWVP
SFd1MzIrRncrRXRmK2xLMVdrV3N0Z3FNb2lqYm0yKyt5VmlxQ0FRV0Vjb1U0c3BtczQ4ZVBVSVJq
akJBYnJjYlgvRDVmUGw4Cm5pUWNmWDE5d1dEUTUvUEY0M0c0b21ReVdhL1hDV2pPNS9PeUxJK09q
bzZQajRPVkx4YUxUcWZ6NE1HRDBXZ1Vmb3VtNlZLcGRPdlcKclVRaUlZcGliMit2cG1ucGRCcjE3
RmdzTmpJeTR2ZjdPem82aG9hR1JrZEhBNEVBYmJMeUdCNlpsKzNOTjk4azJJcGtkRWhEQ2ZZRApG
Ykt5c3JLN3UwdkVpRFFLeFN5S292QW1nTTc1OCtkUG5qeloxZFdGZkJvVmRUakdiRGFMMmttOVhy
OTM3OTdLeWdwTjArRndHUHJjCmFyV21wcVljRGdlcVp0VnF0VkFvbE12bEF3Y09uRHg1c2xnc3pz
M05JY0RDeDBhalVWbVdJNUdJSkVuN21zbXlZTnVlc2tuSzBvNUUKY2dVNFphZ2Y2Qm0vM3grUHg5
ZlcxZ2pqaGt6SzZYUWlMNmxVS3NDcjdYWWJtQVlQaU1WaUw3MzBVcjFlLytpamp5aUtpc1Zpa1Vo
awpmWDI5djcvLytQSGpwMDZkYXJmYitYeGVFQVNvVExQWkJINUFTamsxTlZVb0ZIcDdleWNuSjFW
VnZYbnpacVZTUWUwTXZnRGtvQ3pMCktMQ1RWQmFWUll6QjlwM3ZmRWMzYTJZa0ZVSzBRRFlNMkVu
VE5JSVZ3QnBOMDZJb2dsTUNlb1lrV1phTngrTnZ2UEVHWEdXajBVQlYKWTNoNEdGQWVZYkM3dTd0
V3ErVnl1V0F3ZVB6NDhVT0hEb1ZDSWEvWDI5L2Y3M1E2VVFnRDllNXdPUEw1L01EQXdPRGdJTU13
Q3dzTAo2K3ZydXE2UGpvNCs5OXh6U0d0Uk1nS1pxSnZ0YUtUVmd3YTViTFZSSW1KSUhGb09ZUTRN
REJ3OGVEQ1ZTb0diOG5xOWRydTlXcTIyCldpMlh5d1gxN3VucGVlV1ZWNzc4NVM4ekRGTXNGZ0ZF
K3Z2NzgvazhPUFVUSjA1VXE5WGQzZDNUcDA4Zk9IRGc2TkdqU09MQXJ5TnMKSU1PaUtNcHV0eU5h
Qm9OQnU5MCtNREF3TVRGeC8vNTl1OTNlMWRYbDkvdkJIdVR6K1hBNDNHcTFhcldhMStzbFpVK1Mz
OWplZU9NTgpvTEJuc2o0Z1FGSkxROUtFZU5EYjI0dWhkSFoydXQxdXZFZ2tFbU5qWStmT25Ydnh4
UmY5Zm4rcFZGSVVCWm9NS09OeXVUWTJOdGJXCjFxTFI2UGUrOTcycHFTbS8zKy96K1VENVlUUmRY
VjJvdDVPc1RaYmx6YzNOZUR3T25ySlFLT3pzN0hSMWRYM3RhMThiR1JsQkkrTDEKNjlkQktSbUc0
WGE3MGE1aFpkQnQzL3ptTjBtVjI1cmFvVlNNZ0dHWVRZREZZakVVQ3IzNDRvdXFxcTZ1cnFJYXQ3
cTZXaWdVWG43NQo1ZWVlZTI1aVlnSnJHUTZIN1haN3NWakVjalFhamE5ODVTczlQVDJxcW01dGJj
M096Z0pZZ3pjQ2JBSzBBUE9QdWwyajBjaG1zeXNyCks4RmcwT1Z5R1laUnJWYnorWHhQVDgvMDlM
VGY3MWRWOWVPUFAvN2J2LzFiWGRkUnAzQzVYT1Z5R1Y4bWMyRWJqUVpCcmZ0bWFyTWgKa0FBS3d5
d2xTVUozWnpnY3BpanF6Smt6TE1zdUxDd2NQSGp3aFJkZWNEcWRNek16Nit2ckd4c2JCdzRjUU9C
T0pwUG83d0Vsa1VxbAplbnQ3ejU0OSs4WWJiK1R6K2QzZFhUaFZraEpBZ0tRSXJTaksrdnI2N3U3
dXIzLzk2ME9IRG9HWWpVYWpmL2lIZndob0NreHkvLzc5ClVDaUVFSUFWOUhxOXlKK0kwcktBQVNT
RVVDYmJSY2dJdyt4RVpGbFdrcVRidDIrTG9qZzhQRHc1T1RrNE9JaTBtT080MWRYVlhDNzMKd2dz
dmtCNUNBRUJGVWJxNnV0YlgxeDBPUjZWU2dWVjdQSjU0UEk1NkVRWUVJa0xYZGF4TFBwOWZYVjI5
ZXZYcWpSczNRUE9VU2lXZgp6d2RmU3BrTXh1Ym1aakFZZlBubGw0OGZQKzd4ZUlEcEVmRGdYZmNO
a0hyNklsZ0JnZHV3OUwyd0xJdEYydG5aS1JhTGZyOC9Gb3NCCkowVWlrY0hCd1hhN2pXS0JZUmhn
Z0FSQjZPenN2SC8vUGpxK3NGaWpvNk1vTFlJS0pNOUNYcC9KWkZSVlRhZlRxNnVyMTY5ZjM5emMK
SEJ3Y3JGYXJkcnZkNy9lN1hDNThNeEFJb0JBK09EaDQ2dFNwUTRjT3dTNUliR01zcERaakpkRm9z
K2NYUkJCSkZDbVRNVUNMNVBiMgpkcVZTUVdLS0pNdmxjdjN5bDcvYzJkbEJ5dzVRQzRJSDVGYXRW
aTlkdWdTOHRyR3hnVENJWEJuRVBHcVBXMXRiNVhLNVVxbklzdHh1CnQzZDJkcHhPWnp3ZUIzNUFr
b204REtzdlNkTFkyRmc0SEVZVThYcTlETU9nTVlURUQ0cWlUT0R6Zi9XQVFKSUVKeGhtY1h0emN4
T3QKY0R6UFJ5SVJYZGMvL1BERFR6Lzk5UGp4NHgwZEhhSW9vdWJSYnJlejJXeXBWTUlxNVBQNW4v
emtKd0Fvd0lQd01kRFljcmxjTEJiWAoxdFlXRnhldlg3K3U2enBxekpGSVpHQmdZSFIwbEhEcUxw
ZExGTVZHbzFHcjFWd3VWelFhUldvT2VJQXB3RjFUWnBLODMxaGtQRjNjCk0wd1NHcWtuWGlDSWpZ
Mk4vZXhuUHdOVklRZ0NXSW5MbHkrUGo0K0hRcUZrTXRuVjFZWDZMRkZYUUpad09Qem5mLzduaVVU
aXIvN3EKcjN3K0h5d1oybDZyMVZDaUtSUUtxNnVyWHErM3U3djc4ZVBINCtQakl5TWpYcS8zeXBV
cnp6Ly9QRWdEUVA5Q29hRHJPaHdzU2lQTgpack5VS29GNXNsb2ZUZFA3QVAyTEYyQTZUQkZvQmg0
L0dBeGV2WHAxYVdrSm1lU2RPM2Z1M2J2WGJyY2JqY2JDd3NLREJ3OGcvRWFqCmdad0FPU0dhdUhw
NmVqNzg4TU5FSWhHTHhRZ2NBNnlENjU2Ym0yTlpkbkJ3TUJxTlpqS1o4Zkh4OGZIeDI3ZHYvL1Zm
LzNVb0ZISTYKbmRWcWRXTmpJNS9QSTRFRzNFSHVCaWVIMUE4UmdjaU1OWjRtN1luR0F1ekNzNU5h
RmNNd2tVams5T25ULy9WZi8zWDU4bVd3VlpWSwp4ZTEyKy8zKytmbDVpcUkrL3ZoanU5M2UzOThQ
bUpyTlp0SGY4NmQvK3FmdnZQUE8rdnI2KysrL3Y3YTI5dFpiYjNWMmRsSVVKVWtTCjZBSzBmQThP
RG9xaW1FcWxYbi85ZFdUbjkrN2RVeFRsei83c3ozN3Y5MzZ2cDZjbm44K0hRcUhSMFZGSmtrQ0xR
cmFrdk05WXlFZEkKa29XaUEwbVJaZ3FiMmR3REQ0VCtBOXlDcHVuVHAwOS84TUVIU0NuOGZqOVNy
Y25KeVVhanNibTVhYlBaeXVYeXJWdTNrRlh6UE85MApPdDk0NHcySHc4R3k3SGUvKzEyTzQzNys4
NS8vM2QvOVhXOXY3OFRFeEsxYnR3WUdCbDU2NlNWQkVJNGVQZXB3T0ZDUWhISW1rMG5RCkpiRlly
TkZvK0h5K2taRVJRUkRBK2dHdndqUjB5MllFZUNZU0JWbkNjek5tUXc5bE5rVVRlSVVMVnFRb1Nq
Z2NQbkxreU96c0xKTGEKY0RnOFBqNU9Hdm5RSllhNmlOZnJQWExreUFzdnZIRDY5R2tRSDBlT0hO
RjF2VnF0L3VkLy9pZkRNRjFkWGQvKzlyZi80aS8rWW5sNQorUi8vOFI5RG9SQ2NPVUlMbG1sMGRM
U3JxeXNXaS9YMzkvZjA5TGpkYnF3NG5MOWhhU2FuTGRWQlluY1VSZG5lZXVzdEVqbklEQ0ZTCkFC
ZnlKc3FQSUxXS3hlSzFhOWRFVVFTZDBkM2RQVEF3c0xPemc5Wk9SVkhRUFBIbEwzLzUvUG56SjA2
YzZPN3VwczFxREZEeGl5KysKdUxhMmR1Zk9uV1BIam1VeW1TZFBuZ3dORFFVQ0FUaGVVUlRobG5a
M2Q3MWU3NGtUSjhiSHh6czZPdUJhRWVoSjVlWVpuaEh6dE1ZTAoyMi8rNW0rUzVJTVlxKzNwQzlZ
TSt4WkZFUlh2eno3N0RML0NIcWE5dlQxZDF5T1JDSDVDVVZRNEhENS8vdnpSbzBkQm1lTExDR0xq
CjQrT3FxazVNVEV4T1RsNjZkS2xZTEo0N2QyNWtaQ1NiellaQ0lZWmgwUGlONm1Ba0VrRVF3aHlR
dGFJNlNLenUvNXdrZWZPcGZTNGsKS3RKbUl5dmtqcTV1cUM1MkJQVDI5cDQ2ZGVydTNiczJtNjFX
cXlXVFNYUVVxS3BhTEJiRDRURHc1TmJXVmo2Zmh4dXNWcXRnSlVGMgpRRXJmL3ZhM0dZYjVmLy92
LzRIZDdPenN4Rk9Bem9QQklFaDZ4dXlCZ2gwU1FoUmxjMEp3VzZlZ1d6cTFXSUxkaUVMdkIxQ1di
WnRiCmkwam1vdXM2QUgwMEdoMGZINzkvL3o1RlVXaGk4Zmw4UHA4dmxVbzFtODFzTmx1cFZEUk55
K1Z5bHk5ZlJ0TUx6SlZobU4zZDNVUWkKTVRJeWN1VElFVVZSaG9lSDIrMTJQQjczK1h4NDMrbDBL
b3FTU0NSV1ZsWkE0Y0RCWUhwUVk4ckMrbHNsWkZqYVhjakZrbWFOejVFZQp3OER4R0dhWENIUURy
eHVOQm9obWxKa0IwTkQ4ZnViTUdmUlU1L1A1dWJrNXQ5dmQwOU1UaVVTUUtNYmpjVTNUc3RuczB0
TFN2WHYzCkRNUDQxcmUrRll2RkhqOStyT3Q2SnBOSnBWTFkyS1NxNnU3dTdwTW5UL2IyOWppTzYr
enNKSFZWWkNkRVMwSEUwSlltSk1QczNiRk8KZUg4M3dUTStDcUdHQkZNU1p1Q2ZVUFpKSnBNVVJT
R3I1amp1OGVQSDlYcGRsdVh6NTgrZk8zZnUzTGx6c1ZnTVpUd3MvK3JxNnZ6OAp2TmZyZmZYVlY3
LzJ0YThCTGRScU5UU0JYcjE2bGVmNWwxOSsyVzYzNTNJNTlLN3dQTi9iMjRzOG1EU29JUWFDNE5I
TWJRR1VoZnUzClRtZC9rZ2lHcEVSSmZBOXQ3a3piOThLbU1XQldIbzhuRkFvcGlpSkpVcVBSNk9y
cTRubCtlWGxaRk1XZi92U25WNjVjNmV2cnc2YzIKbXkwZWozL3l5U2QydS8zZGQ5Lzl5bGUrc3Jl
M3AybGFQcDlQcFZLaFVPaktsU3RlcnpjWURLYlRhWEJReVdSUzA3UlVLdFhUMDBPcQpsN0I1Vkky
YXpTWXFpK2ludGJvZkROWHFkV2lhWnJXbjkwaDgvb0dweGtScGNhSERKaEFJN096c1JDS1JUQ2Fq
YVJyeWtsZ3NWcTFXCnM5bHNxOVY2L1BoeHBWS3AxK3V4V0N5ZnowOU1UUHpvUno4YUhoNHVsOHRv
RDBra0VsdGJXL2Z2MzBjMUNlMml5V1JTbG1WWmxoOCsKZkxpNXVZa09IbzdqVXFrVTNBL2dJYUF2
dGlFZ3JtSnN1dGxhWmp6ZHljSmFNWjdWTXEzaXRocTYzKzh2RkFvbzFvTWNRZm9UaVVUUQpvREEy
TmxZcWxRcUZ3dlBQUHgrUHg3dTd1KzEyKzhURXhNaklTREtaZExsY3BWTHA1czJiVjY1Y0FmcHRO
bU9HMUZrQUFBOTRTVVJCClZKdHV0OXR1dDhmajhWUXF0Ymk0V0tsVXJsKy8zdC9mUHo0K0RzTkJF
Z1BLdDFxdHVsd3VUZFBBSWNGRTZhZTdlSTJuMjZCWWt1L1EKbG0yazVLLzFJL3dlRS92WGYvM1hk
RHBkcTlWNmUzdEJSbUNCSFE3SEs2KzgwdG5aK2Vtbm4zWjJkdjd3aHo5RS96OFdaWDE5L2NHRApC
Ly83di84cml1TFMwaElBRFdBVGRLZFNxWHp5eVNlNDFjbVRKd2NHQnRDNDV2ZjdaMmRuWlZrK2ZQ
Z3d4M0VvalNERHRKcmwvM25SCk5NMWFFeFByOUVqOHBDM04yL0N1ZHJ0OVpXVUZiWkdoVUFqTGpK
MndMNzMwMHNHREIydTEyc1RFaENpS2MzTnorWHgrZVhuNXhvMGIKaUwzejgvT1BIajA2YytZTUFy
M2Rib2NDY3h5M3RyYTJ1N3U3dDdmbjlYcS8vdld2ejh6TVFIUTh6MlBMeE5MU2tzL25pMFFpYURJ
RApIL2xGQmJUaTAzM25RakpqcS9sUlp0dkZNOHF0Nnpvc0h1MGVZRU82dXJwMFhkL2EydXJzN0N3
V2kvLzkzLzhkaVVRTXc5amEyanA0CjhPQm5uMzBHcklmaTRZRURCNGcvcTlmcldEVk00KzdkdTRn
WktIV2d5a0JSRlBLbVlERDQzbnZ2T1ozTzExNTdyYk96RTBSN3E5VWkKVERtWnJWV0d4SU95cEVl
SnNteDFvWjZPdHVSZjhCUlRVMU8vL09VdlFWVlFGRlV1bDBPaFVMbGMzdDNkamNmakR4OCtMQmFM
bXFhdApyNi9Mc2x5cjFYcDZlZ0tCUUwxZVQ2ZlQyR21JOUkraUtGUXZLcFZLc1ZqTTVYSWRIUjNZ
Yitad09Gd3VGellQWXdmZTl2YjJyMzcxCksxVlZYMy85ZGIvZmovellLa1BpSGEzRHBzaVdDVEly
NitzdlRoS0VFTS96cDA2ZG1waVllUERnZ2FacGlVUUNVTUhyOVc1c2JKUksKSlpxbWM3bWN6K2Rq
V1RhZFRrdVNSTHh1TUJqRS9pUnNMZ0VoMEc2M1VYSUVNSjZlbnU3cDZjRWNHSVlCMmVGd09BUkJX
RmxaUWNTYQpucDUydTkyQ0lEUWFqV2Y4alc3dXV5S1R0UDN1Ny82dWJyYlhNWmFPS2JJRndtWnV2
c1h6SEE0SE9zSkRvVkNwVkZwZlgwYzdQSnArCmdOM2hHT3gyZXo2ZkJ6ZUIxbU5zaEVKcERVZ05U
aExsR2p4dWJHenM5T25UZzRPRHNWZ01YUTRZZHpLWnZIVHBrcUlvcFZJcGxVb2gKRTNRNm5iQm5p
UFFaSVgwdVNmZ1kwdnBCZkF6cGtpT0tTbEVVR29mUm5uZjQ4R0ZabHJlM3Q1ZVhsMkc5NE5RWTg1
QUJCSEZpMk5hLwpGRVhoU0FIRGJJbkF0QU9CZ00vbmkwYWowRWFTY0dEaFFLdUNBZnlYZi9tWCtm
bjVyMzcxcXlkUG5vUnhBcW1qWFFOQm5reG5IOFZiCkovTU1DSHdtYkVKekVFaGVldWtsbG1Vdlhy
eTR0TFMwc2JGQldkSnpUZE5RcTBUVVFjSFA2c01RL2FDclNKRTlIcy9Bd0FCMnZ6cWQKVHN5Zk1V
OHQyTnZiZy8xTGtxUW95dTd1TGx6eDR1SmlmMy8vb1VPSGVudDcwWTllcTlYcTlUcTQrWDJnWmsy
dWlXWVRrbzRremNCRApVRjNVNnByTlprZEh4K3V2dno0NE9Iano1czIvK1p1L3FWYXJzaXlqWVJG
bFZzM2NjNjFibWtESkMraXFZUmhJdnVGMWdYTEF4S0xlClNOTTB4M0ViR3h2d2tiVmFUUkFFN0Rp
NmZ2MzZ2WHYzNHZINDBORFFnUU1IaG9hR2hvYUd1cnE2Z3NFZzRRQUE0bG1ydzRYL0JNNEEKcGlW
QkJYNGZiZ0Q3SlVxbGt0dnQ5dmw4b0Z0dE5wdkQ0U2dXaTgxbUU1dnZDYXhuTEgwbDhPU29Bc0dZ
Y1lZQytzQm5abVpDb1pCaApkbWFRTFdlcnE2dHV0OXZwZEdZeUdXeWhKSVBjM3Q1T0pCS1hMbDJL
UkNKVFUxUEhqaDNyNit1THhXSit2eCs5eUt4dTJhTm1qUzJVCnBlbkZlSm95TWN5cU5lUTJQei8v
czUvOXJGd3VkM1oyVGs5UFAzbnlCT2dFNGVHTG1rS1pQZTZOUmdPdGRtaEhuSnljL1A3M3Z4K0wK
eFlqVjJHdzJsQ2pUNlRRYVhGRUxhTGZiYUdWeHVWeG9DRWVrVGFmVCtYeit4bzBiZ2lCTVQwOFBE
ZzVPVGs3MjkvZXpKS1d5em9HeQprQ0J3UDhTSURjTUEyd2xiUjlYcDRzV0xUcWZUNy9mUHpNdzRu
YzVQUC8wVTByYkdYc29zWUlPYklidElBVjltWm1iZWZ2dnRreWRQCmdpSUNMd0VMMUhWOWNYRVJl
UmwrYU0yZXNia0d2QXo4VGJQWmJEUWFQLy81ejhHYlJLTlJ4c3JUNFVJdGhCQTgxazlKV1FhTWFL
VlMKdVhUcDBrY2ZmUVEySFhzR29XeVUyU3h2UmIva1dUUk5WNnRWd3pEZ2RjYkd4djdnRC83ZzNM
bHptNXViMENEZ1VsaHNwVks1ZmZzMgpNQ0NzQUNrQnFVd1QvMFNNSHdoSlZkWEhqeDlmdTNadG55
bUhmaE9wR3VZaEhTUm1XbWtlNElHbHBhWExseTlmdm53WlViSFZhbzJQCmo2TjRqdm8rRm9qMHZZ
RDdnOUlpYkFRQ0FWbVcrL3Y3LytpUC91anMyYlAxZWgwUkg0RW5FQWlnTFVHVzVXdlhybEVVaFpv
SEdxNGMKRGdkY0lOa3ZadVVwQWN1QUIyMDIyLzUrQVdRU21DUXBwSkhPU2t5WVlSaEZVZENEdXJT
MHRMcTYrdWpSSSt6amhsc0htSTVHb3lNagpJeXNySzZWU0tSd083KzN0K1h3K1VENG9RcmZiYlpm
THRiZTN0N096ODl4enovM29Sejk2NFlVWHF0V3FxcXArdjc5YXJUcWRUdUErClRkUDhmditGQ3hm
UVBZaEZSKzVpbUhzWVNSWkNtKzBOY0d4b1Y5aG5Nd0JsSURGNEZLdzM1b3hnaFoyRDJXd1dmVmty
S3l0TFMwdTUKWEs3UmFNREY0NllvdjRiRDRXOTg0eHV0VnV2Q2hRdDdlM3R1dHh0RmRVd0FBYVpj
THIvMTFsczh6My96bTk5RU9RQXRzb3FpSUN0QwphY3poY0pUTDVZOCsrZ2h3SEo2TXVHaG9MQW55
eE1vSUgvczU0Z0dEd0pxbnVKRGtRemZQVGdMcG1FZ2s3dDI3dDdhMnRyQ3drTXZsClVNcUZyeU9k
UFRCOWxtV25wcVlDZ1FDb2paV1ZGVWdtbjgramxEODJOdmJidi8zYk16TXpZRWJRanVmMyt4ME94
OTdlWGlBUUlCc1AKYVpyKzRJTVAwSFpxTTl2bk5mT2dCSlEzeVFZVUV0dXQwWjR5V1E3V1poNmla
RTArRUk1THBWSTJtMFd5Ky9EaHc2MnRMV0FvcURUUgpjQ2loeldZREtLL1Zha2VQSHUzdjd6OXo1
c3l0VzdldVhMbnk2TkVqVlZVOUhzLzN2dmU5ZDk5OWQzSnlFbjRGM1RJNDFLUmVyNlBUCkFuZW1L
T3JHalJ2dnYvOStxVlFpOElVSWdJQUgycVRhbnRGYmEvQm5HY3ZaR1N6TEFueWlYQUZjdXJpNHVM
S3lBdnFZM0FnT1RUVjMKWTdIbVhpQVVRbUEvNkxBN2UvYnNtMisrK2Q1Nzd5VVNpZTk4NXp2bnpw
MnoyV3lsVW9reFM2VU13emdjRGtWUndHczBHZzJ2MTR0VApFbVpuWnpjM056RVpPR3I0WjFnZEFS
dTBKY1duekkxd1QzVkprbGVNMmI2RHZkZ1BIanhZWFYyZG01dkRsaWgwYVBJOGo0MERKS0lRCmdB
WnNqV2VnSlFCTjhZSWdURTVPL3VWZi9pVzZDRkR4aHBNRStrTlpHcXVEWmFMTTZqMjZFQWs4SkJH
SXNPTUVzUkQ0U1hJUnhrSWQKUDdWSkZPZFJwTlBwVENaei9mcjE5ZlgxOWZWMWhIVVUwa0Zrb1gr
TllDc29qQ0FJUFQwOURvY0REZ01kWmw2dkY1N0dack9SWWlhWQphR0I5ekFyUkM5cUJTZUx2OVBU
MEwzN3hDeFNWeVJsVXVHano2QzJDTjJFN1JKK2hrbEI3bHBpaUxNdnBkSHBoWVdGdWJtNWpZMk5q
Cll3UDNRcmtHTy9waDZCUkZoY05oZEMyb3FncklRcHVWQlZtV0Z4WVcvdUVmL3VIUm8wY0FzVU5E
US9GNHZGQW9MQzh2dDFxdDBkSFIKeWNuSmtaR1JVQ2pVMjl1TGRsSE4zSXpBOC96dDI3ZWJ6ZWJo
dzRjdlhMaUFPSUhUeHpSTlF6YUxqZXZJRTZDOWlKd0lqMUFUMHYwSQpsV1pSazFwYld3UExSRTdj
SVlVUWtrUG81bVl6K041NnZZNFVBUWZOTEMwdGRYVjFaYlBaUC83alAzN3c0SUhmNzg5a01nNkhn
M0R0CldJdDBPdjNKSjU4VUNvVm9OTnJSMFhIZ3dJSHA2V21nNmtBZ2NQSGl4ZmZlZTI5K2ZqNFdp
OEVidVZ5dVRDYkRtWWR1WVREZ0I5SFcKUjFzT0F1UE1iWXlHdWVHVnBta1cyOWtYRnhmdjM3Ky9z
cktTeldaVjh5dzVrdnRSSmo5QVVSUWNETzZPbG1TTzQ3eGU3enZ2dkRNeApNYUZwMnZ6OC9OMjdk
d0VrME5CRkZNeG03aHBCOVJ2dHZMZHUzZnFQLy9nUEZDVDlmajg2V3lSSnltUXluWjJkdVZ3Ty9r
a3pUMzBoCldNb3dtKzhRV2xWenN6SGVoKy9ZOTY3WHIxL2YyTmlZbjUvZjNOeEVMczlaenBRZ2pw
Z2dXQUJYUEFsWWo2S29jK2ZPL2VBSFAram8KNk1obXM0OGZQd2JEalVRQlpRek9QTWtQZ1I1NERV
b0ZHSXdWY1RxZGxVb0ZGWjZkblIxNFhiUmh3L01CR3lKRVE4bnhQbFlCb3FiTgpzeDFKZEdRLy92
ampYQzZYeVdUUVBzMllKNmdRMXVTWkZLUmVyOE9Yb0xrRFgvdis5NzhmQ29Wa1dVYlRHSHdZRWs3
QVdyVFlZNU1zCkVDWmxIanRRclZZRlFZRHFkbloycGxJcGhtRktwUkpZSHhnaGFpcEVvUkN4T1BO
SVE5d1FrOFNXQ1F5TWRGMnhEeDQ4UUdUSFVSQ2sKcHFtWm0wZndMeUdVU0x5cTFXcm9JTVpPVmFD
LzlmWDEyN2R2MHpRTmgwbU9sOEJ0Q1ErQ2dhTFhISWVqd0NBem1jenM3Q3drR1FnRQo0TWFCWmht
elBZeHdia0RrRUNsOEJDbWkwalNOSFZINzJKWG9Ia0ZEK0Rhd0NHVnBYQ0xaT3BhVEZNK09IRGtD
MFQxOCtQQ2YvdW1mClB2bmtFeHhSaGhvemZDYTRSaFIyb0Foa2F6YlA4emdMcmRWcTRhQXRuREts
NnpvMmlkSTBUUXliUkQ4U0o5R3JvWnA3NGNpUm0yUkQKR3NNd2JEQVlSTkFqRXRQTlU2cUlYMlVz
bFdhUTFvcWlrR1RuMUtsVEVNaVBmL3pqZi91M2YzTzVYREFHZEN1Q2lkc25Xc3pUVlN1Vgppcy9u
Mjl2YjgzZzhvaWdDOTN1OTNrS2g0UEY0a0lWaER3Yk1HQkFLRHQ5NG12Nm16UTRKbTNud0ptYU9n
MS8ySzZ1SUZvYUZMOVROCjZqeHVBZFVuOUNTSUJ2QlVvaWk2WEs0alI0NXdISmZMNVdablozRVNF
VVZSMVdvVjVJMGtTYkJKeEgzZ2FZUWZFTGJvVTRkcGRIUjAKQkFLQlJDTFIwZEVCL2dhaEdKMTN1
QlVnSGtDbDErdkZlVHBZUHR3Y3JyVmNMbU5EcnFxcSs1UWtnVWlVU1RRQkdWSmZxT0VCSldNRQp1
cTZqN1lSbFdWUUVFSFd4c2Nubjh5RmVvMnlLd0kzdGQzRDlMTXVpNU43VjFSVUtoVERWZXIzZTM5
Ky9zcklTQ29VUTBDdVZDbnd2CnlqQ3dUSFJoNFlRWk11QmFyVll1bCtHdWtSNEJpckdrKzV5eDhP
cUdwU0JMZElPMmxJMlFTZVB3UkhEazJHeEdLRWFnM0wyOXZVZ2sKZ3YzdGlPTW9oSUVRT25IaXhD
dXZ2REk1T1luSkFFczFtODNsNWVYZi8vM2ZSeGMvOWtZejVtR0IxdVUyVE1yYk1Edkt5RHRrSThj
KwozTEVPM1FvQVNOMlMzQlRmTWN5eUQ4cXZ3OFBESE1jMW04M1BQdnRNVVJRSXBGcXRsc3RsTkp6
QjE0Mk9qbjc5NjE4L2NlSUVXbFlvCjgzUlJHRGt5YjlvOGRiUlNxV0NsNEg0UWhBZ1lvQ3lIYW1L
RHJhcXFkcnNkWjZ1Z1N3Tk5hYUJPZEYxbnlheXNBQUFPalV6YmVQcFUKVlpMNENJSXdNREFBYzRk
RHl1VnlPTDRaZy9CNFBJMUc0K3paczIrLy9mYk16QXoyOTFKbWZ3TWtROElBWUdxdFZydDI3UnA4
SThkeApicmZiNFhEVWFqWEVRemhuMmp3WUZhRUl0NExuQnhqQU8zQkNOcHZ0OC80UXpkTFRBblJp
alR5VXVXK0xzUDJnWkhwNmVoQ3lmdmpECkgzcTkzZzgrK0FETlNuNi9IMjRnSG8rLy9mYmJ2L0Vi
djZGcEdqWWlZdzhiVVNKVlZRSDBVRHkyMiszWmJEWWFqV0pmR0VWUnJMbE4KQkg5SjJRYjJSbEFY
WTFhck1EM01ncFJHV0tnZlpTbmRXWFdZZXBxSnhTNWNHRWt3R0F3R2c0Wmg4RHgvK3ZUcHZyNCtw
OVA1Ny8vKwo3NkJrQkVIbzd1NCtkKzdjOGVQSERjUFkyZG5CUVhDS29vQUVRRXVNM1c1SGtxbnJl
cVBSZVBqd1lUcWRSaWoyK1h6WUk0RjBqellKCkdvUm9aRWk2cmdNcUlCQmdJZHJ0ZHFGUU1FenU1
LzhESmMrY1VjaGRURHNBQUFBQVNVVk9SSzVDWUlJPQoK
</data>
<flag name="review"
          id="9071"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>