<?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>18662</bug_id>
          
          <creation_ts>2008-04-21 11:14:38 -0700</creation_ts>
          <short_desc>Extend keyboard navigation to allow directional navigation</short_desc>
          <delta_ts>2011-02-19 07:45:52 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>35346</dependson>
    
    <dependson>35402</dependson>
    
    <dependson>35432</dependson>
    
    <dependson>41157</dependson>
    
    <dependson>41160</dependson>
    
    <dependson>42474</dependson>
          <blocked>33714</blocked>
    
    <blocked>33715</blocked>
    
    <blocked>35699</blocked>
    
    <blocked>35701</blocked>
    
    <blocked>35875</blocked>
    
    <blocked>36020</blocked>
    
    <blocked>36168</blocked>
    
    <blocked>36463</blocked>
    
    <blocked>36773</blocked>
    
    <blocked>37092</blocked>
    
    <blocked>37135</blocked>
    
    <blocked>37461</blocked>
    
    <blocked>37634</blocked>
    
    <blocked>37635</blocked>
    
    <blocked>37802</blocked>
    
    <blocked>39195</blocked>
    
    <blocked>39217</blocked>
    
    <blocked>39439</blocked>
    
    <blocked>54806</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Marco Barisione">marco.barisione</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>alp</cc>
    
    <cc>aroben</cc>
    
    <cc>caryclark</cc>
    
    <cc>dglazkov</cc>
    
    <cc>emacemac7</cc>
    
    <cc>eric</cc>
    
    <cc>gavin.sharp</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung</cc>
    
    <cc>hamaji</cc>
    
    <cc>hausmann</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jesus</cc>
    
    <cc>joone</cc>
    
    <cc>joseph.ligman</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>michael</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyul</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78430</commentid>
    <comment_count>0</comment_count>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-04-21 11:14:38 -0700</bug_when>
    <thetext>Currently it&apos;s possible to navigate through links and widgets using tab, shift-tab and enter. For accessibility and embedded devices it would be useful to allow the user to move to the link at the left/right/bottom/top of the current focused link, like on the gecko-based browser on the Nokia N810.

The keys should customisable by the app to allow better integration with hw keys on embedded devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79432</commentid>
    <comment_count>1</comment_count>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-05-02 07:16:58 -0700</bug_when>
    <thetext>This bug is not specific to the GTK port, so I&apos;m changing the subject and component.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79433</commentid>
    <comment_count>2</comment_count>
      <attachid>20923</attachid>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-05-02 07:33:15 -0700</bug_when>
    <thetext>Created attachment 20923
Add directional navigation to WebCore

I set the review ? flag because I need a review and some help but the patch is not ready to be committed as is.

Some comments:
1) realLocation() is just an hack, I didn&apos;t find a better way to do it and atm it doesn&apos;t work with iframes. I tried with RenderObject::absolutePosition() but it returns the position of the block containing an &lt;a&gt;, not of the link itself.
2) I added new values to FocusDirection and then we have only one public method to move focus, but it just calls two different private methods based on the direction. Is it better to have 2 different public methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79434</commentid>
    <comment_count>3</comment_count>
      <attachid>20924</attachid>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-05-02 07:40:55 -0700</bug_when>
    <thetext>Created attachment 20924
Navigate through links using CTRL + arrow keys

This one is needed to test the previous patch, but I don&apos;t think it&apos;s the right solution because I would like to be able to configure the keys used for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84114</commentid>
    <comment_count>4</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2008-06-22 23:58:09 -0700</bug_when>
    <thetext>quick comment- you don&apos;t need an extra check for tabIndex &gt;=0, since that check is included in isKeyboardFocusable.

With these new functions, the tab order specified by tabindex will be ignored.  But maybe if you&apos;re using arrow keys to navigate, that&apos;s not important- is that right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84126</commentid>
    <comment_count>5</comment_count>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-06-23 03:25:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; quick comment- you don&apos;t need an extra check for tabIndex &gt;=0, since that check
&gt; is included in isKeyboardFocusable.

I will fix it in the next version of the patch.

&gt; With these new functions, the tab order specified by tabindex will be ignored. 
&gt; But maybe if you&apos;re using arrow keys to navigate, that&apos;s not important- is that
&gt; right?

Yes and the normal navigation using (SHIFT-)TAB will be still available without any change (so it will use tabindex).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87655</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-08-01 17:06:46 -0700</bug_when>
    <thetext>How can we test this?  Who do we have who can review this well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87678</commentid>
    <comment_count>7</comment_count>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-08-02 02:16:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; How can we test this?

The second patch allows to test this using CThttps://bugs.webkit.org/show_bug.cgi?id=18662RL+LEFT/RIGHT/UP/DOWN.
I&apos;m not sure that hard coding these keys in WebCore is the best option but I don&apos;t know how to do that in another way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87766</commentid>
    <comment_count>8</comment_count>
      <attachid>22634</attachid>
    <who name="Marco Barisione">marco.barisione</who>
    <bug_when>2008-08-04 10:47:55 -0700</bug_when>
    <thetext>Created attachment 22634
Add directional navigation to WebCore

Updated patch. You can test it with CTRL-LEFT/RIGHT/UP/DOWN.

The algorithm I use to select the closes link in a given direction is not perfect but seems to work better than the one used for instance by mozilla on the Nokia N810 Internet Tablets. The main problem with every algorithm is that the layout of a page is very different for the grid-like layouts normally used for user interfaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89598</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-08-27 20:53:50 -0700</bug_when>
    <thetext>By &quot;how do we test this&quot; I mean, providing a html file which explained what keys to press to test, and the expected results, tried this in different combinations (like inside content editable, etc.) and again explained what the tester was supposed to see.

http://trac.webkit.org/browser/trunk/WebCore/manual-tests
is where such tests would go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89834</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-08-31 18:54:56 -0700</bug_when>
    <thetext>could this not be tested in DRT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89836</commentid>
    <comment_count>11</comment_count>
      <attachid>22634</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-08-31 19:11:42 -0700</bug_when>
    <thetext>Comment on attachment 22634
Add directional navigation to WebCore

This is great patch.  I think for it to go in we really need a way platforms too choose whether to use this or not.  Perhaps it can go in Settings.  Some style issues follow.  r- for the platform choice issue for now.

         if (event-&gt;keyIdentifier() == &quot;U+0009&quot;)
             defaultTabEventHandler(event);
+         else if (event-&gt;keyIdentifier() == &quot;Down&quot; || event-&gt;keyIdentifier() == &quot;Up&quot; ||
+                 event-&gt;keyIdentifier() == &quot;Right&quot; || event-&gt;keyIdentifier() == &quot;Left&quot;)
+             defaultArrowEventHandler(event);

There are some whitespace issues here.

inline IntPoint realLocation(RenderObject* render)
inline int rectangleDistance(IntRect rect1, IntRect rect2)
inline int rectangleDistance(IntRect rect1, IntRect rect2)
inline bool isPointAboveAntiDiagonal(const IntPoint&amp; rectPoint, const IntPoint&amp; point)
inline bool isRectAboveMainDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)
inline bool isRectBelowMainDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)
inline bool isRectAboveAntiDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)
inline bool isRectBelowAntiDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)

These should all be marked static to get internal linkage if they are not inlined.

+            ASSERT(false);

This can be written as ASSERT_NOT_REACHED();

+class BestCandidate

This should be a struct,  

+{

{ should go on the first line

+public:
+    BestCandidate() : node(0), distance(INT_MAX) {}

We like to style this as 

BestCandidate()
    : node(0)
    , distance(numeric_limits&lt;int&gt;::max())
{
}

+    for (Node* candidate = document-&gt;firstChild(); candidate; candidate = candidate-&gt;traverseNextNode())
+        if (candidate-&gt;isFrameOwnerElement()) {

The for loop should have braces.

+    Node* focusedNode = focusedDocument-&gt;focusedNode();
+    if (!focusedNode)
+        // Just move to the first focusable node.
+        // initialFocus is set to true so the chrome is not focused.
+        return advanceFocusLinear(FocusDirectionForward, event, true);

This if should have braces.  Our rule is that if there is more than one line (code or comments) we use braces. 

+    if (!node)
+      // Leave the focus on the same node.
+      return true;

Here too.

+    if (!node-&gt;isElementNode())
+        // FIXME: May need a way to focus a document here.
+        return false;

And here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103709</commentid>
    <comment_count>12</comment_count>
      <attachid>26291</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2008-12-29 05:57:17 -0800</bug_when>
    <thetext>Created attachment 26291
Add directional navigation to WebCore (v3)

+ addressed all sam&apos;s suggestions in comment #11 (https://bugs.webkit.org/show_bug.cgi?id=18662#c11)

+ added Settings support, so no need to set CONTROL as a modifier, IMO (although modifiers as mozilla&apos;s snav has would be good).

ps: in order to locally test the feature I set &apos;F12&apos; as the toggle ON/OFF for the keyboard-navigation/scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103710</commentid>
    <comment_count>13</comment_count>
      <attachid>26291</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2008-12-29 05:59:23 -0800</bug_when>
    <thetext>Comment on attachment 26291
Add directional navigation to WebCore (v3)

carry sam&apos;s review

ps: btw, it worths to say that the core of the patch is the same as the previous ones. I just addressed reviewer comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>103855</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-30 20:45:59 -0800</bug_when>
    <thetext>The realLocation() function should just call localToAbsolute(), and the code needs to do something useful with transforms. Consider just using absoluteClippedOverflowRect().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104299</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-03 20:45:31 -0800</bug_when>
    <thetext>There seems to be some overlap between this and bug 22935.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104300</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-03 20:46:05 -0800</bug_when>
    <thetext>Oops, sorry, wrong bug number. That one is about directional navigation, but not the one I was thinking of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104302</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-03 20:46:48 -0800</bug_when>
    <thetext>There seems to be some overlap between this and bug 22740.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104576</commentid>
    <comment_count>18</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-01-06 10:55:46 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; The realLocation() function should just call localToAbsolute(), and the code
&gt; needs to do something useful with transforms. 

humm .. not really. Option below works better.

&gt; Consider just using absoluteClippedOverflowRect().

absoluteClippedOverflowRect() can do the work realLocation does fine, however  both do not take frames under consideration: the position of nodes inside frames are relatives to the frame not to the outermost document. is there a good way to get the absolute position of a node (relative to the outermost document always) in a webpage ? if not, I can handle it by my own.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>104739</commentid>
    <comment_count>19</comment_count>
      <attachid>26499</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-01-07 11:31:48 -0800</bug_when>
    <thetext>Created attachment 26499
Add directional navigation to WebCore (v4)

Same patch as in comment #12 + recursive support to frames / iframes , and name in it.

It also uses absoluteClippedOverflowRect() as per Simon&apos;s suggetion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105143</commentid>
    <comment_count>20</comment_count>
      <attachid>26499</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-10 15:22:45 -0800</bug_when>
    <thetext>Comment on attachment 26499
Add directional navigation to WebCore (v4)

I like the general direction this is going in.

I do see many problems, though.

It&apos;s critical that the patch include test cases, not just code changes. And a change log entry.

&gt; +        else if (event-&gt;keyIdentifier() == &quot;Down&quot;
&gt; +                 || event-&gt;keyIdentifier() == &quot;Up&quot;
&gt; +                 || event-&gt;keyIdentifier() == &quot;Right&quot;
&gt; +                 || event-&gt;keyIdentifier() == &quot;Left&quot;) {

This list is long enough that I think we should make a helper function isArrowKey that takes either a key identifier or a KeyboardEvent*. Maybe it could also return the focus direction so you don&apos;t have to repeat the list of key identifiers.

&gt; +            if(m_frame-&gt;page()) {
&gt; +                if (!m_frame-&gt;settings())
&gt; +                    return;
&gt; +                if(m_frame-&gt;settings()-&gt;enableKeyboardNavigation()) {
&gt; +                    defaultArrowEventHandler(event);
&gt; +                }
&gt; +            }

The page and settings checks checks should be moved inside defaultArrowEventHandler; in fact, the check for a page of 0 is already in there.

Also, need a space after the if statement.

&gt; +    if (!page-&gt;tabKeyCyclesThroughElements())
&gt; +        return;

What&apos;s this tab check check for? That seems like a copy and paste error. And if not, needs a comment to explain it.

&gt; +    // FIXME: Are CTRL-arrow keys needed in design mode?
&gt; +    if (m_frame-&gt;document()-&gt;inDesignMode())
&gt; +        return;

It seems wrong to check design mode specifically here. I think the check you want is about whether the document has editable text, or whether the insertion point is inside editable text or if not, if the entire document is editable. Despite its name that seems to imply otherwise, design mode is just one of many ways to make a document or part of a document editable.

&gt; +inline static IntRect absoluteRenderRect(RenderObject* render)

We almost always order it as &quot;static inline&quot; rather than &quot;inline static&quot;.

&gt; +{
&gt; +    ASSERT(render);
&gt; +    // FIXME: consider &apos;transforms&apos; ?

Not sure why you put the word transforms in quotes. You should use more normal formatting here and write something less uncertain:

    // FIXME: This function is flawed because it doesn&apos;t consider the effects of CSS or SVG transforms.

&gt; +    // handle nested frames.
&gt; +    if (Frame* frame = render-&gt;document()-&gt;frame()) {
&gt; +        while (frame) {
&gt; +            HTMLFrameOwnerElement* ownerElement = frame-&gt;ownerElement();
&gt; +            if(Node* node = static_cast&lt;Node*&gt;(ownerElement))
&gt; +                rect.move(node-&gt;renderer()-&gt;offsetLeft(), node-&gt;renderer()-&gt;offsetTop());
&gt; +
&gt; +            frame = frame-&gt;tree()-&gt;parent();
&gt; +        }
&gt; +    }

This checks frame for null twice. Since you have the while you don&apos;t also need the if. Also, that while should be written as a for statement. And the inner if statement should be checking ownerElement for 0, not a separate node variable. There&apos;s no reason to copy the ownerElement into a Node*; you can call the functions directly on the HTMLFrameOwnerElement.

It&apos;s not correct to use the offsetLeft and offsetTop of the frame owner element&apos;s renderer because that&apos;s just the distance from the offsetParent, not the absolute position. Instead you should use one of the localToAbsolute family of functions for this.

&gt; +inline static int rectangleDistance(IntRect rect1, IntRect rect2)

These should be const IntRect&amp; -- we don&apos;t want to copy them.

I think the title should say &quot;distance squared&quot; rather than just &quot;distance&quot;.

I think there may be excessive use of &quot;inline&quot; here. It might be making the code bigger and slower than it needs to be.

The code should to be written so that overflow doesn&apos;t make extremely distant elements seems to be very close. That might have to start with a rectangleDistance function that can handle overflow.

We want test cases that try to put elements at very far-away positions to see if overflow gives us the wrong result.

&gt; +inline static bool isRectAboveMainDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)

I don&apos;t understand the name &quot;rectPoint&quot; for this point. What&apos;s a &quot;rectangle point&quot;?

&gt; +    // Check if some points belonging to rect are above the y = x + c line passing for rectPoint.

Passing &quot;for&quot;? Do you mean &quot;passing through&quot;?

&gt; +    return (isPointAboveMainDiagonal(rectPoint, rect.location())
&gt; +            || isPointAboveMainDiagonal(rectPoint, IntPoint(rect.right(), rect.y()))
&gt; +            || isPointAboveMainDiagonal(rectPoint, IntPoint(rect.x(), rect.bottom()))
&gt; +            || isPointAboveMainDiagonal(rectPoint, IntPoint(rect.right(), rect.bottom())));

No need for the parentheses here in this expression.

If it wasn&apos;t for the brokenness of those functions, I would have suggested you use the named functions like bottomLeft() and bottomRight(). But they&apos;re broken in design, so I won&apos;t suggest you use them here unless someone fixes them and converts the old callers.

&gt; +inline static bool isRectAboveAntiDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)

I believe antidiagonal is one word, so the &quot;D&quot; should not be capitalized.

&gt; +static int distanceInDirection(Node* start, Node* dest, FocusDirection direction)

&gt; +    // The bounding rectangle of two consecutive links could overlap, so we decrease the size of
&gt; +    // both rectangles.
&gt; +    // FIXME: Is there a better way to do this?
&gt; +    startRect.inflate(-4);
&gt; +    destRect.inflate(-4);

The comment needs to indicate where the constant 4 comes from. Why is 4 good enough? Why not 3 or 5?

And we need a test case in the regression tests directory that demonstrates that 4 is a good choice.

&gt; +        , distance(std::numeric_limits&lt;int&gt;::max())

Should do &quot;using namespace std&quot; at the top of the file and not say &quot;std::&quot; here.

Also, this code uses both INT_MAX and numeric_limits&lt;int&gt;::max() in the same algorithm. Lets chose one or the other.

&gt; +        } else if (candidate != start &amp;&amp; candidate-&gt;isKeyboardFocusable(event) &amp;&amp; candidate-&gt;tabIndex() &gt;= 0) {

Why the explicit check for tabIndex() here? That seems like it should be the responsibility of isKeyboardFocusable? Is there any special reason you&apos;re ruling out items that have a negative tab index? If so, I think you need a comment and if the rule really needs to be different than isKeyboardFocusable then it should be encapsulated in a function like isDirectionallyFocusable (or some better name).

We need a test demonstrating and double-checking which elements are and are not focusable with directional navigation.

&gt; +bool FocusController::advanceFocusDirectional(FocusDirection direction, KeyboardEvent* event, bool initialFocus)

The name isn&apos;t great here because &quot;advance focus directional&quot; is not good grammar. Even advanceFocusDirectionally would be slightly better, but it&apos;s not a good name either because &quot;forwards&quot; and &quot;backwards&quot; seem like directions to me. Maybe advanceFocusGeometrically? You should think about what you&apos;d call this in conversation and see if you can convert that into a name.

The meaning of the initialFocus argument is quite unclear.

It would be better if the algorithm was expressed in terms of Element* rather than Node* from top to bottom. I&apos;d rather see that handled right when we go from the renderer to its node, rather than higher up.

&gt; +bool FocusController::advanceFocusLinear(FocusDirection direction, KeyboardEvent* event, bool initialFocus)

This is not a good name. Moving forward and backward through the document is not &quot;linear&quot; -- it doesn&apos;t go along a line. I&apos;d suggest advanceFocusInDocumentOrder perhaps.

&gt; +    , m_enableKeyboardNavigation(false)

Unfortunately, &quot;keyboard navigation&quot; already has a meaning, especially to the visually impaired, and I don&apos;t believe it has anything to do with using arrow keys to move between elements based on their geometric position. We need a name that&apos;s more specific to what this feature is.

I&apos;m not sure I like the idea of coding in the key bindings to the arrow keys. But since, for good or bad, that&apos;s what this turns on and off, the name could be shouldUseArrowKeysForDirectionalNavigation or something along those lines.

I think we should consider exposing the directional navigation to JavaScript somehow, so we can test it even in a browser that has the end-user binding turned off.

Something like commands for execCommand, but maybe not that because there could be compatibility consequences of adding something there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105157</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-10 15:45:42 -0800</bug_when>
    <thetext>*** Bug 22740 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105353</commentid>
    <comment_count>22</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-01-12 12:10:27 -0800</bug_when>
    <thetext>Darin. Thank you the the nice review. Please comments quoted below.

&gt; It&apos;s critical that the patch include test cases, not just code changes. And a
&gt; change log entry.

I thought of the following tests:

* table traverse.
* test page w/ many iframes, nested probably.
* page w/ disabled html elements (which should not get focused).
* form integration (not supported in the current patch).
* elements far away from each other, to test the int overflow Darin mentioned in rectangleDistance method.
* testcase varying the inflate value (currently hardcoded as -4).

What do you think ? I will work on it.

&gt; &gt; +        else if (event-&gt;keyIdentifier() == &quot;Down&quot;
&gt; &gt; +                 || event-&gt;keyIdentifier() == &quot;Up&quot;
&gt; &gt; +                 || event-&gt;keyIdentifier() == &quot;Right&quot;
&gt; &gt; +                 || event-&gt;keyIdentifier() == &quot;Left&quot;) {

&gt; This list is long enough that I think we should make a helper function
&gt; isArrowKey that takes either a key identifier or a KeyboardEvent*. Maybe it
&gt; could also return the focus direction so you don&apos;t have to repeat the list of
&gt; key identifiers.

right. helper method added:

FocusDirection EventHandler::isArrowKey(const String&amp; keyIdentifier)

&gt; &gt; +            if(m_frame-&gt;page()) {
&gt; &gt; +                if (!m_frame-&gt;settings())
&gt; &gt; +                    return;
&gt; &gt; +                if(m_frame-&gt;settings()-&gt;enableKeyboardNavigation()) {
&gt; &gt; +                    defaultArrowEventHandler(event);
&gt; &gt; +                }
&gt; &gt; +            }
&gt; 
&gt; The page and settings checks checks should be moved inside
&gt; defaultArrowEventHandler; in fact, the check for a page of 0 is already in
&gt; there.

done.

&gt; &gt; +    if (!page-&gt;tabKeyCyclesThroughElements())
&gt; &gt; +        return;
&gt; 
&gt; What&apos;s this tab check check for? That seems like a copy and paste error. And if
&gt; not, needs a comment to explain it.

yeah, copy and paste error. removed.

&gt; &gt; +    // FIXME: Are CTRL-arrow keys needed in design mode?
&gt; &gt; +    if (m_frame-&gt;document()-&gt;inDesignMode())
&gt; &gt; +        return;
&gt; 
&gt; It seems wrong to check design mode specifically here. I think the check you
&gt; want is about whether the document has editable text, or whether the insertion
&gt; point is inside editable text or if not, if the entire document is editable.
&gt; Despite its name that seems to imply otherwise, design mode is just one of many
&gt; ways to make a document or part of a document editable.

Darin, do you have cases when inDesignMode is true ? rich email compose mode in gmail ?

&gt; &gt; +inline static IntRect absoluteRenderRect(RenderObject* render)
&gt; 
&gt; We almost always order it as &quot;static inline&quot; rather than &quot;inline static&quot;.

changed.

&gt; &gt; +{
&gt; &gt; +    ASSERT(render);
&gt; &gt; +    // FIXME: consider &apos;transforms&apos; 
&gt; Not sure why you put the word transforms in quotes. You should use more normal
&gt; formatting here and write something less uncertain:
&gt;     // FIXME: This function is flawed because it doesn&apos;t consider the effects
&gt; of CSS or SVG transforms.

changed.

&gt; &gt; +    // handle nested frames.
&gt; &gt; +    if (Frame* frame = render-&gt;document()-&gt;frame()) {
&gt; &gt; +        while (frame) {
&gt; &gt; +            HTMLFrameOwnerElement* ownerElement = frame-&gt;ownerElement();
&gt; &gt; +            if(Node* node = static_cast&lt;Node*&gt;(ownerElement))
&gt; &gt; +                rect.move(node-&gt;renderer()-&gt;offsetLeft(), node-&gt;renderer()-&gt;offsetTop());
&gt; &gt; +
&gt; &gt; +            frame = frame-&gt;tree()-&gt;parent();
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; This checks frame for null twice. Since you have the while you don&apos;t also need
&gt; the if. Also, that while should be written as a for statement. And the inner if
&gt; statement should be checking ownerElement for 0, not a separate node variable.
&gt; There&apos;s no reason to copy the ownerElement into a Node*; you can call the
&gt; functions directly on the HTMLFrameOwnerElement.

fixed all.

&gt; It&apos;s not correct to use the offsetLeft and offsetTop of the frame owner
&gt; element&apos;s renderer because that&apos;s just the distance from the offsetParent, not
&gt; the absolute position. Instead you should use one of the localToAbsolute family
&gt; of functions for this.

that is what is hapenning here:

IntRect rect(render-&gt;absoluteClippedOverflowRect());

does get the position of the current node (referred by render in the method) in the Frame it is in.

later, if it node is inside an iframe or a html frame document, we walk up in the frame tree to get the position of the current html (i)frame relative to its parent document and move the rect accordingly. it does such for nested frame until we pick outer document. The offset is absolute.

I tried to use localToAbsolute(), however it was getting me the wrong absolute position values. maybe I am passing wrong parameter ... actually I am not passing any parameter to it. Should that be called ?

&gt; &gt; +inline static int rectangleDistance(IntRect rect1, IntRect rect2)
&gt; 
&gt; These should be const IntRect&amp; -- we don&apos;t want to copy them.

fixed.

&gt; I think the title should say &quot;distance squared&quot; rather than just &quot;distance&quot;.

humm .. the square operation in the method refers to the rectangle distance formula. Does the method have to be named according to how it is implemented ?


&gt; The code should to be written so that overflow doesn&apos;t make extremely distant
&gt; elements seems to be very close. That might have to start with a
&gt; rectangleDistance function that can handle overflow.

would using &apos;long&apos; avoid any overflow here ?

&gt; We want test cases that try to put elements at very far-away positions to see
&gt; if overflow gives us the wrong result.

I will add that test. ok.

&gt; &gt; +inline static bool isRectAboveMainDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)
&gt; 
&gt; I don&apos;t understand the name &quot;rectPoint&quot; for this point. What&apos;s a &quot;rectangle
&gt; point&quot;?
&gt; 
&gt; &gt; +    // Check if some points belonging to rect are above the y = x + c line passing for rectPoint.
&gt; 
&gt; Passing &quot;for&quot;? Do you mean &quot;passing through&quot;?

changed.

&gt; &gt; +    return (isPointAboveMainDiagonal(rectPoint, rect.location())
&gt; &gt; +            || isPointAboveMainDiagonal(rectPoint, IntPoint(rect.right(), rect.y()))
&gt; &gt; +            || isPointAboveMainDiagonal(rectPoint, IntPoint(rect.x(), rect.bottom()))
&gt; &gt; +            || isPointAboveMainDiagonal(rectPoint, IntPoint(rect.right(), rect.bottom())));
&gt; 
&gt; No need for the parentheses here in this expression.

done for this and other similar expressions.

&gt; If it wasn&apos;t for the brokenness of those functions, I would have suggested you
&gt; use the named functions like bottomLeft() and bottomRight(). But they&apos;re broken
&gt; in design, so I won&apos;t suggest you use them here unless someone fixes them and
&gt; converts the old callers.

You mean using IntRect::bottomLeft() and friends in distanceInDirection() ? What is broken in design?

&gt; &gt; +inline static bool isRectAboveAntiDiagonal(const IntPoint&amp; rectPoint, const IntRect&amp; rect)
&gt; 
&gt; I believe antidiagonal is one word, so the &quot;D&quot; should not be capitalized.
&gt; 
&gt; &gt; +static int distanceInDirection(Node* start, Node* dest, FocusDirection direction)
&gt; 
&gt; &gt; +    // The bounding rectangle of two consecutive links could overlap, so we decrease the size of
&gt; &gt; +    // both rectangles.
&gt; &gt; +    // FIXME: Is there a better way to do this?
&gt; &gt; +    startRect.inflate(-4);
&gt; &gt; +    destRect.inflate(-4);
&gt; 
&gt; The comment needs to indicate where the constant 4 comes from. Why is 4 good
&gt; enough? Why not 3 or 5?
&gt; And we need a test case in the regression tests directory that demonstrates
&gt; that 4 is a good choice.

I will add a test for that

&gt; &gt; +        , distance(std::numeric_limits&lt;int&gt;::max())
&gt; 
&gt; Should do &quot;using namespace std&quot; at the top of the file and not say &quot;std::&quot;
&gt; here.
&gt; 
&gt; Also, this code uses both INT_MAX and numeric_limits&lt;int&gt;::max() in the same
&gt; algorithm. Lets chose one or the other.

Fixed. Using &apos;numeric_limits&lt;int&gt;::max()&apos; everywhere now.

&gt; &gt; +        } else if (candidate != start &amp;&amp; candidate-&gt;isKeyboardFocusable(event) &amp;&amp; candidate-&gt;tabIndex() &gt;= 0) {
&gt; 
&gt; Why the explicit check for tabIndex() here? That seems like it should be the
&gt; responsibility of isKeyboardFocusable? Is there any special reason you&apos;re
&gt; ruling out items that have a negative tab index? If so, I think you need a
&gt; comment and if the rule really needs to be different than isKeyboardFocusable
&gt; then it should be encapsulated in a function like isDirectionallyFocusable (or
&gt; some better name).
&gt; 
&gt; We need a test demonstrating and double-checking which elements are and are not
&gt; focusable with directional navigation.

removed &apos;candidate-&gt;tabIndex() &gt;= 0&apos; check. as it is being done in isKeyboardFocusable side.

&gt; &gt; +bool FocusController::advanceFocusDirectional(FocusDirection direction, KeyboardEvent* event, bool initialFocus)
&gt; 
&gt; The name isn&apos;t great here because &quot;advance focus directional&quot; is not good
&gt; grammar. Even advanceFocusDirectionally would be slightly better, but it&apos;s not
&gt; a good name either because &quot;forwards&quot; and &quot;backwards&quot; seem like directions to
&gt; me. Maybe advanceFocusGeometrically? You should think about what you&apos;d call
&gt; this in conversation and see if you can convert that into a name.

&apos;advanceFocusDirectionally&apos; sounds ok to me I left it that way for instance. What do you think about &apos;advanceFocusSpatialy&apos; ?

&gt; The meaning of the initialFocus argument is quite unclear.

&apos;initialFocus&apos; originally is used to indicate if focus will advance to chrome. In directional navigation it should never go to chrome, so I removed the parameter.

&gt; It would be better if the algorithm was expressed in terms of Element* rather
&gt; than Node* from top to bottom. I&apos;d rather see that handled right when we go
&gt; from the renderer to its node, rather than higher up.

Sorry Darin, I did not get your point here.

&gt; &gt; +bool FocusController::advanceFocusLinear(FocusDirection direction, KeyboardEvent* event, bool initialFocus)
&gt; 
&gt; This is not a good name. Moving forward and backward through the document is
&gt; not &quot;linear&quot; -- it doesn&apos;t go along a line. I&apos;d suggest
&gt; advanceFocusInDocumentOrder perhaps.
&gt; 

changed.

&gt; &gt; +    , m_enableKeyboardNavigation(false)
&gt; 
&gt; Unfortunately, &quot;keyboard navigation&quot; already has a meaning, especially to the
&gt; visually impaired, and I don&apos;t believe it has anything to do with using arrow
&gt; keys to move between elements based on their geometric position. We need a name
&gt; that&apos;s more specific to what this feature is.
&gt; 
&gt; I&apos;m not sure I like the idea of coding in the key bindings to the arrow keys.
&gt; But since, for good or bad, that&apos;s what this turns on and off, the name could
&gt; be shouldUseArrowKeysForDirectionalNavigation or something along those lines.

changed.

&gt; I think we should consider exposing the directional navigation to JavaScript
&gt; somehow, so we can test it even in a browser that has the end-user binding
&gt; turned off.
&gt; 
&gt; Something like commands for execCommand, but maybe not that because there could
&gt; be compatibility consequences of adding something there.

Maybe doing this in a follow up bug as it is not core of the feature ?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105360</commentid>
    <comment_count>23</comment_count>
      <attachid>26645</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-01-12 12:37:28 -0800</bug_when>
    <thetext>Created attachment 26645
WIP - Add directional navigation to WebCore (v5)

WIP patch. see comment 22 for reference.

https://bugs.webkit.org/show_bug.cgi?id=18662#c22


missing: tests, change log entry, open questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105396</commentid>
    <comment_count>24</comment_count>
      <attachid>26650</attachid>
    <who name="Joseph Ligman">joseph.ligman</who>
    <bug_when>2009-01-12 14:38:47 -0800</bug_when>
    <thetext>Created attachment 26650
patch from bug 22740

Here is the patch from bug 22740. Not sure if it&apos;s useful at all, but thought I would put it up here nonetheless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105498</commentid>
    <comment_count>25</comment_count>
    <who name="Joseph Ligman">joseph.ligman</who>
    <bug_when>2009-01-13 09:06:12 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created an attachment (id=26645) [review]
&gt; Add directional navigation to WebCore (v4)
&gt; 
&gt; WIP patch. see comment 22 for reference.
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=18662#c22
&gt; 
&gt; 
&gt; missing: tests, change log entry, open questions.
&gt; 

Is it possible to navigate only to focus nodes that intersect the visible view? The point being if you jump to a node that is far outside the current viewport it is a undesirable user experience on small screens. In this case, it would be nice to scroll by a fixed distance in the direction of navigation until the next element intersects the viewing area and then continue navigation as before. This lets the user read pages that have sparsely distributed focus nodes. Navigating frames this way would be great too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105503</commentid>
    <comment_count>26</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-01-13 09:21:20 -0800</bug_when>
    <thetext>Joseph,  we should definitively join efforts :)

1) Scrollby if target node is not in current view port would be great (avoid possible crazy jumps). Does your patch support so ?

2) Currently initial focused node is always the first node in the TAB INDEX. This initial focus shoudl be according to the TAB INDEX, yes, but it should be the first node in the current viewport. If no focusable in current viewport, scroll should be done.

I am right now working on the tests.

&gt; Is it possible to navigate only to focus nodes that intersect the visible view?
&gt; The point being if you jump to a node that is far outside the current viewport
&gt; it is a undesirable user experience on small screens. In this case, it would be
&gt; nice to scroll by a fixed distance in the direction of navigation until the
&gt; next element intersects the viewing area and then continue navigation as
&gt; before. This lets the user read pages that have sparsely distributed focus
&gt; nodes. Navigating frames this way would be great too.
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105509</commentid>
    <comment_count>27</comment_count>
    <who name="Joseph Ligman">joseph.ligman</who>
    <bug_when>2009-01-13 09:53:07 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; Joseph,  we should definitively join efforts :)
&gt; 
&gt; 1) Scrollby if target node is not in current view port would be great (avoid
&gt; possible crazy jumps). Does your patch support so ?
&gt; 
&gt; 2) Currently initial focused node is always the first node in the TAB INDEX.
&gt; This initial focus shoudl be according to the TAB INDEX, yes, but it should be
&gt; the first node in the current viewport. If no focusable in current viewport,
&gt; scroll should be done.
&gt; 
&gt; I am right now working on the tests.
&gt; 
&gt; &gt; Is it possible to navigate only to focus nodes that intersect the visible view?
&gt; &gt; The point being if you jump to a node that is far outside the current viewport
&gt; &gt; it is a undesirable user experience on small screens. In this case, it would be
&gt; &gt; nice to scroll by a fixed distance in the direction of navigation until the
&gt; &gt; next element intersects the viewing area and then continue navigation as
&gt; &gt; before. This lets the user read pages that have sparsely distributed focus
&gt; &gt; nodes. Navigating frames this way would be great too.
&gt; &gt; 
&gt; 

Ok. I will start working off of your patch, see if I can offer help for the view intersection issue. I have a layout test in my patch that might be useful for you. It doesn&apos;t do much, but I think it fulfills the requirement.   </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106757</commentid>
    <comment_count>28</comment_count>
    <who name="Onne Gorter">onne.gorter</who>
    <bug_when>2009-01-23 08:47:05 -0800</bug_when>
    <thetext>I&apos;ve been working on this based on the v5 patch, though heavily modified.

* implements: http://www.w3.org/TR/WICD/#current-focus-point-algorithm , mostly

It handles flowing elements by evaluating each rect individually, not the bounding rect.

Also experimented a bit on navigating out of text-boxes and other input elements. And (for debugging) drawing the focus point and selected element (second patch).

Some weirdness in the code is due to FocusController not being the only one responsible for setting focus and active elements, sometimes elements call back into FocusController after the fact.

What doesn&apos;t work so well is overlapping links (e.g. a list with negative margins on the &lt;li&gt; elements). And other overlapping layers.

Also the rects we use to evaluate other links, likely, are broken in respect to transformations, but I read that those functions will be fixed some point in the future.

The second patch is for experimentation only, it doesn&apos;t draw/refresh quite right. Also it enables keyboard navigation by default, and by just the plain cursor keys.

recap: more work is required ...

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106758</commentid>
    <comment_count>29</comment_count>
      <attachid>26971</attachid>
    <who name="Onne Gorter">onne.gorter</who>
    <bug_when>2009-01-23 08:48:13 -0800</bug_when>
    <thetext>Created attachment 26971
main patch, adding focuspoint spatial navigation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106759</commentid>
    <comment_count>30</comment_count>
      <attachid>26972</attachid>
    <who name="Onne Gorter">onne.gorter</who>
    <bug_when>2009-01-23 08:48:58 -0800</bug_when>
    <thetext>Created attachment 26972
expirimental, highligh focused rect and focus point</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114019</commentid>
    <comment_count>31</comment_count>
      <attachid>28687</attachid>
    <who name="Onne Gorter">onne.gorter</who>
    <bug_when>2009-03-17 06:40:57 -0700</bug_when>
    <thetext>Created attachment 28687
better implementation

updated the patch, many cleanups, better algorithm and also input/textarea and select form elements are keyboard controllable.

I&apos;m only working on this every now and then, so I cleaned up the patch for others to work on. There is a TODO list in the patch.

I would propose we call this &apos;spatial navigation&apos; from http://en.wikipedia.org/wiki/Spatial_navigation , though this is not in the patch yet. (Still shouldUseArrowKeysForDirectionNavigation ... )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114025</commentid>
    <comment_count>32</comment_count>
    <who name="Joseph Ligman">joseph.ligman</who>
    <bug_when>2009-03-17 07:43:36 -0700</bug_when>
    <thetext>Hi Onne.

I&apos;m looking forward to looking at your implementation in more detail. 
Here are a couple of things I found out in my recent attempt at this implementation.
 
1.) I need to limit the search area in my nextInDirection method (see below). This really helps when navigating on a small screen (meaning if a rectangle is not intersected with the viewport I just scroll by some fixed amount) otherwise the users can get lost with long jumps. 

if (visibleRect.intersects(nextRect)) {
    double distance = calculateDistance (direction, nextRect, focusPoint, focusRect, searchRect);
    if (bestDistance &gt; distance) {
       bestDistance = distance;
       bestRect = nextRect;
    }

2.) The other thing I do is navigate frames independently, this way you can move in and out of frames even if there are no &quot;focusable&quot; elements. Where navigateFrame either gets the nextInDirection or scrolls or returns false.
 
if (!enterFrame(direction)) {
   if (!navigateFrame(direction)) {
     if (exitFrame(direction))
        navigate(direction);
     }
}

Most of my implementation has been moved out of the WebKit, and is tailored to small screen devices so I&apos;m not sure if it applies anymore, but I thought those issues might be useful. Since you are still working on this I am going to look and see how it would apply. For me it would be best to add the API &quot;nextInDirection&quot; and not have the WebKit maintain any state information. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114028</commentid>
    <comment_count>33</comment_count>
    <who name="Onne Gorter">onne.gorter</who>
    <bug_when>2009-03-17 08:05:57 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; 1.) I need to limit the search area in my nextInDirection method (see below).
&gt; This really helps when navigating on a small screen (meaning if a rectangle is
&gt; not intersected with the viewport I just scroll by some fixed amount)

I put in a TODO in the code where to implement this. It is not just useful on small devices, also to allow general smooth scrolling with just cursor keys.

&gt; 2.) The other thing I do is navigate frames independently, this way you can
&gt; move in and out of frames even if there are no &quot;focusable&quot; elements. Where
&gt; navigateFrame either gets the nextInDirection or scrolls or returns false.

Good point, didn&apos;t thing of this. Worse, right now frames (or any area with a scrollbar) don&apos;t work so well.

&gt; Most of my implementation has been moved out of the WebKit, and is tailored to
&gt; small screen devices so I&apos;m not sure if it applies anymore, but I thought those
&gt; issues might be useful. Since you are still working on this I am going to look
&gt; and see how it would apply. For me it would be best to add the API
&gt; &quot;nextInDirection&quot; and not have the WebKit maintain any state information.

Not entirely sure if that is true. You would need a lot of support from WebCore stuff in the first place, like &lt;select&gt;, &lt;textarea&gt; and &lt;input type=radio|checkbox&gt;, they need to be aware of spatial navigation. And with frames, likely the best solution involves a stack of focus points. But that will turn into a lot of state duplication externally to get right, and will have difficulties tracking internal webcore state as it changes.

On the other hand, I am currently drawing a mouse like cursor, which is likely a task for outside of webcore at least.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174771</commentid>
    <comment_count>34</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-12-24 06:23:40 -0800</bug_when>
    <thetext>finally working on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179822</commentid>
    <comment_count>35</comment_count>
      <attachid>46370</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-12 06:44:07 -0800</bug_when>
    <thetext>Created attachment 46370
WIP - Add directional navigation to WebCore (v6)   

Updated version of  &quot;WIP - Add directional navigation to WebCore (v5)&quot;. Also WIP

This version (v6) is a followup of (v5) patch, and mostly adds some Layout Test infra structure for the feature, as well as tests coverage for some edge cases (more to come). Specifically about this test infra (see LayoutTests/fast/events/spatial-navigation/spatial-navigation-utils.js), it is based on Mozilla&apos;s SNav chrome test code. I have to check the license and copyright for that ... which i helped to implement.

As I am algo going to improved/re-work the current math algorithm used, I am not marking the patch for review. (but v7 will be ready to be reviewed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180530</commentid>
    <comment_count>36</comment_count>
      <attachid>46537</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-13 20:36:25 -0800</bug_when>
    <thetext>Created attachment 46537
WIP - Add directional navigation to WebCore (v7)

WIP - Add directional navigation to WebCore (v7)

&gt; As I am algo going to improved/re-work the current math algorithm used, I am
&gt; not marking the patch for review. (but v7 will be ready to be reviewed).

Algorithm reworked: superPrecedence logic added for a much smoother arrow navigation experience.

closer to a reviewable version ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180751</commentid>
    <comment_count>37</comment_count>
      <attachid>46576</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-14 09:48:47 -0800</bug_when>
    <thetext>Created attachment 46576
Add directional navigation to WebCore (v8)

Patch v8:

1) Improves the algorithm inicially proposed by Marco Barisione:
* Now it is based on a super-precedence logic, whereas rects whose middle
  falls between the top or bottom of the current rect are preferible to
  move focus to. It falls back to the common eucledian distance.
2) Adds LayoutLayout for the following edge cases:
* table traversal.
* iframe traversal (no scrollable content).
* unit-overflow during distance calculation.
* scroll-in-direction.
* super precedence in vertical direction.


TODO in followup bugs:
* Add port specific hooks to each DRTs to enable/disable Spatial Navigation.
* Form navigation and SNav interaction.
* Better support Iframes with scrollable content.
* Make navigation keys customizable. It currently works with arrows keys only
  (up, down, right and left).
* Make it support modifiers (Alt, Ctrl and Shift).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182113</commentid>
    <comment_count>38</comment_count>
      <attachid>46881</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-18 20:09:38 -0800</bug_when>
    <thetext>Created attachment 46881
Add directional navigation to WebCore (v9)

Patch v9: It has all described in comment 37 plus:

* Fixed frame traversal code.
* Added new horizontal super-precendence layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183965</commentid>
    <comment_count>39</comment_count>
    <who name="Gyuyoung Kim">gyuyoung</who>
    <bug_when>2010-01-23 00:14:59 -0800</bug_when>
    <thetext>I make a try to use the last patch on my linux PC. However, When I went some websites, browser(GtkLauncher) sometimes came to crash during the keyboard navigation. It seems to me that the distanceIndirection() of FocusController.cpp needs to check if renderer of start / end node is null or not. To my knowledge, node can has a renderer or not.(But, I am not sure)

After modifing the source code as below, I don&apos;t meet crash further.

static long long distanceInDirection(Node* start,... 
{
...
  RenderObject* startRender = NULL;
  startRender = start-&gt;renderer();
  if (!startRender)
      return -1;

  RenderObject* destRender = NULL;
  destRender = dest-&gt;renderer();
  if (!destRender)
      return -1;
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184296</commentid>
    <comment_count>40</comment_count>
      <attachid>46881</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-25 09:40:58 -0800</bug_when>
    <thetext>Comment on attachment 46881
Add directional navigation to WebCore (v9)

clearing review flag for now to incorporate further fixes and Kim&apos;s suggestion.

@Kim: Thanks for the input. Could you share the test cases you faced the crashes ? I would hapelly add layout tests to cover these cases as well.

(In reply to comment #39)
&gt; I make a try to use the last patch on my linux PC. However, When I went some
&gt; websites, browser(GtkLauncher) sometimes came to crash during the keyboard
&gt; navigation. It seems to me that the distanceIndirection() of
&gt; FocusController.cpp needs to check if renderer of start / end node is null or
&gt; not. To my knowledge, node can has a renderer or not.(But, I am not sure)
&gt; 
&gt; After modifing the source code as below, I don&apos;t meet crash further.
&gt; 
&gt; static long long distanceInDirection(Node* start,... 
&gt; {
&gt; ...
&gt;   RenderObject* startRender = NULL;
&gt;   startRender = start-&gt;renderer();
&gt;   if (!startRender)
&gt;       return -1;
&gt; 
&gt;   RenderObject* destRender = NULL;
&gt;   destRender = dest-&gt;renderer();
&gt;   if (!destRender)
&gt;       return -1;
&gt; ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185293</commentid>
    <comment_count>41</comment_count>
      <attachid>47581</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-27 17:22:14 -0800</bug_when>
    <thetext>Created attachment 47581
Add directional navigation to WebCore (v10) 

Patch v10

Summary:

* see comment #37
* Fixed crash when trying to focus nodes w/ a renderer (e.g. display:none)
* Implemented support for SNav&apos;ing through scrollable iframe content.
- LayoutTests/fast/events/spatial-navigation/snav-iframe-no-focusable-content.html
- LayoutTests/fast/events/spatial-navigation/snav-iframe-with-offscreen-focusable-element.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185297</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-27 17:27:34 -0800</bug_when>
    <thetext>Attachment 47581 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/page/FocusController.cpp:526:  Missing space before ( in if(  [whitespace/parens] [5]
WebCore/page/FocusController.cpp:926:  An else should appear on the same line as the preceding }  [whitespace/newline] [4]
WebCore/page/EventHandler.cpp:2177:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 3


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185335</commentid>
    <comment_count>43</comment_count>
      <attachid>47590</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-27 21:50:45 -0800</bug_when>
    <thetext>Created attachment 47590
Add directional navigation to WebCore (v10+)

see comment #41 for details (it is the same patch plus style issues pointed by the bot in comment #42)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185337</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-27 22:04:32 -0800</bug_when>
    <thetext>Attachment 47590 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/216467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185339</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-27 22:04:56 -0800</bug_when>
    <thetext>Attachment 47590 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/215568</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185342</commentid>
    <comment_count>46</comment_count>
      <attachid>47592</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-27 22:29:55 -0800</bug_when>
    <thetext>Created attachment 47592
Add directional navigation to WebCore (v10++)

it is the same patch plus as in comment #41 (see details) plus:

* style issues pointed by the bot in comment #42 .
* build issue pointed by the bot in comment #44 and comment #45 .

(sorry about the noise)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185369</commentid>
    <comment_count>47</comment_count>
    <who name="Gyuyoung Kim">gyuyoung</who>
    <bug_when>2010-01-28 00:17:13 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; (From update of attachment 46881 [details])
&gt; clearing review flag for now to incorporate further fixes and Kim&apos;s suggestion.
&gt; 
&gt; @Kim: Thanks for the input. Could you share the test cases you faced the
&gt; crashes ? I would hapelly add layout tests to cover these cases as well.
&gt; 

Sorry, recently, I am too busy. So, I don&apos;t know when the test case will be summited. If I have a time, I will try to summit the test case. :)

I met the crash on websites below,

- http://www.daum.net (Korea famous website)
- http://www.naver.net (Korea famous website)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185561</commentid>
    <comment_count>48</comment_count>
      <attachid>47640</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-01-28 11:57:35 -0800</bug_when>
    <thetext>Created attachment 47640
Add directional navigation to WebCore (v11)

Patch v11:

Summary:
1) Improves the algorithm inicially proposed by Marco Barisione:
* Now it is based on a super-precedence logic, whereas rects whose middle
  falls between the top or bottom of the current rect are preferible to
  move focus to. It falls back to the common eucledian distance.
2) Adds 8 LayoutLayout for the following edge cases:
* table traversal.
* tiny table traversal (which validates the rect inflate value used).
* iframe traversal (scrollable content).
* iframe traversal (no scrollable content).
* iframe traversal (no focusable content).
* unit-overflow during distance calculation (focusable elements 100.000.000px distant from each other).
* scroll-in-direction.
* super precedence in vertical direction.
* super precedence in horizontal direction.

TODO in followup bugs:
* Add port specific hooks to each DRTs to enable/disable Spatial Navigation (see bug 33715 for Qt).
* Form navigation and SNav interaction.
* Better support Iframes with scrollable content (working initial support already implemented).
* Make navigation keys customizable. It currently works with arrows keys only
  (up, down, right and left).
* Make it support modifiers (Alt, Ctrl and Shift).


Diff from patch 47592 &quot;v10++&quot;:
* Fixes issues related to the scrollOffset usage inside iframes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185586</commentid>
    <comment_count>49</comment_count>
      <attachid>47640</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-01-28 12:59:59 -0800</bug_when>
    <thetext>Comment on attachment 47640
Add directional navigation to WebCore (v11)

&gt; diff --git a/WebCore/page/EventHandler.cpp b/WebCore/page/EventHandler.cpp

&gt; +FocusDirection EventHandler::isArrowKey(const String&amp; keyIdentifier)

The name of this method is confusing. An &quot;isFoo&quot; method should return a bool. It should be something like
&quot;focusDirectionForKey()&quot; and at call sites you&apos;d do
if (focusDirectionForKey(s) != FocusDirectionNone) {
...

&gt; +{
&gt; +    FocusDirection retVal = (FocusDirection) 0;

I think there should be a FocusDirectionNone enum value.

&gt; +    if (keyIdentifier == &quot;Down&quot;)
&gt; +        retVal = FocusDirectionDown;
&gt; +    else if (keyIdentifier == &quot;Up&quot;)
&gt; +        retVal = FocusDirectionUp;
&gt; +    else if (keyIdentifier == &quot;Left&quot;)
&gt; +        retVal = FocusDirectionLeft;
&gt; +    else if (keyIdentifier == &quot;Right&quot;)
&gt; +        retVal = FocusDirectionRight;

Maybe use AtomicStrings for these?

&gt; diff --git a/WebCore/page/FocusController.cpp b/WebCore/page/FocusController.cpp

&gt; +enum PrecedenceMode {
&gt; +    None = -1,
&gt; +    Low,
&gt; +    Precedent,
&gt; +    SuperPrecedent
&gt; +};

Precedence of what? Maybe rename to FocusCandidatePrecedence?
Also needs a comment to explain how &quot;SuperPrecedent&quot; differs from &quot;Precedent&quot;. Why not just use a numeric value, or &quot;Low, Medium, High&quot;?

&gt; +struct BestCandidate {
&gt; +    BestCandidate()
&gt; +        : node(0)
&gt; +        , distance(numeric_limits&lt;long long&gt;::max())
&gt; +        , parentDistance(numeric_limits&lt;long long&gt;::max())
&gt; +        , mode(None)
&gt; +        , parentMode(None)
&gt; +    {
&gt; +    }
&gt; +    Node* node;
&gt; +    long long distance;
&gt; +    long long parentDistance;
&gt; +    PrecedenceMode mode;
&gt; +    PrecedenceMode parentMode;
&gt; +};

BestCandidate for what? Rename to FocusCandidate?

&gt; +static long long precedenceDistance(FocusDirection, IntRect&amp;, IntRect&amp;);
&gt; +static long long distanceInDirection(Node*, Node*, FocusDirection, BestCandidate&amp;);

Do you really need long long for distance? All other WebCore positions are floats or ints.

&gt; +static void nextInDirection(Document*, Node*, FocusDirection, KeyboardEvent*, BestCandidate&amp;);
&gt; +static bool isRectInDirection(FocusDirection, IntRect, IntRect);
&gt; +static inline IntRect renderRect(RenderObject*);
&gt; +static long long spatialDistance(FocusDirection, IntRect&amp;, IntRect&amp;);
&gt; +static bool scrollInDirection(Frame*, FocusDirection);
&gt; +static bool isOffscreenRect(Node*);

Should any of these be instance or class methods?

&gt; +///////////////////////////////////////
&gt; +// HELPER SPATIAL NAVIGATION METHODS //
&gt; +///////////////////////////////////////

We don&apos;t normally add comments like this.

&gt; +static void nextInDirection(Document* document, Node* start, FocusDirection direction, KeyboardEvent* event, BestCandidate&amp; bestCandidate)

I think this would be better named getNextFocusCandidate() or fetchNextFocusCandidate().

&gt; +            if (innerDocument == start-&gt;document())
&gt; +                nextInDirection(innerDocument, start, direction, event, bestCandidate);
&gt; +            else {
&gt; +                // Check if the current iframe (or frame) element itself is a good candidate to move focus to.
&gt; +                // If it is, then we traverse its inner nodes.
&gt; +                // ps: lets pass a copy of the best candidate, to not get fooled by a frame w/out
&gt; +                // focusable elements.

The &quot;ps:&quot; is weird. Just make it a normal sentence.

&gt; +                BestCandidate bestCandidateCopy = bestCandidate;
&gt; +                long long distance = distanceInDirection(start, candidate, direction, bestCandidateCopy);
&gt; +                if (distance &lt; bestCandidateCopy.distance) {
&gt; +                    bestCandidateCopy.parentMode = bestCandidateCopy.mode;
&gt; +                    bestCandidateCopy.parentDistance = distance;
&gt; +
&gt; +                    nextInDirection(innerDocument, start, direction, event, bestCandidateCopy);
&gt; +
&gt; +                    // If we really have a inner best node candidate, take it.
&gt; +                    if (bestCandidate.node != bestCandidateCopy.node)
&gt; +                        bestCandidate = bestCandidateCopy;

It seems like this &quot;compare and set&quot; logic might be better as a method on BestCandidate.

&gt; +static long long distanceInDirection(Node* start, Node* dest, FocusDirection direction, BestCandidate&amp; candidate)
&gt; +{
&gt; +    long long distance = candidate.distance;
&gt; +
&gt; +    IntRect startRect = IntRect();
&gt; +    IntRect destRect = IntRect();
&gt; +    RenderObject* startRender = 0;
&gt; +    RenderObject* destRender = 0;
&gt; +
&gt; +    startRender = start-&gt;renderer();
&gt; +    if (!startRender)
&gt; +        goto exitPoint;
&gt; +
&gt; +    destRender = dest-&gt;renderer();
&gt; +    if (!destRender)
&gt; +        goto exitPoint;

No gotos please.

&gt; +    startRect = renderRect(startRender);
&gt; +    destRect  = renderRect(destRender);

Declare the IntRects here.

&gt; +    // The bounding rectangle of two consecutive links could overlap, so we decrease the size
&gt; +    // of both rectangles.
&gt; +    startRect.inflate(-4);
&gt; +    destRect.inflate(-4);

These can cause the rect widths to go negative, which you don&apos;t want. Why the special case for links?

&gt; +    if (takesSuperPrecedence(direction, startRect, destRect) || candidate.parentMode == SuperPrecedent) {
&gt; +        // reset distance as we are now in super precedence mode

Comments should use Sentence case.

Seems like more logic to push into BestCandidate, perhaps.

&gt; +exitPoint:
&gt; +    return numeric_limits&lt;long long&gt;::max();

I think it would be clearer if you had a constant for numeric_limits&lt;long long&gt;::max(), like cMaxDistance.

&gt; +// FIXME: This function is flawed because it doesn&apos;t consider the effects of CSS or SVG transforms.

It does take transforms into account; absoluteClippedOverflowRect() does the right thing.

However, it does not behave correctly with transformed frames.

&gt; +static inline IntRect renderRect(RenderObject* render)

The method should be renamed to indicate that it is returning a rect relative to the root document.

&gt; +{
&gt; +    ASSERT(render);
&gt; +
&gt; +    Node* node = render-&gt;node();
&gt; +    Document* mainDocument = node-&gt;document()-&gt;page()-&gt;mainFrame()-&gt;document();
&gt; +    bool useScrollOffset = !isOffscreenRect(node) &amp;&amp; node-&gt;document() != mainDocument;
&gt; +
&gt; +    IntRect rect(render-&gt;absoluteClippedOverflowRect());
&gt; +
&gt; +    // There are cases, mostly when |render|&apos;s associated node is offscreen,
&gt; +    // it is safier to get its position regardless the container scroll offset.

Typo: &quot;safier&quot;.

&gt; +    if (useScrollOffset)
&gt; +        if (FrameView* frameView = render-&gt;node()-&gt;document()-&gt;view())
&gt; +            rect.move(-frameView-&gt;scrollOffset());
&gt; +
&gt; +    // handle nested frames.
&gt; +    for (Frame* frame = render-&gt;document()-&gt;frame(); frame; frame = frame-&gt;tree()-&gt;parent())
&gt; +        if (HTMLFrameOwnerElement* ownerElement = frame-&gt;ownerElement())
&gt; +            rect.move(ownerElement-&gt;offsetLeft(), ownerElement-&gt;offsetTop());
&gt; +
&gt; +    return rect;
&gt; +}

&gt; +// -- grabbed from MICROB excepted by UP|DOWN logic.

What is MICROB? What is the license for this code?

&gt; +static bool isRectInDirection(FocusDirection direction, IntRect startRect, IntRect destRect)

Pass rects by const reference.

&gt; +    int middle = 0;

Declare this only where used.

&gt; +    switch (direction) {
&gt; +    case FocusDirectionLeft:
&gt; +        middle = destRect.x() + abs(destRect.width()) / 2;
&gt; +        return (middle &lt; startRect.x());
&gt; +    case FocusDirectionRight:
&gt; +        middle = destRect.x() + abs(destRect.width()) / 2;
&gt; +        return (middle  &gt; startRect.x() + abs(startRect.width()));
&gt; +    case FocusDirectionUp :
&gt; +        return (destRect.y() &lt; startRect.y());
&gt; +    case FocusDirectionDown:
&gt; +        return (destRect.y() + abs(destRect.height()) &gt; startRect.y() + abs(startRect.height()));
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

This assert is not required, and prevents the compiler from warning about unhandled values.

&gt; +// Checks if |node| is in the visible area (viewport) of its container document.

But that&apos;s backwards from the method behavior.

&gt; +static bool isOffscreenRect(Node* node)
&gt; +{
&gt; +    // Get the current viewport rect so we can check if bestCandidate&apos;s rect
&gt; +    // is visible before actually moving the focus to it. In case it is not visible,
&gt; +    // we scroll in direction later on instead.
&gt; +    FrameView* frameView = node-&gt;document()-&gt;view();
&gt; +    if (!frameView)
&gt; +        return true;
&gt; +
&gt; +    IntRect containerViewportRect = frameView-&gt;visibleContentRect();
&gt; +
&gt; +    RenderObject* render = node-&gt;renderer();
&gt; +    if (!render)
&gt; +        return true;
&gt; +
&gt; +    IntRect rect(render-&gt;absoluteClippedOverflowRect());

No need for &apos;rect&apos; here.

&gt; +// In a bottom-up way, this method tries to scroll |frame| in a given direction
&gt; +// |direction|, going up in the frame tree hierarchy in case it does not succeed.
&gt; +static bool scrollInDirection(Frame* frame, FocusDirection direction)
&gt; +{
&gt; +    if (!frame)
&gt; +        return false;
&gt; +
&gt; +    // Leave the focus on the same node but scroll.
&gt; +    ScrollDirection scrollDirection;
&gt; +
&gt; +    switch (direction) {
&gt; +    case FocusDirectionLeft:
&gt; +        scrollDirection = ScrollLeft;
&gt; +        break;
&gt; +    case FocusDirectionRight:
&gt; +        scrollDirection = ScrollRight;
&gt; +        break;
&gt; +    case FocusDirectionUp:
&gt; +        scrollDirection = ScrollUp;
&gt; +        break;
&gt; +    case FocusDirectionDown:
&gt; +        scrollDirection = ScrollDown;
&gt; +        break;
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return false;

Remove default case.

&gt; +// This method checks for very preferable rect to move focus to. In essence targets

&quot;very preferable&quot;?

&gt; +// whose middle falls between the top or bottom of the current rect.

This is not a complete sentence.

&gt; +static bool takesSuperPrecedence(FocusDirection direction, IntRect&amp; startRect, IntRect&amp; destRect)

You need a better term than &quot;super precedence&quot;.

Rect params should be const.

&gt; +{
&gt; +    if (direction == FocusDirectionLeft || direction == FocusDirectionRight) {
&gt; +        int destMiddle = destRect.y() + abs(destRect.height()) / 2;
&gt; +        int destBottom = destRect.y() + abs(destRect.height());
&gt; +        int destEnd    = destRect.x() + abs(destRect.width());
&gt; +
&gt; +        int startBottom = startRect.y() + abs(startRect.height());
&gt; +        int startEnd    = startRect.x() + abs(startRect.width());

We don&apos;t line up code like this.

&gt; +        return ((destRect.y() &gt;= startRect.y() &amp;&amp; destRect.y() &lt;= startBottom)
&gt; +            ||  (destMiddle &gt;= startRect.y() &amp;&amp; destMiddle &lt;= startBottom)
&gt; +            ||  (destBottom &gt;= startRect.y() &amp;&amp; destBottom &lt;= startBottom)
&gt; +            ||  (destRect.y() == startRect.y())
&gt; +            ||  (destBottom == startBottom)
&gt; +            ||  (destRect.y() &lt;= startRect.y() &amp;&amp; destBottom &gt;= startBottom));

Just one space after the ||.

&gt; +        return ((destMiddle &gt;= startRect.x() &amp;&amp; destMiddle &lt;= startEnd)
&gt; +            ||  (destRect.x() &gt;= startRect.x() &amp;&amp; destRect.x() &lt;= startEnd)
&gt; +            ||  (startRect.x() == destRect.x())
&gt; +            ||  (startEnd == destEnd)
&gt; +            ||  (destEnd &gt;= startRect.x() &amp;&amp; destEnd &lt;= startEnd)
&gt; +            ||  (destRect.x() &lt;= startRect.x() &amp;&amp; destEnd &gt;= startEnd));

Ditto.

&gt; +static bool takesPrecedence(FocusDirection direction, IntRect&amp; startRect, IntRect&amp; destRect)

Const rects.

&gt; +    if (direction == FocusDirectionLeft || direction == FocusDirectionRight) {
&gt; +        int minY = startRect.y() /* - half */;
&gt; +        int maxY = startRect.y() + abs(startRect.height()) /* + half */;
&gt; +        int startBottom = startRect.y() + abs(startRect.height());
&gt; +
&gt; +        int destMiddle = destRect.y() + abs(destRect.height()) / 2;
&gt; +        int destBottom = destRect.y() + abs(destRect.height());
&gt; +
&gt; +        return ((destRect.y() &gt;= minY &amp;&amp; destRect.y() &lt;= maxY)
&gt; +            ||  (destBottom &gt;= minY &amp;&amp; destBottom &lt;= maxY)
&gt; +            ||  (destMiddle &gt;= startRect.y() &amp;&amp; destMiddle &lt;= startBottom)
&gt; +            ||  (destRect.y() &gt;= startRect.y() &amp;&amp; destRect.y() &lt;= startBottom)
&gt; +            ||  (destBottom &gt;= startRect.y() &amp;&amp; destBottom &lt;= startBottom)
&gt; +            ||  (destRect.y() &lt;= startRect.y() &amp;&amp; destBottom &gt;= startBottom));

Ditto.

&gt; +// sqrt(((x1 - x2) ^ 2) + ((y1 - y2) ^ 2))
&gt; +static long long precedenceDistance(FocusDirection direction, IntRect&amp; startRect, IntRect&amp; destRect)
&gt; +{
&gt; +    long long distance = numeric_limits&lt;long long&gt;::max();
&gt; +    long long sec = numeric_limits&lt;long long&gt;::max();

I don&apos;t understand &apos;sec&apos;. Needs a better name.

&gt; +
&gt; +    if (direction == FocusDirectionLeft) {
&gt; +        int startX = startRect.x();
&gt; +        int startY = startRect.y() + abs(startRect.height()) / 2;
&gt; +        int destX  = destRect.x() + abs(destRect.width());
&gt; +        int destY  = destRect.y() + abs(destRect.height()) / 2;
&gt; +
&gt; +        long long p = ((startX - destX) * (startX - destX)) + ((startY - destY) * (destY - destY));
&gt; +        sec = sqrt(p);
&gt; +
&gt; +        p = ((startRect.x() - destRect.x()) * (startRect.x() - destRect.x())) + ((startRect.y() - destRect.y()) * (startRect.y() - destRect.y()));
&gt; +        distance = sqrt(p);
&gt; +
&gt; +        if (sec &lt; distance &amp;&amp; startRect.y() == destRect.y())
&gt; +            distance = sec;
&gt; +    }
&gt; +
&gt; +    if (direction == FocusDirectionRight) {
&gt; +        int startX = startRect.x() + abs(startRect.width());
&gt; +        int startY = startRect.y() + abs(startRect.height()) / 2;
&gt; +        int destX  = destRect.x();
&gt; +        int destY  = destRect.y() + abs(destRect.height()) / 2;
&gt; +
&gt; +        long long p = ((destX - startX) * (destX - startX)) + ((destY - startY) * (destY - startY));
&gt; +        sec = sqrt(p);
&gt; +
&gt; +        p = ((destRect.x() - startRect.x()) * (destRect.x() - startRect.x())) + ((destRect.y() - startRect.y()) * (destRect.y() - startRect.y()));
&gt; +        distance = sqrt(p);
&gt; +
&gt; +        if (sec &lt; distance &amp;&amp; startRect.y() == destRect.y())
&gt; +            distance = sec;
&gt; +    }
&gt; +
&gt; +    if (direction == FocusDirectionUp) {
&gt; +        int startX = startRect.x() + abs(startRect.width()) / 2;
&gt; +        int startY = startRect.y();
&gt; +        int destX  = destRect.x() + abs(destRect.width()) / 2;
&gt; +        int destY = destRect.y() + abs(destRect.height());
&gt; +
&gt; +        long long p = ((startX - destX) * (startX - destX)) + ((startY - destY) * (startY - destY));
&gt; +        sec = sqrt(p);
&gt; +
&gt; +        p = ((startRect.x() - destRect.x()) * (startRect.x() - destRect.x())) + ((startRect.y() - destRect.y()) * (startRect.y() - destRect.y()));
&gt; +
&gt; +        distance = sqrt(p);
&gt; +
&gt; +        if (sec &lt; distance &amp;&amp; startRect.x() == destRect.x())
&gt; +            distance = sec;
&gt; +
&gt; +        sec = (startRect.y() - destRect.y());
&gt; +
&gt; +        if (sec &lt; distance)
&gt; +            distance = sec;
&gt; +    }
&gt; +
&gt; +    if (direction == FocusDirectionDown) {
&gt; +        // get middle X for current and target rects
&gt; +        int startX = startRect.x() + abs(startRect.width()) / 2;
&gt; +        int startY = startRect.y() + abs(startRect.height()) / 2;
&gt; +        int destX  = destRect.x() + abs(destRect.width()) / 2;
&gt; +        int destY  = destRect.y() + abs(destRect.height()) / 2;
&gt; +
&gt; +        long long p = ((destX - startX) * (destX - startX)) + ((destY - startY) * (destY - startY));
&gt; +        sec = sqrt(p);
&gt; +
&gt; +        p = ((destRect.x() - startRect.x()) * (destRect.x() - startRect.x())) + ((destRect.y() - startRect.y()) * (destRect.y() - startRect.y()));
&gt; +        distance = sqrt(p);
&gt; +
&gt; +        if (sec &lt; distance &amp;&amp; startRect.x() == destRect.x())
&gt; +            distance = sec;
&gt; +
&gt; +        sec = (destRect.y() - startRect.y());
&gt; +
&gt; +        if (sec &lt; distance)
&gt; +            distance = sec;
&gt; +    }

Lots of repeated code here. Can you factor into a new method?

 // namespace WebCore
&gt; diff --git a/WebCore/page/FocusController.h b/WebCore/page/FocusController.h
&gt; index d86408a..38c08c4 100644
&gt; --- a/WebCore/page/FocusController.h
&gt; +++ b/WebCore/page/FocusController.h
&gt; @@ -58,6 +58,9 @@ namespace WebCore {
&gt;          bool isFocused() const { return m_isFocused; }
&gt;  
&gt;      private:
&gt; +        bool advanceFocusDirectionally(FocusDirection, KeyboardEvent*);
&gt; +        bool advanceFocusInDocumentOrder(FocusDirection, KeyboardEvent*, bool initialFocus);

We try to avoid using boolean parameters because they make the code at the call site hard to read.

&gt; diff --git a/WebCore/page/Settings.h b/WebCore/page/Settings.h

&gt; +        bool isSpatialNavigationEnabled() { return m_isSpatialNavigationEnabled; }

This method should be |const|.

r- for the MICROB licensing issue. I&apos;d like to see one more round.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185589</commentid>
    <comment_count>50</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-01-28 13:11:41 -0800</bug_when>
    <thetext>Judging from http://en.wikipedia.org/wiki/MicroB the license is as follows:

Proprietary EULA Engine under MPL/GPL/LGPL tri-license</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186491</commentid>
    <comment_count>51</comment_count>
      <attachid>47855</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-01 11:12:36 -0800</bug_when>
    <thetext>Created attachment 47855
Add directional navigation to WebCore (v12)

Patch v12:

Summary:
see comment #48

Addressed Simon&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186493</commentid>
    <comment_count>52</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-01 11:15:19 -0800</bug_when>
    <thetext>Thanks for reviewing, Simon.

Comments below.

&gt; &gt; +FocusDirection EventHandler::isArrowKey(const String&amp; keyIdentifier)
&gt; 
&gt; The name of this method is confusing. An &quot;isFoo&quot; method should return a bool.
&gt; It should be something like
&gt; &quot;focusDirectionForKey()&quot; and at call sites you&apos;d do
&gt; if (focusDirectionForKey(s) != FocusDirectionNone) {

I agree. EventHandler::focusDirectionForKey method added.

&gt; &gt; +{
&gt; &gt; +    FocusDirection retVal = (FocusDirection) 0;
&gt; 
&gt; I think there should be a FocusDirectionNone enum value.

Done.

&gt; &gt; +    if (keyIdentifier == &quot;Down&quot;)
&gt; &gt; +        retVal = FocusDirectionDown;
&gt; &gt; +    else if (keyIdentifier == &quot;Up&quot;)
&gt; &gt; +        retVal = FocusDirectionUp;
&gt; &gt; +    else if (keyIdentifier == &quot;Left&quot;)
&gt; &gt; +        retVal = FocusDirectionLeft;
&gt; &gt; +    else if (keyIdentifier == &quot;Right&quot;)
&gt; &gt; +        retVal = FocusDirectionRight;
&gt; 
&gt; Maybe use AtomicStrings for these?

Done.

&gt; &gt; diff --git a/WebCore/page/FocusController.cpp b/WebCore/page/FocusController.cpp
&gt; 
&gt; &gt; +enum PrecedenceMode {
&gt; &gt; +    None = -1,
&gt; &gt; +    Low,
&gt; &gt; +    Precedent,
&gt; &gt; +    SuperPrecedent
&gt; &gt; +};
&gt; 
&gt; Precedence of what? Maybe rename to FocusCandidatePrecedence?
&gt; Also needs a comment to explain how &quot;SuperPrecedent&quot; differs from &quot;Precedent&quot;.
&gt; Why not just use a numeric value, or &quot;Low, Medium, High&quot;?

I changed the enum logic here. It is now in SpatialNavigationUtils.h , and now looks like:

// Spatially speaking, elements in a web page can be:
// 1) Totally aligned: There is a full intersection between the rects, either
//    vertically or horizontally.
// 2) Partially aligned: There is a partial intersection between the rects, either
//    vertically or horizontally.
// 3) Or, otherwise, not aligned at all.
enum FocusCandidateAlignment {
    None = 0,
    Partial,
    Full
};

&gt; &gt; +struct BestCandidate {
&gt; &gt; +    BestCandidate()
&gt; &gt; +        : node(0)
&gt; &gt; +        , distance(numeric_limits&lt;long long&gt;::max())
&gt; &gt; +        , parentDistance(numeric_limits&lt;long long&gt;::max())
&gt; &gt; +        , mode(None)
&gt; &gt; +        , parentMode(None)
&gt; &gt; +    {
&gt; &gt; +    }
&gt; &gt; +    Node* node;
&gt; &gt; +    long long distance;
&gt; &gt; +    long long parentDistance;
&gt; &gt; +    PrecedenceMode mode;
&gt; &gt; +    PrecedenceMode parentMode;
&gt; &gt; +};
&gt; 
&gt; BestCandidate for what? Rename to FocusCandidate?

Done.

&gt; &gt; +static long long precedenceDistance(FocusDirection, IntRect&amp;, IntRect&amp;);
&gt; &gt; +static long long distanceInDirection(Node*, Node*, FocusDirection, BestCandidate&amp;);
&gt; 
&gt; Do you really need long long for distance? All other WebCore positions are
&gt; floats or ints.

Darin concerned about the int usage of previous version of the patch, and I decided to use long long for safity.
There is a LayoutTest that tests the algorigthm behaviour with very far way nodes from each other.

&gt; &gt; +static void nextInDirection(Document*, Node*, FocusDirection, KeyboardEvent*, BestCandidate&amp;);
&gt; &gt; +static bool isRectInDirection(FocusDirection, IntRect, IntRect);
&gt; &gt; +static inline IntRect renderRect(RenderObject*);
&gt; &gt; +static long long spatialDistance(FocusDirection, IntRect&amp;, IntRect&amp;);
&gt; &gt; +static bool scrollInDirection(Frame*, FocusDirection);
&gt; &gt; +static bool isOffscreenRect(Node*);
&gt; 
&gt; Should any of these be instance or class methods?

I do not think so, Simon, but rather I added a SpatialNavigationUtils.cpp|h instead.

&gt; &gt; +static void nextInDirection(Document* document, Node* start, FocusDirection direction, KeyboardEvent* event, BestCandidate&amp; bestCandidate)
&gt; 
&gt; I think this would be better named getNextFocusCandidate() or
&gt; fetchNextFocusCandidate().

As per a Kenneth suggestion, I renamed it to &apos;findFocusableNodeInDirection&apos;.
 
&gt; I think it would be clearer if you had a constant for numeric_limits&lt;long
&gt; long&gt;::max(), like cMaxDistance.

Done. Constant added to SpatialNavigationUtils.h

&gt; &gt; +// FIXME: This function is flawed because it doesn&apos;t consider the effects of CSS or SVG transforms.

&gt; It does take transforms into account; absoluteClippedOverflowRect() does the
&gt; right thing. However, it does not behave correctly with transformed frames.
&gt; &gt; +static inline IntRect renderRect(RenderObject* render)

I re-wrote the comment to match to its real weak point.

&gt; The method should be renamed to indicate that it is returning a rect relative
&gt; to the root document.

renamed to:
IntRect renderRectRelativeToRootDocument(RenderObject*);

&gt; &gt; +// -- grabbed from MICROB excepted by UP|DOWN logic.
&gt; What is MICROB? What is the license for this code?

see comment #50

&gt; &gt; +    switch (direction) {
&gt; &gt; +    case FocusDirectionLeft:
&gt; &gt; +        middle = destRect.x() + abs(destRect.width()) / 2;
&gt; &gt; +        return (middle &lt; startRect.x());
&gt; &gt; +    case FocusDirectionRight:
&gt; &gt; +        middle = destRect.x() + abs(destRect.width()) / 2;
&gt; &gt; +        return (middle  &gt; startRect.x() + abs(startRect.width()));
&gt; &gt; +    case FocusDirectionUp :
&gt; &gt; +        return (destRect.y() &lt; startRect.y());
&gt; &gt; +    case FocusDirectionDown:
&gt; &gt; +        return (destRect.y() + abs(destRect.height()) &gt; startRect.y() + abs(startRect.height()));
&gt; &gt; +    default:
&gt; &gt; +        ASSERT_NOT_REACHED();
&gt; 
&gt; This assert is not required, and prevents the compiler from warning about
&gt; unhandled values.

We have unhandled values in this enum: FocusDirectionForward, FocusDirectionBackward and FocusDirectionNone. So it was needed to shut up the compiler.

&gt; &gt; +static bool scrollInDirection(Frame* frame, FocusDirection direction)
&gt; &gt; +{
&gt; &gt; +    if (!frame)
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    // Leave the focus on the same node but scroll.
&gt; &gt; +    ScrollDirection scrollDirection;
&gt; &gt; +
&gt; &gt; +    switch (direction) {
&gt; &gt; +    case FocusDirectionLeft:
&gt; &gt; +        scrollDirection = ScrollLeft;
&gt; &gt; +        break;
&gt; &gt; +    case FocusDirectionRight:
&gt; &gt; +        scrollDirection = ScrollRight;
&gt; &gt; +        break;
&gt; &gt; +    case FocusDirectionUp:
&gt; &gt; +        scrollDirection = ScrollUp;
&gt; &gt; +        break;
&gt; &gt; +    case FocusDirectionDown:
&gt; &gt; +        scrollDirection = ScrollDown;
&gt; &gt; +        break;
&gt; &gt; +    default:
&gt; &gt; +        ASSERT_NOT_REACHED();
&gt; &gt; +        return false;
&gt; 
&gt; Remove default case.

Same here. It was needed.

&gt; &gt; +static bool takesSuperPrecedence(FocusDirection direction, IntRect&amp; startRect, IntRect&amp; destRect)
&gt; You need a better term than &quot;super precedence&quot;.

takesSuperPrecedence() renamed to areRectsFullyAligned() and 
takesPrecedence() renamed to areRectsPartiallyAligned().
 
&gt;  // namespace WebCore
&gt; &gt; diff --git a/WebCore/page/FocusController.h b/WebCore/page/FocusController.h
&gt; &gt; index d86408a..38c08c4 100644
&gt; &gt; --- a/WebCore/page/FocusController.h
&gt; &gt; +++ b/WebCore/page/FocusController.h
&gt; &gt; @@ -58,6 +58,9 @@ namespace WebCore {
&gt; &gt;          bool isFocused() const { return m_isFocused; }
&gt; &gt;  
&gt; &gt;      private:
&gt; &gt; +        bool advanceFocusDirectionally(FocusDirection, KeyboardEvent*);
&gt; &gt; +        bool advanceFocusInDocumentOrder(FocusDirection, KeyboardEvent*, bool initialFocus);
&gt; 
&gt; We try to avoid using boolean parameters because they make the code at the call
&gt; site hard to read.

I know, but |FocusController::advanceFocusInDocumentOrder| is just a wrapped by FocusController::AdvanceFocus (see below) which already receives a bool.

bool FocusController::advanceFocus(FocusDirection direction, KeyboardEvent* event, bool initialFocus)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186495</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-01 11:19:15 -0800</bug_when>
    <thetext>Attachment 47855 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/page/FocusController.cpp:499:  Missing space before ( in if(  [whitespace/parens] [5]
Total errors found: 1


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187785</commentid>
    <comment_count>54</comment_count>
      <attachid>48139</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-04 07:34:43 -0800</bug_when>
    <thetext>Created attachment 48139
Add directional navigation to WebCore (v13)

Summary:
see comment #48
+
* Addressed Simon&apos;s comments.
* fixes the style issue pointed by the bot.
* better document the code.

(ping review?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187786</commentid>
    <comment_count>55</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-04 07:36:12 -0800</bug_when>
    <thetext>Attachment 48139 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/page/SpatialNavigationUtils.cpp:148:  Missing spaces around /  [whitespace/operators] [3]
WebCore/page/SpatialNavigationUtils.cpp:150:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187790</commentid>
    <comment_count>56</comment_count>
      <attachid>48141</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-04 07:47:24 -0800</bug_when>
    <thetext>Created attachment 48141
Add directional navigation to WebCore (v13+)

err , and now the right patch.

Summary:
see comment #48
+
* Addressed Simon&apos;s comments.
* fixes the style issue pointed by the bot.
* better document the code.

sorry for bugspamming :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189103</commentid>
    <comment_count>57</comment_count>
      <attachid>48141</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-09 12:01:02 -0800</bug_when>
    <thetext>Comment on attachment 48141
Add directional navigation to WebCore (v13+)

There are huge sections of copy/paste code here.  Couldn&apos;t those be turned into template functions which used -1/+1 to denote up/down/left/right?  I feel like that would make the code cleaner, because although it would be a little awkward to use the functions, you&apos;re always 100% certain that tehre are no copy paste errors with them.

This patch is difficutl to review because it&apos;s so long on a bug that has so many comments.  Reviewers are &quot;scared&quot; to miss something either in the bug history, or in this huge patch.

It would be possible to land this in smaller, more easily reviewed steps, including just the layout tests first, followed by the code change.

Going to stare at the patch a bit more now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189135</commentid>
    <comment_count>58</comment_count>
      <attachid>48141</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-09 12:52:15 -0800</bug_when>
    <thetext>Comment on attachment 48141
Add directional navigation to WebCore (v13+)

Doesn&apos;t frametree have a top() method?
 300     // Move up in the chain of nested frames.
 301     while (true) {
 302         Frame* parentFrame = frame-&gt;tree()-&gt;parent();
 303         if (!parentFrame || !parentFrame-&gt;document())
 304             break;
 305 
 306         frame = parentFrame;
 307     }

Seems slightly dangerous having this so far away from the isElement check:
 343     static_cast&lt;Element*&gt;(node)-&gt;focus(false);

I think I owuld haev made this whole block:
 473                 // Check if the current {i}frame element itself is a good candidate
its own small function.
Yeah, probably one for each half of the if.

Another way to make part of this more readable (to my eye) woudl have been to use early return for things like:
 492             if (distance &lt; closestFocusCandidate.distance) {

We generally avoid files called &quot;utils&quot; or &quot;utilities&quot; as they become sewers very quickly.  In this case, I woudl just have called this file &quot;SpatialNavigation.h&quot; and probably still left most of the content here.

Why is this OK license wise?
 160 // Based on the MICROB SNav logic (MPL/GLP/LGPG), excepted by the Down logic.

I don&apos;t think it&apos;s OK to add code w/o citing the full license, but I&apos;m not a lawyer.

The ifs in areRectsFullyAligned are copy paste!
So is spatialDistanceForAlignedRects.

This is too hard to review at this size, and this amount of copy/paste code.

I would split the code out from the layout tests.  Get the layout tests approved and possibly landed (skipped) and then work on landing the code in parts, ideally with as little copy paste code as possible.

WebKit wants this functionality.  It&apos;s just impossible for a reviewer to do anything more than rubber-stamp this code at this size.  Given all the copy paste code I don&apos;t know how I could be sure that you haven&apos;t missed a minus sign or forgotten to fix one half of a copy/paste if.  Again these things make it difficult to r+.

r-  Mostly for the copy paste, partially for the license confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191898</commentid>
    <comment_count>59</comment_count>
      <attachid>49074</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-19 06:41:16 -0800</bug_when>
    <thetext>Created attachment 49074
Add directional navigation to WebCore (v14)

Addressed Eric&apos;s comments.


(In reply to comment #57)
&gt; (From update of attachment 48141 [details])
&gt; There are huge sections of copy/paste code here.  Couldn&apos;t those be turned into
&gt; template functions which used -1/+1 to denote up/down/left/right?  I feel like
&gt; that would make the code cleaner, because although it would be a little awkward
&gt; to use the functions, you&apos;re always 100% certain that tehre are no copy paste
&gt; errors with them.

Done. I introduced the following macros: START, MIDDLE, END, which tak |direction| and
|rect| as parameter. It makes &apos;if&apos;s in areRectsFullyAligned and areRectsPartlyAligned
not copy and paste anymore.

&gt; It would be possible to land this in smaller, more easily reviewed steps,
&gt; including just the layout tests first, followed by the code change.

Done. This patch does not include the LayoutTests.


&gt; Doesn&apos;t frametree have a top() method?
&gt;  300     // Move up in the chain of nested frames.
&gt;  301     while (true) {
&gt;  302         Frame* parentFrame = frame-&gt;tree()-&gt;parent();
&gt;  303         if (!parentFrame || !parentFrame-&gt;document())
&gt;  304             break;
&gt;  305 
&gt;  306         frame = parentFrame;
&gt;  307     }

It does have. Using it now. The qouted code above has gone in favor of ir.

&gt; I think I owuld haev made this whole block:
&gt;  473                 // Check if the current {i}frame element itself is a good
&gt; candidate
&gt; its own small function.

Done. I put this in a new method call &quot;deepFindFocusableNodeInDirection()&quot;.

&gt; Yeah, probably one for each half of the if.

Also added a static helper: &quot;updateFocusCandidateIfCloser()&quot;.

&gt; Another way to make part of this more readable (to my eye) woudl have been to
&gt; use early return for things like:
&gt;  492             if (distance &lt; closestFocusCandidate.distance) {

Done.

&gt; We generally avoid files called &quot;utils&quot; or &quot;utilities&quot; as they become sewers
&gt; very quickly.  In this case, I woudl just have called this file
&gt; &quot;SpatialNavigation.h&quot; and probably still left most of the content here.

Done - renamed.

&gt; Why is this OK license wise?
&gt;  160 // Based on the MICROB SNav logic (MPL/GLP/LGPG), excepted by the Down
&gt; logic.
&gt; &gt; So is spatialDistanceForAlignedRects.

The microb code is node needed anymore, so we do not need to care about licenses.
I drop the method spatialDistanceForAlignedRects. only &quot;spatialDistance&quot; is being used.

&gt; WebKit wants this functionality.  It&apos;s just impossible for a reviewer to do
&gt; anything more than rubber-stamp this code at this size.  Given all the copy
&gt; paste code I don&apos;t know how I could be sure that you haven&apos;t missed a minus
&gt; sign or forgotten to fix one half of a copy/paste if.  Again these things make
&gt; it difficult to r+.
&gt; 
&gt; r-  Mostly for the copy paste, partially for the license confusion.

I hope we are in a better shape now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191901</commentid>
    <comment_count>60</comment_count>
      <attachid>49076</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-19 06:49:49 -0800</bug_when>
    <thetext>Created attachment 49076
Add directional navigation to WebCore (LayoutTests - v1)

LayoutTests splitted on its own  file, to separate the code logic of the feature to its tests, and also to help reviewers.

The following layout tests are included:

* snav-horizontal-superprecedence.html
* snav-iframe-no-focusable-content.html
* snav-iframe-no-scrollable-content.html
* snav-iframe-with-offscreen-focusable-element.html
* snav-table-traversal.html
* snav-tiny-table-traversal.html
* snav-unit-overflow-and-scroll-in-direction.html
* snav-vertical-superprecedence.html

, all them placed in LayoutTests/fast/events/spatial-navigation/

-&gt; Each HTML has in its header explaination about what the patch is trying to test.

-&gt; spatial-navigation-utils.js is a helper that takes are of moving the focus around between
elements, making sure it reaches the right target.

-&gt; for now I am skipping the tests on all plaftorms (gtk, qt, mac, win) and follow up bugs are to be filed individually to revert that. I&apos;ve done it already for qt and gtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193227</commentid>
    <comment_count>61</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-23 20:39:25 -0800</bug_when>
    <thetext>ping review ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193228</commentid>
    <comment_count>62</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-23 20:42:00 -0800</bug_when>
    <thetext>I am hosting my development on this feature in thie branch: 

* http://gitorious.org/~tonikitoo/qtwebkit/tonikitoos-clone/commits/snav-dev

apart from the two patches also attached to this bug (one about thre core of the feature and other including layout tests), There are some followup work already been done (see patches on the top), and some even already r+&apos;ed.

more to come in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193236</commentid>
    <comment_count>63</comment_count>
      <attachid>49074</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-02-23 21:37:46 -0800</bug_when>
    <thetext>Comment on attachment 49074
Add directional navigation to WebCore (v14)

&gt; +    FocusDirection focusDirectionForKey(const AtomicString&amp;);

This method should be |const|



&gt; +        FocusDirection tabDirection = (FocusDirectionUp || direction == FocusDirectionLeft) ?
&gt; +                                       FocusDirectionForward : FocusDirectionBackward;

Shouldn&apos;t this be:

  FocusDirection tabDirection = ( direction == FocusDirectionUp || direction == FocusDirectionLeft)
?

&gt; +    // Move up in the chain of nested frames.
&gt; +    frame = frame-&gt;tree()-&gt;top();

I don&apos;t undersand this. Why jump to the topmost frame?

&gt; +        if (!(isMovingToRootDocument(focusedNode, candidate)
&gt; +            &amp;&amp; (closestFocusCandidate.node
&gt; +            &amp;&amp; (focusedNode-&gt;document() == closestFocusCandidate.node-&gt;document())))) {

You don&apos;t need so many parens here.



&gt;  
&gt;  namespace WebCore {
&gt;      enum FocusDirection {
&gt;          FocusDirectionForward = 0,
&gt; -        FocusDirectionBackward
&gt; +        FocusDirectionBackward,
&gt; +        FocusDirectionNone,
&gt; +        FocusDirectionUp,
&gt; +        FocusDirectionDown,
&gt; +        FocusDirectionLeft,
&gt; +        FocusDirectionRight
&gt;      };

Would making FocusDirectionNone have value 0 break anything? It would be preferable.


&gt; +++ b/WebCore/page/SpatialNavigation.cpp


&gt; +namespace WebCore {
&gt; +
&gt; +long long spatialDistance(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; +IntRect renderRectRelativeToRootDocument(RenderObject*);
&gt; +RectsAlignment alignmentForRects(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; +bool areRectsFullyAligned(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; +bool areRectsPartiallyAligned(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; +bool isRectInDirection(FocusDirection, const IntRect&amp;, const IntRect&amp;);

I&apos;m not sure if we normally declare file-local functions as &apos;static&apos;. Take a look at some other files to see.

&gt; +// FIXME_tonikitoo: FocusCandidate distanceDataForNode(start, dest, direction)

It&apos;s not clear what the action item is.

&gt; +long long distanceInDirection(Node* start, Node* dest, FocusDirection direction, FocusCandidate&amp; candidate)
&gt; +{
&gt; +    long long&amp; distance = candidate.distance;

You set distance to be a reference to candidate.distance here...

&gt; +        // Reset distance if we are now in higher precedence case.
&gt; +        if (candidate.alignment &lt; alignment &amp;&amp; candidate.parentAlignment &lt; alignment)
&gt; +            distance = cMaxDistance;

and then assign to it lower down. Why use the reference at all? This is hard to follow.

&gt; +        // FIXME_tonikitoo: make this assignment in the caller method ?

Either do it, or remove the FIXME.


&gt; +    // There are cases, mostly when |render|&apos;s associated node is offscreen,
&gt; +    // it is safer to get its position regardless the container scroll offset.

This is a bit obscure. Why?

&gt; +    if (useScrollOffset)
&gt; +        if (FrameView* frameView = render-&gt;node()-&gt;document()-&gt;view())
&gt; +            rect.move(-frameView-&gt;scrollOffset());

We would normally put braces at if (useScrollOffset) {

&gt; +#define MIDDLE(direction, rect)       \
&gt; +    isHorizontalMove(direction) ?     \
&gt; +        rect.y() + rect.height() / 2: \
&gt; +        rect.x() + rect.width()  / 2;
&gt; +
&gt; +#define END(direction, rect)          \
&gt; +    isHorizontalMove(direction) ?     \
&gt; +        rect.y() + rect.height() :    \
&gt; +        rect.x() + rect.width();
&gt; +
&gt; +#define START(direction, rect)        \
&gt; +    isHorizontalMove(direction) ? rect.y() : rect.x();

Please convert these into inline functions.

&gt; +// This method checks if rects |a| and |b| are fully aligned either vertical or

vertically

&gt; +// horizontally. Rects that match this criteria are preferable target nodes in
&gt; +// move focus changing operations.
&gt; +// In essence, targets whose middle falls between the top or bottom of the current rect.

This isn&apos;t a complete sentence.

&gt; +    // About the logic below:

What about it?

&gt; +    return ((bStart &gt;= aStart &amp;&amp; bStart &lt;= aEnd)
&gt; +            || (bStart &gt;= aStart &amp;&amp; bStart &lt;= aEnd)
&gt; +            || (bEnd &gt;= aStart &amp;&amp; bEnd &lt;= aEnd)
&gt; +            || (bMiddle &gt;= aStart &amp;&amp; bMiddle &lt;= aEnd)
&gt; +            || (bEnd &gt;= aStart &amp;&amp; bEnd &lt;= aEnd));
&gt; +}
&gt; +
&gt; +// * a = Current focused node.
&gt; +// * b = Focus candidate node.

In all these methods, rather than commenting what a and b are, you should just name them appropriately: curRect, targetRect, or something.


&gt; +        if (a.y() &gt; b.y() + b.height()) {

use IntRect:bottom(), IntRect:right() here and in all these methods.

You could also define some inline methods like:

bool below(const IntRect&amp; r, int pos)
{
  return pos &gt; r.bottom();
}

to make this code more readable. You could also add IntPoint IntRect::center() const if you like (FloatRect has one).

&gt; +bool isMovingToRootDocument(Node* from, Node* to)
&gt; +{
&gt; +    if (!from || !to)
&gt; +        return false;
&gt; +
&gt; +    Document* rootDocument = to-&gt;document()-&gt;page()-&gt;mainFrame()-&gt;document();
&gt; +    return (to-&gt;document() == rootDocument &amp;&amp; from-&gt;document() != to-&gt;document());
&gt; +}

The &apos;moving to&apos; terminology is confusing. I think this would be clearer with:

bool isInRootDocument(Node*)

and then put the other logic at the call site.

&gt; +void deflateIfNeeded(IntRect&amp; a, IntRect&amp; b, int fudgeFactor)

If needed for what?

I think this needs one more round of changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193611</commentid>
    <comment_count>64</comment_count>
      <attachid>49463</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-24 19:59:32 -0800</bug_when>
    <thetext>Created attachment 49463
Add directional navigation to WebCore (v15)

Addressed most of Simon&apos;s comments.

(In reply to comment #63)
&gt; (From update of attachment 49074 [details])
&gt; &gt; +    FocusDirection focusDirectionForKey(const AtomicString&amp;);
&gt; 
&gt; This method should be |const|

Fixed.
 
&gt; &gt; +        FocusDirection tabDirection = (FocusDirectionUp || direction == FocusDirectionLeft) ?
&gt; &gt; +                                       FocusDirectionForward : FocusDirectionBackward;
&gt; 
&gt; Shouldn&apos;t this be:
&gt; 
&gt;   FocusDirection tabDirection = ( direction == FocusDirectionUp || direction ==
&gt; FocusDirectionLeft)
&gt; ?

Fixed. Not sure how I miss that for so long.

&gt; &gt; +    // Move up in the chain of nested frames.
&gt; &gt; +    frame = frame-&gt;tree()-&gt;top();
&gt; 
&gt; I don&apos;t undersand this. Why jump to the topmost frame?

Simon, the logic used here relies on a top-down traversal algorithm
to walk through all keyboard focusable elements in the dom tree,
looking the &quot;closest&quot; node. That is why it goes to the top one
in before all.

&gt; &gt; +        if (!(isMovingToRootDocument(focusedNode, candidate)
&gt; &gt; +            &amp;&amp; (closestFocusCandidate.node
&gt; &gt; +            &amp;&amp; (focusedNode-&gt;document() == closestFocusCandidate.node-&gt;document())))) {
&gt; 
&gt; You don&apos;t need so many parens here.

Fixed.

&gt; &gt;  namespace WebCore {
&gt; &gt;      enum FocusDirection {
&gt; &gt;          FocusDirectionForward = 0,
&gt; &gt; -        FocusDirectionBackward
&gt; &gt; +        FocusDirectionBackward,
&gt; &gt; +        FocusDirectionNone,
&gt; &gt; +        FocusDirectionUp,
&gt; &gt; +        FocusDirectionDown,
&gt; &gt; +        FocusDirectionLeft,
&gt; &gt; +        FocusDirectionRight
&gt; &gt;      };
&gt; 
&gt; Would making FocusDirectionNone have value 0 break anything? It would be
&gt; preferable.

Fixed. It does not break anything, and indeed looks better.

&gt; &gt; +++ b/WebCore/page/SpatialNavigation.cpp
&gt; 
&gt; &gt; +namespace WebCore {
&gt; &gt; +
&gt; &gt; +long long spatialDistance(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; &gt; +IntRect renderRectRelativeToRootDocument(RenderObject*);
&gt; &gt; +RectsAlignment alignmentForRects(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; &gt; +bool areRectsFullyAligned(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; &gt; +bool areRectsPartiallyAligned(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; &gt; +bool isRectInDirection(FocusDirection, const IntRect&amp;, const IntRect&amp;);
&gt; 
&gt; I&apos;m not sure if we normally declare file-local functions as &apos;static&apos;. Take a
&gt; look at some other files to see.

Fixed. Made all file-local functions static.

&gt; 
&gt; &gt; +// FIXME_tonikitoo: FocusCandidate distanceDataForNode(start, dest, direction)
&gt; It&apos;s not clear what the action item is.

Fixed. Comment removed.

&gt; &gt; +long long distanceInDirection(Node* start, Node* dest, FocusDirection direction, FocusCandidate&amp; candidate)
&gt; &gt; +{
&gt; &gt; +    long long&amp; distance = candidate.distance;
&gt; 
&gt; You set distance to be a reference to candidate.distance here...
&gt; 
&gt; &gt; +        // Reset distance if we are now in higher precedence case.
&gt; &gt; +        if (candidate.alignment &lt; alignment &amp;&amp; candidate.parentAlignment &lt; alignment)
&gt; &gt; +            distance = cMaxDistance;
&gt; 
&gt; and then assign to it lower down. Why use the reference at all? This is hard to
&gt; follow.

Right the logic here is: in case we find a node with a higher focus precedence
than the current best focus candidate (e.g. totally or partially aligned), 
we want to take that node regardless its distance. So I set current best candidate
node&apos;s current distance to the maximum possible value, which makes me sure that any
distance we get from |spatialDistance| later on is shorter.

I modified to comment in the code to better reflect that.

&gt; &gt; +        // FIXME_tonikitoo: make this assignment in the caller method ?
&gt; 
&gt; Either do it, or remove the FIXME.

Removed.

&gt; We would normally put braces at if (useScrollOffset) {

Fixed.

&gt; &gt; +#define MIDDLE(direction, rect)       \
&gt; &gt; +    isHorizontalMove(direction) ?     \
&gt; &gt; +        rect.y() + rect.height() / 2: \
&gt; &gt; +        rect.x() + rect.width()  / 2;
&gt; &gt; +
&gt; &gt; +#define END(direction, rect)          \
&gt; &gt; +    isHorizontalMove(direction) ?     \
&gt; &gt; +        rect.y() + rect.height() :    \
&gt; &gt; +        rect.x() + rect.width();
&gt; &gt; +
&gt; &gt; +#define START(direction, rect)        \
&gt; &gt; +    isHorizontalMove(direction) ? rect.y() : rect.x();
&gt; 
&gt; Please convert these into inline functions.

Fixed. static inline functions added.

&gt; &gt; +// This method checks if rects |a| and |b| are fully aligned either vertical or
&gt; 
&gt; vertically

Fixed.

&gt; &gt; +// In essence, targets whose middle falls between the top or bottom of the current rect.
&gt; 
&gt; This isn&apos;t a complete sentence.

Fixed.

&gt; &gt; +    // About the logic below:
&gt; 
&gt; What about it?

Fixed. Comment added in the code.

&gt; &gt; +// * a = Current focused node.
&gt; &gt; +// * b = Focus candidate node.
&gt; 
&gt; In all these methods, rather than commenting what a and b are, you should just
&gt; name them appropriately: curRect, targetRect, or something.

I agree w/ you, but it could make code harder to read, imho.
And comment is used three times, not much, again imho.
So in this round, I opted to leave it was it was, but if you
really prefer I can fix it as you wish. 
 
&gt; &gt; +        if (a.y() &gt; b.y() + b.height()) {
&gt; 
&gt; use IntRect:bottom(), IntRect:right() here and in all these methods.

Fixed.

&gt; You could also define some inline methods like:
&gt; 
&gt; bool below(const IntRect&amp; r, int pos)
&gt; {
&gt;   return pos &gt; r.bottom();
&gt; }

Added:
   static inline bool belowOf(const intrect&amp; rect a , const intrect&amp; rect b)
and a correspondent |rightOf| function. is that ok ?

&gt; to make this code more readable. You could also add IntPoint IntRect::center()
&gt; const if you like (FloatRect has one).

Done in bug 35346.

&gt; &gt; +bool isMovingToRootDocument(Node* from, Node* to)
&gt; &gt; +{
&gt; &gt; +    if (!from || !to)
&gt; &gt; +        return false;
&gt; &gt; +
&gt; &gt; +    Document* rootDocument = to-&gt;document()-&gt;page()-&gt;mainFrame()-&gt;document();
&gt; &gt; +    return (to-&gt;document() == rootDocument &amp;&amp; from-&gt;document() != to-&gt;document());
&gt; &gt; +}
&gt; 
&gt; The &apos;moving to&apos; terminology is confusing. I think this would be clearer with:
&gt; 
&gt; bool isInRootDocument(Node*)
&gt; and then put the other logic at the call site.

Fixed. Done.

&gt; &gt; +void deflateIfNeeded(IntRect&amp; a, IntRect&amp; b, int fudgeFactor)
&gt; If needed for what?

I think comments in the caller site says it. See:

    // The bounding rectangle of two consecutive nodes can overlap. In such cases,
    // deflate both.
    deflateIfOverlapped(curRect, targetRect);

btw, i renamed function to |deflateIfOverlapped|.

&gt; I think this needs one more round of changes.

very helpful review. thx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193613</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 20:05:11 -0800</bug_when>
    <thetext>Attachment 49463 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/page/SpatialNavigation.cpp:154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/page/SpatialNavigation.cpp:155:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193615</commentid>
    <comment_count>66</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 20:15:58 -0800</bug_when>
    <thetext>Attachment 49463 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/309301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193632</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 22:01:46 -0800</bug_when>
    <thetext>Attachment 49463 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/308385</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193633</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-24 22:02:46 -0800</bug_when>
    <thetext>Attachment 49463 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/308388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193675</commentid>
    <comment_count>69</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-02-25 04:49:51 -0800</bug_when>
    <thetext>belowOf(..)? That should just be called below(..) or mayube isBelow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193700</commentid>
    <comment_count>70</comment_count>
      <attachid>49483</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-02-25 06:34:54 -0800</bug_when>
    <thetext>Created attachment 49483
(committed in r55543) Add directional navigation to WebCore (v15.1)

Same patch as patch 49463 (v15) - see comment 64, but now:

* it builds (see bug 35346).
* fixed the style erros.
* replaces |belowOf| by |below| (kenneth&apos;s suggestion).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193914</commentid>
    <comment_count>71</comment_count>
      <attachid>49483</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-02-25 16:08:11 -0800</bug_when>
    <thetext>Comment on attachment 49483
(committed in r55543) Add directional navigation to WebCore (v15.1)


&gt; +void updateFocusCandidateIfCloser(Node* focusedNode, Node* candidate,
&gt; +                                  long long distance, FocusCandidate&amp; closestFocusCandidate)

&gt; +void FocusController::findFocusableNodeInDirection(Document* document,
&gt; +                                                   Node* focusedNode,
&gt; +                                                   FocusDirection direction,
&gt; +                                                   KeyboardEvent* event,
&gt; +                                                   FocusCandidate&amp; closestFocusCandidate)

According to our coding style guide these should be one line only. Could you please fix that before committing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195111</commentid>
    <comment_count>72</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-03-02 10:49:02 -0800</bug_when>
    <thetext>I just got a first review round of the layout tests patch (see attachment 49076) with kenneth, and we decided:

1) to split this big patch in smallers ones as well, to help reviewers. Each one should come on its own bug. It makes sense because most of them are testing specific edge cases of spatial navigation usage that I faced during the development phase, and decided to create a unit test for it.

2) for this bug, I will be uploading a more generic test about the feature usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195184</commentid>
    <comment_count>73</comment_count>
      <attachid>49076</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-03-02 13:09:35 -0800</bug_when>
    <thetext>Comment on attachment 49076
Add directional navigation to WebCore (LayoutTests - v1)

marking the patch as obsolete based on comment #72. a new one coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197221</commentid>
    <comment_count>74</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-03-08 10:36:03 -0800</bug_when>
    <thetext>The core patch of this feature has landed on trunk in http://trac.webkit.org/changeset/55543 , and it is currently referred as &quot;Spatial Navigation&quot;.

Follow-up commits also landed, including:

* fix Mac build:
- r55544 (thx Jesus);
- r55550, r55553 and 55554 (thx so much to Simon Fraser).

* fix Windows build: r55552 (by my self).

I am considering this bug now as FIXED, and all follow-up work (yeah, feature not yet complete) are going to happen own their own bugs. I will be linking them as dependency of this one for the record.

Follow up work includes (but not limited to):

* Land all the layout tests I have for specific behaviour of the feature (unit overflow, table traversal, iframe traversal,  etc);
* Fix scrollable content traversal.
* Improve the initial focus insertion.
* Provide hooks for browser clients to customize the scroll action.
* Fix site specific issues ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289584</commentid>
    <comment_count>75</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-10-05 07:11:28 -0700</bug_when>
    <thetext>Bug 46905 is tracking the remaining existing spatial navigation work.

This one has done its job.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20923</attachid>
            <date>2008-05-02 07:33:15 -0700</date>
            <delta_ts>2008-08-04 23:58:01 -0700</delta_ts>
            <desc>Add directional navigation to WebCore</desc>
            <filename>directional-navigation.patch</filename>
            <type>text/plain</type>
            <size>10789</size>
            <attacher name="Marco Barisione">marco.barisione</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbmUgMzI4MTEpCisrKyBXZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAkoY29waWEgbG9jYWxlKQpAQCAtMTEyLDEwICsx
MTIsMjE2IEBACiAgICAgcmV0dXJuIGFkdmFuY2VGb2N1cyhkaXJlY3Rpb24sIGV2ZW50LCB0cnVl
KTsKIH0KIAotYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKK2lu
bGluZSBJbnRQb2ludCByZWFsTG9jYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXIpCiB7CisgICAg
QVNTRVJUKHJlbmRlcik7CisKKyAgICAvLyBGSVhNRTogaGFuZGxlIG5lc3RlZCBmcmFtZXMuCisg
ICAgSW50UG9pbnQgbG9jYXRpb247CisgICAgd2hpbGUgKHJlbmRlcikgeworICAgICAgICBsb2Nh
dGlvbi5tb3ZlKHJlbmRlci0+b2Zmc2V0TGVmdCgpLCByZW5kZXItPm9mZnNldFRvcCgpKTsKKyAg
ICAgICAgcmVuZGVyID0gcmVuZGVyLT5vZmZzZXRQYXJlbnQoKTsKKyAgICB9CisgICAgcmV0dXJu
IGxvY2F0aW9uOworfQorCitpbmxpbmUgaW50IHJlY3RhbmdsZURpc3RhbmNlKEludFJlY3QgcmVj
dDEsIEludFJlY3QgcmVjdDIpCit7CisgICAgaW50IHhEaXN0ID0gMDsKKyAgICBpZiAocmVjdDEu
eCgpID4gcmVjdDIucmlnaHQoKSkKKyAgICAgICAgeERpc3QgPSByZWN0MS54KCkgLSByZWN0Mi5y
aWdodCgpOworICAgIGVsc2UgaWYgKHJlY3QyLngoKSA+IHJlY3QxLnJpZ2h0KCkpCisgICAgICAg
IHhEaXN0ID0gcmVjdDIueCgpIC0gcmVjdDEucmlnaHQoKTsKKworICAgIGludCB5RGlzdCA9IDA7
CisgICAgaWYgKHJlY3QxLnkoKSA+IHJlY3QyLmJvdHRvbSgpKQorICAgICAgICB5RGlzdCA9IHJl
Y3QxLnkoKSAtIHJlY3QyLmJvdHRvbSgpOworICAgIGVsc2UgaWYgKHJlY3QyLnkoKSA+IHJlY3Qx
LmJvdHRvbSgpKQorICAgICAgICB5RGlzdCA9IHJlY3QyLnkoKSAtIHJlY3QxLmJvdHRvbSgpOwor
CisgICAgcmV0dXJuIHhEaXN0ICogeERpc3QgKyB5RGlzdCAqIHlEaXN0OworfQorCitpbmxpbmUg
Ym9vbCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJlY3RQb2ludCwg
Y29uc3QgSW50UG9pbnQmIHBvaW50KQoreworICAgIC8vIENoZWNrIGlmIHBvaW50IGlzIGFib3Zl
IHRoZSB5ID0geCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuIHJl
Y3RQb2ludC54KCkgLSByZWN0UG9pbnQueSgpIDwgcG9pbnQueCgpIC0gcG9pbnQueSgpOworfQor
CitpbmxpbmUgYm9vbCBpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJl
Y3RQb2ludCwgY29uc3QgSW50UG9pbnQmIHBvaW50KQoreworICAgIC8vIENoZWNrIGlmIHBvaW50
IGlzIGFib3ZlIHRoZSB5ID0gLXggKyBjIGxpbmUgcGFzc2luZyBmb3IgcmVjdFBvaW50LgorICAg
IHJldHVybiByZWN0UG9pbnQueCgpICsgcmVjdFBvaW50LnkoKSA+IHBvaW50LngoKSArIHBvaW50
LnkoKTsKK30KKworaW5saW5lIGJvb2wgaXNSZWN0QWJvdmVNYWluRGlhZ29uYWwoY29uc3QgSW50
UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBDaGVjayBp
ZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUgYWJvdmUgdGhlIHkgPSB4ICsgYyBs
aW5lIHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1cm4gaXNQb2ludEFib3ZlTWFpbkRp
YWdvbmFsKHJlY3RQb2ludCwgcmVjdC5sb2NhdGlvbigpKSB8fAorICAgICAgICBpc1BvaW50QWJv
dmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QueSgp
KSkgfHwKKyAgICAgICAgaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9p
bnQocmVjdC54KCksIHJlY3QuYm90dG9tKCkpKSB8fAorICAgICAgICBpc1BvaW50QWJvdmVNYWlu
RGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkp
KTsKK30KKworaW5saW5lIGJvb2wgaXNSZWN0QmVsb3dNYWluRGlhZ29uYWwoY29uc3QgSW50UG9p
bnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBDaGVjayBpZiBz
b21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUgYmVsb3cgdGhlIHkgPSB4ICsgYyBsaW5l
IHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1cm4gIWlzUG9pbnRBYm92ZU1haW5EaWFn
b25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkgfHwKKyAgICAgICAgIWlzUG9pbnRBYm92
ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkp
KSB8fAorICAgICAgICAhaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9p
bnQocmVjdC54KCksIHJlY3QuYm90dG9tKCkpKSB8fAorICAgICAgICAhaXNQb2ludEFib3ZlTWFp
bkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgp
KSk7Cit9CisKK2lubGluZSBib29sIGlzUmVjdEFib3ZlQW50aURpYWdvbmFsKGNvbnN0IEludFBv
aW50JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8gQ2hlY2sgaWYg
c29tZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGFib3ZlIHRoZSB5ID0gLXggKyBjIGxp
bmUgcGFzc2luZyBmb3IgcmVjdFBvaW50LgorICAgIHJldHVybiBpc1BvaW50QWJvdmVBbnRpRGlh
Z29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpIHx8CisgICAgICAgIGlzUG9pbnRBYm92
ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkp
KSB8fAorICAgICAgICBpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2lu
dChyZWN0LngoKSwgcmVjdC5ib3R0b20oKSkpIHx8CisgICAgICAgIGlzUG9pbnRBYm92ZUFudGlE
aWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC5ib3R0b20oKSkp
OworfQorCitpbmxpbmUgYm9vbCBpc1JlY3RCZWxvd0FudGlEaWFnb25hbChjb25zdCBJbnRQb2lu
dCYgcmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNv
bWUgcG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFyZSBiZWxvdyB0aGUgeSA9IC14ICsgYyBsaW5l
IHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1cm4gIWlzUG9pbnRBYm92ZUFudGlEaWFn
b25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkgfHwKKyAgICAgICAgIWlzUG9pbnRBYm92
ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkp
KSB8fAorICAgICAgICAhaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9p
bnQocmVjdC54KCksIHJlY3QuYm90dG9tKCkpKSB8fAorICAgICAgICAhaXNQb2ludEFib3ZlQW50
aURpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgp
KSk7Cit9CisKK3N0YXRpYyBpbnQgZGlzdGFuY2VJbkRpcmVjdGlvbihOb2RlKiBzdGFydCwgTm9k
ZSogZGVzdCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIFJlbmRlck9iamVjdCog
c3RhcnRSZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIoKTsKKyAgICBJbnRSZWN0IHN0YXJ0UmVjdChy
ZWFsTG9jYXRpb24oc3RhcnRSZW5kZXIpLCBJbnRTaXplKHN0YXJ0UmVuZGVyLT53aWR0aCgpLCBz
dGFydFJlbmRlci0+aGVpZ2h0KCkpKTsKKworICAgIFJlbmRlck9iamVjdCogZGVzdFJlbmRlciA9
IGRlc3QtPnJlbmRlcmVyKCk7CisgICAgSW50UmVjdCBkZXN0UmVjdChyZWFsTG9jYXRpb24oZGVz
dFJlbmRlciksIEludFNpemUoZGVzdFJlbmRlci0+d2lkdGgoKSwgZGVzdFJlbmRlci0+aGVpZ2h0
KCkpKTsKKworICAgIC8vIFRoZSBib3VuZGluZyByZWN0YW5nbGUgb2YgdHdvIGNvbnNlY3V0aXZl
IGxpbmtzIGNvdWxkIG92ZXJsYXAsIHNvIHdlIGRlY3JlYXNlIHRoZSBzaXplIG9mCisgICAgLy8g
Ym90aCByZWN0YW5nbGVzLgorICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJldHRlciB3YXkgdG8g
ZG8gdGhpcz8KKyAgICBzdGFydFJlY3QuaW5mbGF0ZSgtNCk7CisgICAgZGVzdFJlY3QuaW5mbGF0
ZSgtNCk7CisKKyAgICAvLyBBIG1vdmVtZW50IHRvIHRoZSByaWdodCBpcyBhbGxvd2VkIG9ubHkg
aWYgdGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyBpbiB0aGUgcmVnaW9uIGRlbGltaXRlZAor
ICAgIC8vIGJ5IHRoZSByaWdodCBzaWRlIG9mIHRoZSBzdGFydCByZWN0YW5nbGUgYW5kIHRoZSB0
d28gZGlhZ29uYWxzIHN0YXJ0aW5nIGZyb20gaXRzIHZlcnRpY2VzLgorICAgIC8vIFRoZSBzYW1l
IGlzIGRvbmUgZm9yIHRoZSBvdGhlciBkaXJlY3Rpb25zLgorICAgIHN3aXRjaCAoZGlyZWN0aW9u
KSB7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgICAgIGlmIChk
ZXN0UmVjdC5yaWdodCgpIDw9IHN0YXJ0UmVjdC5yaWdodCgpIHx8CisgICAgICAgICAgICAgICAg
IWlzUmVjdEJlbG93QW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFy
dFJlY3QueSgpKSwgZGVzdFJlY3QpIHx8CisgICAgICAgICAgICAgICAgIWlzUmVjdEFib3ZlTWFp
bkRpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3QuYm90dG9tKCkp
LCBkZXN0UmVjdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIElOVF9NQVg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgICAgICBp
ZiAoZGVzdFJlY3QueCgpID49IHN0YXJ0UmVjdC54KCkgfHwKKyAgICAgICAgICAgICAgICAhaXNS
ZWN0QmVsb3dNYWluRGlhZ29uYWwoc3RhcnRSZWN0LmxvY2F0aW9uKCksIGRlc3RSZWN0KSB8fAor
ICAgICAgICAgICAgICAgICFpc1JlY3RBYm92ZUFudGlEaWFnb25hbChJbnRQb2ludChzdGFydFJl
Y3QueCgpLCBzdGFydFJlY3QuYm90dG9tKCkpLCBkZXN0UmVjdCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIElOVF9NQVg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvblVwOgorICAgICAgICAgICAgaWYgKGRlc3RSZWN0LnkoKSA+PSBzdGFydFJlY3QueSgp
IHx8CisgICAgICAgICAgICAgICAgIWlzUmVjdEFib3ZlTWFpbkRpYWdvbmFsKHN0YXJ0UmVjdC5s
b2NhdGlvbigpLCBkZXN0UmVjdCkgfHwKKyAgICAgICAgICAgICAgICAhaXNSZWN0QWJvdmVBbnRp
RGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVjdC55KCkpLCBkZXN0
UmVjdCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIElOVF9NQVg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgICAgICBpZiAoZGVz
dFJlY3QuYm90dG9tKCkgPD0gc3RhcnRSZWN0LmJvdHRvbSgpIHx8CisgICAgICAgICAgICAgICAg
IWlzUmVjdEJlbG93QW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC54KCksIHN0YXJ0UmVj
dC5ib3R0b20oKSksIGRlc3RSZWN0KSB8fAorICAgICAgICAgICAgICAgICFpc1JlY3RCZWxvd01h
aW5EaWFnb25hbChJbnRQb2ludChzdGFydFJlY3QucmlnaHQoKSwgc3RhcnRSZWN0LmJvdHRvbSgp
KSwgZGVzdFJlY3QpKQorICAgICAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlQoZmFsc2UpOwor
ICAgICAgICAgICAgcmV0dXJuIElOVF9NQVg7CisgICAgfQorCisgICAgcmV0dXJuIHJlY3Rhbmds
ZURpc3RhbmNlKHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworfQorCitjbGFzcyBCZXN0Q2FuZGlkYXRl
Cit7CitwdWJsaWM6CisgICAgQmVzdENhbmRpZGF0ZSgpIDogbm9kZSgwKSwgZGlzdGFuY2UoSU5U
X01BWCkge30KKyAgICBOb2RlKiBub2RlOworICAgIGludCBkaXN0YW5jZTsKK307CisKK3N0YXRp
YyB2b2lkIG5leHRJbkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIHN0YXJ0LCBG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBCZXN0Q2FuZGlk
YXRlJiBiZXN0Q2FuZGlkYXRlKQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisKKyAgICAvLyBX
YWxrIGFsbCB0aGUgY2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBiZXN0Q2FuZGlkYXRlIGlmIHdlIGZp
bmQgYSBuZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9IGRvY3VtZW50LT5m
aXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJzZU5l
eHROb2RlKCkpCisgICAgICAgIGlmIChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkg
eworICAgICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9IHN0YXRpY19jYXN0
PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAob3du
ZXItPmNvbnRlbnRGcmFtZSgpKSB7CisgICAgICAgICAgICAgICAgRG9jdW1lbnQqIGlubmVyRG9j
dW1lbnQgPSBvd25lci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAgICAg
ICAgaWYgKGlubmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlv
bihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9IHN0YXJ0ICYm
IGNhbmRpZGF0ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkgJiYgY2FuZGlkYXRlLT50YWJJ
bmRleCgpID49IDApIHsKKyAgICAgICAgICAgIGludCBkaXN0YW5jZSA9IGRpc3RhbmNlSW5EaXJl
Y3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIGlmIChkaXN0
YW5jZSA8IGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAgICBiZXN0Q2Fu
ZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0ZS5k
aXN0YW5jZSA9IGRpc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICB9Cit9CisKK2Jvb2wg
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbChGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKK3sKICAg
ICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBBU1NFUlQoZnJhbWUp
OworICAgIERvY3VtZW50KiBmb2N1c2VkRG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWZvY3VzZWREb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9k
ZSogZm9jdXNlZE5vZGUgPSBmb2N1c2VkRG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYg
KCFmb2N1c2VkTm9kZSkKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRvIHRoZSBmaXJzdCBmb2N1c2Fi
bGUgbm9kZS4KKyAgICAgICAgLy8gaW5pdGlhbEZvY3VzIGlzIHNldCB0byB0cnVlIHNvIHRoZSBj
aHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNMaW5lYXIo
Rm9jdXNEaXJlY3Rpb25Gb3J3YXJkLCBldmVudCwgdHJ1ZSk7CisKKyAgICAvLyBNb3ZlIHVwIGlu
IHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAg
IEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBp
ZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVz
dENhbmRpZGF0ZSBiZXN0Q2FuZGlkYXRlOworICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9j
dW1lbnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOwor
CisgICAgTm9kZSogbm9kZSA9IGJlc3RDYW5kaWRhdGUubm9kZTsKKyAgICBpZiAoIW5vZGUpCisg
ICAgICAvLyBMZWF2ZSB0aGUgZm9jdXMgb24gdGhlIHNhbWUgbm9kZS4KKyAgICAgIHJldHVybiB0
cnVlOworCisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIC8vIEZJWE1F
OiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3VtZW50IGhlcmUuCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7
CisKKyAgICBpZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KQorICAgICAgICAvLyBG
b2N1cyBpcyBnb2luZyBhd2F5IGZyb20gdGhlIG9yaWdpbmFsbHkgZm9jdXNlZCBkb2N1bWVudCwg
c28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KKyAgICAgICAgZm9jdXNlZERvY3VtZW50LT5zZXRG
b2N1c2VkTm9kZSgwKTsKKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNl
ZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzTGluZWFyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwg
S2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQoreworICAgIEZyYW1lKiBm
cmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjA3LDYgKzQxMywyMCBAQAogICAgIHJldHVybiB0
cnVlOwogfQogCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQor
eworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25G
b3J3YXJkOgorICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgICAg
ICByZXR1cm4gYWR2YW5jZUZvY3VzTGluZWFyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1
cyk7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBjYXNlIEZvY3Vz
RGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICAgICAg
Y2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3Vz
RGlyZWN0aW9uYWwoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3VzKTsKKyAgICB9Cit9CisK
IHN0YXRpYyBib29sIHJlbGlucXVpc2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQogewogICAg
IEFTU0VSVChub2RlKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgJKHJldmlzaW9uZSAzMjgx
MSkKKysrIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAkoY29waWEgbG9jYWxlKQpAQCAt
NTcsNiArNTcsOSBAQAogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIFJlZlB0cjxGcmFt
ZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgICAgIGJvb2wgbV9pc0FjdGl2ZTsKKworICAgICAgICBi
b29sIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
KiwgYm9vbCBpbml0aWFsRm9jdXMpOworICAgICAgICBib29sIGFkdmFuY2VGb2N1c0xpbmVhcihG
b2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJl
Y3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAkocmV2
aXNpb25lIDMyODExKQorKysgV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgJKGNvcGlhIGxv
Y2FsZSkKQEAgLTI5LDcgKzI5LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBG
b2N1c0RpcmVjdGlvbiB7CiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAg
ICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2Fy
ZCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25VcCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25Eb3du
LAorICAgICAgICBGb2N1c0RpcmVjdGlvbkxlZnQsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uUmln
aHQKICAgICB9OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20924</attachid>
            <date>2008-05-02 07:40:55 -0700</date>
            <delta_ts>2008-08-04 23:58:27 -0700</delta_ts>
            <desc>Navigate through links using CTRL + arrow keys</desc>
            <filename>directional-nav-debug.patch</filename>
            <type>text/plain</type>
            <size>13891</size>
            <attacher name="Marco Barisione">marco.barisione</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZDlhNGE1Zi4uYzg5ZDc0MiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTE1ODUsNiArMTU4NSw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5
Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAg
ICAgICAgICAgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgaWYg
KGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIkRvd24iIHx8IGV2ZW50LT5rZXlJZGVudGlmaWVy
KCkgPT0gIlVwIiB8fAorICAgICAgICAgICAgICAgIGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0g
IlJpZ2h0IiB8fCBldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJMZWZ0IikKKyAgICAgICAgICAg
IGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihldmVudCk7CiAgICB9CiAgICBpZiAoZXZlbnQtPnR5
cGUoKSA9PSBrZXlwcmVzc0V2ZW50KSB7CiAgICAgICAgIG1fZnJhbWUtPmVkaXRvcigpLT5oYW5k
bGVLZXlib2FyZEV2ZW50KGV2ZW50KTsKQEAgLTE4NjIsNiArMTg2NSwzNyBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAg
ICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKK3ZvaWQgRXZlbnRIYW5kbGVy
OjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAg
aWYgKCFldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5KCkgfHwgZXZlbnQtPmFsdEdy
YXBoS2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKCFwYWdlLT50YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEFyZSBDVFJMLWFycm93IGtleXMgbmVlZGVkIGlu
IGRlc2lnbiBtb2RlPworICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb247
CisgICAgaWYgKGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIkRvd24iKQorICAgICAgICBmb2N1
c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uRG93bjsKKyAgICBlbHNlIGlmIChldmVudC0+a2V5
SWRlbnRpZmllcigpID09ICJVcCIpCisgICAgICAgIGZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJl
Y3Rpb25VcDsKKyAgICBlbHNlIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJMZWZ0IikK
KyAgICAgICAgZm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbkxlZnQ7CisgICAgZWxzZSBp
ZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiUmlnaHQiKQorICAgICAgICBmb2N1c0RpcmVj
dGlvbiA9IEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisgICAgZWxzZQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAocGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFuY2VGb2N1cyhmb2N1c0RpcmVj
dGlvbiwgZXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwog
dm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpCiB7CiAgICAg
aWYgKERvY3VtZW50KiBkID0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRl
eCBiYjU1ZDAzLi5hOTRjNGMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yNTAsNiArMjUwLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIHBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoUGxhdGZvcm1XaGVlbEV2
ZW50JiwgV2lkZ2V0Kik7CiAKICAgICB2b2lkIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9h
cmRFdmVudCopOworICAgIHZvaWQgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKEtleWJvYXJkRXZl
bnQqKTsKIAogICAgIHZvaWQgYWxsb3dESFRNTERyYWcoYm9vbCYgZmxhZ0RIVE1MLCBib29sJiBm
bGFnVUEpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGEzNTQyYWEuLjUz
NGJhMWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0xMTIsNyArMTEyLDIyNyBAQCBi
b29sIEZvY3VzQ29udHJvbGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbiwgS2V5Ym9hcmRFdmVudCogZQogICAgIHJldHVybiBhZHZhbmNlRm9jdXMoZGlyZWN0aW9u
LCBldmVudCwgdHJ1ZSk7CiB9CiAKLWJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMo
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0
aWFsRm9jdXMpCisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPG1hdGguaD4KKworaW5saW5l
IEludFBvaW50IHJlYWxMb2NhdGlvbihSZW5kZXJPYmplY3QqIHJlbmRlcikKK3sKKyAgICBBU1NF
UlQocmVuZGVyKTsKKworICAgIC8vIEZJWE1FOiBoYW5kbGUgbmVzdGVkIGZyYW1lcy4KKyAgICBJ
bnRQb2ludCBsb2NhdGlvbjsKKyAgICB3aGlsZSAocmVuZGVyKSB7CisgICAgICAgIGxvY2F0aW9u
Lm1vdmUocmVuZGVyLT5vZmZzZXRMZWZ0KCksIHJlbmRlci0+b2Zmc2V0VG9wKCkpOworICAgICAg
ICByZW5kZXIgPSByZW5kZXItPm9mZnNldFBhcmVudCgpOworICAgIH0KKyAgICByZXR1cm4gbG9j
YXRpb247Cit9CisKK2lubGluZSBpbnQgcmVjdGFuZ2xlRGlzdGFuY2UoSW50UmVjdCByZWN0MSwg
SW50UmVjdCByZWN0MikKK3sKKyAgICBpbnQgeERpc3QgPSAwOworICAgIGlmIChyZWN0MS54KCkg
PiByZWN0Mi5yaWdodCgpKQorICAgICAgICB4RGlzdCA9IHJlY3QxLngoKSAtIHJlY3QyLnJpZ2h0
KCk7CisgICAgZWxzZSBpZiAocmVjdDIueCgpID4gcmVjdDEucmlnaHQoKSkKKyAgICAgICAgeERp
c3QgPSByZWN0Mi54KCkgLSByZWN0MS5yaWdodCgpOworCisgICAgaW50IHlEaXN0ID0gMDsKKyAg
ICBpZiAocmVjdDEueSgpID4gcmVjdDIuYm90dG9tKCkpCisgICAgICAgIHlEaXN0ID0gcmVjdDEu
eSgpIC0gcmVjdDIuYm90dG9tKCk7CisgICAgZWxzZSBpZiAocmVjdDIueSgpID4gcmVjdDEuYm90
dG9tKCkpCisgICAgICAgIHlEaXN0ID0gcmVjdDIueSgpIC0gcmVjdDEuYm90dG9tKCk7CisKKyAg
ICByZXR1cm4geERpc3QgKiB4RGlzdCArIHlEaXN0ICogeURpc3Q7Cit9CisKK2lubGluZSBib29s
IGlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBvaW50LCBjb25z
dCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgLy8gQ2hlY2sgaWYgcG9pbnQgaXMgYWJvdmUgdGhl
IHkgPSB4ICsgYyBsaW5lIHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1cm4gcmVjdFBv
aW50LngoKSAtIHJlY3RQb2ludC55KCkgPCBwb2ludC54KCkgLSBwb2ludC55KCk7Cit9CisKK2lu
bGluZSBib29sIGlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBv
aW50LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgLy8gQ2hlY2sgaWYgcG9pbnQgaXMg
YWJvdmUgdGhlIHkgPSAteCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0
dXJuIHJlY3RQb2ludC54KCkgKyByZWN0UG9pbnQueSgpID4gcG9pbnQueCgpICsgcG9pbnQueSgp
OworfQorCitpbmxpbmUgYm9vbCBpc1JlY3RBYm92ZU1haW5EaWFnb25hbChjb25zdCBJbnRQb2lu
dCYgcmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNv
bWUgcG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFyZSBhYm92ZSB0aGUgeSA9IHggKyBjIGxpbmUg
cGFzc2luZyBmb3IgcmVjdFBvaW50LgorICAgIHJldHVybiBpc1BvaW50QWJvdmVNYWluRGlhZ29u
YWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpIHx8CisgICAgICAgIGlzUG9pbnRBYm92ZU1h
aW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkpKSB8
fAorICAgICAgICBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChy
ZWN0LngoKSwgcmVjdC5ib3R0b20oKSkpIHx8CisgICAgICAgIGlzUG9pbnRBYm92ZU1haW5EaWFn
b25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC5ib3R0b20oKSkpOwor
fQorCitpbmxpbmUgYm9vbCBpc1JlY3RCZWxvd01haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYg
cmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNvbWUg
cG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFyZSBiZWxvdyB0aGUgeSA9IHggKyBjIGxpbmUgcGFz
c2luZyBmb3IgcmVjdFBvaW50LgorICAgIHJldHVybiAhaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFs
KHJlY3RQb2ludCwgcmVjdC5sb2NhdGlvbigpKSB8fAorICAgICAgICAhaXNQb2ludEFib3ZlTWFp
bkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LnkoKSkpIHx8
CisgICAgICAgICFpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChy
ZWN0LngoKSwgcmVjdC5ib3R0b20oKSkpIHx8CisgICAgICAgICFpc1BvaW50QWJvdmVNYWluRGlh
Z29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKTsK
K30KKworaW5saW5lIGJvb2wgaXNSZWN0QWJvdmVBbnRpRGlhZ29uYWwoY29uc3QgSW50UG9pbnQm
IHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBDaGVjayBpZiBzb21l
IHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUgYWJvdmUgdGhlIHkgPSAteCArIGMgbGluZSBw
YXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuIGlzUG9pbnRBYm92ZUFudGlEaWFnb25h
bChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkgfHwKKyAgICAgICAgaXNQb2ludEFib3ZlQW50
aURpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LnkoKSkpIHx8
CisgICAgICAgIGlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJl
Y3QueCgpLCByZWN0LmJvdHRvbSgpKSkgfHwKKyAgICAgICAgaXNQb2ludEFib3ZlQW50aURpYWdv
bmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgpKSk7Cit9
CisKK2lubGluZSBib29sIGlzUmVjdEJlbG93QW50aURpYWdvbmFsKGNvbnN0IEludFBvaW50JiBy
ZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8gQ2hlY2sgaWYgc29tZSBw
b2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGJlbG93IHRoZSB5ID0gLXggKyBjIGxpbmUgcGFz
c2luZyBmb3IgcmVjdFBvaW50LgorICAgIHJldHVybiAhaXNQb2ludEFib3ZlQW50aURpYWdvbmFs
KHJlY3RQb2ludCwgcmVjdC5sb2NhdGlvbigpKSB8fAorICAgICAgICAhaXNQb2ludEFib3ZlQW50
aURpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LnkoKSkpIHx8
CisgICAgICAgICFpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChy
ZWN0LngoKSwgcmVjdC5ib3R0b20oKSkpIHx8CisgICAgICAgICFpc1BvaW50QWJvdmVBbnRpRGlh
Z29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKTsK
K30KKworc3RhdGljIGludCBkaXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqIHN0YXJ0LCBOb2RlKiBk
ZXN0LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgUmVuZGVyT2JqZWN0KiBzdGFy
dFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJlcigpOworICAgIEludFJlY3Qgc3RhcnRSZWN0KHJlYWxM
b2NhdGlvbihzdGFydFJlbmRlciksIEludFNpemUoc3RhcnRSZW5kZXItPndpZHRoKCksIHN0YXJ0
UmVuZGVyLT5oZWlnaHQoKSkpOworCisgICAgUmVuZGVyT2JqZWN0KiBkZXN0UmVuZGVyID0gZGVz
dC0+cmVuZGVyZXIoKTsKKyAgICBJbnRSZWN0IGRlc3RSZWN0KHJlYWxMb2NhdGlvbihkZXN0UmVu
ZGVyKSwgSW50U2l6ZShkZXN0UmVuZGVyLT53aWR0aCgpLCBkZXN0UmVuZGVyLT5oZWlnaHQoKSkp
OworCisgICAgLy8gVGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBvZiB0d28gY29uc2VjdXRpdmUgbGlu
a3MgY291bGQgb3ZlcmxhcCwgc28gd2UgZGVjcmVhc2UgdGhlIHNpemUgb2YKKyAgICAvLyBib3Ro
IHJlY3RhbmdsZXMuCisgICAgLy8gRklYTUU6IElzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBkbyB0
aGlzPworICAgIHN0YXJ0UmVjdC5pbmZsYXRlKC00KTsKKyAgICBkZXN0UmVjdC5pbmZsYXRlKC00
KTsKKworICAgIGdfcHJpbnRlcnIoIiAgICAgICAgc3RhcnQgKGw6JWQsIHQ6JWQsIHI6JWQgLGI6
JWQpLCBkZXN0IChsOiVkLCB0OiVkLCByOiVkLCBiOiVkKSwgZGlzdDolLjJmXG4iLAorICAgICAg
ICAgICAgICAgc3RhcnRSZWN0LngoKSwgc3RhcnRSZWN0LnkoKSwgc3RhcnRSZWN0LnJpZ2h0KCks
IHN0YXJ0UmVjdC5ib3R0b20oKSwKKyAgICAgICAgICAgICAgIGRlc3RSZWN0LngoKSwgZGVzdFJl
Y3QueSgpLCBkZXN0UmVjdC5yaWdodCgpLCBkZXN0UmVjdC5ib3R0b20oKSwKKyAgICAgICAgICAg
ICAgIHNxcnQocmVjdGFuZ2xlRGlzdGFuY2Uoc3RhcnRSZWN0LCBkZXN0UmVjdCkpKTsKKworICAg
IC8vIEEgbW92ZW1lbnQgdG8gdGhlIHJpZ2h0IGlzIGFsbG93ZWQgb25seSBpZiB0aGUgZGVzdGlu
YXRpb24gcmVjdGFuZ2xlIGlzIGluIHRoZSByZWdpb24gZGVsaW1pdGVkCisgICAgLy8gYnkgdGhl
IHJpZ2h0IHNpZGUgb2YgdGhlIHN0YXJ0IHJlY3RhbmdsZSBhbmQgdGhlIHR3byBkaWFnb25hbHMg
c3RhcnRpbmcgZnJvbSBpdHMgdmVydGljZXMuCisgICAgLy8gVGhlIHNhbWUgaXMgZG9uZSBmb3Ig
dGhlIG90aGVyIGRpcmVjdGlvbnMuCisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICAgICAg
Y2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICAgICAgaWYgKGRlc3RSZWN0LnJpZ2h0
KCkgPD0gc3RhcnRSZWN0LnJpZ2h0KCkgfHwKKyAgICAgICAgICAgICAgICAhaXNSZWN0QmVsb3dB
bnRpRGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVjdC55KCkpLCBk
ZXN0UmVjdCkgfHwKKyAgICAgICAgICAgICAgICAhaXNSZWN0QWJvdmVNYWluRGlhZ29uYWwoSW50
UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gSU5UX01BWDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgICAgIGlmIChkZXN0UmVjdC54
KCkgPj0gc3RhcnRSZWN0LngoKSB8fAorICAgICAgICAgICAgICAgICFpc1JlY3RCZWxvd01haW5E
aWFnb25hbChzdGFydFJlY3QubG9jYXRpb24oKSwgZGVzdFJlY3QpIHx8CisgICAgICAgICAgICAg
ICAgIWlzUmVjdEFib3ZlQW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC54KCksIHN0YXJ0
UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSU5UX01B
WDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6Cisg
ICAgICAgICAgICBpZiAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55KCkgfHwKKyAgICAgICAg
ICAgICAgICAhaXNSZWN0QWJvdmVNYWluRGlhZ29uYWwoc3RhcnRSZWN0LmxvY2F0aW9uKCksIGRl
c3RSZWN0KSB8fAorICAgICAgICAgICAgICAgICFpc1JlY3RBYm92ZUFudGlEaWFnb25hbChJbnRQ
b2ludChzdGFydFJlY3QucmlnaHQoKSwgc3RhcnRSZWN0LnkoKSksIGRlc3RSZWN0KSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gSU5UX01BWDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgICAgIGlmIChkZXN0UmVjdC5ib3R0b20o
KSA8PSBzdGFydFJlY3QuYm90dG9tKCkgfHwKKyAgICAgICAgICAgICAgICAhaXNSZWN0QmVsb3dB
bnRpRGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LngoKSwgc3RhcnRSZWN0LmJvdHRvbSgpKSwg
ZGVzdFJlY3QpIHx8CisgICAgICAgICAgICAgICAgIWlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKElu
dFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3QuYm90dG9tKCkpLCBkZXN0UmVjdCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIElOVF9NQVg7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVChmYWxzZSk7CisgICAgICAgICAgICBy
ZXR1cm4gSU5UX01BWDsKKyAgICB9CisKKyAgICByZXR1cm4gcmVjdGFuZ2xlRGlzdGFuY2Uoc3Rh
cnRSZWN0LCBkZXN0UmVjdCk7Cit9CisKK2NsYXNzIEJlc3RDYW5kaWRhdGUKK3sKK3B1YmxpYzoK
KyAgICBCZXN0Q2FuZGlkYXRlKCkgOiBub2RlKDApLCBkaXN0YW5jZShJTlRfTUFYKSB7fQorICAg
IE5vZGUqIG5vZGU7CisgICAgaW50IGRpc3RhbmNlOworfTsKKworc3RhdGljIHZvaWQgbmV4dElu
RGlyZWN0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogc3RhcnQsIEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIEJlc3RDYW5kaWRhdGUmIGJlc3RDYW5k
aWRhdGUpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKworICAgIC8vIFdhbGsgYWxsIHRoZSBj
aGlsZCBub2RlcyBhbmQgdXBkYXRlIGJlc3RDYW5kaWRhdGUgaWYgd2UgZmluZCBhIG5lYXJlciBu
b2RlLgorICAgIGZvciAoTm9kZSogY2FuZGlkYXRlID0gZG9jdW1lbnQtPmZpcnN0Q2hpbGQoKTsg
Y2FuZGlkYXRlOyBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkKKyAg
ICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAgICAgICAg
ICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3du
ZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlmIChvd25lci0+Y29udGVudEZy
YW1lKCkpIHsKKyAgICAgICAgICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93bmVy
LT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5uZXJE
b2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlubmVyRG9jdW1l
bnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2FuZGlkYXRlLT5p
c0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSAmJiBjYW5kaWRhdGUtPnRhYkluZGV4KCkgPj0gMCkg
eworICAgICAgICAgICAgZ19wcmludGVycigiICAgIHRyeWluZyAlcFxuIiwgY2FuZGlkYXRlKTsK
KyAgICAgICAgICAgIGludCBkaXN0YW5jZSA9IGRpc3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNh
bmRpZGF0ZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAgIGdfcHJpbnRlcnIoIiAgICAgICAgZGlz
dGFuY2UgaXMgJS4yZlxuIiwgc3FydChkaXN0YW5jZSkpOworICAgICAgICAgICAgaWYgKGRpc3Rh
bmNlIDwgYmVzdENhbmRpZGF0ZS5kaXN0YW5jZSkgeworICAgICAgICAgICAgICAgIGdfcHJpbnRl
cnIoIiAgICAgICAgYWNjZXB0aW5nLCAlLjJmIGlzIGJldHRlciB0aGFuICUuMmZcbiIsIHNxcnQo
ZGlzdGFuY2UpLCBzcXJ0KGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UpKTsKKyAgICAgICAgICAgICAg
ICBiZXN0Q2FuZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgYmVzdENh
bmRpZGF0ZS5kaXN0YW5jZSA9IGRpc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICB9Cit9
CisKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbChGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1
cykKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBBU1NF
UlQoZnJhbWUpOworICAgIERvY3VtZW50KiBmb2N1c2VkRG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1l
bnQoKTsKKyAgICBpZiAoIWZvY3VzZWREb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgTm9kZSogZm9jdXNlZE5vZGUgPSBmb2N1c2VkRG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7
CisgICAgaWYgKCFmb2N1c2VkTm9kZSkKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRvIHRoZSBmaXJz
dCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgLy8gaW5pdGlhbEZvY3VzIGlzIHNldCB0byB0cnVl
IHNvIHRoZSBjaHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBhZHZhbmNlRm9j
dXNMaW5lYXIoRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLCBldmVudCwgdHJ1ZSk7CisKKyAgICAvLyBN
b3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOwor
ICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQor
CisgICAgZ19wcmludGVycigiQU5BTFlTSU5HICVwXG4iLCBmb2N1c2VkTm9kZSk7CisKKyAgICBC
ZXN0Q2FuZGlkYXRlIGJlc3RDYW5kaWRhdGU7CisgICAgbmV4dEluRGlyZWN0aW9uKGZyYW1lLT5k
b2N1bWVudCgpLCBmb2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZSk7
CisgICAgZ19wcmludGVycigiICAgIGRlc3Qgbm9kZSBpcyAlcFxuXG5cbiIsIGJlc3RDYW5kaWRh
dGUubm9kZSk7CisKKyAgICBOb2RlKiBub2RlID0gYmVzdENhbmRpZGF0ZS5ub2RlOworICAgIGlm
ICghbm9kZSkKKyAgICAgIC8vIExlYXZlIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSBub2RlLgorICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAg
ICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0gbm9kZS0+
ZG9jdW1lbnQoKTsKKworICAgIGlmIChuZXdEb2N1bWVudCAhPSBmb2N1c2VkRG9jdW1lbnQpCisg
ICAgICAgIC8vIEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2Vk
IGRvY3VtZW50LCBzbyBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9j
dW1lbnQtPnNldEZvY3VzZWROb2RlKDApOworCisgICAgaWYgKG5ld0RvY3VtZW50KQorICAgICAg
ICBzZXRGb2N1c2VkRnJhbWUobmV3RG9jdW1lbnQtPmZyYW1lKCkpOworCisgICAgc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG5vZGUpLT5mb2N1cyhmYWxzZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNMaW5lYXIoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCiB7CiAg
ICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJUKGZyYW1l
KTsKQEAgLTIwNyw2ICs0MjcsMjAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1
cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1
cykKK3sKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uRm9yd2FyZDoKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAg
ICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0xpbmVhcihkaXJlY3Rpb24sIGV2ZW50LCBpbml0aWFs
Rm9jdXMpOworICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgY2FzZSBG
b2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAg
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VG
b2N1c0RpcmVjdGlvbmFsKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7CisgICAgfQor
fQorCiBzdGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkKIHsK
ICAgICBBU1NFUlQobm9kZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZjRhNjYzMi4uZWIx
ZDAwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNTcsNiArNTcsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAgICAgUmVmUHRyPEZyYW1lPiBt
X2ZvY3VzZWRGcmFtZTsKICAgICAgICAgYm9vbCBtX2lzQWN0aXZlOworCisgICAgICAgIGJvb2wg
YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWwoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBi
b29sIGluaXRpYWxGb2N1cyk7CisgICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzTGluZWFyKEZvY3Vz
RGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0Rp
cmVjdGlvbi5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKaW5kZXggMjYxYzc0NS4u
NTUxYzcyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKKysrIGIv
V2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKQEAgLTI5LDcgKzI5LDExIEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVjdGlvbiB7CiAgICAgICAgIEZvY3VzRGly
ZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQKKyAgICAg
ICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25VcCwKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25Eb3duLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkxlZnQsCisg
ICAgICAgIEZvY3VzRGlyZWN0aW9uUmlnaHQKICAgICB9OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22634</attachid>
            <date>2008-08-04 10:47:55 -0700</date>
            <delta_ts>2008-08-31 19:11:42 -0700</delta_ts>
            <desc>Add directional navigation to WebCore</desc>
            <filename>directional-navigation.patch</filename>
            <type>text/plain</type>
            <size>13206</size>
            <attacher name="Marco Barisione">marco.barisione</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggY2QxOGQ0ZS4uMjc5MTJiZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTE3NDUsNiArMTc0NSw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5
Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAg
ICAgICAgICAgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgICBlbHNlIGlm
IChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJEb3duIiB8fCBldmVudC0+a2V5SWRlbnRpZmll
cigpID09ICJVcCIgfHwKKyAgICAgICAgICAgICAgICAgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9
PSAiUmlnaHQiIHx8IGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIkxlZnQiKQorICAgICAgICAg
ICAgIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihldmVudCk7CiAKICAgICAgICAvLyBwcm92aWRl
cyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkg
dXNlcnMKICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWQoKSkKQEAgLTIwMzQsNiArMjAzNywzNyBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpk
ZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYg
KCFldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5KCkgfHwgZXZlbnQtPmFsdEdyYXBo
S2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFwYWdlLT50YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gRklYTUU6IEFyZSBDVFJMLWFycm93IGtleXMgbmVlZGVkIGluIGRl
c2lnbiBtb2RlPworICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb247Cisg
ICAgaWYgKGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIkRvd24iKQorICAgICAgICBmb2N1c0Rp
cmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uRG93bjsKKyAgICBlbHNlIGlmIChldmVudC0+a2V5SWRl
bnRpZmllcigpID09ICJVcCIpCisgICAgICAgIGZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rp
b25VcDsKKyAgICBlbHNlIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJMZWZ0IikKKyAg
ICAgICAgZm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbkxlZnQ7CisgICAgZWxzZSBpZiAo
ZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiUmlnaHQiKQorICAgICAgICBmb2N1c0RpcmVjdGlv
biA9IEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisgICAgZWxzZQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAocGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFuY2VGb2N1cyhmb2N1c0RpcmVjdGlv
biwgZXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwogdm9p
ZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpCiB7CiAgICAgaWYg
KERvY3VtZW50KiBkID0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBm
MTM0ZDkzLi5kM2Q1OTUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
KysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yNjQsNiArMjY0LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoUGxhdGZvcm1XaGVlbEV2ZW50
JiwgV2lkZ2V0Kik7CiAKICAgICB2b2lkIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9hcmRF
dmVudCopOworICAgIHZvaWQgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQq
KTsKIAogICAgIHZvaWQgYWxsb3dESFRNTERyYWcoYm9vbCYgZmxhZ0RIVE1MLCBib29sJiBmbGFn
VUEpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGRlM2NlMzMuLjY4OWEw
MTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0xMTIsNyArMTEyLDIxMyBAQCBib29s
IEZvY3VzQ29udHJvbGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCogZQogICAgIHJldHVybiBhZHZhbmNlRm9jdXMoZGlyZWN0aW9uLCBl
dmVudCwgdHJ1ZSk7CiB9CiAKLWJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFs
Rm9jdXMpCitpbmxpbmUgSW50UG9pbnQgcmVhbExvY2F0aW9uKFJlbmRlck9iamVjdCogcmVuZGVy
KQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAgLy8gRklYTUU6IGhhbmRsZSBuZXN0ZWQg
ZnJhbWVzLgorICAgIEludFBvaW50IGxvY2F0aW9uOworICAgIHdoaWxlIChyZW5kZXIpIHsKKyAg
ICAgICAgbG9jYXRpb24ubW92ZShyZW5kZXItPm9mZnNldExlZnQoKSwgcmVuZGVyLT5vZmZzZXRU
b3AoKSk7CisgICAgICAgIHJlbmRlciA9IHJlbmRlci0+b2Zmc2V0UGFyZW50KCk7CisgICAgfQor
ICAgIHJldHVybiBsb2NhdGlvbjsKK30KKworaW5saW5lIGludCByZWN0YW5nbGVEaXN0YW5jZShJ
bnRSZWN0IHJlY3QxLCBJbnRSZWN0IHJlY3QyKQoreworICAgIGludCB4RGlzdCA9IDA7CisgICAg
aWYgKHJlY3QxLngoKSA+IHJlY3QyLnJpZ2h0KCkpCisgICAgICAgIHhEaXN0ID0gcmVjdDEueCgp
IC0gcmVjdDIucmlnaHQoKTsKKyAgICBlbHNlIGlmIChyZWN0Mi54KCkgPiByZWN0MS5yaWdodCgp
KQorICAgICAgICB4RGlzdCA9IHJlY3QyLngoKSAtIHJlY3QxLnJpZ2h0KCk7CisKKyAgICBpbnQg
eURpc3QgPSAwOworICAgIGlmIChyZWN0MS55KCkgPiByZWN0Mi5ib3R0b20oKSkKKyAgICAgICAg
eURpc3QgPSByZWN0MS55KCkgLSByZWN0Mi5ib3R0b20oKTsKKyAgICBlbHNlIGlmIChyZWN0Mi55
KCkgPiByZWN0MS5ib3R0b20oKSkKKyAgICAgICAgeURpc3QgPSByZWN0Mi55KCkgLSByZWN0MS5i
b3R0b20oKTsKKworICAgIHJldHVybiB4RGlzdCAqIHhEaXN0ICsgeURpc3QgKiB5RGlzdDsKK30K
KworaW5saW5lIGJvb2wgaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKGNvbnN0IEludFBvaW50JiBy
ZWN0UG9pbnQsIGNvbnN0IEludFBvaW50JiBwb2ludCkKK3sKKyAgICAvLyBDaGVjayBpZiBwb2lu
dCBpcyBhYm92ZSB0aGUgeSA9IHggKyBjIGxpbmUgcGFzc2luZyBmb3IgcmVjdFBvaW50LgorICAg
IHJldHVybiByZWN0UG9pbnQueCgpIC0gcmVjdFBvaW50LnkoKSA8IHBvaW50LngoKSAtIHBvaW50
LnkoKTsKK30KKworaW5saW5lIGJvb2wgaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKGNvbnN0IElu
dFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFBvaW50JiBwb2ludCkKK3sKKyAgICAvLyBDaGVj
ayBpZiBwb2ludCBpcyBhYm92ZSB0aGUgeSA9IC14ICsgYyBsaW5lIHBhc3NpbmcgZm9yIHJlY3RQ
b2ludC4KKyAgICByZXR1cm4gcmVjdFBvaW50LngoKSArIHJlY3RQb2ludC55KCkgPiBwb2ludC54
KCkgKyBwb2ludC55KCk7Cit9CisKK2lubGluZSBib29sIGlzUmVjdEFib3ZlTWFpbkRpYWdvbmFs
KGNvbnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAg
Ly8gQ2hlY2sgaWYgc29tZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGFib3ZlIHRoZSB5
ID0geCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuIGlzUG9pbnRB
Ym92ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkgfHwKKyAgICAgICAg
aXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgp
LCByZWN0LnkoKSkpIHx8CisgICAgICAgIGlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9p
bnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkgfHwKKyAgICAgICAgaXNQb2lu
dEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0
LmJvdHRvbSgpKSk7Cit9CisKK2lubGluZSBib29sIGlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKGNv
bnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8g
Q2hlY2sgaWYgc29tZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGJlbG93IHRoZSB5ID0g
eCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuICFpc1BvaW50QWJv
dmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpIHx8CisgICAgICAgICFp
c1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCks
IHJlY3QueSgpKSkgfHwKKyAgICAgICAgIWlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9p
bnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkgfHwKKyAgICAgICAgIWlzUG9p
bnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVj
dC5ib3R0b20oKSkpOworfQorCitpbmxpbmUgYm9vbCBpc1JlY3RBYm92ZUFudGlEaWFnb25hbChj
b25zdCBJbnRQb2ludCYgcmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8v
IENoZWNrIGlmIHNvbWUgcG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFyZSBhYm92ZSB0aGUgeSA9
IC14ICsgYyBsaW5lIHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1cm4gaXNQb2ludEFi
b3ZlQW50aURpYWdvbmFsKHJlY3RQb2ludCwgcmVjdC5sb2NhdGlvbigpKSB8fAorICAgICAgICBp
c1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCks
IHJlY3QueSgpKSkgfHwKKyAgICAgICAgaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKHJlY3RQb2lu
dCwgSW50UG9pbnQocmVjdC54KCksIHJlY3QuYm90dG9tKCkpKSB8fAorICAgICAgICBpc1BvaW50
QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3Qu
Ym90dG9tKCkpKTsKK30KKworaW5saW5lIGJvb2wgaXNSZWN0QmVsb3dBbnRpRGlhZ29uYWwoY29u
c3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBD
aGVjayBpZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUgYmVsb3cgdGhlIHkgPSAt
eCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuICFpc1BvaW50QWJv
dmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpIHx8CisgICAgICAgICFp
c1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCks
IHJlY3QueSgpKSkgfHwKKyAgICAgICAgIWlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9p
bnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkgfHwKKyAgICAgICAgIWlzUG9p
bnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVj
dC5ib3R0b20oKSkpOworfQorCitzdGF0aWMgaW50IGRpc3RhbmNlSW5EaXJlY3Rpb24oTm9kZSog
c3RhcnQsIE5vZGUqIGRlc3QsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBSZW5k
ZXJPYmplY3QqIHN0YXJ0UmVuZGVyID0gc3RhcnQtPnJlbmRlcmVyKCk7CisgICAgSW50UmVjdCBz
dGFydFJlY3QocmVhbExvY2F0aW9uKHN0YXJ0UmVuZGVyKSwgSW50U2l6ZShzdGFydFJlbmRlci0+
d2lkdGgoKSwgc3RhcnRSZW5kZXItPmhlaWdodCgpKSk7CisKKyAgICBSZW5kZXJPYmplY3QqIGRl
c3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOworICAgIEludFJlY3QgZGVzdFJlY3QocmVhbExv
Y2F0aW9uKGRlc3RSZW5kZXIpLCBJbnRTaXplKGRlc3RSZW5kZXItPndpZHRoKCksIGRlc3RSZW5k
ZXItPmhlaWdodCgpKSk7CisKKyAgICAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHR3byBj
b25zZWN1dGl2ZSBsaW5rcyBjb3VsZCBvdmVybGFwLCBzbyB3ZSBkZWNyZWFzZSB0aGUgc2l6ZSBv
ZgorICAgIC8vIGJvdGggcmVjdGFuZ2xlcy4KKyAgICAvLyBGSVhNRTogSXMgdGhlcmUgYSBiZXR0
ZXIgd2F5IHRvIGRvIHRoaXM/CisgICAgc3RhcnRSZWN0LmluZmxhdGUoLTQpOworICAgIGRlc3RS
ZWN0LmluZmxhdGUoLTQpOworCisgICAgLy8gQSBtb3ZlbWVudCB0byB0aGUgcmlnaHQgaXMgYWxs
b3dlZCBvbmx5IGlmIHRoZSBkZXN0aW5hdGlvbiByZWN0YW5nbGUgaXMgaW4gdGhlIHJlZ2lvbiBk
ZWxpbWl0ZWQKKyAgICAvLyBieSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc3RhcnQgcmVjdGFuZ2xl
IGFuZCB0aGUgdHdvIGRpYWdvbmFscyBzdGFydGluZyBmcm9tIGl0cyB2ZXJ0aWNlcy4KKyAgICAv
LyBUaGUgc2FtZSBpcyBkb25lIGZvciB0aGUgb3RoZXIgZGlyZWN0aW9ucy4KKyAgICBzd2l0Y2gg
KGRpcmVjdGlvbikgeworICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAg
ICAgICBpZiAoZGVzdFJlY3QucmlnaHQoKSA8PSBzdGFydFJlY3QucmlnaHQoKSB8fAorICAgICAg
ICAgICAgICAgICFpc1JlY3RCZWxvd0FudGlEaWFnb25hbChJbnRQb2ludChzdGFydFJlY3Qucmln
aHQoKSwgc3RhcnRSZWN0LnkoKSksIGRlc3RSZWN0KSB8fAorICAgICAgICAgICAgICAgICFpc1Jl
Y3RBYm92ZU1haW5EaWFnb25hbChJbnRQb2ludChzdGFydFJlY3QucmlnaHQoKSwgc3RhcnRSZWN0
LmJvdHRvbSgpKSwgZGVzdFJlY3QpKQorICAgICAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAg
ICAgICAgICAgaWYgKGRlc3RSZWN0LngoKSA+PSBzdGFydFJlY3QueCgpIHx8CisgICAgICAgICAg
ICAgICAgIWlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKHN0YXJ0UmVjdC5sb2NhdGlvbigpLCBkZXN0
UmVjdCkgfHwKKyAgICAgICAgICAgICAgICAhaXNSZWN0QWJvdmVBbnRpRGlhZ29uYWwoSW50UG9p
bnQoc3RhcnRSZWN0LngoKSwgc3RhcnRSZWN0LmJvdHRvbSgpKSwgZGVzdFJlY3QpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICAgICAgICAgIGlmIChkZXN0UmVjdC55KCkgPj0gc3Rh
cnRSZWN0LnkoKSB8fAorICAgICAgICAgICAgICAgICFpc1JlY3RBYm92ZU1haW5EaWFnb25hbChz
dGFydFJlY3QubG9jYXRpb24oKSwgZGVzdFJlY3QpIHx8CisgICAgICAgICAgICAgICAgIWlzUmVj
dEFib3ZlQW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3Qu
eSgpKSwgZGVzdFJlY3QpKQorICAgICAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICAg
ICAgaWYgKGRlc3RSZWN0LmJvdHRvbSgpIDw9IHN0YXJ0UmVjdC5ib3R0b20oKSB8fAorICAgICAg
ICAgICAgICAgICFpc1JlY3RCZWxvd0FudGlEaWFnb25hbChJbnRQb2ludChzdGFydFJlY3QueCgp
LCBzdGFydFJlY3QuYm90dG9tKCkpLCBkZXN0UmVjdCkgfHwKKyAgICAgICAgICAgICAgICAhaXNS
ZWN0QmVsb3dNYWluRGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVj
dC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSU5UX01BWDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJU
KGZhbHNlKTsKKyAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgIH0KKworICAgIHJldHVy
biByZWN0YW5nbGVEaXN0YW5jZShzdGFydFJlY3QsIGRlc3RSZWN0KTsKK30KKworY2xhc3MgQmVz
dENhbmRpZGF0ZQoreworcHVibGljOgorICAgIEJlc3RDYW5kaWRhdGUoKSA6IG5vZGUoMCksIGRp
c3RhbmNlKElOVF9NQVgpIHt9CisgICAgTm9kZSogbm9kZTsKKyAgICBpbnQgZGlzdGFuY2U7Cit9
OworCitzdGF0aWMgdm9pZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2Rl
KiBzdGFydCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwg
QmVzdENhbmRpZGF0ZSYgYmVzdENhbmRpZGF0ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOwor
CisgICAgLy8gV2FsayBhbGwgdGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgYmVzdENhbmRpZGF0
ZSBpZiB3ZSBmaW5kIGEgbmVhcmVyIG5vZGUuCisgICAgZm9yIChOb2RlKiBjYW5kaWRhdGUgPSBk
b2N1bWVudC0+Zmlyc3RDaGlsZCgpOyBjYW5kaWRhdGU7IGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS0+
dHJhdmVyc2VOZXh0Tm9kZSgpKQorICAgICAgICBpZiAoY2FuZGlkYXRlLT5pc0ZyYW1lT3duZXJF
bGVtZW50KCkpIHsKKyAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIgPSBz
dGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihjYW5kaWRhdGUpOworICAgICAgICAg
ICAgaWYgKG93bmVyLT5jb250ZW50RnJhbWUoKSkgeworICAgICAgICAgICAgICAgIERvY3VtZW50
KiBpbm5lckRvY3VtZW50ID0gb3duZXItPmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVudCgpOworICAg
ICAgICAgICAgICAgIGlmIChpbm5lckRvY3VtZW50KQorICAgICAgICAgICAgICAgICAgICBuZXh0
SW5EaXJlY3Rpb24oaW5uZXJEb2N1bWVudCwgc3RhcnQsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RD
YW5kaWRhdGUpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNhbmRpZGF0ZSAh
PSBzdGFydCAmJiBjYW5kaWRhdGUtPmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpICYmIGNhbmRp
ZGF0ZS0+dGFiSW5kZXgoKSA+PSAwKSB7CisgICAgICAgICAgICBpbnQgZGlzdGFuY2UgPSBkaXN0
YW5jZUluRGlyZWN0aW9uKHN0YXJ0LCBjYW5kaWRhdGUsIGRpcmVjdGlvbik7CisgICAgICAgICAg
ICBpZiAoZGlzdGFuY2UgPCBiZXN0Q2FuZGlkYXRlLmRpc3RhbmNlKSB7CisgICAgICAgICAgICAg
ICAgYmVzdENhbmRpZGF0ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgIGJlc3RD
YW5kaWRhdGUuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
fQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWwoRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9j
dXMpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgQVNT
RVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUtPmRvY3Vt
ZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2VkTm9kZSgp
OworICAgIGlmICghZm9jdXNlZE5vZGUpCisgICAgICAgIC8vIEp1c3QgbW92ZSB0byB0aGUgZmly
c3QgZm9jdXNhYmxlIG5vZGUuCisgICAgICAgIC8vIGluaXRpYWxGb2N1cyBpcyBzZXQgdG8gdHJ1
ZSBzbyB0aGUgY2hyb21lIGlzIG5vdCBmb2N1c2VkLgorICAgICAgICByZXR1cm4gYWR2YW5jZUZv
Y3VzTGluZWFyKEZvY3VzRGlyZWN0aW9uRm9yd2FyZCwgZXZlbnQsIHRydWUpOworCisgICAgLy8g
TW92ZSB1cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAgICB3aGlsZSAodHJ1ZSkg
eworICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsK
KyAgICAgICAgaWYgKCFwYXJlbnRGcmFtZSB8fCAhcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICBmcmFtZSA9IHBhcmVudEZyYW1lOworICAgIH0K
KworICAgIEJlc3RDYW5kaWRhdGUgYmVzdENhbmRpZGF0ZTsKKyAgICBuZXh0SW5EaXJlY3Rpb24o
ZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2Fu
ZGlkYXRlKTsKKworICAgIE5vZGUqIG5vZGUgPSBiZXN0Q2FuZGlkYXRlLm5vZGU7CisgICAgaWYg
KCFub2RlKQorICAgICAgLy8gTGVhdmUgdGhlIGZvY3VzIG9uIHRoZSBzYW1lIG5vZGUuCisgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAg
ICAvLyBGSVhNRTogTWF5IG5lZWQgYSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBub2RlLT5k
b2N1bWVudCgpOworCisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGZvY3VzZWREb2N1bWVudCkKKyAg
ICAgICAgLy8gRm9jdXMgaXMgZ29pbmcgYXdheSBmcm9tIHRoZSBvcmlnaW5hbGx5IGZvY3VzZWQg
ZG9jdW1lbnQsIHNvIGNsZWFyIHRoZSBmb2N1c2VkIG5vZGUuCisgICAgICAgIGZvY3VzZWREb2N1
bWVudC0+c2V0Rm9jdXNlZE5vZGUoMCk7CisKKyAgICBpZiAobmV3RG9jdW1lbnQpCisgICAgICAg
IHNldEZvY3VzZWRGcmFtZShuZXdEb2N1bWVudC0+ZnJhbWUoKSk7CisKKyAgICBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4obm9kZSktPmZvY3VzKGZhbHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0xpbmVhcihGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKIHsKICAg
ICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBBU1NFUlQoZnJhbWUp
OwpAQCAtMjA3LDYgKzQxMywyMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbgogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3Vz
KQoreworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rp
b25Gb3J3YXJkOgorICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAg
ICAgICByZXR1cm4gYWR2YW5jZUZvY3VzTGluZWFyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxG
b2N1cyk7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBjYXNlIEZv
Y3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICAg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgICAgICByZXR1cm4gYWR2YW5jZUZv
Y3VzRGlyZWN0aW9uYWwoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3VzKTsKKyAgICB9Cit9
CisKIHN0YXRpYyBib29sIHJlbGlucXVpc2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQogewog
ICAgIEFTU0VSVChub2RlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAppbmRleCBmNGE2NjMyLi5lYjFk
MDAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBAIC01Nyw2ICs1Nyw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgUGFnZSogbV9wYWdlOwogICAgICAgICBSZWZQdHI8RnJhbWU+IG1f
Zm9jdXNlZEZyYW1lOwogICAgICAgICBib29sIG1faXNBY3RpdmU7CisKKyAgICAgICAgYm9vbCBh
ZHZhbmNlRm9jdXNEaXJlY3Rpb25hbChGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJv
b2wgaW5pdGlhbEZvY3VzKTsKKyAgICAgICAgYm9vbCBhZHZhbmNlRm9jdXNMaW5lYXIoRm9jdXNE
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1cyk7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGly
ZWN0aW9uLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAppbmRleCAyNjFjNzQ1Li41
NTFjNzI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaApAQCAtMjksNyArMjksMTEgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBlbnVtIEZvY3VzRGlyZWN0aW9uIHsKICAgICAgICAgRm9jdXNEaXJl
Y3Rpb25Gb3J3YXJkID0gMCwKLSAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZAorICAgICAg
ICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLAorICAgICAgICBGb2N1c0RpcmVjdGlvblVwLAorICAg
ICAgICBGb2N1c0RpcmVjdGlvbkRvd24sCisgICAgICAgIEZvY3VzRGlyZWN0aW9uTGVmdCwKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25SaWdodAogICAgIH07CiB9CiAK
</data>
<flag name="review"
          id="10011"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26291</attachid>
            <date>2008-12-29 05:57:17 -0800</date>
            <delta_ts>2009-01-07 11:31:48 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v3)</desc>
            <filename>BUG_18662_v3.diff</filename>
            <type>text/plain</type>
            <size>16335</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">QXV0aG9yOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29AZ21haWwuY29tPgpEYXRlOiAgIFdlZCBE
ZWMgMjQgMTA6MDk6NTIgMjAwOCAtMDQwMAoKICAgIFdlYktpdDoga2V5Ym9hcmQgbmF2aWdhdGlv
biAKCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDRkYzM3ZDguLjk5YTU0MmQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCkBAIC0xODc5LDYgKzE4NzksMTggQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1
bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSIp
CiAgICAgICAgICAgICBkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgZWxz
ZSBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiRG93biIKKyAgICAgICAgICAgICAgICAg
fHwgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVXAiCisgICAgICAgICAgICAgICAgIHx8IGV2
ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlJpZ2h0IgorICAgICAgICAgICAgICAgICB8fCBldmVu
dC0+a2V5SWRlbnRpZmllcigpID09ICJMZWZ0IikgeworICAgICAgICAgICAgaWYobV9mcmFtZS0+
cGFnZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgaWYobV9mcmFtZS0+c2V0
dGluZ3MoKS0+ZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KIAogICAgICAgIC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRp
b24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2VycwogICAgICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5h
YmxlZCgpKQpAQCAtMjE2OCw2ICsyMTgwLDM3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0
VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgICAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2
ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPmN0cmxL
ZXkoKSB8fCBldmVudC0+bWV0YUtleSgpIHx8IGV2ZW50LT5hbHRHcmFwaEtleSgpIHx8IGV2ZW50
LT5zaGlmdEtleSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghcGFn
ZS0+dGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IC8vIEZJWE1FOiBBcmUgQ1RSTC1hcnJvdyBrZXlzIG5lZWRlZCBpbiBkZXNpZ24gbW9kZT8KKyAg
ICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9uOworICAgIGlmIChldmVudC0+
a2V5SWRlbnRpZmllcigpID09ICJEb3duIikKKyAgICAgICAgZm9jdXNEaXJlY3Rpb24gPSBGb2N1
c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAi
VXAiKQorICAgICAgICBmb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uVXA7CisgICAgZWxz
ZSBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiTGVmdCIpCisgICAgICAgIGZvY3VzRGly
ZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25MZWZ0OworICAgIGVsc2UgaWYgKGV2ZW50LT5rZXlJZGVu
dGlmaWVyKCkgPT0gIlJpZ2h0IikKKyAgICAgICAgZm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVj
dGlvblJpZ2h0OworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5hZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAg
ICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVy
OjpjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKQogewogICAgIGlmIChEb2N1bWVudCogZCA9
IG1fZnJhbWUtPmRvY3VtZW50KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZjM3MzVmNC4uMGFlYWI2
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjY2LDYgKzI2Niw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCopOwog
CiAgICAgdm9pZCBkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2
b2lkIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CiAKICAgICB2b2lk
IGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdESFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5YjMwMzYyLi4zZjU4Zjc0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcApAQCAtNTEsNiArNTEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogRm9j
dXNDb250cm9sbGVyOjpGb2N1c0NvbnRyb2xsZXIoUGFnZSogcGFnZSkKICAgICA6IG1fcGFnZShw
YWdlKQpAQCAtMTEwLDcgKzExMSwyMjEgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEluaXRp
YWxGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGUKICAgICBy
ZXR1cm4gYWR2YW5jZUZvY3VzKGRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOwogfQogCi1ib29sIEZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQoraW5saW5lIHN0YXRpYyBJbnRQ
b2ludCByZWFsTG9jYXRpb24oUmVuZGVyT2JqZWN0KiByZW5kZXIpCit7CisgICAgQVNTRVJUKHJl
bmRlcik7CisKKyAgICAvLyBGSVhNRTogaGFuZGxlIG5lc3RlZCBmcmFtZXMuCisgICAgSW50UG9p
bnQgbG9jYXRpb247CisgICAgd2hpbGUgKHJlbmRlcikgeworICAgICAgICBsb2NhdGlvbi5tb3Zl
KHJlbmRlci0+b2Zmc2V0TGVmdCgpLCByZW5kZXItPm9mZnNldFRvcCgpKTsKKyAgICAgICAgcmVu
ZGVyID0gcmVuZGVyLT5vZmZzZXRQYXJlbnQoKTsKKyAgICB9CisgICAgcmV0dXJuIGxvY2F0aW9u
OworfQorCitpbmxpbmUgc3RhdGljIGludCByZWN0YW5nbGVEaXN0YW5jZShJbnRSZWN0IHJlY3Qx
LCBJbnRSZWN0IHJlY3QyKQoreworICAgIGludCB4RGlzdCA9IDA7CisgICAgaWYgKHJlY3QxLngo
KSA+IHJlY3QyLnJpZ2h0KCkpCisgICAgICAgIHhEaXN0ID0gcmVjdDEueCgpIC0gcmVjdDIucmln
aHQoKTsKKyAgICBlbHNlIGlmIChyZWN0Mi54KCkgPiByZWN0MS5yaWdodCgpKQorICAgICAgICB4
RGlzdCA9IHJlY3QyLngoKSAtIHJlY3QxLnJpZ2h0KCk7CisKKyAgICBpbnQgeURpc3QgPSAwOwor
ICAgIGlmIChyZWN0MS55KCkgPiByZWN0Mi5ib3R0b20oKSkKKyAgICAgICAgeURpc3QgPSByZWN0
MS55KCkgLSByZWN0Mi5ib3R0b20oKTsKKyAgICBlbHNlIGlmIChyZWN0Mi55KCkgPiByZWN0MS5i
b3R0b20oKSkKKyAgICAgICAgeURpc3QgPSByZWN0Mi55KCkgLSByZWN0MS5ib3R0b20oKTsKKwor
ICAgIHJldHVybiB4RGlzdCAqIHhEaXN0ICsgeURpc3QgKiB5RGlzdDsKK30KKworaW5saW5lIHN0
YXRpYyBib29sIGlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBv
aW50LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgLy8gQ2hlY2sgaWYgcG9pbnQgaXMg
YWJvdmUgdGhlIHkgPSB4ICsgYyBsaW5lIHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1
cm4gcmVjdFBvaW50LngoKSAtIHJlY3RQb2ludC55KCkgPCBwb2ludC54KCkgLSBwb2ludC55KCk7
Cit9CisKK2lubGluZSBzdGF0aWMgYm9vbCBpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwoY29uc3Qg
SW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UG9pbnQmIHBvaW50KQoreworICAgIC8vIENo
ZWNrIGlmIHBvaW50IGlzIGFib3ZlIHRoZSB5ID0gLXggKyBjIGxpbmUgcGFzc2luZyBmb3IgcmVj
dFBvaW50LgorICAgIHJldHVybiByZWN0UG9pbnQueCgpICsgcmVjdFBvaW50LnkoKSA+IHBvaW50
LngoKSArIHBvaW50LnkoKTsKK30KKworaW5saW5lIHN0YXRpYyBib29sIGlzUmVjdEFib3ZlTWFp
bkRpYWdvbmFsKGNvbnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgLy8gQ2hlY2sgaWYgc29tZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGFi
b3ZlIHRoZSB5ID0geCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJu
IChpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpCisg
ICAgICAgICAgICB8fCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2lu
dChyZWN0LnJpZ2h0KCksIHJlY3QueSgpKSkKKyAgICAgICAgICAgIHx8IGlzUG9pbnRBYm92ZU1h
aW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkK
KyAgICAgICAgICAgIHx8IGlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBv
aW50KHJlY3QucmlnaHQoKSwgcmVjdC5ib3R0b20oKSkpKTsKK30KKworaW5saW5lIHN0YXRpYyBi
b29sIGlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKGNvbnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNv
bnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8gQ2hlY2sgaWYgc29tZSBwb2ludHMgYmVsb25n
aW5nIHRvIHJlY3QgYXJlIGJlbG93IHRoZSB5ID0geCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0
UG9pbnQuCisgICAgcmV0dXJuICghaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwg
cmVjdC5sb2NhdGlvbigpKQorICAgICAgICAgICAgfHwgIWlzUG9pbnRBYm92ZU1haW5EaWFnb25h
bChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkpKQorICAgICAgICAg
ICAgfHwgIWlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3Qu
eCgpLCByZWN0LmJvdHRvbSgpKSkKKyAgICAgICAgICAgIHx8ICFpc1BvaW50QWJvdmVNYWluRGlh
Z29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKSk7
Cit9CisKK2lubGluZSBzdGF0aWMgYm9vbCBpc1JlY3RBYm92ZUFudGlEaWFnb25hbChjb25zdCBJ
bnRQb2ludCYgcmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNr
IGlmIHNvbWUgcG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFyZSBhYm92ZSB0aGUgeSA9IC14ICsg
YyBsaW5lIHBhc3NpbmcgZm9yIHJlY3RQb2ludC4KKyAgICByZXR1cm4gKGlzUG9pbnRBYm92ZUFu
dGlEaWFnb25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkKKyAgICAgICAgICAgIHx8IGlz
UG9pbnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwg
cmVjdC55KCkpKQorICAgICAgICAgICAgfHwgaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKHJlY3RQ
b2ludCwgSW50UG9pbnQocmVjdC54KCksIHJlY3QuYm90dG9tKCkpKQorICAgICAgICAgICAgfHwg
aXNQb2ludEFib3ZlQW50aURpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgp
LCByZWN0LmJvdHRvbSgpKSkpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNSZWN0QmVsb3dB
bnRpRGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKK3sKKyAgICAvLyBDaGVjayBpZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUg
YmVsb3cgdGhlIHkgPSAteCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0
dXJuICghaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKHJlY3RQb2ludCwgcmVjdC5sb2NhdGlvbigp
KQorICAgICAgICAgICAgfHwgIWlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIElu
dFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkpKQorICAgICAgICAgICAgfHwgIWlzUG9pbnRB
Ym92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRv
bSgpKSkKKyAgICAgICAgICAgIHx8ICFpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50
LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKSk7Cit9CisKK3N0YXRpYyBp
bnQgZGlzdGFuY2VJbkRpcmVjdGlvbihOb2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uKQoreworICAgIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXIgPSBzdGFy
dC0+cmVuZGVyZXIoKTsKKyAgICBJbnRSZWN0IHN0YXJ0UmVjdChyZWFsTG9jYXRpb24oc3RhcnRS
ZW5kZXIpLCBJbnRTaXplKHN0YXJ0UmVuZGVyLT53aWR0aCgpLCBzdGFydFJlbmRlci0+aGVpZ2h0
KCkpKTsKKworICAgIFJlbmRlck9iamVjdCogZGVzdFJlbmRlciA9IGRlc3QtPnJlbmRlcmVyKCk7
CisgICAgSW50UmVjdCBkZXN0UmVjdChyZWFsTG9jYXRpb24oZGVzdFJlbmRlciksIEludFNpemUo
ZGVzdFJlbmRlci0+d2lkdGgoKSwgZGVzdFJlbmRlci0+aGVpZ2h0KCkpKTsKKworICAgIC8vIFRo
ZSBib3VuZGluZyByZWN0YW5nbGUgb2YgdHdvIGNvbnNlY3V0aXZlIGxpbmtzIGNvdWxkIG92ZXJs
YXAsIHNvIHdlIGRlY3JlYXNlIHRoZSBzaXplIG9mCisgICAgLy8gYm90aCByZWN0YW5nbGVzLgor
ICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcz8KKyAgICBzdGFy
dFJlY3QuaW5mbGF0ZSgtNCk7CisgICAgZGVzdFJlY3QuaW5mbGF0ZSgtNCk7CisKKyAgICAvLyBB
IG1vdmVtZW50IHRvIHRoZSByaWdodCBpcyBhbGxvd2VkIG9ubHkgaWYgdGhlIGRlc3RpbmF0aW9u
IHJlY3RhbmdsZSBpcyBpbiB0aGUgcmVnaW9uIGRlbGltaXRlZAorICAgIC8vIGJ5IHRoZSByaWdo
dCBzaWRlIG9mIHRoZSBzdGFydCByZWN0YW5nbGUgYW5kIHRoZSB0d28gZGlhZ29uYWxzIHN0YXJ0
aW5nIGZyb20gaXRzIHZlcnRpY2VzLgorICAgIC8vIFRoZSBzYW1lIGlzIGRvbmUgZm9yIHRoZSBv
dGhlciBkaXJlY3Rpb25zLgorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBpZiAoZGVzdFJlY3QucmlnaHQoKSA8PSBzdGFydFJl
Y3QucmlnaHQoKQorICAgICAgICAgICAgfHwgIWlzUmVjdEJlbG93QW50aURpYWdvbmFsKEludFBv
aW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3QueSgpKSwgZGVzdFJlY3QpCisgICAgICAg
ICAgICB8fCAhaXNSZWN0QWJvdmVNYWluRGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0
KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBJ
TlRfTUFYOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAg
ICAgICAgaWYgKGRlc3RSZWN0LngoKSA+PSBzdGFydFJlY3QueCgpCisgICAgICAgICAgICB8fCAh
aXNSZWN0QmVsb3dNYWluRGlhZ29uYWwoc3RhcnRSZWN0LmxvY2F0aW9uKCksIGRlc3RSZWN0KQor
ICAgICAgICAgICAgfHwgIWlzUmVjdEFib3ZlQW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVj
dC54KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgIHJldHVy
biBJTlRfTUFYOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6Cisg
ICAgICAgIGlmIChkZXN0UmVjdC55KCkgPj0gc3RhcnRSZWN0LnkoKQorICAgICAgICAgICAgfHwg
IWlzUmVjdEFib3ZlTWFpbkRpYWdvbmFsKHN0YXJ0UmVjdC5sb2NhdGlvbigpLCBkZXN0UmVjdCkK
KyAgICAgICAgICAgIHx8ICFpc1JlY3RBYm92ZUFudGlEaWFnb25hbChJbnRQb2ludChzdGFydFJl
Y3QucmlnaHQoKSwgc3RhcnRSZWN0LnkoKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgIHJldHVy
biBJTlRfTUFYOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoK
KyAgICAgICAgaWYgKGRlc3RSZWN0LmJvdHRvbSgpIDw9IHN0YXJ0UmVjdC5ib3R0b20oKQorICAg
ICAgICAgICAgfHwgIWlzUmVjdEJlbG93QW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC54
KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KQorICAgICAgICAgICAgfHwgIWlzUmVj
dEJlbG93TWFpbkRpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3Qu
Ym90dG9tKCkpLCBkZXN0UmVjdCkpCisgICAgICAgICAgICByZXR1cm4gSU5UX01BWDsKKyAgICAg
ICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBJTlRfTUFYOworICAgIH0KKworICAgIHJldHVybiByZWN0YW5nbGVEaXN0
YW5jZShzdGFydFJlY3QsIGRlc3RSZWN0KTsKK30KKworY2xhc3MgQmVzdENhbmRpZGF0ZSB7Citw
dWJsaWM6CisgICAgQmVzdENhbmRpZGF0ZSgpCisgICAgICAgIDogbm9kZSgwKQorICAgICAgICAs
IGRpc3RhbmNlKHN0ZDo6bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkpCisgICAgeworICAgIH0K
KyAgICBOb2RlKiBub2RlOworICAgIGludCBkaXN0YW5jZTsKK307CisKK3N0YXRpYyB2b2lkIG5l
eHRJbkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIHN0YXJ0LCBGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBCZXN0Q2FuZGlkYXRlJiBiZXN0
Q2FuZGlkYXRlKQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisKKyAgICAvLyBXYWxrIGFsbCB0
aGUgY2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBiZXN0Q2FuZGlkYXRlIGlmIHdlIGZpbmQgYSBuZWFy
ZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9IGRvY3VtZW50LT5maXJzdENoaWxk
KCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJzZU5leHROb2RlKCkp
IHsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAg
ICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRNTEZy
YW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlmIChvd25lci0+Y29u
dGVudEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9
IG93bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAo
aW5uZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlubmVy
RG9jdW1lbnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2FuZGlk
YXRlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSAmJiBjYW5kaWRhdGUtPnRhYkluZGV4KCkg
Pj0gMCkgeworICAgICAgICAgICAgaW50IGRpc3RhbmNlID0gZGlzdGFuY2VJbkRpcmVjdGlvbihz
dGFydCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24pOworICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwg
YmVzdENhbmRpZGF0ZS5kaXN0YW5jZSkgeworICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUu
bm9kZSA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRlLmRpc3RhbmNl
ID0gZGlzdGFuY2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wg
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbChGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKK3sKKyAg
ICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUp
OworICAgIERvY3VtZW50KiBmb2N1c2VkRG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAg
ICBpZiAoIWZvY3VzZWREb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9k
ZSogZm9jdXNlZE5vZGUgPSBmb2N1c2VkRG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYg
KCFmb2N1c2VkTm9kZSkgeworICAgICAgICAvLyBKdXN0IG1vdmUgdG8gdGhlIGZpcnN0IGZvY3Vz
YWJsZSBub2RlLgorICAgICAgICAvLyBpbml0aWFsRm9jdXMgaXMgc2V0IHRvIHRydWUgc28gdGhl
IGNocm9tZSBpcyBub3QgZm9jdXNlZC4KKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0xpbmVh
cihGb2N1c0RpcmVjdGlvbkZvcndhcmQsIGV2ZW50LCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBN
b3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOwor
ICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQor
CisgICAgQmVzdENhbmRpZGF0ZSBiZXN0Q2FuZGlkYXRlOworICAgIG5leHRJbkRpcmVjdGlvbihm
cmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5k
aWRhdGUpOworCisgICAgTm9kZSogbm9kZSA9IGJlc3RDYW5kaWRhdGUubm9kZTsKKyAgICBpZiAo
IW5vZGUpIHsKKyAgICAgIC8vIExlYXZlIHRoZSBmb2N1cyBvbiB0aGUgc2FtZSBub2RlLgorICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkp
IHsKKyAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQg
aGVyZS4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIERvY3VtZW50KiBuZXdE
b2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisKKyAgICBpZiAobmV3RG9jdW1lbnQgIT0gZm9j
dXNlZERvY3VtZW50KSB7CisgICAgICAgIC8vIEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGUg
b3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50LCBzbyBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgor
ICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNldEZvY3VzZWROb2RlKDApOworICAgIH0KKworICAg
IGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5m
cmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+Zm9jdXMoZmFsc2Up
OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZv
Y3VzTGluZWFyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQs
IGJvb2wgaW5pdGlhbEZvY3VzKQogewogICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5G
cmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7CkBAIC0xNjgsMTMgKzM4MywxNSBAQCBib29sIEZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbgogCiAgICAgQVNTRVJUKG5vZGUpOwogCi0gICAgaWYgKG5vZGUgPT0g
ZG9jdW1lbnQtPmZvY3VzZWROb2RlKCkpCisgICAgaWYgKG5vZGUgPT0gZG9jdW1lbnQtPmZvY3Vz
ZWROb2RlKCkpIHsKICAgICAgICAgLy8gRm9jdXMgd3JhcHBlZCBhcm91bmQgdG8gdGhlIHNhbWUg
bm9kZS4KICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogCi0gICAgaWYgKCFub2RlLT5pc0Vs
ZW1lbnROb2RlKCkpCisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKICAgICAgICAg
Ly8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIGlmIChub2RlLT5pc0ZyYW1lT3duZXJFbGVt
ZW50KCkpIHsKICAgICAgICAgLy8gV2UgZm9jdXMgZnJhbWVzIHJhdGhlciB0aGFuIGZyYW1lIG93
bmVycy4KQEAgLTE5NCw5ICs0MTEsMTAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KIAogICAg
IERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CiAKLSAgICBpZiAobmV3
RG9jdW1lbnQgIT0gZG9jdW1lbnQpCisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGRvY3VtZW50KSB7
CiAgICAgICAgIC8vIEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGlzIGRvY3VtZW50LCBzbyBj
bGVhciB0aGUgZm9jdXNlZCBub2RlLgogICAgICAgICBkb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUo
MCk7CisgICAgfQogCiAgICAgaWYgKG5ld0RvY3VtZW50KQogICAgICAgICBzZXRGb2N1c2VkRnJh
bWUobmV3RG9jdW1lbnQtPmZyYW1lKCkpOwpAQCAtMjA1LDYgKzQyMywyMCBAQCBib29sIEZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9h
cmRFdmVudCogZXZlbgogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEZvY3VzQ29udHJvbGxl
cjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQoreworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Cisg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkJh
Y2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzTGluZWFyKGRpcmVjdGlvbiwgZXZl
bnQsIGluaXRpYWxGb2N1cyk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0RpcmVj
dGlvbmFsKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7CisgICAgfQorfQorCiBzdGF0
aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkKIHsKICAgICBBU1NF
UlQobm9kZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZjRhNjYzMi4uZWIxZDAwMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNTcsNiArNTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX2ZvY3VzZWRG
cmFtZTsKICAgICAgICAgYm9vbCBtX2lzQWN0aXZlOworCisgICAgICAgIGJvb2wgYWR2YW5jZUZv
Y3VzRGlyZWN0aW9uYWwoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRp
YWxGb2N1cyk7CisgICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzTGluZWFyKEZvY3VzRGlyZWN0aW9u
LCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwogICAgIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5o
IGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKaW5kZXggMjYxYzc0NS4uNTUxYzcyNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9w
YWdlL0ZvY3VzRGlyZWN0aW9uLmgKQEAgLTI5LDcgKzI5LDExIEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgZW51bSBGb2N1c0RpcmVjdGlvbiB7CiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9y
d2FyZCA9IDAsCi0gICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNE
aXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25VcCwKKyAgICAgICAgRm9j
dXNEaXJlY3Rpb25Eb3duLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkxlZnQsCisgICAgICAgIEZv
Y3VzRGlyZWN0aW9uUmlnaHQKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAyYjJlYTg1Li5i
YTMzYjM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdz
KFBhZ2UqIHBhZ2UpCiAgICAgLCBtX3pvb21zVGV4dE9ubHkoZmFsc2UpCiAgICAgLCBtX2VuZm9y
Y2VDU1NNSU1FVHlwZUluU3RyaWN0TW9kZSh0cnVlKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZElt
YWdlU2l6ZShzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQorICAgICwgbV9lbmFi
bGVLZXlib2FyZE5hdmlnYXRpb24oZmFsc2UpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhh
dmUgYmVlbiBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nIAog
ICAgIC8vIGhhc2ggYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IGQ0NmEzYzYu
LmQ0YTY3ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xOTMsNiArMTkzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIHNldE1heGltdW1EZWNvZGVkSW1hZ2VTaXplKHNpemVfdCBzaXplKSB7
IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUgPSBzaXplOyB9CiAgICAgICAgIHNpemVfdCBtYXhp
bXVtRGVjb2RlZEltYWdlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bURlY29kZWRJbWFn
ZVNpemU7IH0KIAorICAgICAgICB2b2lkIHNldEVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbihib29s
IHN0YXR1cykgeyBtX2VuYWJsZUtleWJvYXJkTmF2aWdhdGlvbiA9IHN0YXR1czsgfQorICAgICAg
ICBib29sIGVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbigpIHsgcmV0dXJuIG1fZW5hYmxlS2V5Ym9h
cmROYXZpZ2F0aW9uOyB9CiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAgLy8gV2luZG93
cyBkZWJ1Z2dpbmcgcHJlZiAoZ2xvYmFsKSBmb3Igc3dpdGNoaW5nIGJldHdlZW4gdGhlIEFxdWEg
bG9vayBhbmQgYSBuYXRpdmUgd2luZG93cyBsb29rLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRT
aG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wpOwpAQCAtMjUwLDYgKzI1Miw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX3pvb21zVGV4dE9ubHkgOiAxOwogICAgICAg
ICBib29sIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5TdHJpY3RNb2RlIDogMTsKICAgICAgICAgc2l6
ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CisgICAgICAgIGJvb2wgbV9lbmFibGVLZXli
b2FyZE5hdmlnYXRpb247CiAKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0aWMg
Ym9vbCBnU2hvdWxkUGFpbnROYXRpdmVDb250cm9sczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26499</attachid>
            <date>2009-01-07 11:31:48 -0800</date>
            <delta_ts>2009-01-12 12:38:46 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v4)</desc>
            <filename>BUG_18662_v4.diff</filename>
            <type>text/plain</type>
            <size>16294</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">CldlYktpdDoga2V5Ym9hcmQgbmF2aWdhdGlvbiAKCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDRk
YzM3ZDguLmRiZDI0ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xODc5LDYgKzE4NzksMTgg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGV2ZW50LT5r
ZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSIpCiAgICAgICAgICAgICBkZWZhdWx0VGFiRXZlbnRI
YW5kbGVyKGV2ZW50KTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9
PSAiRG93biIKKyAgICAgICAgICAgICAgICAgfHwgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAi
VXAiCisgICAgICAgICAgICAgICAgIHx8IGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlJpZ2h0
IgorICAgICAgICAgICAgICAgICB8fCBldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJMZWZ0Iikg
eworICAgICAgICAgICAgaWYobV9mcmFtZS0+cGFnZSgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFtX2ZyYW1lLT5zZXR0aW5ncygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgaWYobV9mcmFtZS0+c2V0dGluZ3MoKS0+ZW5hYmxlS2V5Ym9hcmROYXZpZ2F0
aW9uKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKGV2
ZW50KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAogICAg
ICAgIC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQg
YWNjZXNzaWJpbGl0eSB1c2VycwogICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpKQpAQCAtMjE2OCw2ICsyMTgwLDM3IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQq
IGV2ZW50KQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAordm9pZCBF
dmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVu
dCkKK3sKKyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSB8fCBldmVudC0+bWV0YUtleSgpIHx8IGV2
ZW50LT5hbHRHcmFwaEtleSgpIHx8IGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgcmV0dXJuOworICAgIGlmICghcGFnZS0+dGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRz
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBBcmUgQ1RSTC1hcnJvdyBrZXlz
IG5lZWRlZCBpbiBkZXNpZ24gbW9kZT8KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5E
ZXNpZ25Nb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEZvY3VzRGlyZWN0aW9uIGZvY3Vz
RGlyZWN0aW9uOworICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJEb3duIikKKyAg
ICAgICAgZm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBpZiAo
ZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVXAiKQorICAgICAgICBmb2N1c0RpcmVjdGlvbiA9
IEZvY3VzRGlyZWN0aW9uVXA7CisgICAgZWxzZSBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9
PSAiTGVmdCIpCisgICAgICAgIGZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25MZWZ0Owor
ICAgIGVsc2UgaWYgKGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlJpZ2h0IikKKyAgICAgICAg
Zm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvblJpZ2h0OworICAgIGVsc2UKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5hZHZhbmNlRm9jdXMo
Zm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVk
KCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVyOjpjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQo
KQogewogICAgIGlmIChEb2N1bWVudCogZCA9IG1fZnJhbWUtPmRvY3VtZW50KCkpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKaW5kZXggZjM3MzVmNC4uMGFlYWI2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjY2LDYg
KzI2Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KFBsYXRm
b3JtV2hlZWxFdmVudCYsIFdpZGdldCopOwogCiAgICAgdm9pZCBkZWZhdWx0VGFiRXZlbnRIYW5k
bGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50Kik7CiAKICAgICB2b2lkIGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdESFRN
TCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5
YjMwMzYyLi4zNzdmMjU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMTEwLDcgKzEx
MCwyMjggQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGUKICAgICByZXR1cm4gYWR2YW5jZUZvY3Vz
KGRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOwogfQogCi1ib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2
YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQs
IGJvb2wgaW5pdGlhbEZvY3VzKQoraW5saW5lIHN0YXRpYyBJbnRSZWN0IGFic29sdXRlUmVuZGVy
UmVjdChSZW5kZXJPYmplY3QqIHJlbmRlcikKK3sKKyAgICBBU1NFUlQocmVuZGVyKTsKKyAgICAv
LyBGSVhNRTogY29uc2lkZXIgJ3RyYW5zZm9ybXMnID8KKworICAgIEludFJlY3QgcmVjdChyZW5k
ZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKworICAgIC8vIGhhbmRsZSBuZXN0
ZWQgZnJhbWVzLgorICAgIGlmIChGcmFtZSogZnJhbWUgPSByZW5kZXItPmRvY3VtZW50KCktPmZy
YW1lKCkpIHsKKyAgICAgICAgd2hpbGUgKGZyYW1lKSB7CisgICAgICAgICAgICBIVE1MRnJhbWVP
d25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1lbnQoKTsKKyAgICAg
ICAgICAgIGlmKE5vZGUqIG5vZGUgPSBzdGF0aWNfY2FzdDxOb2RlKj4ob3duZXJFbGVtZW50KSkK
KyAgICAgICAgICAgICAgICByZWN0Lm1vdmUobm9kZS0+cmVuZGVyZXIoKS0+b2Zmc2V0TGVmdCgp
LCBub2RlLT5yZW5kZXJlcigpLT5vZmZzZXRUb3AoKSk7CisKKyAgICAgICAgICAgIGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
cmVjdDsKK30KKworaW5saW5lIHN0YXRpYyBpbnQgcmVjdGFuZ2xlRGlzdGFuY2UoSW50UmVjdCBy
ZWN0MSwgSW50UmVjdCByZWN0MikKK3sKKyAgICBpbnQgeERpc3QgPSAwOworICAgIGlmIChyZWN0
MS54KCkgPiByZWN0Mi5yaWdodCgpKQorICAgICAgICB4RGlzdCA9IHJlY3QxLngoKSAtIHJlY3Qy
LnJpZ2h0KCk7CisgICAgZWxzZSBpZiAocmVjdDIueCgpID4gcmVjdDEucmlnaHQoKSkKKyAgICAg
ICAgeERpc3QgPSByZWN0Mi54KCkgLSByZWN0MS5yaWdodCgpOworCisgICAgaW50IHlEaXN0ID0g
MDsKKyAgICBpZiAocmVjdDEueSgpID4gcmVjdDIuYm90dG9tKCkpCisgICAgICAgIHlEaXN0ID0g
cmVjdDEueSgpIC0gcmVjdDIuYm90dG9tKCk7CisgICAgZWxzZSBpZiAocmVjdDIueSgpID4gcmVj
dDEuYm90dG9tKCkpCisgICAgICAgIHlEaXN0ID0gcmVjdDIueSgpIC0gcmVjdDEuYm90dG9tKCk7
CisKKyAgICByZXR1cm4geERpc3QgKiB4RGlzdCArIHlEaXN0ICogeURpc3Q7Cit9CisKK2lubGlu
ZSBzdGF0aWMgYm9vbCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJl
Y3RQb2ludCwgY29uc3QgSW50UG9pbnQmIHBvaW50KQoreworICAgIC8vIENoZWNrIGlmIHBvaW50
IGlzIGFib3ZlIHRoZSB5ID0geCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAg
cmV0dXJuIHJlY3RQb2ludC54KCkgLSByZWN0UG9pbnQueSgpIDwgcG9pbnQueCgpIC0gcG9pbnQu
eSgpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKGNv
bnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFBvaW50JiBwb2ludCkKK3sKKyAgICAv
LyBDaGVjayBpZiBwb2ludCBpcyBhYm92ZSB0aGUgeSA9IC14ICsgYyBsaW5lIHBhc3NpbmcgZm9y
IHJlY3RQb2ludC4KKyAgICByZXR1cm4gcmVjdFBvaW50LngoKSArIHJlY3RQb2ludC55KCkgPiBw
b2ludC54KCkgKyBwb2ludC55KCk7Cit9CisKK2lubGluZSBzdGF0aWMgYm9vbCBpc1JlY3RBYm92
ZU1haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNvbWUgcG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFy
ZSBhYm92ZSB0aGUgeSA9IHggKyBjIGxpbmUgcGFzc2luZyBmb3IgcmVjdFBvaW50LgorICAgIHJl
dHVybiAoaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgcmVjdC5sb2NhdGlvbigp
KQorICAgICAgICAgICAgfHwgaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50
UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LnkoKSkpCisgICAgICAgICAgICB8fCBpc1BvaW50QWJv
dmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LngoKSwgcmVjdC5ib3R0b20o
KSkpCisgICAgICAgICAgICB8fCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJ
bnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKSk7Cit9CisKK2lubGluZSBzdGF0
aWMgYm9vbCBpc1JlY3RCZWxvd01haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBvaW50
LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNvbWUgcG9pbnRzIGJl
bG9uZ2luZyB0byByZWN0IGFyZSBiZWxvdyB0aGUgeSA9IHggKyBjIGxpbmUgcGFzc2luZyBmb3Ig
cmVjdFBvaW50LgorICAgIHJldHVybiAoIWlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9p
bnQsIHJlY3QubG9jYXRpb24oKSkKKyAgICAgICAgICAgIHx8ICFpc1BvaW50QWJvdmVNYWluRGlh
Z29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QueSgpKSkKKyAgICAg
ICAgICAgIHx8ICFpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChy
ZWN0LngoKSwgcmVjdC5ib3R0b20oKSkpCisgICAgICAgICAgICB8fCAhaXNQb2ludEFib3ZlTWFp
bkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgp
KSkpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNSZWN0QWJvdmVBbnRpRGlhZ29uYWwoY29u
c3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBD
aGVjayBpZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUgYWJvdmUgdGhlIHkgPSAt
eCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuIChpc1BvaW50QWJv
dmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpCisgICAgICAgICAgICB8
fCBpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0
KCksIHJlY3QueSgpKSkKKyAgICAgICAgICAgIHx8IGlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChy
ZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkKKyAgICAgICAgICAg
IHx8IGlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3Qucmln
aHQoKSwgcmVjdC5ib3R0b20oKSkpKTsKK30KKworaW5saW5lIHN0YXRpYyBib29sIGlzUmVjdEJl
bG93QW50aURpYWdvbmFsKGNvbnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3Qm
IHJlY3QpCit7CisgICAgLy8gQ2hlY2sgaWYgc29tZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3Qg
YXJlIGJlbG93IHRoZSB5ID0gLXggKyBjIGxpbmUgcGFzc2luZyBmb3IgcmVjdFBvaW50LgorICAg
IHJldHVybiAoIWlzUG9pbnRBYm92ZUFudGlEaWFnb25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRp
b24oKSkKKyAgICAgICAgICAgIHx8ICFpc1BvaW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50
LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QueSgpKSkKKyAgICAgICAgICAgIHx8ICFpc1Bv
aW50QWJvdmVBbnRpRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LngoKSwgcmVjdC5i
b3R0b20oKSkpCisgICAgICAgICAgICB8fCAhaXNQb2ludEFib3ZlQW50aURpYWdvbmFsKHJlY3RQ
b2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgpKSkpOworfQorCitzdGF0
aWMgaW50IGRpc3RhbmNlSW5EaXJlY3Rpb24oTm9kZSogc3RhcnQsIE5vZGUqIGRlc3QsIEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBSZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyID0g
c3RhcnQtPnJlbmRlcmVyKCk7CisgICAgSW50UmVjdCBzdGFydFJlY3QoYWJzb2x1dGVSZW5kZXJS
ZWN0KHN0YXJ0UmVuZGVyKSk7CisKKyAgICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSBkZXN0
LT5yZW5kZXJlcigpOworICAgIEludFJlY3QgZGVzdFJlY3QoYWJzb2x1dGVSZW5kZXJSZWN0KGRl
c3RSZW5kZXIpKTsKKworICAgIC8vIFRoZSBib3VuZGluZyByZWN0YW5nbGUgb2YgdHdvIGNvbnNl
Y3V0aXZlIGxpbmtzIGNvdWxkIG92ZXJsYXAsIHNvIHdlIGRlY3JlYXNlIHRoZSBzaXplIG9mCisg
ICAgLy8gYm90aCByZWN0YW5nbGVzLgorICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJldHRlciB3
YXkgdG8gZG8gdGhpcz8KKyAgICBzdGFydFJlY3QuaW5mbGF0ZSgtNCk7CisgICAgZGVzdFJlY3Qu
aW5mbGF0ZSgtNCk7CisKKyAgICAvLyBBIG1vdmVtZW50IHRvIHRoZSByaWdodCBpcyBhbGxvd2Vk
IG9ubHkgaWYgdGhlIGRlc3RpbmF0aW9uIHJlY3RhbmdsZSBpcyBpbiB0aGUgcmVnaW9uIGRlbGlt
aXRlZAorICAgIC8vIGJ5IHRoZSByaWdodCBzaWRlIG9mIHRoZSBzdGFydCByZWN0YW5nbGUgYW5k
IHRoZSB0d28gZGlhZ29uYWxzIHN0YXJ0aW5nIGZyb20gaXRzIHZlcnRpY2VzLgorICAgIC8vIFRo
ZSBzYW1lIGlzIGRvbmUgZm9yIHRoZSBvdGhlciBkaXJlY3Rpb25zLgorICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBpZiAoZGVz
dFJlY3QucmlnaHQoKSA8PSBzdGFydFJlY3QucmlnaHQoKQorICAgICAgICAgICAgfHwgIWlzUmVj
dEJlbG93QW50aURpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3Qu
eSgpKSwgZGVzdFJlY3QpCisgICAgICAgICAgICB8fCAhaXNSZWN0QWJvdmVNYWluRGlhZ29uYWwo
SW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0
KSkKKyAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgaWYgKGRlc3RSZWN0LngoKSA+PSBzdGFydFJl
Y3QueCgpCisgICAgICAgICAgICB8fCAhaXNSZWN0QmVsb3dNYWluRGlhZ29uYWwoc3RhcnRSZWN0
LmxvY2F0aW9uKCksIGRlc3RSZWN0KQorICAgICAgICAgICAgfHwgIWlzUmVjdEFib3ZlQW50aURp
YWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC54KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RS
ZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgICAgIGlmIChkZXN0UmVjdC55KCkgPj0gc3RhcnRS
ZWN0LnkoKQorICAgICAgICAgICAgfHwgIWlzUmVjdEFib3ZlTWFpbkRpYWdvbmFsKHN0YXJ0UmVj
dC5sb2NhdGlvbigpLCBkZXN0UmVjdCkKKyAgICAgICAgICAgIHx8ICFpc1JlY3RBYm92ZUFudGlE
aWFnb25hbChJbnRQb2ludChzdGFydFJlY3QucmlnaHQoKSwgc3RhcnRSZWN0LnkoKSksIGRlc3RS
ZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgaWYgKGRlc3RSZWN0LmJvdHRvbSgpIDw9
IHN0YXJ0UmVjdC5ib3R0b20oKQorICAgICAgICAgICAgfHwgIWlzUmVjdEJlbG93QW50aURpYWdv
bmFsKEludFBvaW50KHN0YXJ0UmVjdC54KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0
KQorICAgICAgICAgICAgfHwgIWlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKEludFBvaW50KHN0YXJ0
UmVjdC5yaWdodCgpLCBzdGFydFJlY3QuYm90dG9tKCkpLCBkZXN0UmVjdCkpCisgICAgICAgICAg
ICByZXR1cm4gSU5UX01BWDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgIH0KKwor
ICAgIHJldHVybiByZWN0YW5nbGVEaXN0YW5jZShzdGFydFJlY3QsIGRlc3RSZWN0KTsKK30KKwor
c3RydWN0IEJlc3RDYW5kaWRhdGUgeworICAgIEJlc3RDYW5kaWRhdGUoKQorICAgICAgICA6IG5v
ZGUoMCkKKyAgICAgICAgLCBkaXN0YW5jZShzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgp
KQorICAgIHsKKyAgICB9CisgICAgTm9kZSogbm9kZTsKKyAgICBpbnQgZGlzdGFuY2U7Cit9Owor
CitzdGF0aWMgdm9pZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBz
dGFydCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgQmVz
dENhbmRpZGF0ZSYgYmVzdENhbmRpZGF0ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisg
ICAgLy8gV2FsayBhbGwgdGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgYmVzdENhbmRpZGF0ZSBp
ZiB3ZSBmaW5kIGEgbmVhcmVyIG5vZGUuCisgICAgZm9yIChOb2RlKiBjYW5kaWRhdGUgPSBkb2N1
bWVudC0+Zmlyc3RDaGlsZCgpOyBjYW5kaWRhdGU7IGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS0+dHJh
dmVyc2VOZXh0Tm9kZSgpKSB7CisgICAgICAgIGlmIChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVs
ZW1lbnQoKSkgeworICAgICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9IHN0
YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7CisgICAgICAgICAg
ICBpZiAob3duZXItPmNvbnRlbnRGcmFtZSgpKSB7CisgICAgICAgICAgICAgICAgRG9jdW1lbnQq
IGlubmVyRG9jdW1lbnQgPSBvd25lci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCk7CisgICAg
ICAgICAgICAgICAgaWYgKGlubmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIG5leHRJ
bkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENh
bmRpZGF0ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9
IHN0YXJ0ICYmIGNhbmRpZGF0ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkgJiYgY2FuZGlk
YXRlLT50YWJJbmRleCgpID49IDApIHsKKyAgICAgICAgICAgIGludCBkaXN0YW5jZSA9IGRpc3Rh
bmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgICAg
IGlmIChkaXN0YW5jZSA8IGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAg
ICBiZXN0Q2FuZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgYmVzdENh
bmRpZGF0ZS5kaXN0YW5jZSA9IGRpc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWwo
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0
aWFsRm9jdXMpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7Cisg
ICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2Vk
Tm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRv
IHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgLy8gaW5pdGlhbEZvY3VzIGlzIHNl
dCB0byB0cnVlIHNvIHRoZSBjaHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBh
ZHZhbmNlRm9jdXNMaW5lYXIoRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLCBldmVudCwgdHJ1ZSk7Cisg
ICAgfQorCisgICAgLy8gTW92ZSB1cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAg
ICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLT5wYXJlbnQoKTsKKyAgICAgICAgaWYgKCFwYXJlbnRGcmFtZSB8fCAhcGFyZW50RnJhbWUt
PmRvY3VtZW50KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBmcmFtZSA9IHBhcmVu
dEZyYW1lOworICAgIH0KKworICAgIEJlc3RDYW5kaWRhdGUgYmVzdENhbmRpZGF0ZTsKKyAgICBu
ZXh0SW5EaXJlY3Rpb24oZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24s
IGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKworICAgIE5vZGUqIG5vZGUgPSBiZXN0Q2FuZGlkYXRl
Lm5vZGU7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAvLyBMZWF2ZSB0aGUgZm9jdXMgb24gdGhl
IHNhbWUgbm9kZS4KKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghbm9kZS0+
aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVlZCBhIHdheSB0byBm
b2N1cyBhIGRvY3VtZW50IGhlcmUuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpOworCisgICAgaWYgKG5l
d0RvY3VtZW50ICE9IGZvY3VzZWREb2N1bWVudCkgeworICAgICAgICAvLyBGb2N1cyBpcyBnb2lu
ZyBhd2F5IGZyb20gdGhlIG9yaWdpbmFsbHkgZm9jdXNlZCBkb2N1bWVudCwgc28gY2xlYXIgdGhl
IGZvY3VzZWQgbm9kZS4KKyAgICAgICAgZm9jdXNlZERvY3VtZW50LT5zZXRGb2N1c2VkTm9kZSgw
KTsKKyAgICB9CisKKyAgICBpZiAobmV3RG9jdW1lbnQpCisgICAgICAgIHNldEZvY3VzZWRGcmFt
ZShuZXdEb2N1bWVudC0+ZnJhbWUoKSk7CisKKyAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9k
ZSktPmZvY3VzKGZhbHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGb2N1c0NvbnRy
b2xsZXI6OmFkdmFuY2VGb2N1c0xpbmVhcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJv
YXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKIHsKICAgICBGcmFtZSogZnJhbWUg
PSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBBU1NFUlQoZnJhbWUpOwpAQCAtMTY4LDEzICsz
ODksMTUgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KIAogICAgIEFTU0VSVChub2RlKTsKIAot
ICAgIGlmIChub2RlID09IGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpKQorICAgIGlmIChub2RlID09
IGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpKSB7CiAgICAgICAgIC8vIEZvY3VzIHdyYXBwZWQgYXJv
dW5kIHRvIHRoZSBzYW1lIG5vZGUuCiAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAotICAg
IGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3Vt
ZW50IGhlcmUuCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBpZiAobm9kZS0+
aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CiAgICAgICAgIC8vIFdlIGZvY3VzIGZyYW1lcyByYXRo
ZXIgdGhhbiBmcmFtZSBvd25lcnMuCkBAIC0xOTQsOSArNDE3LDEwIEBAIGJvb2wgRm9jdXNDb250
cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2
ZW50KiBldmVuCiAKICAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgp
OwogCi0gICAgaWYgKG5ld0RvY3VtZW50ICE9IGRvY3VtZW50KQorICAgIGlmIChuZXdEb2N1bWVu
dCAhPSBkb2N1bWVudCkgewogICAgICAgICAvLyBGb2N1cyBpcyBnb2luZyBhd2F5IGZyb20gdGhp
cyBkb2N1bWVudCwgc28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KICAgICAgICAgZG9jdW1lbnQt
PnNldEZvY3VzZWROb2RlKDApOworICAgIH0KIAogICAgIGlmIChuZXdEb2N1bWVudCkKICAgICAg
ICAgc2V0Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKQEAgLTIwNSw2ICs0Mjks
MjAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9v
bCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKK3sKKyAgICBzd2l0Y2gg
KGRpcmVjdGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkOgorICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0xpbmVh
cihkaXJlY3Rpb24sIGV2ZW50LCBpbml0aWFsRm9jdXMpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rp
b25MZWZ0OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uVXA6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiBh
ZHZhbmNlRm9jdXNEaXJlY3Rpb25hbChkaXJlY3Rpb24sIGV2ZW50LCBpbml0aWFsRm9jdXMpOwor
ICAgIH0KK30KKwogc3RhdGljIGJvb2wgcmVsaW5xdWlzaGVzRWRpdGluZ0ZvY3VzKE5vZGUgKm5v
ZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IGY0YTY2
MzIuLmViMWQwMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAor
KysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTU3LDYgKzU3LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIFJlZlB0cjxG
cmFtZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgICAgIGJvb2wgbV9pc0FjdGl2ZTsKKworICAgICAg
ICBib29sIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2
ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOworICAgICAgICBib29sIGFkdmFuY2VGb2N1c0xpbmVh
cihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsKICAg
ICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCmluZGV4IDI2
MWM3NDUuLjU1MWM3MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5o
CisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0yOSw3ICsyOSwxMSBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRm9jdXNEaXJlY3Rpb24gewogICAgICAgICBG
b2N1c0RpcmVjdGlvbkZvcndhcmQgPSAwLAotICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJk
CisgICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsCisgICAgICAgIEZvY3VzRGlyZWN0aW9u
VXAsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25M
ZWZ0LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
aW5kZXggOWU0YjdiNS4uMmY0ZmVjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC04NSw2ICs4NSw3IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV96b29tc1RleHRPbmx5KGZhbHNl
KQogICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJblN0cmljdE1vZGUodHJ1ZSkKICAgICAsIG1f
bWF4aW11bURlY29kZWRJbWFnZVNpemUoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgo
KSkKKyAgICAsIG1fZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uKGZhbHNlKQogewogICAgIC8vIEEg
RnJhbWUgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhl
IEF0b21pY1N0cmluZyAKICAgICAvLyBoYXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAppbmRleCBkNDZhM2M2Li5kNGE2N2RmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTkzLDYgKzE5Myw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRNYXhpbXVtRGVjb2RlZEltYWdlU2l6
ZShzaXplX3Qgc2l6ZSkgeyBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplID0gc2l6ZTsgfQogICAg
ICAgICBzaXplX3QgbWF4aW11bURlY29kZWRJbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX21h
eGltdW1EZWNvZGVkSW1hZ2VTaXplOyB9CiAKKyAgICAgICAgdm9pZCBzZXRFbmFibGVLZXlib2Fy
ZE5hdmlnYXRpb24oYm9vbCBzdGF0dXMpIHsgbV9lbmFibGVLZXlib2FyZE5hdmlnYXRpb24gPSBz
dGF0dXM7IH0KKyAgICAgICAgYm9vbCBlbmFibGVLZXlib2FyZE5hdmlnYXRpb24oKSB7IHJldHVy
biBtX2VuYWJsZUtleWJvYXJkTmF2aWdhdGlvbjsgfQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiAg
ICAgICAgIC8vIFdpbmRvd3MgZGVidWdnaW5nIHByZWYgKGdsb2JhbCkgZm9yIHN3aXRjaGluZyBi
ZXR3ZWVuIHRoZSBBcXVhIGxvb2sgYW5kIGEgbmF0aXZlIHdpbmRvd3MgbG9vay4KICAgICAgICAg
c3RhdGljIHZvaWQgc2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sKTsKQEAgLTI1MCw2
ICsyNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV96b29tc1RleHRP
bmx5IDogMTsKICAgICAgICAgYm9vbCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluU3RyaWN0TW9kZSA6
IDE7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOworICAgICAgICBi
b29sIG1fZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uOwogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkK
ICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7Cg==
</data>
<flag name="review"
          id="12582"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26645</attachid>
            <date>2009-01-12 12:37:28 -0800</date>
            <delta_ts>2010-01-12 06:44:07 -0800</delta_ts>
            <desc>WIP - Add directional navigation to WebCore (v5)</desc>
            <filename>BUG_18662_v5.diff</filename>
            <type>text/plain</type>
            <size>17260</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNGRjMzdkOC4uMjBkOGJiYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTE4NzksNiArMTg3OSwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtl
eWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IikKICAg
ICAgICAgICAgIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIGlmIChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24gPSBpc0Fycm93S2V5KGV2
ZW50LT5rZXlJZGVudGlmaWVyKCkpKQorICAgICAgICAgICAgICAgIGRlZmF1bHRBcnJvd0V2ZW50
SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKKyAgICAgICAgfQogCiAgICAgICAgLy8gcHJvdmlk
ZXMgS0IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBlbmhhbmNlZCBhY2Nlc3NpYmlsaXR5
IHVzZXJzCiAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVz
ZXJJbnRlcmZhY2VFbmFibGVkKCkpCkBAIC0xODkxLDYgKzE4OTUsMjAgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkK
ICAgIH0KIH0KIAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjppc0Fycm93S2V5KGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllcikKK3sKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiRG93
biIpCisgICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBpZiAoa2V5
SWRlbnRpZmllciA9PSAiVXAiKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJlY3Rpb25VcDsKKyAg
ICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJMZWZ0IikKKyAgICAgICAgcmV0dXJuIEZvY3Vz
RGlyZWN0aW9uTGVmdDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpCisg
ICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvblJpZ2h0OworCisgICAgcmV0dXJuIChGb2N1c0Rp
cmVjdGlvbikgMDsKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lzRXhjZWVk
ZWQoY29uc3QgRmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbikgY29uc3QKIHsK
ICAgICBJbnRQb2ludCBkcmFnVmlld3BvcnRMb2NhdGlvbigoaW50KWZsb2F0RHJhZ1ZpZXdwb3J0
TG9jYXRpb24ueCgpLCAoaW50KWZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXRpb24ueSgpKTsKQEAgLTIx
NjgsNiArMjE4NiwyNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxl
cihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVk
KCk7CiB9CiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9j
dXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAg
IGlmIChldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5KCkgfHwgZXZlbnQtPmFsdEdy
YXBoS2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgIXBhZ2UtPnNldHRpbmdzKCktPnNo
b3VsZFVzZUFycm93S2V5c0ZvckRpcmVjdGlvbmFsTmF2aWdhdGlvbigpKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBGSVhNRTogQXJlIENUUkwtYXJyb3cga2V5cyBuZWVkZWQgaW4gZGVzaWdu
IG1vZGU/CisgICAgLy8gRklYTUU6IHRvbmlraXRvbzogY29tbWVudCByZW1vdmUgPworICAgIC8v
aWYgKG1fZnJhbWUtPmRvY3VtZW50KCktPmluRGVzaWduTW9kZSgpKQorICAgIC8vICAgIHJldHVy
bjsKKworICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZvY3VzKGZvY3Vz
RGlyZWN0aW9uLCBldmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwor
fQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCkKIHsK
ICAgICBpZiAoRG9jdW1lbnQqIGQgPSBtX2ZyYW1lLT5kb2N1bWVudCgpKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5o
CmluZGV4IGYzNzM1ZjQuLmViODNkZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTE0NCw2ICsxNDQs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVBY2Nlc3NLZXkoY29uc3QgUGxhdGZvcm1LZXli
b2FyZEV2ZW50Jik7CiAgICAgYm9vbCBrZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQmKTsKICAgICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50
Kik7CisgICAgRm9jdXNEaXJlY3Rpb24gaXNBcnJvd0tleShjb25zdCBTdHJpbmcmKTsKIAogICAg
IGJvb2wgaGFuZGxlVGV4dElucHV0RXZlbnQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFdmVudCogdW5k
ZXJseWluZ0V2ZW50ID0gMCwKICAgICAgICAgYm9vbCBpc0xpbmVCcmVhayA9IGZhbHNlLCBib29s
IGlzQmFja1RhYiA9IGZhbHNlKTsKQEAgLTI2Niw2ICsyNjcsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgcGFzc1doZWVsRXZlbnRUb1dpZGdldChQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQqKTsK
IAogICAgIHZvaWQgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAg
dm9pZCBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZl
bnQqKTsKIAogICAgIHZvaWQgYWxsb3dESFRNTERyYWcoYm9vbCYgZmxhZ0RIVE1MLCBib29sJiBm
bGFnVUEpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDliMzAzNjIuLmE0
MGE3NjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC01MSw2ICs1MSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Cit1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCiBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlKiBwYWdl
KQogICAgIDogbV9wYWdlKHBhZ2UpCkBAIC0xMTAsNyArMTExLDIyNiBAQCBib29sIEZvY3VzQ29u
dHJvbGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9h
cmRFdmVudCogZQogICAgIHJldHVybiBhZHZhbmNlRm9jdXMoZGlyZWN0aW9uLCBldmVudCwgdHJ1
ZSk7CiB9CiAKLWJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCitz
dGF0aWMgaW5saW5lIEludFJlY3QgYWJzb2x1dGVSZW5kZXJSZWN0KFJlbmRlck9iamVjdCogcmVu
ZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9u
IGlzIGZsYXdlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgY29uc2lkZXIgdGhlIGVmZmVjdHMgb2YgQ1NT
IG9yIFNWRyB0cmFuc2Zvcm1zLgorCisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1dGVD
bGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworCisgICAgLy8gaGFuZGxlIG5lc3RlZCBmcmFtZXMuCisg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSByZW5kZXItPmRvY3VtZW50KCktPmZyYW1lKCk7IGZyYW1l
OyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpKQorICAgICAgICBpZihIVE1MRnJhbWVP
d25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1lbnQoKSkKKyAgICAg
ICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPnJlbmRlcmVyKCktPm9mZnNldExlZnQoKSwg
b3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVj
dDsKK30KKworLy9GSVhNRTogdG9uaWtpdG9vOiBoYW5kbGUgcG9zc2libGUgb3ZlcmZsb3cKK3N0
YXRpYyBpbmxpbmUgaW50IHJlY3RhbmdsZURpc3RhbmNlKEludFJlY3QmIHJlY3QxLCBJbnRSZWN0
JiByZWN0MikKK3sKKyAgICBpbnQgeERpc3QgPSAwOworICAgIGlmIChyZWN0MS54KCkgPiByZWN0
Mi5yaWdodCgpKQorICAgICAgICB4RGlzdCA9IHJlY3QxLngoKSAtIHJlY3QyLnJpZ2h0KCk7Cisg
ICAgZWxzZSBpZiAocmVjdDIueCgpID4gcmVjdDEucmlnaHQoKSkKKyAgICAgICAgeERpc3QgPSBy
ZWN0Mi54KCkgLSByZWN0MS5yaWdodCgpOworCisgICAgaW50IHlEaXN0ID0gMDsKKyAgICBpZiAo
cmVjdDEueSgpID4gcmVjdDIuYm90dG9tKCkpCisgICAgICAgIHlEaXN0ID0gcmVjdDEueSgpIC0g
cmVjdDIuYm90dG9tKCk7CisgICAgZWxzZSBpZiAocmVjdDIueSgpID4gcmVjdDEuYm90dG9tKCkp
CisgICAgICAgIHlEaXN0ID0gcmVjdDIueSgpIC0gcmVjdDEuYm90dG9tKCk7CisKKyAgICByZXR1
cm4geERpc3QgKiB4RGlzdCArIHlEaXN0ICogeURpc3Q7Cit9CisKK2lubGluZSBzdGF0aWMgYm9v
bCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29u
c3QgSW50UG9pbnQmIHBvaW50KQoreworICAgIC8vIENoZWNrIGlmIHBvaW50IGlzIGFib3ZlIHRo
ZSB5ID0geCArIGMgbGluZSBwYXNzaW5nIHRocm91Z2ggcmVjdFBvaW50LgorICAgIHJldHVybiBy
ZWN0UG9pbnQueCgpIC0gcmVjdFBvaW50LnkoKSA8IHBvaW50LngoKSAtIHBvaW50LnkoKTsKK30K
KworaW5saW5lIHN0YXRpYyBib29sIGlzUG9pbnRBYm92ZUFudGlkaWFnb25hbChjb25zdCBJbnRQ
b2ludCYgcmVjdFBvaW50LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgLy8gQ2hlY2sg
aWYgcG9pbnQgaXMgYWJvdmUgdGhlIHkgPSAteCArIGMgbGluZSBwYXNzaW5nIHRocm91Z2ggcmVj
dFBvaW50LgorICAgIHJldHVybiByZWN0UG9pbnQueCgpICsgcmVjdFBvaW50LnkoKSA+IHBvaW50
LngoKSArIHBvaW50LnkoKTsKK30KKworaW5saW5lIHN0YXRpYyBib29sIGlzUmVjdEFib3ZlTWFp
bkRpYWdvbmFsKGNvbnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgLy8gQ2hlY2sgaWYgc29tZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGFi
b3ZlIHRoZSB5ID0geCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJu
IGlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkKKyAg
ICAgICAgICAgfHwgaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQo
cmVjdC5yaWdodCgpLCByZWN0LnkoKSkpCisgICAgICAgICAgIHx8IGlzUG9pbnRBYm92ZU1haW5E
aWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkKKyAg
ICAgICAgICAgfHwgaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQo
cmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgpKSk7Cit9CisKK2lubGluZSBzdGF0aWMgYm9vbCBp
c1JlY3RCZWxvd01haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBvaW50LCBjb25zdCBJ
bnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNvbWUgcG9pbnRzIGJlbG9uZ2luZyB0
byByZWN0IGFyZSBiZWxvdyB0aGUgeSA9IHggKyBjIGxpbmUgcGFzc2luZyBmb3IgcmVjdFBvaW50
LgorICAgIHJldHVybiAhaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgcmVjdC5s
b2NhdGlvbigpKQorICAgICAgICAgICB8fCAhaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQ
b2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LnkoKSkpCisgICAgICAgICAgIHx8ICFp
c1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LngoKSwgcmVj
dC5ib3R0b20oKSkpCisgICAgICAgICAgIHx8ICFpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVj
dFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKTsKK30KKworaW5s
aW5lIHN0YXRpYyBib29sIGlzUmVjdEFib3ZlQW50aWRpYWdvbmFsKGNvbnN0IEludFBvaW50JiBy
ZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8gQ2hlY2sgaWYgc29tZSBw
b2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGFib3ZlIHRoZSB5ID0gLXggKyBjIGxpbmUgcGFz
c2luZyBmb3IgcmVjdFBvaW50LgorICAgIHJldHVybiBpc1BvaW50QWJvdmVBbnRpZGlhZ29uYWwo
cmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpCisgICAgICAgICAgIHx8IGlzUG9pbnRBYm92ZUFu
dGlkaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC55KCkpKQor
ICAgICAgICAgICB8fCBpc1BvaW50QWJvdmVBbnRpZGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2lu
dChyZWN0LngoKSwgcmVjdC5ib3R0b20oKSkpCisgICAgICAgICAgIHx8IGlzUG9pbnRBYm92ZUFu
dGlkaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQoKSwgcmVjdC5ib3R0b20o
KSkpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNSZWN0QmVsb3dBbnRpZGlhZ29uYWwoY29u
c3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICAvLyBD
aGVjayBpZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBhcmUgYmVsb3cgdGhlIHkgPSAt
eCArIGMgbGluZSBwYXNzaW5nIGZvciByZWN0UG9pbnQuCisgICAgcmV0dXJuICFpc1BvaW50QWJv
dmVBbnRpZGlhZ29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpCisgICAgICAgICAgIHx8
ICFpc1BvaW50QWJvdmVBbnRpZGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0
KCksIHJlY3QueSgpKSkKKyAgICAgICAgICAgfHwgIWlzUG9pbnRBYm92ZUFudGlkaWFnb25hbChy
ZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkKKyAgICAgICAgICAg
fHwgIWlzUG9pbnRBYm92ZUFudGlkaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3Qucmln
aHQoKSwgcmVjdC5ib3R0b20oKSkpOworfQorCitzdGF0aWMgaW50IGRpc3RhbmNlSW5EaXJlY3Rp
b24oTm9kZSogc3RhcnQsIE5vZGUqIGRlc3QsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sK
KyAgICBSZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyID0gc3RhcnQtPnJlbmRlcmVyKCk7CisgICAg
SW50UmVjdCBzdGFydFJlY3QoYWJzb2x1dGVSZW5kZXJSZWN0KHN0YXJ0UmVuZGVyKSk7CisKKyAg
ICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOworICAgIEludFJl
Y3QgZGVzdFJlY3QoYWJzb2x1dGVSZW5kZXJSZWN0KGRlc3RSZW5kZXIpKTsKKworICAgIC8vIFRo
ZSBib3VuZGluZyByZWN0YW5nbGUgb2YgdHdvIGNvbnNlY3V0aXZlIGxpbmtzIGNvdWxkIG92ZXJs
YXAsIHNvIHdlIGRlY3JlYXNlIHRoZSBzaXplIG9mCisgICAgLy8gYm90aCByZWN0YW5nbGVzLgor
ICAgIC8vIEZJWE1FOiBJcyB0aGVyZSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcz8KKyAgICAvLyB0
b25pa2l0b286IGFkZCB0ZXN0cworICAgIHN0YXJ0UmVjdC5pbmZsYXRlKC00KTsKKyAgICBkZXN0
UmVjdC5pbmZsYXRlKC00KTsKKworICAgIC8vIEEgbW92ZW1lbnQgdG8gdGhlIHJpZ2h0IGlzIGFs
bG93ZWQgb25seSBpZiB0aGUgZGVzdGluYXRpb24gcmVjdGFuZ2xlIGlzIGluIHRoZSByZWdpb24g
ZGVsaW1pdGVkCisgICAgLy8gYnkgdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHN0YXJ0IHJlY3Rhbmds
ZSBhbmQgdGhlIHR3byBkaWFnb25hbHMgc3RhcnRpbmcgZnJvbSBpdHMgdmVydGljZXMuCisgICAg
Ly8gVGhlIHNhbWUgaXMgZG9uZSBmb3IgdGhlIG90aGVyIGRpcmVjdGlvbnMuCisgICAgc3dpdGNo
IChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIGlm
IChkZXN0UmVjdC5yaWdodCgpIDw9IHN0YXJ0UmVjdC5yaWdodCgpCisgICAgICAgICAgICB8fCAh
aXNSZWN0QmVsb3dBbnRpZGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0
UmVjdC55KCkpLCBkZXN0UmVjdCkKKyAgICAgICAgICAgIHx8ICFpc1JlY3RBYm92ZU1haW5EaWFn
b25hbChJbnRQb2ludChzdGFydFJlY3QucmlnaHQoKSwgc3RhcnRSZWN0LmJvdHRvbSgpKSwgZGVz
dFJlY3QpKQorICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGludD46Om1heCgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgaWYg
KGRlc3RSZWN0LngoKSA+PSBzdGFydFJlY3QueCgpCisgICAgICAgICAgICB8fCAhaXNSZWN0QmVs
b3dNYWluRGlhZ29uYWwoc3RhcnRSZWN0LmxvY2F0aW9uKCksIGRlc3RSZWN0KQorICAgICAgICAg
ICAgfHwgIWlzUmVjdEFib3ZlQW50aWRpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC54KCksIHN0
YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBudW1lcmlj
X2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVj
dGlvblVwOgorICAgICAgICBpZiAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55KCkKKyAgICAg
ICAgICAgIHx8ICFpc1JlY3RBYm92ZU1haW5EaWFnb25hbChzdGFydFJlY3QubG9jYXRpb24oKSwg
ZGVzdFJlY3QpCisgICAgICAgICAgICB8fCAhaXNSZWN0QWJvdmVBbnRpZGlhZ29uYWwoSW50UG9p
bnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVjdC55KCkpLCBkZXN0UmVjdCkpCisgICAgICAg
ICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICBpZiAoZGVzdFJlY3QuYm90dG9t
KCkgPD0gc3RhcnRSZWN0LmJvdHRvbSgpCisgICAgICAgICAgICB8fCAhaXNSZWN0QmVsb3dBbnRp
ZGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LngoKSwgc3RhcnRSZWN0LmJvdHRvbSgpKSwgZGVz
dFJlY3QpCisgICAgICAgICAgICB8fCAhaXNSZWN0QmVsb3dNYWluRGlhZ29uYWwoSW50UG9pbnQo
c3RhcnRSZWN0LnJpZ2h0KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAg
ICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVj
dGFuZ2xlRGlzdGFuY2Uoc3RhcnRSZWN0LCBkZXN0UmVjdCk7Cit9CisKK3N0cnVjdCBCZXN0Q2Fu
ZGlkYXRlIHsKKyAgICBCZXN0Q2FuZGlkYXRlKCkKKyAgICAgICAgOiBub2RlKDApCisgICAgICAg
ICwgZGlzdGFuY2UobnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkpCisgICAgeworICAgIH0KKyAg
ICBOb2RlKiBub2RlOworICAgIGludCBkaXN0YW5jZTsKK307CisKK3N0YXRpYyB2b2lkIG5leHRJ
bkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIHN0YXJ0LCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBCZXN0Q2FuZGlkYXRlJiBiZXN0Q2Fu
ZGlkYXRlKQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisKKyAgICAvLyBXYWxrIGFsbCB0aGUg
Y2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBiZXN0Q2FuZGlkYXRlIGlmIHdlIGZpbmQgYSBuZWFyZXIg
bm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9IGRvY3VtZW50LT5maXJzdENoaWxkKCk7
IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJzZU5leHROb2RlKCkpIHsK
KyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAgICAg
ICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1l
T3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlmIChvd25lci0+Y29udGVu
dEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93
bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5u
ZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlubmVyRG9j
dW1lbnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2FuZGlkYXRl
LT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkgeworICAgICAgICAgICAgaW50IGRpc3RhbmNl
ID0gZGlzdGFuY2VJbkRpcmVjdGlvbihzdGFydCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24pOworICAg
ICAgICAgICAgaWYgKGRpc3RhbmNlIDwgYmVzdENhbmRpZGF0ZS5kaXN0YW5jZSkgeworICAgICAg
ICAgICAgICAgIGJlc3RDYW5kaWRhdGUubm9kZSA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAg
ICBiZXN0Q2FuZGlkYXRlLmRpc3RhbmNlID0gZGlzdGFuY2U7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJl
Y3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQp
Cit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgQVNTRVJU
KGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50
KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2VkTm9kZSgpOwor
ICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRvIHRoZSBmaXJz
dCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rpb24gdGFiRGlyZWN0aW9uID0g
KEZvY3VzRGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgPwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJlY3Rpb25Gb3J3
YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDsKKyAgICAgICAgLy8gJ2luaXRpYWxGb2N1cycg
aXMgc2V0IHRvIHRydWUgc28gdGhlIGNocm9tZSBpcyBub3QgZm9jdXNlZC4KKyAgICAgICAgcmV0
dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcih0YWJEaXJlY3Rpb24sIGV2ZW50LCB0cnVl
KTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVz
LgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1l
LT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRG
cmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZyYW1lID0g
cGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVzdENhbmRpZGF0ZSBiZXN0Q2FuZGlkYXRlOwor
ICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVj
dGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworCisgICAgTm9kZSogbm9kZSA9IGJlc3RDYW5k
aWRhdGUubm9kZTsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgIC8vIExlYXZlIHRoZSBmb2N1cyBv
biB0aGUgc2FtZSBub2RlLgorICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFu
b2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5
IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisKKyAgICBp
ZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIC8vIEZvY3VzIGlz
IGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50LCBzbyBjbGVh
ciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNldEZvY3VzZWRO
b2RlKDApOworICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNl
ZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQogewogICAg
IEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7
CkBAIC0xNjgsMTMgKzM4OCwxNSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbgogCiAgICAgQVNT
RVJUKG5vZGUpOwogCi0gICAgaWYgKG5vZGUgPT0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCkpCisg
ICAgaWYgKG5vZGUgPT0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCkpIHsKICAgICAgICAgLy8gRm9j
dXMgd3JhcHBlZCBhcm91bmQgdG8gdGhlIHNhbWUgbm9kZS4KICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQogCi0gICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgaWYgKCFub2Rl
LT5pc0VsZW1lbnROb2RlKCkpIHsKICAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRv
IGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAog
ICAgIGlmIChub2RlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpIHsKICAgICAgICAgLy8gV2UgZm9j
dXMgZnJhbWVzIHJhdGhlciB0aGFuIGZyYW1lIG93bmVycy4KQEAgLTE5NCw5ICs0MTYsMTAgQEAg
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KIAogICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5v
ZGUtPmRvY3VtZW50KCk7CiAKLSAgICBpZiAobmV3RG9jdW1lbnQgIT0gZG9jdW1lbnQpCisgICAg
aWYgKG5ld0RvY3VtZW50ICE9IGRvY3VtZW50KSB7CiAgICAgICAgIC8vIEZvY3VzIGlzIGdvaW5n
IGF3YXkgZnJvbSB0aGlzIGRvY3VtZW50LCBzbyBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgogICAg
ICAgICBkb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAgfQogCiAgICAgaWYgKG5ld0Rv
Y3VtZW50KQogICAgICAgICBzZXRGb2N1c2VkRnJhbWUobmV3RG9jdW1lbnQtPmZyYW1lKCkpOwpA
QCAtMjA1LDYgKzQyOCwyMCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbgogICAgIHJldHVybiB0
cnVlOwogfQogCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQor
eworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndh
cmQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2
YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7
CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJp
Z2h0OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
RG93bjoKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoZGlyZWN0aW9u
LCBldmVudCk7CisgICAgfQorfQorCiBzdGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9j
dXMoTm9kZSAqbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgK
aW5kZXggZjRhNjYzMi4uOTIyM2RjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNTcsNiAr
NTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAg
ICAgUmVmUHRyPEZyYW1lPiBtX2ZvY3VzZWRGcmFtZTsKICAgICAgICAgYm9vbCBtX2lzQWN0aXZl
OworCisgICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCopOworICAgICAgICBib29sIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRP
cmRlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvRm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCmluZGV4
IDI2MWM3NDUuLjU1MWM3MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0yOSw3ICsyOSwxMSBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRm9jdXNEaXJlY3Rpb24gewogICAgICAg
ICBGb2N1c0RpcmVjdGlvbkZvcndhcmQgPSAwLAotICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3
YXJkCisgICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsCisgICAgICAgIEZvY3VzRGlyZWN0
aW9uVXAsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAgICAgRm9jdXNEaXJlY3Rp
b25MZWZ0LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5j
cHAKaW5kZXggOWU0YjdiNS4uYTg5ZWFlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC04NSw2ICs4NSw3IEBA
IFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV96b29tc1RleHRPbmx5KGZh
bHNlKQogICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJblN0cmljdE1vZGUodHJ1ZSkKICAgICAs
IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSkKKyAgICAsIG1fc2hvdWxkVXNlQXJyb3dLZXlzRm9yRGlyZWN0aW9uYWxOYXZpZ2F0aW9u
KGZhbHNlKQogewogICAgIC8vIEEgRnJhbWUgbWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5ZXQs
IHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21pY1N0cmluZyAKICAgICAvLyBoYXNoIGJlZm9yZSB0
cnlpbmcgdG8gdXNlIGl0LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCBkNDZhM2M2Li4yZTYxNzY1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApA
QCAtMTkzLDYgKzE5Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRN
YXhpbXVtRGVjb2RlZEltYWdlU2l6ZShzaXplX3Qgc2l6ZSkgeyBtX21heGltdW1EZWNvZGVkSW1h
Z2VTaXplID0gc2l6ZTsgfQogICAgICAgICBzaXplX3QgbWF4aW11bURlY29kZWRJbWFnZVNpemUo
KSBjb25zdCB7IHJldHVybiBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOyB9CiAKKyAgICAgICAg
dm9pZCBzZXRTaG91bGRVc2VBcnJvd0tleXNGb3JEaXJlY3Rpb25hbE5hdmlnYXRpb24oYm9vbCBz
dGF0dXMpIHsgbV9zaG91bGRVc2VBcnJvd0tleXNGb3JEaXJlY3Rpb25hbE5hdmlnYXRpb24gPSBz
dGF0dXM7IH0KKyAgICAgICAgYm9vbCBzaG91bGRVc2VBcnJvd0tleXNGb3JEaXJlY3Rpb25hbE5h
dmlnYXRpb24oKSB7IHJldHVybiBtX3Nob3VsZFVzZUFycm93S2V5c0ZvckRpcmVjdGlvbmFsTmF2
aWdhdGlvbjsgfQogI2lmIFVTRShTQUZBUklfVEhFTUUpCiAgICAgICAgIC8vIFdpbmRvd3MgZGVi
dWdnaW5nIHByZWYgKGdsb2JhbCkgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBBcXVhIGxvb2sg
YW5kIGEgbmF0aXZlIHdpbmRvd3MgbG9vay4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxk
UGFpbnROYXRpdmVDb250cm9scyhib29sKTsKQEAgLTI1MCw2ICsyNTIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV96b29tc1RleHRPbmx5IDogMTsKICAgICAgICAgYm9v
bCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluU3RyaWN0TW9kZSA6IDE7CiAgICAgICAgIHNpemVfdCBt
X21heGltdW1EZWNvZGVkSW1hZ2VTaXplOworICAgICAgICBib29sIG1fc2hvdWxkVXNlQXJyb3dL
ZXlzRm9yRGlyZWN0aW9uYWxOYXZpZ2F0aW9uOwogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAg
ICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJvbHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26650</attachid>
            <date>2009-01-12 14:38:47 -0800</date>
            <delta_ts>2010-01-05 05:57:24 -0800</delta_ts>
            <desc>patch from bug 22740</desc>
            <filename>bug22740.patch</filename>
            <type>text/plain</type>
            <size>24782</size>
            <attacher name="Joseph Ligman">joseph.ligman</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDM5Mzc3KQ0KKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
DQpAQCAtMSwzICsxLDM0IEBADQorMjAwOC0xMi0xOCAgSm9lIExpZ21hbiAgPGpsaWdtYW5AbWlu
ZHNwcmluZy5jb20+DQorDQorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4NCisN
CisgICAgICAgIEJ1ZyAyMjc0MDogSXQncyBub3QgcG9zc2libGUgZm9yIGNsaWVudHMgb2YgUVdl
YkZyYW1lIHRvIGltcGxlbWVudCBkaXJlY3Rpb25hbCANCisgICAgICAgIGZvY3VzIG5vZGUgbmF2
aWdhdGlvbg0KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjc0MD4NCisNCisgICAgICAgIEFkZGVkIGZvY3VzIHBvaW50IG5hdmlnYXRpb24gYmFzZWQg
b24gaHR0cDovL3d3dy53My5vcmcvVFIvV0lDRC8jbmF2LWRpc3RhbmNlLWZrdC4NCisgICAgICAg
IFRoZSBhbGdvcml0aG0gaW1wbGVtZW50cyB0d28gZGltZW5zaW9uYWwgZm9jdXMgdHJhdmVyc2Fs
LiBJdCBhbGxvd3MgZm9yIG5hdHVyYWwgdHJhdmVyc2FsIA0KKyAgICAgICAgb3ZlciByYW5kb21s
eSBhcnJhbmdlZCBmb2N1cy1hYmxlIGVsZW1lbnRzLg0KKw0KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZUZvY3VzUG9pbnQpOg0KKyAgICAg
ICAgKFdlYkNvcmU6OmNhbGN1bGF0ZURpc3RhbmNlKToNCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6bmV4dEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbik6DQorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOg0KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6DQorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KToNCisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxl
cik6DQorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoNCisgICAgICAgIChXZWJD
b3JlOjpkZWVwRm9jdXNhYmxlTm9kZSk6DQorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyOjphZHZhbmNlRm9jdXMpOg0KKyAgICAgICAgKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6DQor
ICAgICAgICAoV2ViQ29yZTo6KToNCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6DQorICAg
ICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToNCisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0RGlyZWN0aW9uYWxGb2N1c05hdmlnYXRpb24pOg0KKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmg6DQorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmRpcmVjdGlvbmFsRm9j
dXNOYXZpZ2F0aW9uKToNCisNCiAyMDA4LTEyLTE4ICBDYW1lcm9uIFp3YXJpY2ggIDx6d2FyaWNo
QGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLg0KSW5kZXg6
IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAkocmV2aXNpb24gMzkzNzcpDQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpDQpAQCAtMTkyMCw2ICsxOTIwLDE0OSBAQCBOb2RlKiBEb2N1bWVudDo6
cHJldmlvdXNGb2N1c2FibGVOb2RlKE5vDQogICAgIHJldHVybiBwcmV2aW91c05vZGVXaXRoTG93
ZXJUYWJJbmRleChsYXN0LCBzdGFydGluZ1RhYkluZGV4LCBldmVudCk7DQogfQ0KIA0KK3N0YXRp
YyBJbnRQb2ludCBjYWxjdWxhdGVGb2N1c1BvaW50KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwg
Y29uc3QgSW50UmVjdCYgZm9jdXNlZFJlY3QsIGNvbnN0IEludFBvaW50JiBmb2N1c1BvaW50KQ0K
K3sNCisgICAgSW50UG9pbnQgbmV4dEZvY3VzUG9pbnQoZm9jdXNQb2ludCk7DQorICAgIHN3aXRj
aCAoZGlyZWN0aW9uKSB7DQorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoNCisgICAgICAgIGlm
IChmb2N1c1BvaW50LngoKSA8IGZvY3VzZWRSZWN0LngoKSkgDQorICAgICAgICAgICAgbmV4dEZv
Y3VzUG9pbnQuc2V0WChmb2N1c2VkUmVjdC54KCkpOw0KKyAgICAgICAgZWxzZSBpZiAoZm9jdXNQ
b2ludC54KCkgPiBmb2N1c2VkUmVjdC5yaWdodCgpKQ0KKyAgICAgICAgICAgIG5leHRGb2N1c1Bv
aW50LnNldFgoZm9jdXNlZFJlY3QucmlnaHQoKSk7DQorICAgICAgICBuZXh0Rm9jdXNQb2ludC5z
ZXRZKGZvY3VzZWRSZWN0LmJvdHRvbSgpKTsNCisgICAgICAgIGJyZWFrOw0KKyAgICBjYXNlIEZv
Y3VzRGlyZWN0aW9uRG93bjoNCisgICAgICAgIGlmIChmb2N1c1BvaW50LngoKSA8IGZvY3VzZWRS
ZWN0LngoKSkgDQorICAgICAgICAgICAgbmV4dEZvY3VzUG9pbnQuc2V0WChmb2N1c2VkUmVjdC54
KCkpOw0KKyAgICAgICAgZWxzZSBpZiAoZm9jdXNQb2ludC54KCkgPiBmb2N1c2VkUmVjdC5yaWdo
dCgpKQ0KKyAgICAgICAgICAgIG5leHRGb2N1c1BvaW50LnNldFgoZm9jdXNlZFJlY3QucmlnaHQo
KSk7DQorICAgICAgICBuZXh0Rm9jdXNQb2ludC5zZXRZKGZvY3VzZWRSZWN0LnkoKSk7DQorICAg
ICAgICBicmVhazsNCisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0Og0KKyAgICAgICAgbmV4
dEZvY3VzUG9pbnQuc2V0WChmb2N1c2VkUmVjdC54KCkpOw0KKyAgICAgICAgaWYgKGZvY3VzUG9p
bnQueSgpIDwgZm9jdXNlZFJlY3QueSgpKQ0KKyAgICAgICAgICAgIG5leHRGb2N1c1BvaW50LnNl
dFkoZm9jdXNlZFJlY3QueSgpKTsNCisgICAgICAgIGVsc2UgaWYgKGZvY3VzUG9pbnQueSgpID4g
Zm9jdXNlZFJlY3QuYm90dG9tKCkpDQorICAgICAgICAgICAgbmV4dEZvY3VzUG9pbnQuc2V0WShm
b2N1c2VkUmVjdC5ib3R0b20oKSk7DQorICAgICAgICBicmVhazsNCisgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvbkxlZnQ6DQorICAgICAgICBuZXh0Rm9jdXNQb2ludC5zZXRYKGZvY3VzZWRSZWN0LnJp
Z2h0KCkpOw0KKyAgICAgICAgaWYgKGZvY3VzUG9pbnQueSgpIDwgZm9jdXNlZFJlY3QueSgpKQ0K
KyAgICAgICAgICAgIG5leHRGb2N1c1BvaW50LnNldFkoZm9jdXNlZFJlY3QueSgpKTsNCisgICAg
ICAgIGVsc2UgaWYgKGZvY3VzUG9pbnQueSgpID4gZm9jdXNlZFJlY3QuYm90dG9tKCkpDQorICAg
ICAgICAgICAgbmV4dEZvY3VzUG9pbnQuc2V0WShmb2N1c2VkUmVjdC5ib3R0b20oKSk7DQorICAg
ICAgICBicmVhazsNCisgICAgZGVmYXVsdDoNCisgICAgICAgIGJyZWFrOw0KKyAgICB9DQorDQor
ICAgIHJldHVybiBuZXh0Rm9jdXNQb2ludDsNCit9DQorDQorc3RhdGljIGludCBjYWxjdWxhdGVE
aXN0YW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHBvc3NpYmxl
UmVjdCwgY29uc3QgSW50UG9pbnQmIGZvY3VzUG9pbnQsIGNvbnN0IEludFJlY3QmIGZvY3VzZWRS
ZWN0KQ0KK3sNCisgICAgLy8gTWFrZSBzdXJlIHRoZSByZWN0YW5nbGUgZmFsbHMgd2l0aGluIHRo
ZSBzZWFyY2ggYXJlYQ0KKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXAgJiYg
cG9zc2libGVSZWN0LmJvdHRvbSgpID49IGZvY3VzUG9pbnQueSgpDQorICAgICAgICB8fCBkaXJl
Y3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duICYmIHBvc3NpYmxlUmVjdC55KCkgPD0gZm9jdXNQ
b2ludC55KCkNCisgICAgICAgIHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0ICYm
IHBvc3NpYmxlUmVjdC54KCkgPD0gZm9jdXNQb2ludC54KCkNCisgICAgICAgIHx8IGRpcmVjdGlv
biA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgJiYgcG9zc2libGVSZWN0LnJpZ2h0KCkgPj0gZm9jdXNQ
b2ludC54KCkpDQorICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgo
KTsNCisNCisgICAgLy8gVGhlIGFic29sdXRlIGRpc3RhbmNlIChkeCBvciBkeSkgb24gdGhlIG5h
dmlnYXRpb24gYXhpcyBiZXR3ZWVuIHRoZSBvcHBvc2luZyBlZGdlcyBvZiB0aGUgY3VycmVudGx5
IGZvY3VzZWQNCisgICAgLy8gZWxlbWVudCBhbmQgZWFjaCBvZiB0aGUgY2FuZGlkYXRlcy4NCisg
ICAgaW50IGRpc3RhbmNlWCA9IDA7DQorICAgIGludCBkaXN0YW5jZVkgPSAwOw0KKw0KKyAgICBp
ZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsNCisgICAgICAgIC8vIGFkanVzdCB0
aGUgeCBkaXN0YW5jZSBiYXNlZCBvbiB0aGUgY2xvc2VzdCBlZGdlDQorICAgICAgICBpZiAoZm9j
dXNQb2ludC54KCkgPCBwb3NzaWJsZVJlY3QueCgpKSANCisgICAgICAgICAgICBkaXN0YW5jZVgg
PSBwb3NzaWJsZVJlY3QueCgpIC0gZm9jdXNQb2ludC54KCk7DQorICAgICAgICBlbHNlIGlmIChm
b2N1c1BvaW50LngoKSA+IHBvc3NpYmxlUmVjdC5yaWdodCgpKQ0KKyAgICAgICAgICAgIGRpc3Rh
bmNlWCA9IGZvY3VzUG9pbnQueCgpIC0gcG9zc2libGVSZWN0LnJpZ2h0KCk7DQorICAgICAgIGRp
c3RhbmNlWSA9IGZvY3VzUG9pbnQueSgpIC0gcG9zc2libGVSZWN0LmJvdHRvbSgpOw0KKyAgICB9
IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsNCisgICAgICAgIC8v
IGFkanVzdCB0aGUgeCBkaXN0YW5jZSBiYXNlZCBvbiB0aGUgY2xvc2VzdCBlZGdlDQorICAgICAg
ICBpZiAoZm9jdXNQb2ludC54KCkgPCBwb3NzaWJsZVJlY3QueCgpKSANCisgICAgICAgICAgICBk
aXN0YW5jZVggPSBwb3NzaWJsZVJlY3QueCgpIC0gZm9jdXNQb2ludC54KCk7DQorICAgICAgICBl
bHNlIGlmIChmb2N1c1BvaW50LngoKSA+IHBvc3NpYmxlUmVjdC5yaWdodCgpKQ0KKyAgICAgICAg
ICAgIGRpc3RhbmNlWCA9IGZvY3VzUG9pbnQueCgpIC0gcG9zc2libGVSZWN0LnJpZ2h0KCk7DQor
ICAgICAgICBkaXN0YW5jZVkgPSBwb3NzaWJsZVJlY3QueSgpIC0gZm9jdXNQb2ludC55KCk7DQor
ICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsNCisgICAg
ICAgIGRpc3RhbmNlWCA9IHBvc3NpYmxlUmVjdC54KCkgLSBmb2N1c1BvaW50LngoKTsNCisgICAg
ICAgIC8vIGFkanVzdCB0aGUgeSBkaXN0YW5jZSBiYXNlZCBvbiB0aGUgY2xvc2VzdCBlZGdlDQor
ICAgICAgICBpZiAoZm9jdXNQb2ludC55KCkgPCBwb3NzaWJsZVJlY3QueSgpKQ0KKyAgICAgICAg
ICAgIGRpc3RhbmNlWSA9IHBvc3NpYmxlUmVjdC55KCkgLSBmb2N1c1BvaW50LnkoKTsNCisgICAg
ICAgIGVsc2UgaWYgKGZvY3VzUG9pbnQueSgpID4gcG9zc2libGVSZWN0LmJvdHRvbSgpKQ0KKyAg
ICAgICAgICAgIGRpc3RhbmNlWSA9IGZvY3VzUG9pbnQueSgpIC0gcG9zc2libGVSZWN0LmJvdHRv
bSgpOw0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpIHsN
CisgICAgICAgIGRpc3RhbmNlWCA9IGZvY3VzUG9pbnQueCgpIC0gcG9zc2libGVSZWN0LnJpZ2h0
KCk7DQorICAgICAgICAvLyBhZGp1c3QgdGhlIHkgZGlzdGFuY2UgYmFzZWQgb24gdGhlIGNsb3Nl
c3QgZWRnZQ0KKyAgICAgICAgaWYgKGZvY3VzUG9pbnQueSgpIDwgcG9zc2libGVSZWN0LnkoKSkg
DQorICAgICAgICAgICAgZGlzdGFuY2VZID0gcG9zc2libGVSZWN0LnkoKSAtIGZvY3VzUG9pbnQu
eSgpOw0KKyAgICAgICAgZWxzZSBpZiAoZm9jdXNQb2ludC55KCkgPiBwb3NzaWJsZVJlY3QuYm90
dG9tKCkpDQorICAgICAgICAgICAgZGlzdGFuY2VZID0gZm9jdXNQb2ludC55KCkgLSBwb3NzaWJs
ZVJlY3QuYm90dG9tKCk7DQorICAgIH0NCisNCisgICAgLy8gVGhlIGFic29sdXRlIGRpc3RhbmNl
IG9uIHRoZSBheGlzIG9ydGhvZ29uYWwgdG8gdGhlIG5hdmlnYXRpb24gYXhpcyBiZXR3ZWVuDQor
ICAgIC8vIHRoZSBvcHBvc2luZyBlZGdlcyBvZiBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50IGFu
ZCBlYWNoIG9mIGNhbmRpZGF0ZXMNCisgICAgaW50IGRpc3BsYWNlbWVudCA9IDA7DQorDQorICAg
IC8vIFRoZSBldWNsaWRlYW4gZGlzdGFuY2UNCisgICAgaW50IGV1Y2xpZGVhbkRpc3QgPSBzcXJ0
KGRpc3RhbmNlWCAqIGRpc3RhbmNlWCArIGRpc3RhbmNlWSAqIGRpc3RhbmNlWSk7DQorDQorICAg
IGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25Eb3duKSB7DQorICAgICAgICAvLyBpZiB0aGUgcmVjdGFuZ2xlcyBhcmUgb24gdGhl
IHNhbWUgcGxhbmUgc2V0IHRoZSBldWNsaWRlYW5EaXN0IHRvIHplcm8gdG8gZmF2b3IgdGhpcyBu
YXZpZ2F0aW9uDQorICAgICAgICBpZiAoZm9jdXNlZFJlY3QueCgpID09IHBvc3NpYmxlUmVjdC54
KCkpDQorICAgICAgICAgICAgZXVjbGlkZWFuRGlzdCA9IDA7DQorDQorICAgICAgICAvLyBkaXNw
bGFjZW1lbnQgaXMgc3VidHJhY3RlZCBmb3IgYmVpbmcgb3J0aG9nb25hbGx5IGZhciBmcm9tIHRo
ZSBjdXJyZW50IHJlY3RhbmdsZS4NCisgICAgICAgIGlmIChwb3NzaWJsZVJlY3QueCgpID4gZm9j
dXNlZFJlY3QucmlnaHQoKSkNCisgICAgICAgICAgICBkaXNwbGFjZW1lbnQgPSBwb3NzaWJsZVJl
Y3QueCgpIC0gZm9jdXNlZFJlY3QucmlnaHQoKTsNCisgICAgICAgIGlmIChwb3NzaWJsZVJlY3Qu
cmlnaHQoKSA8IGZvY3VzZWRSZWN0LngoKSkNCisgICAgICAgICAgICBkaXNwbGFjZW1lbnQgPSBm
b2N1c2VkUmVjdC54KCkgLSBwb3NzaWJsZVJlY3QucmlnaHQoKTsNCisNCisgICAgfSBlbHNlIGlm
IChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0IHx8IGRpcmVjdGlvbiA9PSBGb2N1c0Rp
cmVjdGlvblJpZ2h0KSB7DQorDQorICAgICAgICAvLyBpZiB0aGUgcmVjdGFuZ2xlcyBhcmUgb24g
dGhlIHNhbWUgcGxhbmUgc2V0IHRoZSBldWNsaWRlYW5EaXN0IHRvIHplcm8gdG8gZmF2b3IgdGhp
cyBuYXZpZ2F0aW9uDQorICAgICAgICBpZiAoZm9jdXNlZFJlY3QueSgpID09IHBvc3NpYmxlUmVj
dC55KCkpDQorICAgICAgICAgICAgZXVjbGlkZWFuRGlzdCA9IDA7DQorDQorICAgICAgICAvLyBk
aXNwbGFjZW1lbnQgaXMgc3VidHJhY3RlZCBmb3IgYmVpbmcgb3J0aG9nb25hbGx5IGZhciBmcm9t
IHRoZSBjdXJyZW50IHJlY3RhbmdsZS4NCisgICAgICAgIGlmIChwb3NzaWJsZVJlY3QueSgpID4g
Zm9jdXNlZFJlY3QuYm90dG9tKCkpDQorICAgICAgICAgICAgZGlzcGxhY2VtZW50ID0gcG9zc2li
bGVSZWN0LnkoKSAtIGZvY3VzZWRSZWN0LmJvdHRvbSgpOw0KKyAgICAgICAgaWYgKHBvc3NpYmxl
UmVjdC5ib3R0b20oKSA8IGZvY3VzZWRSZWN0LnkoKSkNCisgICAgICAgICAgICBkaXNwbGFjZW1l
bnQgPSBmb2N1c2VkUmVjdC55KCkgLSBwb3NzaWJsZVJlY3QuYm90dG9tKCk7DQorICAgIH0NCisN
CisgICAgcmV0dXJuIGV1Y2xpZGVhbkRpc3QgKyBkaXN0YW5jZVggKyBkaXN0YW5jZVkgKyAyICog
KGRpc3BsYWNlbWVudCk7DQorfQ0KKw0KK05vZGUqIERvY3VtZW50OjpuZXh0Rm9jdXNhYmxlTm9k
ZUluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgTm9kZSogc3RhcnROb2RlLCBL
ZXlib2FyZEV2ZW50KiBldmVudCkNCit7DQorDQorICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25Gb3J3YXJkKQ0KKyAgICAgICAgcmV0dXJuIG5leHRGb2N1c2FibGVOb2RlKHN0YXJ0
Tm9kZSwgZXZlbnQpOw0KKyAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25C
YWNrd2FyZCkNCisgICAgICAgIHJldHVybiBwcmV2aW91c0ZvY3VzYWJsZU5vZGUoc3RhcnROb2Rl
LCBldmVudCk7DQorDQorICAgIEludFJlY3QgZm9jdXNlZFJlY3QoKHN0YXJ0Tm9kZSkgPyBzdGFy
dE5vZGUtPmdldFJlY3QoKSA6IEludFJlY3QoKSk7DQorICAgIG1fZm9jdXNQb2ludCA9IGNhbGN1
bGF0ZUZvY3VzUG9pbnQoZGlyZWN0aW9uLCBmb2N1c2VkUmVjdCwgbV9mb2N1c1BvaW50KTsNCisN
CisgICAgTm9kZSogYmVzdE5vZGUgPSAwOw0KKyAgICBpbnQgYmVzdERpc3RhbmNlID0gc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsNCisgICAgZm9yIChOb2RlKiBuID0gdGhpczsgbjsg
biA9IG4tPnRyYXZlcnNlTmV4dE5vZGUoKSkgew0KKyAgICAgICAgaWYgKG4tPmlzRm9jdXNhYmxl
KCkpIHsNCisgICAgICAgICAgICBpbnQgZGlzdGFuY2UgPSBjYWxjdWxhdGVEaXN0YW5jZSAoZGly
ZWN0aW9uLCBuLT5nZXRSZWN0KCksIG1fZm9jdXNQb2ludCwgZm9jdXNlZFJlY3QpOw0KKyAgICAg
ICAgICAgIGlmIChiZXN0RGlzdGFuY2UgPiBkaXN0YW5jZSkgew0KKyAgICAgICAgICAgICAgICBi
ZXN0RGlzdGFuY2UgPSBkaXN0YW5jZTsNCisgICAgICAgICAgICAgICAgYmVzdE5vZGUgPSBuOw0K
KyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICByZXR1cm4gYmVzdE5v
ZGU7DQorfQ0KKw0KIGludCBEb2N1bWVudDo6bm9kZUFic0luZGV4KE5vZGUgKm5vZGUpDQogew0K
ICAgICBBU1NFUlQobm9kZS0+ZG9jdW1lbnQoKSA9PSB0aGlzKTsNCkluZGV4OiBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2
aXNpb24gMzkzNzcpDQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQ0K
QEAgLTM4LDYgKzM4LDcgQEANCiAjaW5jbHVkZSAiVGltZXIuaCINCiAjaW5jbHVkZSA8d3RmL0hh
c2hDb3VudGVkU2V0Lmg+DQogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPg0KKyNpbmNsdWRl
ICJGb2N1c0RpcmVjdGlvbi5oIg0KIA0KIC8vIEZJWE1FOiBXZSBzaG91bGQgbW92ZSBNYWMgb2Zm
IG9mIHRoZSBvbGQgRnJhbWUtYmFzZWQgdXNlciBzdHlsZXNoZWV0IGxvYWRpbmcNCiAvLyBjb2Rl
IGFuZCBvbnRvIHRoZSBuZXcgY29kZSBpbiBQYWdlLiBXZSBjYW4ndCBkbyB0aGF0IHVudGlsIHRo
ZSBjb2RlIGluIFBhZ2UNCkBAIC02MDUsNiArNjA2LDggQEAgcHVibGljOg0KICAgICAgKi8NCiAg
ICAgTm9kZSogcHJldmlvdXNGb2N1c2FibGVOb2RlKE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50
Kik7DQogDQorICAgIE5vZGUqIG5leHRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oRm9jdXNEaXJl
Y3Rpb24sIE5vZGUqLCBLZXlib2FyZEV2ZW50Kik7DQorDQogICAgIGludCBub2RlQWJzSW5kZXgo
Tm9kZSopOw0KICAgICBOb2RlKiBub2RlV2l0aEFic0luZGV4KGludCBhYnNJbmRleCk7DQogDQpA
QCAtOTM5LDYgKzk0Miw3IEBAIHByaXZhdGU6DQogICAgIGJvb2wgbV94bWxTdGFuZGFsb25lOw0K
IA0KICAgICBTdHJpbmcgbV9jb250ZW50TGFuZ3VhZ2U7DQorICAgIEludFBvaW50IG1fZm9jdXNQ
b2ludDsNCiANCiBwdWJsaWM6DQogICAgIGJvb2wgaW5QYWdlQ2FjaGUoKTsNCkluZGV4OiBXZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCShyZXZpc2lvbiAzOTM3NykNCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTE4NTQsMjMgKzE4NTQsNDMgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OmhhbmRsZUtleWJvYXJkU2VsZWN0aQ0KICAgICBib29sIGlzT3B0aW9uZWQg
PSBldmVudC0+Z2V0TW9kaWZpZXJTdGF0ZSgiQWx0Iik7DQogICAgIA0KICAgICBpZiAoa2V5ID09
ICJVcCIpIHsNCi0gICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoKGlzU2hpZnRl
ZCkgPyBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpN
T1ZFLCBTZWxlY3Rpb25Db250cm9sbGVyOjpCQUNLV0FSRCwgTGluZUdyYW51bGFyaXR5LCB0cnVl
KTsNCi0gICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOw0KKyAgICAgICAgaWYgKEFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkp
IHsNCisgICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KChpc1NoaWZ0ZWQp
ID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9W
RSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQsIExpbmVHcmFudWxhcml0eSwgdHJ1ZSk7
DQorICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7DQorICAgICAgICB9IGVs
c2UgaWYgKG1fZnJhbWUtPnNldHRpbmdzKCktPmRpcmVjdGlvbmFsRm9jdXNOYXZpZ2F0aW9uKCkp
IHsNCisgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5hZHZh
bmNlRm9jdXMoRm9jdXNEaXJlY3Rpb25VcCwgZXZlbnQpOw0KKyAgICAgICAgICAgIGV2ZW50LT5z
ZXREZWZhdWx0SGFuZGxlZCgpOw0KKyAgICAgICAgfQ0KICAgICB9DQotICAgIGVsc2UgaWYgKGtl
eSA9PSAiRG93biIpIHsgDQotICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KChp
c1NoaWZ0ZWQpID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJv
bGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6Rk9SV0FSRCwgTGluZUdyYW51bGFyaXR5
LCB0cnVlKTsNCi0gICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOw0KKyAgICBlbHNl
IGlmIChrZXkgPT0gIkRvd24iKSB7DQorICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkgew0KKyAgICAgICAgICAgIG1f
ZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoKGlzU2hpZnRlZCkgPyBTZWxlY3Rpb25Db250cm9s
bGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLCBTZWxlY3Rpb25Db250cm9s
bGVyOjpGT1JXQVJELCBMaW5lR3JhbnVsYXJpdHksIHRydWUpOw0KKyAgICAgICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOw0KKyAgICAgICAgfSBlbHNlIGlmIChtX2ZyYW1lLT5zZXR0
aW5ncygpLT5kaXJlY3Rpb25hbEZvY3VzTmF2aWdhdGlvbigpKSB7DQorICAgICAgICAgICAgbV9m
cmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0
aW9uRG93biwgZXZlbnQpOw0KKyAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
Ow0KKyAgICAgICAgfQ0KICAgICB9DQogICAgIGVsc2UgaWYgKGtleSA9PSAiTGVmdCIpIHsNCi0g
ICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoKGlzU2hpZnRlZCkgPyBTZWxlY3Rp
b25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLCBTZWxlY3Rp
b25Db250cm9sbGVyOjpMRUZULCAoaXNPcHRpb25lZCkgPyBXb3JkR3JhbnVsYXJpdHkgOiBDaGFy
YWN0ZXJHcmFudWxhcml0eSwgdHJ1ZSk7DQotICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsNCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRV
c2VySW50ZXJmYWNlRW5hYmxlZCgpKSB7DQorICAgICAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9u
KCktPm1vZGlmeSgoaXNTaGlmdGVkKSA/IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNl
bGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkxFRlQsIChpc09w
dGlvbmVkKSA/IFdvcmRHcmFudWxhcml0eSA6IENoYXJhY3RlckdyYW51bGFyaXR5LCB0cnVlKTsN
CisgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsNCisgICAgICAgIH0gZWxz
ZSBpZiAobV9mcmFtZS0+c2V0dGluZ3MoKS0+ZGlyZWN0aW9uYWxGb2N1c05hdmlnYXRpb24oKSkg
ew0KKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFu
Y2VGb2N1cyhGb2N1c0RpcmVjdGlvbkxlZnQsIGV2ZW50KTsNCisgICAgICAgICAgICBldmVudC0+
c2V0RGVmYXVsdEhhbmRsZWQoKTsNCisgICAgICAgfQ0KICAgICB9DQogICAgIGVsc2UgaWYgKGtl
eSA9PSAiUmlnaHQiKSB7DQotICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KChp
c1NoaWZ0ZWQpID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJv
bGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6UklHSFQsIChpc09wdGlvbmVkKSA/IFdv
cmRHcmFudWxhcml0eSA6IENoYXJhY3RlckdyYW51bGFyaXR5LCB0cnVlKTsNCi0gICAgICAgIGV2
ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOw0KLSAgICB9ICAgIA0KKyAgICAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpIHsN
CisgICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KChpc1NoaWZ0ZWQpID8g
U2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwg
U2VsZWN0aW9uQ29udHJvbGxlcjo6UklHSFQsIChpc09wdGlvbmVkKSA/IFdvcmRHcmFudWxhcml0
eSA6IENoYXJhY3RlckdyYW51bGFyaXR5LCB0cnVlKTsNCisgICAgICAgICAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsNCisgICAgICAgIH0gZWxzZSBpZiAobV9mcmFtZS0+c2V0dGluZ3Mo
KS0+ZGlyZWN0aW9uYWxGb2N1c05hdmlnYXRpb24oKSkgew0KKyAgICAgICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvblJp
Z2h0LCBldmVudCk7DQorICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7DQor
ICAgICAgIH0NCisgICAgfQ0KIH0NCi0gICAgDQorDQogdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1
bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkNCiB7DQogICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkgew0KQEAgLTE4ODEs
OCArMTkwMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEgNCiAg
ICAgICAgICAgICBkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKGV2ZW50KTsNCiANCiAgICAgICAgLy8g
cHJvdmlkZXMgS0IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBlbmhhbmNlZCBhY2Nlc3Np
YmlsaXR5IHVzZXJzDQotICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5o
YW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpKQ0KLSAgICAgICAgICAgaGFuZGxlS2V5Ym9hcmRT
ZWxlY3Rpb25Nb3ZlbWVudChldmVudCk7ICAgICAgIA0KKyAgICAgICBoYW5kbGVLZXlib2FyZFNl
bGVjdGlvbk1vdmVtZW50KGV2ZW50KTsNCiAgICB9DQogICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpIHsNCiAgICAgICAgIG1fZnJhbWUtPmVkaXRvcigp
LT5oYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50KTsNCkluZGV4OiBXZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCShyZXZpc2lvbiAzOTM3NykNCisrKyBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcAkod29ya2luZyBjb3B5KQ0KQEAgLTkzLDkgKzkzLDcgQEAgc3RhdGljIE5vZGUqIGRlZXBG
b2N1c2FibGVOb2RlKEZvY3VzRGlyZQ0KICAgICAgICAgaWYgKCFkb2N1bWVudCkNCiAgICAgICAg
ICAgICBicmVhazsNCiANCi0gICAgICAgIG5vZGUgPSAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0
aW9uRm9yd2FyZCkNCi0gICAgICAgICAgICA/IGRvY3VtZW50LT5uZXh0Rm9jdXNhYmxlTm9kZSgw
LCBldmVudCkNCi0gICAgICAgICAgICA6IGRvY3VtZW50LT5wcmV2aW91c0ZvY3VzYWJsZU5vZGUo
MCwgZXZlbnQpOw0KKyAgICAgICAgbm9kZSA9IGRvY3VtZW50LT5uZXh0Rm9jdXNhYmxlTm9kZUlu
RGlyZWN0aW9uKGRpcmVjdGlvbiwgMCwgZXZlbnQpOw0KICAgICAgICAgaWYgKCFub2RlKSB7DQog
ICAgICAgICAgICAgbm9kZSA9IG93bmVyOw0KICAgICAgICAgICAgIGJyZWFrOw0KQEAgLTExOCwx
MCArMTE2LDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1cw0KICAg
ICBpZiAoIWRvY3VtZW50KQ0KICAgICAgICAgcmV0dXJuIGZhbHNlOw0KIA0KLSAgICBOb2RlKiBu
b2RlID0gKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkZvcndhcmQpDQotICAgICAgICA/IGRv
Y3VtZW50LT5uZXh0Rm9jdXNhYmxlTm9kZShkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSwgZXZlbnQp
DQotICAgICAgICA6IGRvY3VtZW50LT5wcmV2aW91c0ZvY3VzYWJsZU5vZGUoZG9jdW1lbnQtPmZv
Y3VzZWROb2RlKCksIGV2ZW50KTsNCi0gICAgICAgICAgICANCisgICAgTm9kZSogbm9kZSA9IGRv
Y3VtZW50LT5uZXh0Rm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGRpcmVjdGlvbiwgZG9jdW1lbnQt
PmZvY3VzZWROb2RlKCksIGV2ZW50KTsNCiAgICAgLy8gSWYgdGhlcmUncyBubyBmb2N1c2FibGUg
bm9kZSB0byBhZHZhbmNlIHRvLCBtb3ZlIHVwIHRoZSBmcmFtZSB0cmVlIHVudGlsIHdlIGZpbmQg
b25lLg0KICAgICB3aGlsZSAoIW5vZGUgJiYgZnJhbWUpIHsNCiAgICAgICAgIEZyYW1lKiBwYXJl
bnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOw0KQEAgLTEzNiwxMyArMTMxLDkgQEAg
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1cw0KICAgICAgICAgaWYgKCFv
d25lcikNCiAgICAgICAgICAgICBicmVhazsNCiANCi0gICAgICAgIG5vZGUgPSAoZGlyZWN0aW9u
ID09IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCkNCi0gICAgICAgICAgICA/IHBhcmVudERvY3VtZW50
LT5uZXh0Rm9jdXNhYmxlTm9kZShvd25lciwgZXZlbnQpDQotICAgICAgICAgICAgOiBwYXJlbnRE
b2N1bWVudC0+cHJldmlvdXNGb2N1c2FibGVOb2RlKG93bmVyLCBldmVudCk7DQotDQorICAgICAg
ICBub2RlID0gZG9jdW1lbnQtPm5leHRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oZGlyZWN0aW9u
LCBvd25lciwgZXZlbnQpOw0KICAgICAgICAgZnJhbWUgPSBwYXJlbnRGcmFtZTsNCiAgICAgfQ0K
LQ0KICAgICBub2RlID0gZGVlcEZvY3VzYWJsZU5vZGUoZGlyZWN0aW9uLCBub2RlLCBldmVudCk7
DQogDQogICAgIGlmICghbm9kZSkgew0KQEAgLTE1NiwxMCArMTQ3LDcgQEAgYm9vbCBGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1cw0KIA0KICAgICAgICAgLy8gQ2hyb21lIGRvZXNu
J3Qgd2FudCBmb2N1cywgc28gd2Ugc2hvdWxkIHdyYXAgZm9jdXMuDQogICAgICAgICBpZiAoRG9j
dW1lbnQqIGQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpKQ0KLSAgICAgICAgICAg
IG5vZGUgPSAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRm9yd2FyZCkNCi0gICAgICAgICAg
ICAgICAgPyBkLT5uZXh0Rm9jdXNhYmxlTm9kZSgwLCBldmVudCkNCi0gICAgICAgICAgICAgICAg
OiBkLT5wcmV2aW91c0ZvY3VzYWJsZU5vZGUoMCwgZXZlbnQpOw0KLQ0KKyAgICAgICAgICAgIG5v
ZGUgPSBkb2N1bWVudC0+bmV4dEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihkaXJlY3Rpb24sIDAs
IGV2ZW50KTsNCiAgICAgICAgIG5vZGUgPSBkZWVwRm9jdXNhYmxlTm9kZShkaXJlY3Rpb24sIG5v
ZGUsIGV2ZW50KTsNCiANCiAgICAgICAgIGlmICghbm9kZSkNCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
Rm9jdXNEaXJlY3Rpb24uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9Gb2N1c0RpcmVj
dGlvbi5oCShyZXZpc2lvbiAzOTM3NykNCisrKyBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24u
aAkod29ya2luZyBjb3B5KQ0KQEAgLTI5LDcgKzI5LDExIEBADQogbmFtZXNwYWNlIFdlYkNvcmUg
ew0KICAgICBlbnVtIEZvY3VzRGlyZWN0aW9uIHsNCiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9y
d2FyZCA9IDAsDQotICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkDQorICAgICAgICBGb2N1
c0RpcmVjdGlvbkJhY2t3YXJkLA0KKyAgICAgICAgRm9jdXNEaXJlY3Rpb25VcCwNCisgICAgICAg
IEZvY3VzRGlyZWN0aW9uRG93biwNCisgICAgICAgIEZvY3VzRGlyZWN0aW9uUmlnaHQsDQorICAg
ICAgICBGb2N1c0RpcmVjdGlvbkxlZnQNCiAgICAgfTsNCiB9DQogDQpJbmRleDogV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDM5Mzc3KQ0KKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtp
bmcgY29weSkNCkBAIC04NCw2ICs4NCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdl
KQ0KICAgICAsIG1fem9vbXNUZXh0T25seShmYWxzZSkNCiAgICAgLCBtX2VuZm9yY2VDU1NNSU1F
VHlwZUluU3RyaWN0TW9kZSh0cnVlKQ0KICAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUo
c3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkNCisgICAgLCBtX2RpcmVjdGlvbmFs
Rm9jdXNOYXZpZ2F0aW9uKGZhbHNlKQ0KIHsNCiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhhdmUg
YmVlbiBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nIA0KICAg
ICAvLyBoYXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0Lg0KQEAgLTM5Nyw2ICszOTgsMTEgQEAg
dm9pZCBTZXR0aW5nczo6c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5TdA0KICAgICBtX2VuZm9yY2VD
U1NNSU1FVHlwZUluU3RyaWN0TW9kZSA9IGVuZm9yY2VDU1NNSU1FVHlwZUluU3RyaWN0TW9kZTsN
CiB9DQogDQordm9pZCBTZXR0aW5nczo6c2V0RGlyZWN0aW9uYWxGb2N1c05hdmlnYXRpb24oYm9v
bCBkaXJlY3Rpb25hbEZvY3VzTmF2aWdhdGlvbikNCit7DQorICAgIG1fZGlyZWN0aW9uYWxGb2N1
c05hdmlnYXRpb24gPSBkaXJlY3Rpb25hbEZvY3VzTmF2aWdhdGlvbjsNCit9DQorDQogI2lmIFVT
RShTQUZBUklfVEhFTUUpDQogdm9pZCBTZXR0aW5nczo6c2V0U2hvdWxkUGFpbnROYXRpdmVDb250
cm9scyhib29sIHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpDQogew0KSW5kZXg6IFdlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJ
KHJldmlzaW9uIDM5Mzc3KQ0KKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5nIGNv
cHkpDQpAQCAtMTkzLDYgKzE5Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsNCiAgICAgICAgIHZv
aWQgc2V0TWF4aW11bURlY29kZWRJbWFnZVNpemUoc2l6ZV90IHNpemUpIHsgbV9tYXhpbXVtRGVj
b2RlZEltYWdlU2l6ZSA9IHNpemU7IH0NCiAgICAgICAgIHNpemVfdCBtYXhpbXVtRGVjb2RlZElt
YWdlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7IH0NCiAN
CisgICAgICAgIGJvb2wgZGlyZWN0aW9uYWxGb2N1c05hdmlnYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX2RpcmVjdGlvbmFsRm9jdXNOYXZpZ2F0aW9uOyB9DQorICAgICAgICB2b2lkIHNldERpcmVj
dGlvbmFsRm9jdXNOYXZpZ2F0aW9uKGJvb2wpOw0KKw0KICNpZiBVU0UoU0FGQVJJX1RIRU1FKQ0K
ICAgICAgICAgLy8gV2luZG93cyBkZWJ1Z2dpbmcgcHJlZiAoZ2xvYmFsKSBmb3Igc3dpdGNoaW5n
IGJldHdlZW4gdGhlIEFxdWEgbG9vayBhbmQgYSBuYXRpdmUgd2luZG93cyBsb29rLg0KICAgICAg
ICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sKTsNCkBAIC0y
NTAsNiArMjUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgew0KICAgICAgICAgYm9vbCBtX3pvb21z
VGV4dE9ubHkgOiAxOw0KICAgICAgICAgYm9vbCBtX2VuZm9yY2VDU1NNSU1FVHlwZUluU3RyaWN0
TW9kZSA6IDE7DQogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsNCisg
ICAgICAgIGJvb2wgbV9kaXJlY3Rpb25hbEZvY3VzTmF2aWdhdGlvbiA6IDE7DQogDQogI2lmIFVT
RShTQUZBUklfVEhFTUUpDQogICAgICAgICBzdGF0aWMgYm9vbCBnU2hvdWxkUGFpbnROYXRpdmVD
b250cm9sczsNCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5Mzc3KQ0KKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQ0KQEAgLTEsMyArMSwyMiBAQA0KKzIwMDgtMTItMTggIEpv
ZSBMaWdtYW4gIDxqbGlnbWFuQG1pbmRzcHJpbmcuY29tPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAgICBBZGQgdGVzdHMgZm9yIGJ1ZyAyMjc0MDog
SXQncyBub3QgcG9zc2libGUgZm9yIGNsaWVudHMgb2YgUVdlYkZyYW1lIHRvIGltcGxlbWVudCBk
aXJlY3Rpb25hbCANCisgICAgICAgIGZvY3VzIG5vZGUgbmF2aWdhdGlvbiANCisgICAgICAgIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NDA+DQorDQorICAgICAg
ICBUaGlzIHRlc3QgbmF2aWdhdGVzIHRoZSA0IGRpcmVjdGlvbnMuIFRoZSBmZWF0dXJlcyBuZWVk
cyB3aWxsIHJlcXVpcmUgc29tZSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiwgDQorICAgICAgICBz
byB0aGUgdGVzdCBpcyBub3cgc2tpcHBlZCBmb3IgYWxsIHBsYXRmb3Jtcw0KKw0KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9hcnJvdy1mb2N1c25vZGUtbmF2aWdhdGlvbi5odG1sOiBBZGRlZC4NCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy1s
ZW9wYXJkL1NraXBwZWQ6DQorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOg0K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoNCisgICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDoNCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6DQorDQogMjAwOC0xMi0x
OCAgQ2FtZXJvbiBad2FyaWNoICA8endhcmljaEBhcHBsZS5jb20+DQogDQogICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZiBHYXJlbi4NCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hcnJv
dy1mb2N1c25vZGUtbmF2aWdhdGlvbi5odG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvYXJyb3ctZm9jdXNub2RlLW5hdmlnYXRpb24uaHRtbAkocmV2aXNpb24gMCkN
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hcnJvdy1mb2N1c25vZGUtbmF2aWdhdGlvbi5o
dG1sCShyZXZpc2lvbiAwKQ0KQEAgLTAsMCArMSw1MSBAQA0KKzxzY3JpcHQ+DQorZnVuY3Rpb24g
Zm9jdXNMaXN0ZW5lcihldmVudCkNCit7DQorICAgIGxvZygnZm9jdXNlZCBub2RlOiAnICsgZXZl
bnQudGFyZ2V0Lm5hbWUpOw0KK30NCisNCitmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVycygpDQor
ew0KKyAgICB2YXIgYW5jaG9ycyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJyk7
DQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYW5jaG9ycy5sZW5ndGg7ICsraSkgew0KKyAgICAg
ICAgYW5jaG9yc1tpXS5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZvY3VzTGlzdGVuZXIsIGZh
bHNlKTsNCisgICAgfQ0KKyAgICBhbmNob3JzWzBdLmZvY3VzKCk7DQorfQ0KKw0KK2Z1bmN0aW9u
IHRlc3QoKQ0KK3sNCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCisNCisgICAgYWRkRXZlbnRM
aXN0ZW5lcnMoKTsNCisNCisgICAgbW92ZWZvY3VzKCJSaWdodCIpOw0KKyAgICBtb3ZlZm9jdXMo
IkRvd24iKTsNCisgICAgbW92ZWZvY3VzKCJMZWZ0Iik7DQorICAgIG1vdmVmb2N1cygiVXAiKTsN
Cit9DQorDQorZnVuY3Rpb24gbW92ZWZvY3VzKGtleSkNCit7DQorICAgIHZhciBldmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50cycpOw0KKyAgICBldmVudC5pbml0S2V5
Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCBr
ZXksIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7DQorICAgIGRvY3VtZW50
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOw0KK30NCisNCitmdW5jdGlvbiBsb2cobXNnKQ0KK3sNCisg
ICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsNCisgICAg
cmVzdWx0LmlubmVySFRNTCA9IHJlc3VsdC5pbm5lckhUTUwgKyBtc2cgKyAiPGJyPiI7DQorDQor
fQ0KKzwvc2NyaXB0Pg0KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4NCitUaGlzIHRlc3RzIHRoYXQg
eW91IGNhbiB1c2UgYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSBieSBmb2N1c2FibGUgZWxlbWVudHMu
PGJyPg0KKzxhIGhyZWY9ImEiIG5hbWU9ImEiPmE8L2E+IDxhIGhyZWY9ImIiIG5hbWU9ImIiPmI8
L2E+IDxicj4NCis8YSBocmVmPSJkIiBuYW1lPSJkIj5jPC9hPiA8YSBocmVmPSJjIiBuYW1lPSJj
Ij5kPC9hPg0KKzxicj4NCis8YnI+DQorVGhlIG9yZGVyIG9mIG5hdmlnYXRpb24gc2hvdWxkIGJl
IGEsIGIsIGMsIGQsIGENCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2Pg0KKzwvYm9keT4NCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiAzOTM3NykNCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQ0KQEAgLTgyLDYgKzgyLDcg
QEAgZmFzdC9ldmVudHMvYW5jaG9yLWVtcHR5LWZvY3VzLmh0bWwNCiBmYXN0L2V2ZW50cy9hbmNo
b3ItaW1hZ2Utc2Nyb2xsZWQteC15Lmh0bWwNCiBmYXN0L2V2ZW50cy9hcnJvdy1rZXlzLW9uLWJv
ZHkuaHRtbA0KIGZhc3QvZXZlbnRzL2Fycm93LW5hdmlnYXRpb24uaHRtbA0KK2Zhc3QvZXZlbnRz
L2Fycm93LWZvY3Vzbm9kZS1uYXZpZ2F0aW9uLmh0bWwNCiBmYXN0L2V2ZW50cy9hdHRlbXB0LXNj
cm9sbC13aXRoLW5vLXNjcm9sbGJhcnMuaHRtbA0KIGZhc3QvZXZlbnRzL2F1dG9zY3JvbGwtaW4t
dGV4dGZpZWxkLmh0bWwNCiBmYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLW5vbnNjcm9sbGFibGUtaWZy
YW1lLWluLXNjcm9sbGFibGUtZGl2Lmh0bWwNCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtbGVvcGFyZC9Ta2lwcGVkDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvU2tpcHBlZAkocmV2aXNpb24gMzkzNzcpDQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAkod29ya2luZyBjb3B5KQ0KQEAgLTcsMyArNyw2IEBA
IHN2Zy9jc3MvZ2x5cGgtb3JpZW50YXRpb24tcm91bmRpbmctdGVzdC4NCiANCiAjIDxyZGFyOi8v
cHJvYmxlbS81NTM5ODIyPiBSRUdSRVNTSU9OIChMZW9wYXJkKTogc3ZnL2N1c3RvbS9zdHJva2Ut
d2lkdGgtY2xpY2suc3ZnIHRlc3QgZmFpbGluZw0KIHN2Zy9jdXN0b20vc3Ryb2tlLXdpZHRoLWNs
aWNrLnN2Zw0KKw0KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzQwIFRoaXMgZmVhdHVyZSBzaG91bGQgYmUgZW5hYmxlZCBieSB0aGUgcGxhdGZvcm0NCitmYXN0
L2V2ZW50cy9hcnJvdy1mb2N1c25vZGUtbmF2aWdhdGlvbi5odG1sDQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUNCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBl
ZA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVk
CShyZXZpc2lvbiAzOTM3NykNCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tp
cHBlZAkod29ya2luZyBjb3B5KQ0KQEAgLTIyLDMgKzIyLDYgQEAgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC91cGxvYWQtb25sb2FkLQ0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBsb2Fk
LW9ubG9hZHN0YXJ0LWV2ZW50Lmh0bWwNCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9h
ZC1vbnByb2dyZXNzLWV2ZW50Lmh0bWwNCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9h
ZC1wcm9ncmVzcy1ldmVudHMuaHRtbA0KKw0KKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzQwIFRoaXMgZmVhdHVyZSBzaG91bGQgYmUgZW5hYmxlZCBieSB0aGUg
cGxhdGZvcm0NCitmYXN0L2V2ZW50cy9hcnJvdy1mb2N1c25vZGUtbmF2aWdhdGlvbi5odG1sDQpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCShyZXZpc2lvbiAzOTM3NykNCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZAkod29ya2luZyBjb3B5KQ0KQEAgLTQ2LDMgKzQ2LDYgQEAgdGFibGVzL21vemlsbGFfZXhwZWN0
ZWRfZmFpbHVyZXMvYnVncy9idQ0KIA0KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxOTEzIFJlcGFpbnQgcGl4ZWwgdGVzdCBmYWlsdXJlDQogZmFzdC9yZXBhaW50
L2JvZHktYmFja2dyb3VuZC1pbWFnZS5odG1sDQorDQorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NDAgVGhpcyBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkIGJ5
IHRoZSBwbGF0Zm9ybQ0KK2Zhc3QvZXZlbnRzL2Fycm93LWZvY3Vzbm9kZS1uYXZpZ2F0aW9uLmh0
bWwNClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCShyZXZpc2lvbiAzOTM3NykNCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCSh3b3JraW5nIGNvcHkpDQpAQCAtNyw2ICs3LDcgQEAgZWRpdGluZy9zZWxlY3Rpb24vNTM1
NDQ1NS0xLmh0bWwNCiBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRtbA0KIGVkaXRpbmcv
c2VsZWN0aW9uL2NhcmV0LWFuZC1mb2N1cy1yaW5nLmh0bWwNCiBmYXN0L2V2ZW50cy9wb3B1cC1i
bG9ja2luZy1jbGljay1pbi1pZnJhbWUuaHRtbA0KK2Zhc3QvZXZlbnRzL2Fycm93LWZvY3Vzbm9k
ZS1uYXZpZ2F0aW9uLmh0bWwNCiANCiAjIC0tLS0tLS0tIGNyYXNoZXMNCiBmYXN0L2V2ZW50cy9v
YmpjLWtleWJvYXJkLWV2ZW50LWNyZWF0aW9uLmh0bWwNCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCShyZXZpc2lvbiAzOTM3NykNCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZAkod29ya2luZyBjb3B5KQ0KQEAgLTExNiw2ICsxMTYsOSBAQCBmYXN0L2pzL2tkZS9O
dW1iZXIuaHRtbA0KICM8cmRhcjovL3Byb2JsZW0vNTIyNDI3MT4gU29tZSBMYXlvdXRUZXN0cyBm
YWlsIHdoZW4gbm90IHJ1biBieSB0aGVtc2VsdmVzLg0KIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9h
bmNob3ItZnJhbWVzLmh0bWwNCiANCisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc0MCBUaGlzIGZlYXR1cmUgc2hvdWxkIGJlIGVuYWJsZWQgYnkgdGhlIHBsYXRm
b3JtDQorZmFzdC9ldmVudHMvYXJyb3ctZm9jdXNub2RlLW5hdmlnYXRpb24uaHRtbA0KKw0KICMg
Tm8gYnVpbHQtaW4gcGx1Z2luIGluIERSVCA8cmRhcjovL3Byb2JsZW0vNTA3NDQxMT4NCiBwbHVn
aW5zL2NhbGwtYXMtZnVuY3Rpb24tdGVzdC5odG1sDQogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhl
LXJlc291cmNlLWxvYWQtZGVsZWdhdGUtd2lsbC1kaXNhbGxvdy5odG1sDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>26971</attachid>
            <date>2009-01-23 08:48:13 -0800</date>
            <delta_ts>2009-03-17 06:40:57 -0700</delta_ts>
            <desc>main patch, adding focuspoint spatial navigation</desc>
            <filename>0001-focuspoint-spatial-navigation.patch</filename>
            <type>text/x-patch</type>
            <size>23844</size>
            <attacher name="Onne Gorter">onne.gorter</attacher>
            
              <data encoding="base64">RnJvbSAwYmE2OWJhNzE1MTNmNTlmMDAxYzk0Y2UyNGEzMWE1MDI2YjhjZmI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5lIEdvcnRlciA8b25uZS5nb3J0ZXJAYXZpbml0eS5uZXQ+
CkRhdGU6IEZyaSwgMjMgSmFuIDIwMDkgMTY6NDA6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDEv
Ml0gZm9jdXNwb2ludCBzcGF0aWFsIG5hdmlnYXRpb24KCmltcGxlbWVudHMgc29tZXRoaW5nIGFs
b25nIHRoZSBsaW5lcyBvZjoKICBodHRwOi8vd3d3LnczLm9yZy9UUi9XSUNELyNuYXYtZGlzdGFu
Y2UtZmt0CgpUT0RPIGJlIG1vcmUgbGVhbmllbnQgaW4gaG9yaXpvbnRhbCBuYXZpZ2F0aW9uClRP
RE8gYWxsb3cgdG8ganVtcC9zY3JvbGwgdG8gYSBtaWRwb2ludCB3aXRob3V0IGFuIGFjdGl2ZSBl
bGVtZW50Ci0tLQogV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgfCAgICA1ICstCiBX
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAgICB8ICAgNDEgKysrKysKIFdlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaCAgICAgIHwgICAgMiArCiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcCB8ICAzMTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIFdl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgIHwgICAyMSArKystCiBXZWJDb3JlL3BhZ2Uv
Rm9jdXNEaXJlY3Rpb24uaCAgICB8ICAgIDYgKy0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAg
ICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICB8ICAgIDMg
KwogOCBmaWxlcyBjaGFuZ2VkLCAzODUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCmluZGV4IGE5M2QzNjIuLjk0ZTc4NDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDg0LDcgKzEwODQsOCBA
QCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAg
ICAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXROZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25B
ZnRlckF0dGFjaCh0cnVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAgICAgCisgICAg
aWYgKHJlbmRlcmVyKCkpIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOworCiAgICAg
Y2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgdXBkYXRlRm9jdXNBcHBlYXJhbmNl
KHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbik7CiB9CkBAIC0xMTE3LDYgKzExMTgsOCBAQCB2b2lk
IEVsZW1lbnQ6OmJsdXIoKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBkb2MtPnNldEZvY3Vz
ZWROb2RlKDApOwogICAgIH0KKworICAgIGlmIChyZW5kZXJlcigpKSByZW5kZXJlcigpLT5zZXRO
ZWVkc0xheW91dCh0cnVlKTsKIH0KIAogU3RyaW5nIEVsZW1lbnQ6OmlubmVyVGV4dCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDcyMWVjM2YuLmEyYTY4NGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0xODg0LDExICsxODg0LDE2IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQog
ICAgICAgICAgICAgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgaWYgKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiA9IGlzQXJyb3dLZXko
ZXZlbnQtPmtleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICAgICAgZGVmYXVsdEFycm93RXZl
bnRIYW5kbGVyKGRpcmVjdGlvbiwgZXZlbnQpOworICAgICAgICB9CiAKICAgICAgICAvLyBwcm92
aWRlcyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxp
dHkgdXNlcnMKICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2Vk
VXNlckludGVyZmFjZUVuYWJsZWQoKSkKICAgICAgICAgICAgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rp
b25Nb3ZlbWVudChldmVudCk7ICAgICAgIAogICAgfQorCiAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkgewogICAgICAgICBtX2ZyYW1lLT5lZGl0b3Io
KS0+aGFuZGxlS2V5Ym9hcmRFdmVudChldmVudCk7CiAgICAgICAgIGlmIChldmVudC0+ZGVmYXVs
dEhhbmRsZWQoKSkKQEAgLTE4OTgsNiArMTkwMywyMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVm
YXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgfQogfQog
CitGb2N1c0RpcmVjdGlvbiBFdmVudEhhbmRsZXI6OmlzQXJyb3dLZXkoY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyKQoreworICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJEb3duIikKKyAgICAg
ICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uRG93bjsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVy
ID09ICJVcCIpCisgICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvblVwOworICAgIGVsc2UgaWYg
KGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJlY3Rpb25M
ZWZ0OworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IikKKyAgICAgICAgcmV0
dXJuIEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisKKyAgICByZXR1cm4gKEZvY3VzRGlyZWN0aW9uKSAw
OworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBG
bG9hdFBvaW50JiBmbG9hdERyYWdWaWV3cG9ydExvY2F0aW9uKSBjb25zdAogewogICAgIEludFBv
aW50IGRyYWdWaWV3cG9ydExvY2F0aW9uKChpbnQpZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbi54
KCksIChpbnQpZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbi55KCkpOwpAQCAtMjIwNSw2ICsyMjI0
LDI4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJk
RXZlbnQqIGV2ZW50KQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAor
dm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlv
biBmb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgZnByaW50Zihz
dGRlcnIsICJkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoKVxuIik7CisgICAgLy9pZiAoZXZlbnQt
PmN0cmxLZXkoKSB8fCBldmVudC0+bWV0YUtleSgpIHx8IGV2ZW50LT5hbHRHcmFwaEtleSgpIHx8
IGV2ZW50LT5zaGlmdEtleSgpKQorICAgIC8vICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvL2lmICghcGFnZS0+c2V0dGluZ3MoKSB8fCAhcGFnZS0+c2V0dGluZ3MoKS0+c2hvdWxkVXNl
QXJyb3dLZXlzRm9yRGlyZWN0aW9uYWxOYXZpZ2F0aW9uKCkpCisgICAgLy8gICAgcmV0dXJuOwor
CisgICAgLy8gRklYTUU6IEFyZSBDVFJMLWFycm93IGtleXMgbmVlZGVkIGluIGRlc2lnbiBtb2Rl
PworICAgIC8vIEZJWE1FOiB0b25pa2l0b286IGNvbW1lbnQgcmVtb3ZlID8KKyAgICAvL2lmICht
X2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUoKSkKKyAgICAvLyAgICByZXR1cm47CisK
KyAgICBpZiAocGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFuY2VGb2N1cyhmb2N1c0RpcmVj
dGlvbiwgZXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwog
dm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpCiB7CiAgICAg
aWYgKERvY3VtZW50KiBkID0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRl
eCA1ZDUxY2I2Li4wNGIyZDJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0xNDQsNiArMTQ0LDcgQEAg
cHVibGljOgogICAgIGJvb2wgaGFuZGxlQWNjZXNzS2V5KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCYpOwogICAgIGJvb2wga2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7
CiAgICAgdm9pZCBkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCopOwor
ICAgIEZvY3VzRGlyZWN0aW9uIGlzQXJyb3dLZXkoY29uc3QgU3RyaW5nJik7CiAKICAgICBib29s
IGhhbmRsZVRleHRJbnB1dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlp
bmdFdmVudCA9IDAsCiAgICAgICAgIGJvb2wgaXNMaW5lQnJlYWsgPSBmYWxzZSwgYm9vbCBpc0Jh
Y2tUYWIgPSBmYWxzZSk7CkBAIC0yNjcsNiArMjY4LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKICAgICB2b2lkIGRlZmF1
bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCopOworICAgIHZvaWQgZGVmYXVsdEFycm93
RXZlbnRIYW5kbGVyKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAKICAgICB2b2lk
IGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdESFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5YjMwMzYyLi4xMjUzNTVmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcApAQCAtNDMsMTggKzQzLDI1IEBACiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAi
UmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNlbGVj
dGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKKyNpbmNsdWRlICJDU3RyaW5n
LmgiCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKKyNpbmNsdWRlIDxzdGRpby5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Cit1c2luZyBu
YW1lc3BhY2Ugc3RkOwogCiBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlKiBw
YWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQorICAgICwg
bV9mb2N1c1BvaW50KCkKKyAgICAsIG1fZm9jdXNlZE5vZGUoMCkKIHsKIH0KIApAQCAtNzksNiAr
ODYsMjAgQEAgRnJhbWUqIEZvY3VzQ29udHJvbGxlcjo6Zm9jdXNlZE9yTWFpbkZyYW1lKCkKICAg
ICByZXR1cm4gbV9wYWdlLT5tYWluRnJhbWUoKTsKIH0KIAordm9pZCBGb2N1c0NvbnRyb2xsZXI6
OnNldEZvY3VzUG9pbnQoY29uc3QgSW50UG9pbnQgJnBvaW50KQoreworICAgIG1fZm9jdXNQb2lu
dCA9IHBvaW50OworICAgIGlmIChtX2ZvY3VzZWRGcmFtZSAmJiBtX2ZvY3VzZWRGcmFtZS0+b3du
ZXJSZW5kZXJlcigpKSB7CisgICAgICAgIG1fZm9jdXNlZEZyYW1lLT5vd25lclJlbmRlcmVyKCkt
PnJlcGFpbnRSZWN0YW5nbGUoCisgICAgICAgICAgICAgICAgSW50UmVjdChtX2ZvY3VzUG9pbnQu
eCgpIC0gMTAsIG1fZm9jdXNQb2ludC55KCkgLSAxMCwgMjAsIDIwKSk7CisgICAgfQorfQorCit2
b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNSZWN0KGNvbnN0IEludFJlY3QgJnJlY3QpCit7
CisgICAgbV9mb2N1c1JlY3QgPSByZWN0OworfQorCiBzdGF0aWMgTm9kZSogZGVlcEZvY3VzYWJs
ZU5vZGUoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBOb2RlKiBub2RlLCBLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKICAgICAvLyBUaGUgbm9kZSB3ZSBmb3VuZCBtaWdodCBiZSBhIEhUTUxGcmFt
ZU93bmVyRWxlbWVudCwgc28gZGVzY2VuZCBkb3duIHRoZSBmcmFtZSB0cmVlIHVudGlsIHdlIGZp
bmQgZWl0aGVyOgpAQCAtMTEwLDcgKzEzMSwyNjUgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNl
dEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGUK
ICAgICByZXR1cm4gYWR2YW5jZUZvY3VzKGRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOwogfQogCi1i
b29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQorc3RhdGljIHZvaWQg
c2VsZWN0Rm9jdXNQb2ludEZyb21SZWN0KGNvbnN0IEludFBvaW50ICZzdGFydCwgY29uc3QgSW50
UmVjdCAmc3RhcnRSZWN0LCBJbnRSZWN0ICZkZXN0UmVjdCwgRm9jdXNEaXJlY3Rpb24gZGlyLCBp
bnQgJmN1ciwgSW50UG9pbnQgJm5ld0ZvY3VzUG9pbnQsIEludFJlY3QgJm5ld0ZvY3VzUmVjdCkK
K3sKKyAgICBJbnRQb2ludCBkZXN0OworICAgIGludCBkaXN0OyAgICAvLyBkaXN0YW5jZSBiZXR3
ZWVuIG9sZCBhbmQgbmV3IGZvY3VzIHBvaW50OyBsb3dlciBpcyBiZXR0ZXIKKyAgICBpbnQgZGVs
dGE7ICAgLy8gZGlzdGFuY2UgYmV0d2VlbiBtb3ZlbWVudCBheGlzIGFuZCBuZXcgZm91Y3MgcG9p
bnQ7IGxvd2VyIGlzIGJldHRlcgorICAgIGludCBzcGFjZTsgICAvLyBzcGFjZSBiZXR3ZWVuIG9w
cG9zaW5nIGVkZ2VzIG9mIGVsZW1lbnRzOyBsb3dlciBpcyBiZXR0ZXIKKyAgICBpbnQgb3Zlcmxh
cDsgLy8gdGhlIGFtb3VudCBvZiAnZWRnZScgc2hhcmVkIG9mIHRhcmdldCBhbmQgZGVzdGluYXRp
b247IGhpZ2hlciBpcyBiZXR0ZXIsIGluIHBlcmNlbnQKKyAgICBzd2l0Y2ggKGRpcikgeworICAg
ICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgICAgIGlmIChzdGFydFJlY3Qu
eCgpID49IGRlc3RSZWN0LnJpZ2h0KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzdFJlY3Qu
Ym90dG9tKCkgPD0gc3RhcnQueSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBJbnRQ
b2ludChkZXN0UmVjdC5yaWdodCgpIC0gMSwgZGVzdFJlY3QuYm90dG9tKCkpOworICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoZGVzdFJlY3QueSgpID49IHN0YXJ0LnkoKSkgeworICAgICAgICAg
ICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQoZGVzdFJlY3QucmlnaHQoKSAtIDEsIGRlc3RSZWN0
LnkoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVz
dCA9IEludFBvaW50KGRlc3RSZWN0LnJpZ2h0KCkgLSAxLCBzdGFydC55KCkpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBkZWx0YSA9IHN0YXJ0LnkoKSAtIGRlc3QueSgpOwor
ICAgICAgICAgICAgICAgIHNwYWNlID0gc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LnJpZ2h0KCk7
CisgICAgICAgICAgICAgICAgb3ZlcmxhcCA9ICggbWluKGRlc3RSZWN0LmJvdHRvbSgpLCBzdGFy
dFJlY3QuYm90dG9tKCkpIC0gbWF4KGRlc3RSZWN0LnkoKSwgc3RhcnRSZWN0LnkoKSkgKSAqIDEw
MAorICAgICAgICAgICAgICAgICAgICAgICAgICAvIG1heChtaW4oZGVzdFJlY3QuaGVpZ2h0KCks
IHN0YXJ0UmVjdC5oZWlnaHQoKSksIDEwKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uUmlnaHQ6CisgICAgICAgICAgICBpZiAoc3RhcnRSZWN0LnJpZ2h0KCkgPD0gZGVzdFJlY3Qu
eCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRlc3RSZWN0LmJvdHRvbSgpIDw9IHN0YXJ0Lnko
KSkgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQoZGVzdFJlY3QueCgpICsg
MSwgZGVzdFJlY3QuYm90dG9tKCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVzdFJl
Y3QueSgpID49IHN0YXJ0LnkoKSkgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9p
bnQoZGVzdFJlY3QueCgpICsgMSwgZGVzdFJlY3QueSgpKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQoZGVzdFJlY3QueCgpICsg
MSwgc3RhcnQueSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVsdGEg
PSBzdGFydC55KCkgLSBkZXN0LnkoKTsKKyAgICAgICAgICAgICAgICBzcGFjZSA9IGRlc3RSZWN0
LngoKSAtIHN0YXJ0UmVjdC5yaWdodCgpOworICAgICAgICAgICAgICAgIG92ZXJsYXAgPSAoIG1p
bihkZXN0UmVjdC5ib3R0b20oKSwgc3RhcnRSZWN0LmJvdHRvbSgpKSAtIG1heChkZXN0UmVjdC55
KCksIHN0YXJ0UmVjdC55KCkpICkgKiAxMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLyBt
YXgobWluKGRlc3RSZWN0LmhlaWdodCgpLCBzdGFydFJlY3QuaGVpZ2h0KCkpLCAxMCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICAgICAgaWYgKHN0YXJ0UmVj
dC55KCkgPj0gZGVzdFJlY3QuYm90dG9tKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzdFJl
Y3QucmlnaHQoKSA8PSBzdGFydC54KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdCA9IElu
dFBvaW50KGRlc3RSZWN0LnJpZ2h0KCksIGRlc3RSZWN0LmJvdHRvbSgpIC0gMSk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChkZXN0UmVjdC54KCkgPj0gc3RhcnQueCgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGRlc3QgPSBJbnRQb2ludChkZXN0UmVjdC54KCksIGRlc3RSZWN0LmJvdHRv
bSgpIC0gMSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ZGVzdCA9IEludFBvaW50KHN0YXJ0LngoKSwgZGVzdFJlY3QuYm90dG9tKCkgLSAxKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVsdGEgPSBzdGFydC54KCkgLSBkZXN0Lngo
KTsKKyAgICAgICAgICAgICAgICBzcGFjZSA9IHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC5ib3R0
b20oKTsKKyAgICAgICAgICAgICAgICBvdmVybGFwID0gKCBtaW4oZGVzdFJlY3QucmlnaHQoKSwg
c3RhcnRSZWN0LnJpZ2h0KCkpIC0gbWF4KGRlc3RSZWN0LngoKSwgc3RhcnRSZWN0LngoKSkgKSAq
IDEwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAvIG1heChtaW4oZGVzdFJlY3Qud2lkdGgo
KSwgc3RhcnRSZWN0LndpZHRoKCkpLCAxMCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rp
b25Eb3duOgorICAgICAgICAgICAgaWYgKHN0YXJ0UmVjdC5ib3R0b20oKSA8PSBkZXN0UmVjdC55
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzdFJlY3QucmlnaHQoKSA8PSBzdGFydC54KCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgZGVzdCA9IEludFBvaW50KGRlc3RSZWN0LnJpZ2h0KCks
IGRlc3RSZWN0LnkoKSArIDEpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVzdFJlY3Qu
eCgpID49IHN0YXJ0LngoKSkgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQo
ZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCkgKyAxKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQoc3RhcnQueCgpLCBkZXN0UmVj
dC55KCkgKyAxKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZGVsdGEgPSBz
dGFydC54KCkgLSBkZXN0LngoKTsKKyAgICAgICAgICAgICAgICBzcGFjZSA9IGRlc3RSZWN0Lnko
KSAtIHN0YXJ0UmVjdC5ib3R0b20oKTsKKyAgICAgICAgICAgICAgICBvdmVybGFwID0gKCBtaW4o
ZGVzdFJlY3QucmlnaHQoKSwgc3RhcnRSZWN0LnJpZ2h0KCkpIC0gbWF4KGRlc3RSZWN0LngoKSwg
c3RhcnRSZWN0LngoKSkgKSAqIDEwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAvIG1heCht
aW4oZGVzdFJlY3Qud2lkdGgoKSwgc3RhcnRSZWN0LndpZHRoKCkpLCAxMCk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICAvLyBmaXh1cCBvdmVybGFwLCBkZWx0YSwgYW5kIHBvaW50IGRpc3RhbmNlCisg
ICAgb3ZlcmxhcCA9IG1heCgwLCBvdmVybGFwKTsKKyAgICBpZiAob3ZlcmxhcCA+IDApIHsgZGVs
dGEgPSAwOyB9IGVsc2UgeyBkZWx0YSA9IGFicyhkZWx0YSk7IH0KKyAgICBkaXN0ID0gc3FydChw
b3coc3RhcnQueCgpIC0gZGVzdC54KCksIDIpICsgcG93KHN0YXJ0LnkoKSAtIGRlc3QueSgpLCAy
KSk7CisKKyAgICBpbnQgd2VpZ2h0ID0gc3BhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gaWYgMTAwJSBvdmVybGFwLCBzcGFjZSBpcyBhbGwgdGhhdCBjb3VudHMKKyAgICAgICAgICAg
ICAgICsgKGRpc3QgKiAoMTAwIC0gb3ZlcmxhcCkgIC8gMTAwKSAgLy8gbW9yZSBvdmVybGFwLCBs
ZXNzIGRpc3RhbmNlIHBlbmFsdHkKKyAgICAgICAgICAgICAgICsgKDEwMCAqIGRlbHRhIC8gZGlz
dCkgICAgICAgICAgICAgLy8gbm8gb3ZlcmxhcCwgbGFyZ2UgZGVsdGEgLyBkaXN0IHJhdGlvIGlz
IHB1bmlzaGVkCisgICAgICAgICAgICAgICArIChzcGFjZSAqICgxMDAgLSBvdmVybGFwKSAvIDEw
MCk7IC8vIG1vcmUgb3ZlcmxhcCwgbGVzcyBzcGFjZSBwZW5hbHR5CisKKyAgICBwcmludGYoImRp
cjogJWQ7IFslZCwgJWRdIC0+IFslZCwgJWQgJWR4JWRdIGRpc3Q6ICVkLCBkZWx0YTogJWQsIHNw
YWNlOiAlZCwgb3ZlcmxhcDogJWQsIFdFSUdIVDogJWRcbiIsIGRpciwKKyAgICAgICAgICAgIHN0
YXJ0LngoKSwgc3RhcnQueSgpLAorICAgICAgICAgICAgZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55
KCksIGRlc3RSZWN0LndpZHRoKCksIGRlc3RSZWN0LmhlaWdodCgpLAorICAgICAgICAgICAgZGlz
dCwgZGVsdGEsIHNwYWNlLCBvdmVybGFwLCB3ZWlnaHQKKyAgICApOworCisgICAgaWYgKHdlaWdo
dCA8IGN1cikgeworICAgICAgICBjdXIgPSB3ZWlnaHQ7CisgICAgICAgIG5ld0ZvY3VzUG9pbnQg
PSBkZXN0OworICAgICAgICBuZXdGb2N1c1JlY3QgPSBkZXN0UmVjdDsKKyAgICB9Cit9CisKKy8v
IGZvciB0aGUgZGVzdE5vZGUsIGZpbmQgYSBuZXcgZm9jdXMgcG9pbnQgYW5kIHJlcG9ydCB0aGUg
ZGlzdGFuY2UsIGlmIGRpc3RhbmNlID09IGludDo6bWF4LCB0aGUgbmV3IGZvY3VzcG9pbnQgaXMg
dW5kZWZpbmVkCitzdGF0aWMgaW50IGRpc3RhbmNlQW5kRm9jdXNQb2ludChjb25zdCBJbnRQb2lu
dCAmc3RhcnQsIGNvbnN0IEludFJlY3QgJnN0YXJ0UmVjdCwgTm9kZSogZGVzdE5vZGUsIEZvY3Vz
RGlyZWN0aW9uIGRpciwgSW50UG9pbnQgJm5ld0ZvY3VzUG9pbnQsIEludFJlY3QgJm5ld0ZvY3Vz
UmVjdCkKK3sKKyAgICBpZiAoISBkZXN0Tm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJu
IG51bWVyaWNfbGltaXRzPGludD46Om1heCgpOworCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGRlc3ROb2RlLT5yZW5kZXJlcigpOworCisgICAgRmxvYXRQb2ludCBhYnNQb3MgPSByZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlKCk7CisgICAgVmVjdG9yPEludFJlY3Q+IHJlY3RzOworICAg
IHJlbmRlcmVyLT5hYnNvbHV0ZVJlY3RzKHJlY3RzLCBhYnNQb3MueCgpLCBhYnNQb3MueSgpKTsK
KworICAgIGludCBjdXIgPSBudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHNlbGVjdEZvY3Vz
UG9pbnRGcm9tUmVjdChzdGFydCwgc3RhcnRSZWN0LCByZWN0c1tpXSwgZGlyLCBjdXIsIG5ld0Zv
Y3VzUG9pbnQsIG5ld0ZvY3VzUmVjdCk7CisgICAgfQorICAgIHJldHVybiBjdXI7Cit9CisKK3N0
cnVjdCBCZXN0Q2FuZGlkYXRlIHsKKyAgICBCZXN0Q2FuZGlkYXRlKCkKKyAgICAgICAgOiBub2Rl
KDApCisgICAgICAgICwgcG9pbnQoMCwgMCkKKyAgICAgICAgLCByZWN0KDAsIDAsIDAsIDApCisg
ICAgICAgICwgZGlzdGFuY2UobnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCkpCisgICAgeworICAg
IH0KKyAgICBOb2RlKiAgICBub2RlOworICAgIEludFBvaW50IHBvaW50OworICAgIEludFJlY3Qg
IHJlY3Q7CisgICAgaW50IGRpc3RhbmNlOworfTsKKworc3RhdGljIHZvaWQgbmV4dEluRGlyZWN0
aW9uKERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogc3RhcnQsIGNvbnN0IEludFBvaW50ICZmb2N1
c1BvaW50LCBjb25zdCBJbnRSZWN0ICZmb2N1c1JlY3QsIEZvY3VzRGlyZWN0aW9uIGRpciwgS2V5
Ym9hcmRFdmVudCogZXZlbnQsIEJlc3RDYW5kaWRhdGUmIGJlc3QpCit7CisgICAgQVNTRVJUKGRv
Y3VtZW50KTsKKworICAgIC8vIHdhbGsgYWxsIHRoZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRlIGJl
c3QgY2FuZGlkYXRlIGlmIHdlIGZpbmQgYSBuZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNh
bmRpZGF0ZSA9IGRvY3VtZW50LT5maXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0g
Y2FuZGlkYXRlLT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+
aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAgICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1l
bnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRl
KTsKKyAgICAgICAgICAgIGlmIChvd25lci0+Y29udGVudEZyYW1lKCkpIHsKKyAgICAgICAgICAg
ICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9j
dW1lbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5uZXJEb2N1bWVudCkKKyAgICAgICAgICAg
ICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlubmVyRG9jdW1lbnQsIHN0YXJ0LCBmb2N1c1BvaW50
LCBmb2N1c1JlY3QsIGRpciwgZXZlbnQsIGJlc3QpOworICAgICAgICAgICAgfQorICAgICAgICB9
IGVsc2UgaWYgKGNhbmRpZGF0ZSAhPSBzdGFydCAmJiBjYW5kaWRhdGUtPmlzS2V5Ym9hcmRGb2N1
c2FibGUoZXZlbnQpKSB7CisgICAgICAgICAgICBJbnRQb2ludCBwb2ludDsKKyAgICAgICAgICAg
IEludFJlY3QgcmVjdDsKKyAgICAgICAgICAgIGludCBkaXN0YW5jZSA9IGRpc3RhbmNlQW5kRm9j
dXNQb2ludChmb2N1c1BvaW50LCBmb2N1c1JlY3QsIGNhbmRpZGF0ZSwgZGlyLCBwb2ludCwgcmVj
dCk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBiZXN0LmRpc3RhbmNlKSB7CisgICAgICAg
ICAgICAgICAgYmVzdC5ub2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgIGJlc3QucG9p
bnQgPSBwb2ludDsKKyAgICAgICAgICAgICAgICBiZXN0LnJlY3QgPSByZWN0OworICAgICAgICAg
ICAgICAgIGJlc3QuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KK30KKworLy8gVE9ETyBzaG91bGQgbm90IGJlIGhhcmRjb2RlZCA1MDAsIGJ1dCB0
b3RhbCB2aWV3cG9ydCAtIHNvbWUgbWFyZ2luCitzdGF0aWMgdm9pZCBuZXh0U2Nyb2xsUG9pbnRJ
bkRpcmVjdGlvbihjb25zdCBJbnRQb2ludCAmc3RhcnQsIEZvY3VzRGlyZWN0aW9uIGRpciwgQmVz
dENhbmRpZGF0ZSYgYmVzdCkgeworICAgIEludFBvaW50IGRlc3Q7CisgICAgc3dpdGNoIChkaXIp
IHsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgICAgICBkZXN0ID0g
SW50UG9pbnQoc3RhcnQueCgpIC0gNTAwLCBzdGFydC55KCkpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgICAgIGRlc3QgPSBJ
bnRQb2ludChzdGFydC54KCkgKyA1MDAsIHN0YXJ0LnkoKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICAgICAgZGVzdCA9IEludFBv
aW50KHN0YXJ0LngoKSwgc3RhcnQueSgpIC0gNTAwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgICAgIGRlc3QgPSBJbnRQb2lu
dChzdGFydC54KCksIHN0YXJ0LnkoKSArIDUwMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAg
ICBiZXN0LmRpc3RhbmNlID0gNTAwOworICAgIGJlc3Qubm9kZSA9IDA7CisgICAgYmVzdC5wb2lu
dCA9IGRlc3Q7CisgICAgYmVzdC5yZWN0ID0gSW50UmVjdChkZXN0LngoKSAtIDUsIGRlc3QueSgp
IC0gNSwgMTAsIDEwKTsKK30KKworYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0Rp
cmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVu
dCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBBU1NF
UlQoZnJhbWUpOworICAgIERvY3VtZW50KiBmb2N1c2VkRG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1l
bnQoKTsKKworICAgIGlmICghZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIHByaW50Zigibm8g
Zm9jdXNlZERvY3VtZW50XG4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2VkTm9kZSgpOworICAg
IGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgcHJpbnRmKCJubyBmb2N1c2VkTm9kZVxuIik7
CisgICAgICAgIC8vIEp1c3QgbW92ZSB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIG5vZGUuCisgICAg
ICAgIEZvY3VzRGlyZWN0aW9uIHRhYkRpcmVjdGlvbiA9IChGb2N1c0RpcmVjdGlvblVwIHx8IGRp
cmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFj
a3dhcmQ7CisgICAgICAgIC8vICdpbml0aWFsRm9jdXMnIGlzIHNldCB0byB0cnVlIHNvIHRoZSBj
aHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3Vt
ZW50T3JkZXIodGFiRGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gTW92
ZSB1cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKKyAg
ICAgICAgaWYgKCFwYXJlbnRGcmFtZSB8fCAhcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBmcmFtZSA9IHBhcmVudEZyYW1lOworICAgIH0KKwor
ICAgIEJlc3RDYW5kaWRhdGUgYmVzdDsKKyAgICAvLyBUT0RPIGRpc2FibGVkIGZvciBub3cKKyAg
ICAvL25leHRTY3JvbGxQb2ludEluRGlyZWN0aW9uKGZvY3VzUG9pbnQoKSwgZGlyZWN0aW9uLCBi
ZXN0KTsKKyAgICBuZXh0SW5EaXJlY3Rpb24oZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWROb2Rl
LCBmb2N1c1BvaW50KCksIGZvY3VzUmVjdCgpLCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0KTsKKwor
ICAgIHNldEZvY3VzUG9pbnQoYmVzdC5wb2ludCk7CisgICAgc2V0Rm9jdXNSZWN0KGJlc3QucmVj
dCk7CisgICAgbV9mb2N1c2VkTm9kZSA9IGJlc3Qubm9kZTsKKworICAgIE5vZGUqIG5vZGUgPSBi
ZXN0Lm5vZGU7CisgICAgaWYgKCFub2RlKSB7CisgICAgICBwcmludGYoIm5vIGNhbmRpZGF0ZVxu
Iik7CisgICAgICBpZiAoZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KGZvY3VzZWROb2RlKS0+Ymx1cigpOworICAgICAgfQorICAgICAgLy9mb2N1c2VkRG9jdW1l
bnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheW91dCgpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGJl
c3QucmVjdCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIW5vZGUtPmlz
RWxlbWVudE5vZGUoKSkgeworICAgICAgICAvLyBGSVhNRTogTWF5IG5lZWQgYSB3YXkgdG8gZm9j
dXMgYSBkb2N1bWVudCBoZXJlLgorICAgICAgICBwcmludGYoIm5vIGVsZW1lbnQgbm9kZSBmb3Vu
ZCAuLiB3aGF0IGlzIGl0OiAlc1xuIiwgbm9kZS0+bm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIERvY3VtZW50KiBuZXdEb2N1bWVu
dCA9IG5vZGUtPmRvY3VtZW50KCk7CisKKyAgICBpZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERv
Y3VtZW50KSB7CisgICAgICAgIC8vIEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2lu
YWxseSBmb2N1c2VkIGRvY3VtZW50LCBzbyBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAg
ICBmb2N1c2VkRG9jdW1lbnQtPnNldEZvY3VzZWROb2RlKDApOworICAgIH0KKworICAgIGlmIChu
ZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgp
KTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAg
IEludFJlY3QgcmVjdCA9IG5vZGUtPmdldFJlY3QoKTsKKyAgICBwcmludGYoImZvY3VzZWQgbm9k
ZTogJXMgWyVkICVkICVkICVkXVxuIiwgbm9kZS0+bm9kZU5hbWUoKS51dGY4KCkuZGF0YSgpLCBy
ZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3Vt
ZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwg
Ym9vbCBpbml0aWFsRm9jdXMpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZy
YW1lKCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKQEAgLTE2OCwxMyArNDQ3LDE1IEBAIGJvb2wgRm9j
dXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXli
b2FyZEV2ZW50KiBldmVuCiAKICAgICBBU1NFUlQobm9kZSk7CiAKLSAgICBpZiAobm9kZSA9PSBk
b2N1bWVudC0+Zm9jdXNlZE5vZGUoKSkKKyAgICBpZiAobm9kZSA9PSBkb2N1bWVudC0+Zm9jdXNl
ZE5vZGUoKSkgewogICAgICAgICAvLyBGb2N1cyB3cmFwcGVkIGFyb3VuZCB0byB0aGUgc2FtZSBu
b2RlLgogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKLSAgICBpZiAoIW5vZGUtPmlzRWxl
bWVudE5vZGUoKSkKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICAv
LyBGSVhNRTogTWF5IG5lZWQgYSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzRnJhbWVPd25lckVsZW1l
bnQoKSkgewogICAgICAgICAvLyBXZSBmb2N1cyBmcmFtZXMgcmF0aGVyIHRoYW4gZnJhbWUgb3du
ZXJzLgpAQCAtMTg3LDI0ICs0NjgsNDMgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KICAgICAg
ICAgc2V0Rm9jdXNlZEZyYW1lKG93bmVyLT5jb250ZW50RnJhbWUoKSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KLSAgICAKKwogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIHRv
IGp1c3QgYmUgYWJsZSB0byBjYWxsIHNldEZvY3VzZWROb2RlKG5vZGUpIGhlcmUsIGJ1dCB3ZSBj
YW4ndCBkbwogICAgIC8vIHRoYXQgYmVjYXVzZSBzb21lIGVsZW1lbnRzIChlLmcuIEhUTUxJbnB1
dEVsZW1lbnQgYW5kIEhUTUxUZXh0QXJlYUVsZW1lbnQpIGRvIGV4dHJhIHdvcmsgaW4KICAgICAv
LyB0aGVpciBmb2N1cygpIG1ldGhvZHMuCiAKICAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBu
b2RlLT5kb2N1bWVudCgpOwogCi0gICAgaWYgKG5ld0RvY3VtZW50ICE9IGRvY3VtZW50KQorICAg
IGlmIChuZXdEb2N1bWVudCAhPSBkb2N1bWVudCkgewogICAgICAgICAvLyBGb2N1cyBpcyBnb2lu
ZyBhd2F5IGZyb20gdGhpcyBkb2N1bWVudCwgc28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KICAg
ICAgICAgZG9jdW1lbnQtPnNldEZvY3VzZWROb2RlKDApOworICAgIH0KIAogICAgIGlmIChuZXdE
b2N1bWVudCkKICAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsK
IAorICAgIC8vIFRPRE8gdGhpcyB3aWxsIGV2ZW50dWFsbHkgY29tZSBiYWNrIHRyb3VnaCBzZXRG
b2N1c2VkTm9kZShub2RlLCBmcmFtZSk7CisgICAgLy8gd2hpY2ggaXMgYWxzbyBvdXIgb25seSBl
bnRyeXBvaW50IGZyb20gZXh0ZXJuYWwgY2hhbmdlIC4uLiBzbyB0aGF0IHN1Y2tzCiAgICAgc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5mb2N1cyhmYWxzZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCit7Cisg
ICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRm9yd2FyZDoK
KyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIHJldHVybiBhZHZhbmNl
Rm9jdXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3VzKTsKKwor
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdo
dDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRv
d246CisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KGRpcmVjdGlvbiwg
ZXZlbnQpOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sIHJlbGlu
cXVpc2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKQEAg
LTI0OCw2ICs1NDgsMTEgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFt
ZSogb2xkRm9jdXNlZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KIAogYm9vbCBGb2N1c0Nv
bnRyb2xsZXI6OnNldEZvY3VzZWROb2RlKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RnJhbWU+IG5l
d0ZvY3VzZWRGcmFtZSkKIHsKKyAgICBpZiAobV9mb2N1c2VkTm9kZSAhPSBub2RlICYmIG5vZGUp
IHsKKyAgICAgICAgSW50UmVjdCByZWN0ID0gbm9kZS0+Z2V0UmVjdCgpOworICAgICAgICBzZXRG
b2N1c1BvaW50KEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC8gMiwgcmVjdC55KCkg
KyByZWN0LmhlaWdodCgpIC8gMikpOworICAgICAgICBzZXRGb2N1c1JlY3QocmVjdCk7CisgICAg
fQogICAgIFJlZlB0cjxGcmFtZT4gb2xkRm9jdXNlZEZyYW1lID0gZm9jdXNlZEZyYW1lKCk7CiAg
ICAgUmVmUHRyPERvY3VtZW50PiBvbGREb2N1bWVudCA9IG9sZEZvY3VzZWRGcmFtZSA/IG9sZEZv
Y3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSA6IDA7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5k
ZXggZjRhNjYzMi4uNTMwZWNlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcs
OCBAQAogI2RlZmluZSBGb2N1c0NvbnRyb2xsZXJfaAogCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rp
b24uaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC00Nyw5
ICs0OSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBzZXRJbml0aWFs
Rm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKICAgICAgICAgYm9vbCBhZHZh
bmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1
cyA9IGZhbHNlKTsKLSAgICAgICAgCisKICAgICAgICAgYm9vbCBzZXRGb2N1c2VkTm9kZShOb2Rl
KiwgUGFzc1JlZlB0cjxGcmFtZT4pOwogCisgICAgICAgIHZvaWQgc2V0Rm9jdXNQb2ludChjb25z
dCBJbnRQb2ludCAmcG9pbnQpOworICAgICAgICBjb25zdCBJbnRQb2ludCBmb2N1c1BvaW50KCkg
Y29uc3QgeyByZXR1cm4gbV9mb2N1c1BvaW50OyB9CisgICAgICAgIHZvaWQgc2V0Rm9jdXNSZWN0
KGNvbnN0IEludFJlY3QgJnJlY3QpOworICAgICAgICBjb25zdCBJbnRSZWN0IGZvY3VzUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNSZWN0OyB9CisKICAgICAgICAgdm9pZCBzZXRBY3RpdmUo
Ym9vbCk7CiAgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2lzQWN0aXZl
OyB9CiAKQEAgLTU3LDggKzY0LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFn
ZSogbV9wYWdlOwogICAgICAgICBSZWZQdHI8RnJhbWU+IG1fZm9jdXNlZEZyYW1lOwogICAgICAg
ICBib29sIG1faXNBY3RpdmU7CisKKyAgICAgICAgSW50UG9pbnQgbV9mb2N1c1BvaW50OworICAg
ICAgICBJbnRSZWN0IG1fZm9jdXNSZWN0OworICAgICAgICBOb2RlKiBtX2ZvY3VzZWROb2RlOwor
ICAgICAgICAvLyBtX2ZvY3VzZWROb2RlIGlzIG5ldmVyIGRlcmVmZXJlbmNlZCwganVzdCBmb3Ig
Y29tcGFyaXNvbiB3aGVuIHdlIGhpdCBzZXRGb2N1c2VkTm9kZQorICAgICAgICAvLyBzaW5jZSBm
b2N1cyBtaWdodCBjaGFuZ2Ugd2l0aG91dCB0aGUgZm9jdXNDb250cm9sbGVyIGluaXRpYXRpbmcg
aXQsIGFuZCBldmVudHVhbGx5IHNldEZvY3VzZWROb2RlIGlzIGNhbGxlZAorICAgICAgICAvLyB3
aGVyZSB3ZSBuZWVkIHRvIGtub3cgYWJvdXQgdGhpcyBmYWN0CisKKyAgICAgICAgYm9vbCBhZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7Cisg
ICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uLCBL
ZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLSAgICAKKwogI2VuZGlmIC8vIEZvY3VzQ29udHJvbGxlcl9oCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0Rp
cmVjdGlvbi5oCmluZGV4IDI2MWM3NDUuLjU1MWM3MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9Gb2N1c0RpcmVjdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBA
IC0yOSw3ICsyOSwxMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRm9jdXNEaXJl
Y3Rpb24gewogICAgICAgICBGb2N1c0RpcmVjdGlvbkZvcndhcmQgPSAwLAotICAgICAgICBGb2N1
c0RpcmVjdGlvbkJhY2t3YXJkCisgICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsCisgICAg
ICAgIEZvY3VzRGlyZWN0aW9uVXAsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAg
ICAgRm9jdXNEaXJlY3Rpb25MZWZ0LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOWU0YjdiNS4uZjA0MTQyYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBA
IC04NSw2ICs4NSw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV96
b29tc1RleHRPbmx5KGZhbHNlKQogICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJblN0cmljdE1v
ZGUodHJ1ZSkKICAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUoc3RkOjpudW1lcmljX2xp
bWl0czxzaXplX3Q+OjptYXgoKSkKKyAgICAsIG1fc2hvdWxkVXNlQXJyb3dLZXlzRm9yRGlyZWN0
aW9uYWxOYXZpZ2F0aW9uKHRydWUpCiB7CiAgICAgLy8gQSBGcmFtZSBtYXkgbm90IGhhdmUgYmVl
biBjcmVhdGVkIHlldCwgc28gd2UgaW5pdGlhbGl6ZSB0aGUgQXRvbWljU3RyaW5nIAogICAgIC8v
IGhhc2ggYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IGQ0NmEzYzYuLjI5NDNi
ODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0xOTMsNiArMTkzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldE1heGltdW1EZWNvZGVkSW1hZ2VTaXplKHNpemVfdCBzaXplKSB7IG1fbWF4
aW11bURlY29kZWRJbWFnZVNpemUgPSBzaXplOyB9CiAgICAgICAgIHNpemVfdCBtYXhpbXVtRGVj
b2RlZEltYWdlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7
IH0KIAorICAgICAgICB2b2lkIHNldFNob3VsZFVzZUFycm93S2V5c0ZvckRpcmVjdGlvbmFsTmF2
aWdhdGlvbihib29sIHN0YXR1cykgeyBtX3Nob3VsZFVzZUFycm93S2V5c0ZvckRpcmVjdGlvbmFs
TmF2aWdhdGlvbiA9IHN0YXR1czsgfQorICAgICAgICBib29sIHNob3VsZFVzZUFycm93S2V5c0Zv
ckRpcmVjdGlvbmFsTmF2aWdhdGlvbigpIHsgcmV0dXJuIG1fc2hvdWxkVXNlQXJyb3dLZXlzRm9y
RGlyZWN0aW9uYWxOYXZpZ2F0aW9uOyB9CiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKICAgICAgICAg
Ly8gV2luZG93cyBkZWJ1Z2dpbmcgcHJlZiAoZ2xvYmFsKSBmb3Igc3dpdGNoaW5nIGJldHdlZW4g
dGhlIEFxdWEgbG9vayBhbmQgYSBuYXRpdmUgd2luZG93cyBsb29rLgogICAgICAgICBzdGF0aWMg
dm9pZCBzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wpOwpAQCAtMjUwLDYgKzI1Miw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX3pvb21zVGV4dE9ubHkgOiAx
OwogICAgICAgICBib29sIG1fZW5mb3JjZUNTU01JTUVUeXBlSW5TdHJpY3RNb2RlIDogMTsKICAg
ICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CisgICAgICAgIGJvb2wgbV9z
aG91bGRVc2VBcnJvd0tleXNGb3JEaXJlY3Rpb25hbE5hdmlnYXRpb24gOiAxOwogCiAjaWYgVVNF
KFNBRkFSSV9USEVNRSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29u
dHJvbHM7Ci0tIAoxLjYuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>26972</attachid>
            <date>2009-01-23 08:48:58 -0800</date>
            <delta_ts>2009-03-17 06:40:57 -0700</delta_ts>
            <desc>expirimental, highligh focused rect and focus point</desc>
            <filename>0002-wip-spatial.patch</filename>
            <type>text/x-patch</type>
            <size>5379</size>
            <attacher name="Onne Gorter">onne.gorter</attacher>
            
              <data encoding="base64">RnJvbSBiOTU2NzdlNGIxY2ZkMGU3NDEyYzEwOGZlM2ZhNmM0ZGEyNTE4NzVmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5lIEdvcnRlciA8b25uZS5nb3J0ZXJAYXZpbml0eS5uZXQ+
CkRhdGU6IEZyaSwgMjMgSmFuIDIwMDkgMTY6NDI6MDAgKzAxMDAKU3ViamVjdDogW1BBVENIIDIv
Ml0gd2lwIHNwYXRpYWwKCi0tLQogV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIu
Y3BwICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAg
ICAgICAgICAgfCAgIDE2ICsrKysrKysrKysrKysrKy0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcCB8ICAgMTkgKysrKysrKysrKystLS0tLS0tLQogMyBmaWxl
cyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZWRpdGlu
Zy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAppbmRleCA3ZmJmYWZhLi4wZDUzYmViIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29y
ZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC00NzYsNiArNDc2LDcgQEAgVmlz
aWJsZVBvc2l0aW9uIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeU1vdmluZ0JhY2t3YXJkKFRl
eHRHcmFudWxhcml0eSBncmFudWwKICAgICByZXR1cm4gcG9zOwogfQogCisvLyBUT0RPIHNob3Vs
ZCByZXR1cm4gZmFsc2UgbW9yZSBvZnRlbiwgbGlrZSBvbiBGT1JXQVJELCBidXQgd2Ugd2VyZSBh
dCBtb3N0IGZvcndhcmQsIEJBQ0tXQVJEIGxpa2V3aXNlCiBib29sIFNlbGVjdGlvbkNvbnRyb2xs
ZXI6Om1vZGlmeShFQWx0ZXJhdGlvbiBhbHRlciwgRURpcmVjdGlvbiBkaXIsIFRleHRHcmFudWxh
cml0eSBncmFudWxhcml0eSwgYm9vbCB1c2VyVHJpZ2dlcmVkKQogewogICAgIGlmICh1c2VyVHJp
Z2dlcmVkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDYxNTE3MmIuLjZhNDk0YTYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC0xMTkwLDcgKzExOTAsMjEgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMo
R3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmIChtX3BhaW50
UmVzdHJpY3Rpb24gPT0gUGFpbnRSZXN0cmljdGlvbk5vbmUpCiAgICAgICAgIGRvY3VtZW50LT5p
bnZhbGlkYXRlUmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNJblJlY3QocmVjdCk7CiAgICAgY29udGVu
dFJlbmRlcmVyLT5sYXllcigpLT5wYWludChwLCByZWN0LCBtX3BhaW50UmVzdHJpY3Rpb24sIGVs
dFJlbmRlcmVyKTsKLSAgICAgICAgCisKKyAgICAvLyBUT0RPIGRyYXcgc29tZXRoaW5nIG5pY2Ug
bGlrZSBhIGhhbmQgb3IgcG9pbnRlciBvciBzb21ldGhpbmcsIGFuZCBvdXRsaW5lIHRoZSByZXN0
CisgICAgTm9kZSogZm9jdXNlZE5vZGUgPSBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKTsKKyAgICBp
ZiAoZm9jdXNlZE5vZGUgJiYgZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgRmxv
YXRQb2ludCBhYnNQb3MgPSBmb2N1c2VkTm9kZS0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRl
KCk7CisgICAgICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKKyAgICAgICAgZm9jdXNlZE5vZGUt
PnJlbmRlcmVyKCktPmFic29sdXRlUmVjdHMocmVjdHMsIGFic1Bvcy54KCksIGFic1Bvcy55KCkp
OworCisgICAgICAgIGZvcihzaXplX3QgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7IGkrKykgewor
ICAgICAgICAgICAgcC0+ZmlsbFJlY3QocmVjdHNbaV0sIENvbG9yKDB4ZmYsIDAsIDAsIDEyNikp
OworICAgICAgICB9CisgICAgfQorICAgIEludFBvaW50IGZwID0gZnJhbWUoKS0+cGFnZSgpLT5m
b2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNQb2ludCgpOworICAgIHAtPmZpbGxSZWN0KEludFJlY3Qo
ZnAueCgpIC0gNSwgZnAueSgpIC0gNSwgMTAsIDEwKSwgQ29sb3IoMHgwZiwgMHgwZiwgMHhmZiwg
MTI2KSk7CisKICAgICBtX2lzUGFpbnRpbmcgPSBmYWxzZTsKIAogI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAppbmRleCBlMDkxNzhlLi45YTJhOWFmIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAibWFy
a3VwLmgiCiAjaW5jbHVkZSAid2Via2l0cHJpdmF0ZS5oIgogCisjaW5jbHVkZSA8c3RkaW8uaD4K
KwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzE4
LDYgKzMyMCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50Ojp0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKQog
CiB2b2lkIEVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBl
dmVudCkKIHsKKyAgICBwcmludGYoIkVkaXRvckNsaWVudEd0ay5jcHA6OmhhbmRsZUtleWJvYXJk
RXZlbnQoKVxuIik7CiAgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX3dlYlZpZXcpLT5mb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJh
bWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NCwy
OCArMzQ3LDI4IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAga2V2ZW50LT5jdHJsS2V5
KCkgPyBXb3JkR3JhbnVsYXJpdHkgOiBDaGFyYWN0ZXJHcmFudWxhcml0eSwgZmFsc2UsIHRydWUp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBWS19MRUZUOgotICAg
ICAgICAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KGtldmVudC0+c2hpZnRLZXko
KSA/IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1P
VkUsCisgICAgICAgICAgICAgICAgaWYgKCEgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoa2V2
ZW50LT5zaGlmdEtleSgpID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9u
Q29udHJvbGxlcjo6TU9WRSwKICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGlvbkNvbnRy
b2xsZXI6OkxFRlQsCiAgICAgICAgICAgICAgICAgICAgICAgICBrZXZlbnQtPmN0cmxLZXkoKSA/
IFdvcmRHcmFudWxhcml0eSA6IENoYXJhY3RlckdyYW51bGFyaXR5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgcmV0dXJuOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBWS19SSUdIVDoKLSAgICAg
ICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShrZXZlbnQtPnNoaWZ0S2V5KCkg
PyBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZF
LAorICAgICAgICAgICAgICAgIGlmICghIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KGtldmVu
dC0+c2hpZnRLZXkoKSA/IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNv
bnRyb2xsZXI6Ok1PVkUsCiAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Rpb25Db250cm9s
bGVyOjpSSUdIVCwKICAgICAgICAgICAgICAgICAgICAgICAgIGtldmVudC0+Y3RybEtleSgpID8g
V29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHksCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSByZXR1cm47CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFZLX1VQOgotICAgICAgICAg
ICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KGtldmVudC0+c2hpZnRLZXkoKSA/IFNl
bGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsCisg
ICAgICAgICAgICAgICAgaWYgKCEgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoa2V2ZW50LT5z
aGlmdEtleSgpID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJv
bGxlcjo6TU9WRSwKICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdGlvbkNvbnRyb2xsZXI6
OkJBQ0tXQVJELAogICAgICAgICAgICAgICAgICAgICAgICAga2V2ZW50LT5jdHJsS2V5KCkgPyBQ
YXJhZ3JhcGhHcmFudWxhcml0eSA6IExpbmVHcmFudWxhcml0eSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHJldHVybjsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktfRE9XTjoKLSAgICAgICAg
ICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShrZXZlbnQtPnNoaWZ0S2V5KCkgPyBT
ZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLAor
ICAgICAgICAgICAgICAgIGlmICghIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KGtldmVudC0+
c2hpZnRLZXkoKSA/IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNvbnRy
b2xsZXI6Ok1PVkUsCiAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVy
OjpGT1JXQVJELAogICAgICAgICAgICAgICAgICAgICAgICAga2V2ZW50LT5jdHJsS2V5KCkgPyBQ
YXJhZ3JhcGhHcmFudWxhcml0eSA6IExpbmVHcmFudWxhcml0eSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHJldHVybjsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktfUFJJT1I6ICAvLyBQYWdl
VXAKICAgICAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvbW1hbmQoa2V2ZW50LT5zaGlm
dEtleSgpID8gIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iIDogIk1vdmVQYWdlVXAiKS5l
eGVjdXRlKCk7Ci0tIAoxLjYuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28687</attachid>
            <date>2009-03-17 06:40:57 -0700</date>
            <delta_ts>2010-01-05 06:02:11 -0800</delta_ts>
            <desc>better implementation</desc>
            <filename>0001-spatial-navigation-implementation-using-focuspoint.patch</filename>
            <type>text/plain</type>
            <size>39069</size>
            <attacher name="Onne Gorter">onne.gorter</attacher>
            
              <data encoding="base64">RnJvbSA3OTliNzczYzRkNmY3NWJiMzNjYjMzNGQxM2QxYzg1ODNjYzBmYzJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBPbm5lIEdvcnRlciA8b25uZS5nb3J0ZXJAYXZpbml0eS5uZXQ+
CkRhdGU6IFR1ZSwgMTcgTWFyIDIwMDkgMTM6MDI6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIXSBz
cGF0aWFsIG5hdmlnYXRpb24gaW1wbGVtZW50YXRpb24gdXNpbmcgZm9jdXNwb2ludAoKbG9vc2Vs
eSBiYXNlZCBvbjoKICBodHRwOi8vd3d3LnczLm9yZy9UUi9XSUNELyNuYXYtZGlzdGFuY2UtZmt0
CgpUT0RPIGFsbG93IHRvIGp1bXAvc2Nyb2xsIHRvIGEgbWlkcG9pbnQgd2l0aG91dCBhbiBhY3Rp
dmUgZWxlbWVudApUT0RPIGJlIG1vcmUgbGVhbmllbnQgaW4gaG9yaXpvbnRhbCBuYXZpZ2F0aW9u
OyBtYXliZT8KVE9ETyBtYWtlIGl0IGNvbmZpZ3VyYWJsZSBpbiBjZXJ0YWluIHdheXMKVE9ETyBh
Y3R1YWxseSBtb3ZlIHRoZSBtb3VzZSwgaW5zdGVhZCBvZiBqdXN0IGdlbmVyYXRpbmcgbW91c2Ug
bW92ZQpldmVudHMKVE9ETyBmaXggYWxsIGZvcm0gZWxlbWVudHMgdG8gd29yayAxMDAlIHVzaW5n
IGtleWJvYXJkClRPRE8gaWZyYW1lcyBhbmQgc2Nyb2xsYWJsZSBhcmVhcyBkb24ndCBhbHdheXMg
d29yayBjb3JyZWN0bHkKVE9ETyBSZWZhY3RvciBOb2RlOjpmb2N1cygpIGFuZCBOb2RlOjpibHVy
KCksIGNvbnRyb2wgdGhlbSBmcm9tCkZvY3VzQ29udHJvbGxlciwgYW5kIGRvbid0IGhhdmUgdGhl
bSBjYWxsIGJhY2sgdG8gRm9jdXNDb250cm9sbGVyLgoKY2hhbmdlczoKKiBTZWxlY3Rpb25Db250
cm9sbGVyIHJlcG9ydHMgaWYgY2FyZXQgbW92ZW1lbnQgcmVzdWx0ZWQgaW4gYSBjaGFuZ2UsIHNv
CndlIGNhbiBqdW1wIHRvIG5leHQgZWxlbWVudHMgaW4gZGVmYXVsdCBoYW5kbGVycwoqIEZvY3Vz
Q29udHJvbGxlciBkcmF3cyBhIGN1cnNvciBvbiBjdXJyZW50IGVsZW1lbnQKKiB3aGVuIGp1bXBp
bmcgdXNpbmcgdGFiIG9yIGN1cnNvciBrZXlzLCBhbHNvIGdlbmVyYXRlcyBtb3VzZU1vdmVkIGV2
ZW50cywKZm9yIG1vdXNlIG92ZXIsIHNpbmNlIGZvY3VzIGlzIGhhcmRseSB1c2VkIG9uIGFueSB3
ZWJwYWdlCiogaW1wbGVtZW50cyBkaWZmZXJlbnQgYmVoYXZpb3VyIGZvciA8c2VsZWN0PiBhbmQg
aW5wdXQgY2hlY2tib3gvcmFkaW8sCnRob3VnaCBub3QgZmluaXNoZWQKCnRlbXBvcmFyeSBjaGFu
Z2VzOgpJbiBjZXJ0YWluIGNhc2VzIEFuY2hvciBlbGVtZW50cyBubyBsb25nZXIgaGF2ZSBhYnNv
bHV0ZVJlY3RzLCBzbyB1c2UKbm9kZTo6Z2V0UmVjdCgpIGFzIGZhbGxiYWNrLgotLS0KIFdlYkNv
cmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCAgICAgICB8ICAgMjkgKy0KIFdlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgIDkgKy0KIFdlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgICAgICAgICAgICB8ICAgMjIgKy0KIFdlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oICAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgICB8ICAgNDEgKysrCiBXZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwICAgICAgICAgICAgICB8ICA0MzkgKysrKysrKysr
KysrKysrKysrKysrKysrLQogV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oICAgICAgICAg
ICAgICAgIHwgICAyMSArKwogV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggICAgICAgICAg
ICAgICAgIHwgICAgNiArLQogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgICAgICAgICAgICAg
ICAgICAgIHwgICAgMyArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwICAgICAgICAgICAgICAg
ICAgICAgfCAgICAxICsKIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDMgKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwIHwgICAxNiArLQogMTQgZmlsZXMgY2hhbmdlZCwgNTU2IGluc2VydGlvbnMoKyksIDQyIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAppbmRleCBk
NjA2ODkxLi41MDQxYzVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3Bw
CkBAIC00OTYsMzMgKzQ5Niw0MiBAQCBib29sIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeShF
QWx0ZXJhdGlvbiBhbHRlciwgRURpcmVjdGlvbiBkaXIsIFRleHRHcmFudWxhcgogICAgIHdpbGxC
ZU1vZGlmaWVkKGFsdGVyLCBkaXIpOwogCiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvczsKKyAgICBW
aXNpYmxlUG9zaXRpb24gb2xkOworICAgIGJvb2wgd2FzUmFuZ2UgPSBtX3NlbC5pc1JhbmdlKCk7
CiAgICAgc3dpdGNoIChkaXIpIHsKICAgICAgICAgY2FzZSBSSUdIVDoKLSAgICAgICAgICAgIGlm
IChhbHRlciA9PSBNT1ZFKQorICAgICAgICAgICAgaWYgKGFsdGVyID09IE1PVkUpIHsKKyAgICAg
ICAgICAgICAgICBvbGQgPSBtX3NlbC52aXNpYmxlRW5kKCk7CiAgICAgICAgICAgICAgICAgcG9z
ID0gbW9kaWZ5TW92aW5nUmlnaHQoZ3JhbnVsYXJpdHkpOwotICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nUmln
aHRGb3J3YXJkKGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEZPUldBUkQ6Ci0gICAgICAgICAgICBpZiAoYWx0ZXIgPT0gRVhURU5EKQotICAgICAgICAgICAg
ICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ1JpZ2h0Rm9yd2FyZChncmFudWxhcml0eSk7Ci0gICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICBpZiAoYWx0ZXIgPT0gTU9WRSkgeworICAgICAgICAg
ICAgICAgIG9sZCA9IG1fc2VsLnZpc2libGVFbmQoKTsKICAgICAgICAgICAgICAgICBwb3MgPSBt
b2RpZnlNb3ZpbmdGb3J3YXJkKGdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ1JpZ2h0Rm9yd2FyZChncmFudWxhcml0
eSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMRUZUOgotICAgICAgICAgICAg
aWYgKGFsdGVyID09IE1PVkUpCisgICAgICAgICAgICBpZiAoYWx0ZXIgPT0gTU9WRSkgeworICAg
ICAgICAgICAgICAgIG9sZCA9IG1fc2VsLnZpc2libGVTdGFydCgpOwogICAgICAgICAgICAgICAg
IHBvcyA9IG1vZGlmeU1vdmluZ0xlZnQoZ3JhbnVsYXJpdHkpOwotICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5n
TGVmdEJhY2t3YXJkKGdyYW51bGFyaXR5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEJBQ0tXQVJEOgotICAgICAgICAgICAgaWYgKGFsdGVyID09IEVYVEVORCkKLSAgICAgICAg
ICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdMZWZ0QmFja3dhcmQoZ3JhbnVsYXJpdHkpOwot
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKGFsdGVyID09IE1PVkUpIHsKKyAgICAg
ICAgICAgICAgICBvbGQgPSBtX3NlbC52aXNpYmxlU3RhcnQoKTsKICAgICAgICAgICAgICAgICBw
b3MgPSBtb2RpZnlNb3ZpbmdCYWNrd2FyZChncmFudWxhcml0eSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdMZWZ0QmFja3dhcmQoZ3Jh
bnVsYXJpdHkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgaWYgKCF3YXNSYW5n
ZSAmJiBhbHRlciA9PSBNT1ZFICYmIG9sZCA9PSBwb3MpCisgICAgICAgIHJldHVybiBmYWxzZTsg
Ly8gbm8gY2hhbmdlcyBhZnRlciBhIG1vdmUKKwogICAgIGlmIChwb3MuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4
IGFmYzQ4MmUuLmNhZDcyOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMTA4
LDEzICsxMDgsOCBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAogICAgIGlmICghZG9jdW1lbnQoKS0+ZnJhbWUo
KS0+ZXZlbnRIYW5kbGVyKCktPnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFyZW5kZXJlcigpLT5pc0JveE1vZGVsT2Jq
ZWN0KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvLyBCZWZvcmUgY2FsbGlu
ZyBhYnNvbHV0ZVJlY3RzLCBjaGVjayBmb3IgdGhlIGNvbW1vbiBjYXNlIHdoZXJlIHRoZSByZW5k
ZXJlcgotICAgIC8vIGlzIG5vbi1lbXB0eSwgc2luY2UgdGhpcyBpcyBhIGZhc3RlciBjaGVjayBh
bmQgYWxtb3N0IGFsd2F5cyByZXR1cm5zIHRydWUuCi0gICAgUmVuZGVyQm94TW9kZWxPYmplY3Qq
IGJveCA9IHRvUmVuZGVyQm94TW9kZWxPYmplY3QocmVuZGVyZXIoKSk7Ci0gICAgaWYgKCFib3gt
PmJvcmRlckJvdW5kaW5nQm94KCkuaXNFbXB0eSgpKQorICAgIC8vIGNoZWNrIGlmIHRoZSBlbGVt
ZW50IHRha2VzIGFueSBzcGFjZTsgZmlyc3QgY2hlY2sgaWYgaXRzIGJvdW5kcyBhcmUgbm9uIGVt
cHR5CisgICAgaWYgKCFnZXRSZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApp
bmRleCBkZWIxZTEwLi5iZGE3NDJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0x
MzMsNiArMTMzLDcgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoaW5wdXRUeXBlKCkgPT0gUkFESU8pIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICAgICAgLy8gTmV2ZXIgYWxsb3cga2V5Ym9hcmQgdGFiYmluZyB0byBsZWF2ZSB5b3UgaW4gdGhl
IHNhbWUgcmFkaW8gZ3JvdXAuICBBbHdheXMKICAgICAgICAgLy8gc2tpcCBhbnkgb3RoZXIgZWxl
bWVudHMgaW4gdGhlIGdyb3VwLgpAQCAtMTE1Nyw3ICsxMTU4LDYgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldnQpCiAKICAgICAgICAgaWYgKGNo
YXJDb2RlID09ICdccicpIHsKICAgICAgICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKCkpIHsKLSAg
ICAgICAgICAgICAgICBjYXNlIENIRUNLQk9YOgogICAgICAgICAgICAgICAgIGNhc2UgSElEREVO
OgogICAgICAgICAgICAgICAgIGNhc2UgSVNJTkRFWDoKICAgICAgICAgICAgICAgICBjYXNlIFBB
U1NXT1JEOgpAQCAtMTE3NSw3ICsxMTc1LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldnQpCiAgICAgICAgICAgICAgICAgICAgIC8vIFNpbXVs
YXRlIG1vdXNlIGNsaWNrIGZvciBlbnRlciBmb3IgdGhlc2UgdHlwZXMgb2YgZWxlbWVudHMuCiAg
ICAgICAgICAgICAgICAgICAgIGNsaWNrRWxlbWVudCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ0hFQ0tCT1g6CiAgICAgICAgICAgICAg
ICAgY2FzZSBSQURJTzoKKyAgICAgICAgICAgICAgICAgICAgY2xpY2tFbGVtZW50ID0gdHJ1ZTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBlbnRl
ciBvbiBhIHJhZGlvIGJ1dHRvbi4KICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChj
aGFyQ29kZSA9PSAnICcpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDU0NTZk
YzguLmE4ZGY1YTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTgwLDYgKzU4
MCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KCkKICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkaXNwYXRjaEJsdXJFdmVudCgpOwogfQog
CisvLyBGSVhNRSB3aGVuIGtleWJvYXJkIG5hdmlnYXRpbmcsIG1ha2Ugc3VyZSB3ZSBkbyB0aGlu
Z3MgJ2NvcnJlY3RseScKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqIGV2dCkKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkpCkBAIC02MzIsMTggKzYzMywy
MCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjptZW51TGlzdERlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqIGV2dCkKICAgICAgICAgICAgICAgICAgbGlzdEluZGV4ID49IDAgJiYgbGlzdEluZGV4
IDwgc2l6ZSAmJiAobGlzdEl0ZW1zKClbbGlzdEluZGV4XS0+ZGlzYWJsZWQoKSB8fCAhbGlzdEl0
ZW1zKClbbGlzdEluZGV4XS0+aGFzVGFnTmFtZShvcHRpb25UYWcpKTsKICAgICAgICAgICAgICAg
ICAgKytsaXN0SW5kZXgpIHsgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobGlzdElu
ZGV4ID49IDAgJiYgbGlzdEluZGV4IDwgc2l6ZSkKKyAgICAgICAgICAgIGlmIChsaXN0SW5kZXgg
Pj0gMCAmJiBsaXN0SW5kZXggPCBzaXplKSB7CiAgICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRJ
bmRleChsaXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpKTsKLSAgICAgICAgICAgIGhhbmRsZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlOworICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIlVwIiB8fCBrZXlJZGVudGlmaWVy
ID09ICJMZWZ0IikgewogICAgICAgICAgICAgaW50IHNpemUgPSBsaXN0SXRlbXMoKS5zaXplKCk7
CiAgICAgICAgICAgICBmb3IgKGxpc3RJbmRleCAtPSAxOwogICAgICAgICAgICAgICAgICBsaXN0
SW5kZXggPj0gMCAmJiBsaXN0SW5kZXggPCBzaXplICYmIChsaXN0SXRlbXMoKVtsaXN0SW5kZXhd
LT5kaXNhYmxlZCgpIHx8ICFsaXN0SXRlbXMoKVtsaXN0SW5kZXhdLT5oYXNUYWdOYW1lKG9wdGlv
blRhZykpOwogICAgICAgICAgICAgICAgICAtLWxpc3RJbmRleCkgeyB9CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCAmJiBsaXN0SW5kZXggPCBzaXplKQorICAg
ICAgICAgICAgaWYgKGxpc3RJbmRleCA+PSAwICYmIGxpc3RJbmRleCA8IHNpemUpIHsKICAgICAg
ICAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KGxpc3RUb09wdGlvbkluZGV4KGxpc3RJbmRleCkp
OwotICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgaGFuZGxlZCA9
IHRydWU7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZgogICAgICAgICBpZiAoaGFu
ZGxlZCkKQEAgLTgxMyw4ICs4MTYsOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94
RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZ0KQogCiAgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxSZW5kZXJMaXN0Qm94Kj4ocmVuZGVyZXIoKSktPnNjcm9sbFRvUmV2ZWFsRWxlbWVudEF0TGlz
dEluZGV4KGVuZEluZGV4KTsKICAgICAgICAgICAgIHVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24oZGVz
ZWxlY3RPdGhlcnMpOwotICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7Ci0gICAgICAgICAg
ICBldnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgICAgICBib29sIGNoYW5nZWQgPSBs
aXN0Qm94T25DaGFuZ2UoKTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VkKQorICAgICAgICAgICAg
ICAgIGV2dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAo
ZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpIHsKICAgICAgICAgaWYg
KCFldnQtPmlzS2V5Ym9hcmRFdmVudCgpKQpAQCAtODg0LDcgKzg4OCw3IEBAIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6Om1lbnVMaXN0T25DaGFuZ2UoKQogICAgIH0KIH0KIAotdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6bGlzdEJveE9uQ2hhbmdlKCkKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6Omxp
c3RCb3hPbkNoYW5nZSgpCiB7CiAgICAgQVNTRVJUKCF1c2VzTWVudUxpc3QoKSk7CiAKQEAgLTg5
Myw3ICs4OTcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94T25DaGFuZ2UoKQog
ICAgIC8vIElmIHRoZSBjYWNoZWQgc2VsZWN0aW9uIGxpc3QgaXMgZW1wdHksIG9yIHRoZSBzaXpl
IGhhcyBjaGFuZ2VkLCB0aGVuIGZpcmUgb25DaGFuZ2UsIGFuZCByZXR1cm4gZWFybHkuCiAgICAg
aWYgKG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uLmlzRW1wdHkoKSB8fCBtX2xhc3RPbkNoYW5nZVNl
bGVjdGlvbi5zaXplKCkgIT0gaXRlbXMuc2l6ZSgpKSB7CiAgICAgICAgIG9uQ2hhbmdlKCk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAogICAgIC8v
IFVwZGF0ZSBtX2xhc3RPbkNoYW5nZVNlbGVjdGlvbiBhbmQgZmlyZSBvbkNoYW5nZQpAQCAtOTA4
LDYgKzkxMiw4IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hPbkNoYW5nZSgpCiAg
ICAgfQogICAgIGlmIChmaXJlT25DaGFuZ2UpCiAgICAgICAgIG9uQ2hhbmdlKCk7CisKKyAgICBy
ZXR1cm4gZmlyZU9uQ2hhbmdlOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlTGFz
dFNlbGVjdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDAxODVlZDguLmQzNzVk
OTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgoaW50IGluZGV4KTsKICAg
ICB2b2lkIHNldEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KGludCBpbmRleCkgeyBtX2FjdGl2ZVNl
bGVjdGlvbkVuZEluZGV4ID0gaW5kZXg7IH0KICAgICB2b2lkIHVwZGF0ZUxpc3RCb3hTZWxlY3Rp
b24oYm9vbCBkZXNlbGVjdE90aGVyT3B0aW9ucyk7Ci0gICAgdm9pZCBsaXN0Qm94T25DaGFuZ2Uo
KTsKKyAgICBib29sIGxpc3RCb3hPbkNoYW5nZSgpOwogICAgIHZvaWQgbWVudUxpc3RPbkNoYW5n
ZSgpOwogICAgIAogICAgIGludCBhY3RpdmVTZWxlY3Rpb25TdGFydExpc3RJbmRleCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwY2ZmNzdhLi41ZGZmNjc3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtMTkwNCwxMSArMTkwNCwxNiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVs
dEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IikK
ICAgICAgICAgICAgIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24gPSBpc0Fycm93S2V5
KGV2ZW50LT5rZXlJZGVudGlmaWVyKCkpKQorICAgICAgICAgICAgICAgIGRlZmF1bHRBcnJvd0V2
ZW50SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKKyAgICAgICAgfQogCiAgICAgICAgLy8gcHJv
dmlkZXMgS0IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBlbmhhbmNlZCBhY2Nlc3NpYmls
aXR5IHVzZXJzCiAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNl
ZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCiAgICAgICAgICAgIGhhbmRsZUtleWJvYXJkU2VsZWN0
aW9uTW92ZW1lbnQoZXZlbnQpOyAgICAgICAKICAgIH0KKwogICAgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpIHsKICAgICAgICAgbV9mcmFtZS0+ZWRpdG9y
KCktPmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBpZiAoZXZlbnQtPmRlZmF1
bHRIYW5kbGVkKCkpCkBAIC0xOTE4LDYgKzE5MjMsMjAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRl
ZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgIH0KIH0K
IAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjppc0Fycm93S2V5KGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllcikKK3sKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiRG93biIpCisgICAg
ICAgIHJldHVybiBGb2N1c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBpZiAoa2V5SWRlbnRpZmll
ciA9PSAiVXAiKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJlY3Rpb25VcDsKKyAgICBlbHNlIGlm
IChrZXlJZGVudGlmaWVyID09ICJMZWZ0IikKKyAgICAgICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9u
TGVmdDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpCisgICAgICAgIHJl
dHVybiBGb2N1c0RpcmVjdGlvblJpZ2h0OworCisgICAgcmV0dXJuIChGb2N1c0RpcmVjdGlvbikg
MDsKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3Qg
RmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbikgY29uc3QKIHsKICAgICBJbnRQ
b2ludCBkcmFnVmlld3BvcnRMb2NhdGlvbigoaW50KWZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXRpb24u
eCgpLCAoaW50KWZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXRpb24ueSgpKTsKQEAgLTIyMjYsNiArMjI0
NSwyOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50KiBldmVudCkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAK
Ky8vIEZJWE1FIHJlc3RvcmUgaW50byBzb21ldGhpbmcgbW9yZSBub3JtYWwKK3ZvaWQgRXZlbnRI
YW5kbGVyOjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJl
Y3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIC8vaWYgKGV2ZW50LT5jdHJsS2V5
KCkgfHwgZXZlbnQtPm1ldGFLZXkoKSB8fCBldmVudC0+YWx0R3JhcGhLZXkoKSB8fCBldmVudC0+
c2hpZnRLZXkoKSkKKyAgICAvLyAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy9pZiAo
IXBhZ2UtPnNldHRpbmdzKCkgfHwgIXBhZ2UtPnNldHRpbmdzKCktPnNob3VsZFVzZUFycm93S2V5
c0ZvckRpcmVjdGlvbmFsTmF2aWdhdGlvbigpKQorICAgIC8vICAgIHJldHVybjsKKworICAgIC8v
IEZJWE1FOiBBcmUgQ1RSTC1hcnJvdyBrZXlzIG5lZWRlZCBpbiBkZXNpZ24gbW9kZT8KKyAgICAv
LyBGSVhNRTogdG9uaWtpdG9vOiBjb21tZW50IHJlbW92ZSA/CisgICAgLy9pZiAobV9mcmFtZS0+
ZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAgLy8gICAgcmV0dXJuOworCisgICAgaWYg
KHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5hZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2
ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQgRXZl
bnRIYW5kbGVyOjpjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKQogewogICAgIERvY3VtZW50
KiBkID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBmYjA0ZTEwLi5l
NDUxMTAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHVibGljOgogICAg
IGJvb2wgaGFuZGxlQWNjZXNzS2V5KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAg
IGJvb2wga2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgdm9pZCBk
ZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCopOworICAgIEZvY3VzRGly
ZWN0aW9uIGlzQXJyb3dLZXkoY29uc3QgU3RyaW5nJik7CiAKICAgICBib29sIGhhbmRsZVRleHRJ
bnB1dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCA9IDAs
CiAgICAgICAgIGJvb2wgaXNMaW5lQnJlYWsgPSBmYWxzZSwgYm9vbCBpc0JhY2tUYWIgPSBmYWxz
ZSk7CkBAIC0yNzAsNiArMjcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGVmYXVsdFNwYWNl
RXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKICAgICB2b2lkIGRlZmF1bHRUYWJFdmVudEhh
bmRsZXIoS2V5Ym9hcmRFdmVudCopOworICAgIHZvaWQgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVy
KEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAKICAgICB2b2lkIGFsbG93REhUTUxE
cmFnKGJvb2wmIGZsYWdESFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAppbmRleCA4ZjAwOGE4Li5mMjRhNmVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcApAQCAtMzcsMjcgKzM3LDg1IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVk
ZSAiUmVuZGVyUGFydC5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5k
ZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
V2lkZ2V0LmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5o
PgogCisjaW5jbHVkZSA8c3RkaW8uaD4KKworLy8gZW5hYmxpbmcgdGhpcyBkcmF3cyBmb2N1c2Vk
IHJlY3RzIGFuZCBmb2N1cyBwb2ludAorI2RlZmluZSBERUJVR19GT0NVU1BPSU5UIDAKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwordXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAogRm9jdXNDb250cm9sbGVyOjpGb2N1c0NvbnRyb2xsZXIoUGFnZSogcGFn
ZSkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKKyAgICAsIG1f
Y3Vyc29yUmVjdCgpCisgICAgLCBtX2ZvY3VzUG9pbnQoKQorICAgICwgbV9mb2N1c2VkTm9kZSgw
KQogewogfQogCisvLyBUT0RPIG1vdmUgdGhpcyB0byBGcmFtZTo6aW52YWxpZGF0ZVJlY3QKK3Zv
aWQgRm9jdXNDb250cm9sbGVyOjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByKQorewor
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gMDsKKyAgICBIb3N0V2luZG93KiBob3N0V2luZG93
ID0gMDsKKyAgICBpZiAobV9wYWdlLT5tYWluRnJhbWUoKSkKKyAgICAgICAgZnJhbWVWaWV3ID0g
bV9wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpOworICAgIGlmIChmcmFtZVZpZXcpCisgICAgICAg
IGhvc3RXaW5kb3cgPSBmcmFtZVZpZXctPmhvc3RXaW5kb3coKTsKKworICAgIGlmIChob3N0V2lu
ZG93KQorICAgICAgICBob3N0V2luZG93LT5yZXBhaW50KGZyYW1lVmlldy0+Y29udGVudHNUb1dp
bmRvdyhyKSwgdHJ1ZSk7Cit9CisKK3ZvaWQgRm9jdXNDb250cm9sbGVyOjpwYWludEZvY3VzKEdy
YXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBpZiAoISByZWN0
LmludGVyc2VjdHMobV9jdXJzb3JSZWN0KSkgcmV0dXJuOworICAgIC8vcHJpbnRmKCJGb2N1c0Nv
bnRyb2xsZXI6OnBhaW50Rm9jdXMoKVxuIik7CisKKyNpZiBERUJVR19GT0NVU1BPSU5UCisgICAg
Tm9kZSogZm9jdXNlZE5vZGUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+Zm9j
dXNlZE5vZGUoKTsKKyAgICBpZiAoZm9jdXNlZE5vZGUgJiYgZm9jdXNlZE5vZGUtPnJlbmRlcmVy
KCkpIHsKKyAgICAgICAgRmxvYXRQb2ludCBhYnNQb3MgPSBmb2N1c2VkTm9kZS0+cmVuZGVyZXIo
KS0+bG9jYWxUb0Fic29sdXRlKCk7CisgICAgICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0czsKKyAg
ICAgICAgZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCktPmFic29sdXRlUmVjdHMocmVjdHMsIGFic1Bv
cy54KCksIGFic1Bvcy55KCkpOworCisgICAgICAgIGZvcihzaXplX3QgaSA9IDA7IGkgPCByZWN0
cy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgcC0+ZmlsbFJlY3QocmVjdHNbaV0sIENvbG9y
KDB4ZmYsIDAsIDAsIDEyNikpOworICAgICAgICB9CisgICAgfQorICAgIHAtPmZpbGxSZWN0KElu
dFJlY3QobV9mb2N1c1BvaW50LngoKSAtIDUsIG1fZm9jdXNQb2ludC55KCkgLSA1LCAxMCwgMTAp
LCBDb2xvcigweDBmLCAweDBmLCAweGZmLCAxMjYpKTsKKyNlbmRpZgorCisgICAgLy8gZHJhdyBh
ICdjdXJzb3InCisgICAgcC0+c2F2ZSgpOworICAgIHAtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ry
b2tlKTsKKyAgICBwLT5zZXRTdHJva2VDb2xvcihDb2xvcigwLCAwLCAwLCAyMDApKTsKKyAgICBw
LT5zZXRTdHJva2VUaGlja25lc3MoNy4wKTsKKyAgICBwLT5zdHJva2VBcmMobV9jdXJzb3JSZWN0
LCAwLCAzNjApOworICAgIHAtPnNldFN0cm9rZUNvbG9yKENvbG9yKDIzNSwgMjM1LCAyMzUpKTsK
KyAgICBwLT5zZXRTdHJva2VUaGlja25lc3MoMy41KTsKKyAgICBwLT5zdHJva2VBcmMobV9jdXJz
b3JSZWN0LCAwLCAzNjApOworICAgIHAtPnJlc3RvcmUoKTsKK30KKwogdm9pZCBGb2N1c0NvbnRy
b2xsZXI6OnNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPiBmcmFtZSkKIHsKICAgICBp
ZiAobV9mb2N1c2VkRnJhbWUgPT0gZnJhbWUpCkBAIC03OSw2ICsxMzcsMzMgQEAgRnJhbWUqIEZv
Y3VzQ29udHJvbGxlcjo6Zm9jdXNlZE9yTWFpbkZyYW1lKCkKICAgICByZXR1cm4gbV9wYWdlLT5t
YWluRnJhbWUoKTsKIH0KIAordm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzUG9pbnQoY29u
c3QgSW50UmVjdCAmcmVjdCwgY29uc3QgSW50UG9pbnQgJnBvaW50KQoreworICAgIGludmFsaWRh
dGVSZWN0KEludFJlY3QobV9mb2N1c1BvaW50LngoKSAtIDUsIG1fZm9jdXNQb2ludC55KCkgLSA1
LCAxMCwgMTApKTsKKyAgICBpbnZhbGlkYXRlUmVjdChtX2ZvY3VzUmVjdCk7CisgICAgbV9jdXJz
b3JSZWN0LmluZmxhdGUoNSk7IC8vIGNvbXBlbnNhdGUgZm9yIHN0cm9rZQorICAgIGludmFsaWRh
dGVSZWN0KG1fY3Vyc29yUmVjdCk7CisKKyAgICBtX2ZvY3VzUG9pbnQgPSBwb2ludDsKKyAgICBt
X2ZvY3VzUmVjdCA9IHJlY3Q7CisgICAgbV9jdXJzb3JSZWN0ID0gSW50UmVjdChyZWN0LngoKSAr
IG1pbigxMCwgcmVjdC53aWR0aCgpLzIpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkvMiwgMjAs
IDIwKTsKKyAgICBtX2N1cnNvclJlY3QubW92ZSgtMTAsIC0xMCk7CisKKyAgICBpbnZhbGlkYXRl
UmVjdChJbnRSZWN0KG1fZm9jdXNQb2ludC54KCkgLSA1LCBtX2ZvY3VzUG9pbnQueSgpIC0gNSwg
MTAsIDEwKSk7CisgICAgaW52YWxpZGF0ZVJlY3QobV9mb2N1c1JlY3QpOworCisgICAgbV9jdXJz
b3JSZWN0LmluZmxhdGUoNSk7IC8vIGNvbXBlbnNhdGUgZm9yIHN0cm9rZQorICAgIGludmFsaWRh
dGVSZWN0KG1fY3Vyc29yUmVjdCk7CisgICAgbV9jdXJzb3JSZWN0LmluZmxhdGUoLTUpOworCisg
ICAgZm9jdXNlZE9yTWFpbkZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpLT5lbmNsb3NpbmdMYXll
cigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKG1fZm9jdXNSZWN0KTsKKyAgICBJbnRQb2ludCBtb3Vz
ZShtX2N1cnNvclJlY3QueCgpLCBtX2N1cnNvclJlY3QueSgpICsgMTApOworICAgIG1vdXNlID0g
bV9wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpLT5jb250ZW50c1RvV2luZG93KG1vdXNlKTsKKyAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+bW91c2VNb3ZlZChQbGF0Zm9y
bU1vdXNlRXZlbnQoCisgICAgICAgICAgICAgICAgbW91c2UsIG1fZm9jdXNQb2ludCwgTm9CdXR0
b24sIE1vdXNlRXZlbnRNb3ZlZCwKKyAgICAgICAgICAgICAgICAwLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgMCkpOworfQorCiBzdGF0aWMgTm9kZSogZGVlcEZvY3VzYWJsZU5vZGUoRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBOb2RlKiBub2RlLCBLZXlib2FyZEV2ZW50KiBldmVudCkK
IHsKICAgICAvLyBUaGUgbm9kZSB3ZSBmb3VuZCBtaWdodCBiZSBhIEhUTUxGcmFtZU93bmVyRWxl
bWVudCwgc28gZGVzY2VuZCBkb3duIHRoZSBmcmFtZSB0cmVlIHVudGlsIHdlIGZpbmQgZWl0aGVy
OgpAQCAtMTA4LDcgKzE5MywzMTAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEluaXRpYWxG
b2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGUKICAgICByZXR1
cm4gYWR2YW5jZUZvY3VzKGRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOwogfQogCi1ib29sIEZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9h
cmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQorLyoKKyAqIFRPRE8gbmV3IGZvY3Vz
IHBvaW50IGNhbGN1bGF0aW9uOyBtb3ZpbmcgZG93bjoKKyAqCisgKiAvLS0tLU8tLS0tLS0tLS0t
XAorICogfCAgICAgICAgIGZyb20gIHwKKyAqIFwtLS0teC0tLS0tLS0tLS0vCisgKgorICogICAg
ICAgIG8tLS0tLVwKKyAqICAgICAgICB8ICB0byB8CisgKiAgICAgICAgXC0tLS0tLworICoKKyAq
IE86IGN1cnJlbnQgZm9jdXNwb2ludAorICogbzogbmV3IGZvY3VzcG9pbnQKKyAqIGRpc3QgICAg
PSBkaXN0KE8sIG8pOworICogc3BhY2UgICA9IHRvLnkoKSAtIGZyb20uYm90dG9tKCk7CisgKiBj
dXRvZmYgID0geC55KCkgLSBvLnkoKTsKKyAqIGRlbHRhICAgPSBvLngoKSAtIE8ueCgpOworICog
b3ZlcmxhcCA9IHRvLngoKSA+PSBmcm9tLngoKSAmJiB0by5yaWdodCgpIDw9IGZyb20ucmlnaHQo
KTsKKyAqCisgKiBpZiAob3ZlcmxhcCkgeworICogICB3ZWlnaHQgPSAoc3BhY2UgKyBkaXN0KSAv
IDIgLSBjdXRvZmYKKyAqIH0gZWxzZSB7CisgKiAgIHdlaWdodCA9IGRpc3QgKiAoZGVsdGEgLyA1
ICsgMSkgLSBjdXRvZmYKKyAqIH0KKyAqCisgKi8KK3N0YXRpYyB2b2lkIHNlbGVjdEZvY3VzUG9p
bnRGcm9tUmVjdChjb25zdCBJbnRQb2ludCAmZnAsIGNvbnN0IEludFJlY3QgJmZyb20sIEludFJl
Y3QgJnRvLCBGb2N1c0RpcmVjdGlvbiBkaXIsIGludCAmY3VyLCBJbnRQb2ludCAmbmV3ZnAsIElu
dFJlY3QgJm5ld1JlY3QpCit7CisgICAgSW50UG9pbnQgZGVzdDsKKyAgICBpbnQgY3V0b2ZmOyAg
Ly8gZGlzdGFuY2UgYmV0d2VlbiBjdXJyZW50IGZvY3VzIHBvaW50IGFuZCBlZGdlIG9mIGN1cnJl
bnQgcmVjdAorICAgIGludCBkZWx0YTsgICAvLyBkaXN0YW5jZSBiZXR3ZWVuIG1vdmVtZW50IGF4
aXMgYW5kIG5ldyBmb3VjcyBwb2ludDsgbG93ZXIgaXMgYmV0dGVyCisgICAgaW50IHNwYWNlOyAg
IC8vIHNwYWNlIGJldHdlZW4gb3Bwb3NpbmcgZWRnZXMgb2YgZWxlbWVudHM7IGxvd2VyIGlzIGJl
dHRlcgorICAgIGludCBvdmVybGFwOyAvLyBpZiB0aGVyZSBpcyBvdmVybGFwLCBtYXJnaW4gYnkg
NSBwaXhlbHMgdG8gZWFjaCBzaWRlCisgICAgaW50IHdlaWdodDsgIC8vIHRvdGFsIGRpc3RhbmNl
IHBvaW50czsgbG93ZXIgaXMgYmV0dGVyCisKKyAgICBzd2l0Y2ggKGRpcikgeworCisgICAgICAg
IGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICAgICAgaWYgKGZyb20uYm90dG9tKCkg
PCB0by5ib3R0b20oKSkgeworICAgICAgICAgICAgICAgIGlmICh0by5yaWdodCgpIDw9IGZwLngo
KSkgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQodG8ucmlnaHQoKSwgdG8u
eSgpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRvLngoKSA+PSBmcC54KCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGVzdCA9IEludFBvaW50KHRvLngoKSwgdG8ueSgpKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQo
ZnAueCgpLCB0by55KCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
ZGVzdC55KCkgPCBmcm9tLmJvdHRvbSgpKSBkZXN0LnNldFkoZnJvbS5ib3R0b20oKSArIDEpOwor
ICAgICAgICAgICAgICAgIGN1dG9mZiA9IGZyb20uYm90dG9tKCkgLSBmcC55KCk7CisgICAgICAg
ICAgICAgICAgZGVsdGEgPSBmcC54KCkgLSBkZXN0LngoKTsKKyAgICAgICAgICAgICAgICBzcGFj
ZSA9IHRvLnkoKSAtIGZyb20uYm90dG9tKCk7CisgICAgICAgICAgICAgICAgb3ZlcmxhcCA9IHRv
LngoKSArIDUgPj0gZnJvbS54KCkgJiYgdG8ucmlnaHQoKSAtIDUgPD0gZnJvbS5yaWdodCgpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgICAgIGlmIChm
cm9tLnJpZ2h0KCkgPCB0by5yaWdodCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRvLmJvdHRv
bSgpIDw9IGZwLnkoKSkgeworICAgICAgICAgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQodG8u
eCgpLCB0by5ib3R0b20oKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0by55KCkgPj0g
ZnAueSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBJbnRQb2ludCh0by54KCksIHRv
LnkoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVz
dCA9IEludFBvaW50KHRvLngoKSwgZnAueSgpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaWYgKGRlc3QueCgpIDwgZnJvbS5yaWdodCgpKSBkZXN0LnNldFgoZnJvbS5yaWdo
dCgpICsgMSk7CisgICAgICAgICAgICAgICAgY3V0b2ZmID0gZnJvbS5yaWdodCgpIC0gZnAueCgp
OworICAgICAgICAgICAgICAgIGRlbHRhID0gZnAueSgpIC0gZGVzdC55KCk7CisgICAgICAgICAg
ICAgICAgc3BhY2UgPSB0by54KCkgLSBmcm9tLnJpZ2h0KCk7CisgICAgICAgICAgICAgICAgb3Zl
cmxhcCA9IHRvLnkoKSArIDUgPj0gZnJvbS55KCkgJiYgdG8uYm90dG9tKCkgLSA1IDw9IGZyb20u
Ym90dG9tKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICAg
ICAgaWYgKGZyb20ueSgpID4gdG8ueSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHRvLnJpZ2h0
KCkgPD0gZnAueCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBJbnRQb2ludCh0by5y
aWdodCgpLCB0by5ib3R0b20oKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0by54KCkg
Pj0gZnAueCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBJbnRQb2ludCh0by54KCks
IHRvLmJvdHRvbSgpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBkZXN0ID0gSW50UG9pbnQoZnAueCgpLCB0by5ib3R0b20oKSk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmIChkZXN0LnkoKSA+IGZyb20ueSgpKSBkZXN0LnNldFko
ZnJvbS55KCkgLSAxKTsKKyAgICAgICAgICAgICAgICBjdXRvZmYgPSBmcC55KCkgLSBmcm9tLnko
KTsKKyAgICAgICAgICAgICAgICBkZWx0YSA9IGZwLngoKSAtIGRlc3QueCgpOworICAgICAgICAg
ICAgICAgIHNwYWNlID0gZnJvbS55KCkgLSB0by5ib3R0b20oKTsKKyAgICAgICAgICAgICAgICBv
dmVybGFwID0gdG8ueCgpICsgNSA+PSBmcm9tLngoKSAmJiB0by5yaWdodCgpIC0gNSA8PSBmcm9t
LnJpZ2h0KCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAg
ICAgICBpZiAoZnJvbS54KCkgPiB0by54KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAodG8uYm90
dG9tKCkgPD0gZnAueSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBJbnRQb2ludCh0
by5yaWdodCgpLCB0by5ib3R0b20oKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0by55
KCkgPj0gZnAueSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlc3QgPSBJbnRQb2ludCh0by5y
aWdodCgpLCB0by55KCkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgIGRlc3QgPSBJbnRQb2ludCh0by5yaWdodCgpLCBmcC55KCkpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoZGVzdC54KCkgPiBmcm9tLngoKSkgZGVzdC5zZXRY
KGZyb20ueCgpIC0gMSk7CisgICAgICAgICAgICAgICAgY3V0b2ZmID0gZnAueCgpIC0gZnJvbS54
KCk7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBmcC55KCkgLSBkZXN0LnkoKTsKKyAgICAgICAg
ICAgICAgICBzcGFjZSA9IGZyb20ueCgpIC0gdG8ucmlnaHQoKTsKKyAgICAgICAgICAgICAgICBv
dmVybGFwID0gdG8ueSgpICsgNSA+PSBmcm9tLnkoKSAmJiB0by5ib3R0b20oKSAtIDUgPD0gZnJv
bS5ib3R0b20oKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gbm9ybWFs
aXplIHNvbWUgdmFsdWVzCisgICAgc3BhY2UgPSAoc3BhY2UgPCAwKT8gMCA6IHNwYWNlOworICAg
IGN1dG9mZiA9IChjdXRvZmYgPCAwKT8gMCA6IGN1dG9mZjsKKyAgICBkZWx0YSA9IGFicyhkZWx0
YSk7CisgICAgZmxvYXQgZGlzdCA9IChmbG9hdCkgc3FydChwb3coZnAueCgpIC0gZGVzdC54KCks
IDIpICsgcG93KGZwLnkoKSAtIGRlc3QueSgpLCAyKSk7CisgICAgZmxvYXQgYW5nbGUgPSBhc2lu
KChmbG9hdClkZWx0YSAvIG1heCgwLjFmLCBkaXN0KSk7CisgICAgLy9pZiAoZGlzdCA+IDEwMDAp
IHJldHVybjsKKworICAgIGlmIChvdmVybGFwKSB7CisgICAgICAgIHdlaWdodCA9IChzcGFjZSAr
IGRpc3QgLSBjdXRvZmYpIC8gMjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoZGlzdCA+IGN1
dG9mZiAtIGRlbHRhKSBkaXN0IC09IGN1dG9mZiAtIGRlbHRhOworICAgICAgICB3ZWlnaHQgPSBk
aXN0ICogKDEgKyBwb3coYW5nbGUsIDMpKTsKKyAgICB9CisKKyAgICBpZiAod2VpZ2h0ID4gMjAw
MCkgcmV0dXJuOworCisgICAgLyoKKyAgICBwcmludGYoImRpcjogJWQ7IFslZCwgJWRdIC0+IFsl
ZCwgJWQgJWR4JWRdIGRpc3Q6ICVmLCBkZWx0YTogJWQsIHNwYWNlOiAlZCwgb3ZlcmxhcDogJWQs
IFdFSUdIVDogJWQsIGFuZ2xlOiAlZlxuIiwgZGlyLAorICAgICAgICAgICAgZnAueCgpLCBmcC55
KCksCisgICAgICAgICAgICB0by54KCksIHRvLnkoKSwgdG8ud2lkdGgoKSwgdG8uaGVpZ2h0KCks
CisgICAgICAgICAgICBkaXN0LCBkZWx0YSwgc3BhY2UsIG92ZXJsYXAsIHdlaWdodCwgYW5nbGUK
KyAgICApOworICAgICovCisKKyAgICBpZiAod2VpZ2h0IDwgY3VyKSB7CisgICAgICAgIGN1ciA9
IHdlaWdodDsKKyAgICAgICAgbmV3ZnAgPSBkZXN0OworICAgICAgICBuZXdSZWN0ID0gdG87Cisg
ICAgfQorfQorCisvLyBmb3IgdGhlIGRlc3ROb2RlLCBmaW5kIGEgbmV3IGZvY3VzIHBvaW50IGFu
ZCByZXBvcnQgdGhlIGRpc3RhbmNlLCBpZiBkaXN0YW5jZSA9PSBpbnQ6Om1heCwgdGhlIG5ldyBm
b2N1c3BvaW50IGlzIHVuZGVmaW5lZAorc3RhdGljIGludCBkaXN0YW5jZUFuZEZvY3VzUG9pbnQo
Y29uc3QgSW50UG9pbnQgJnN0YXJ0LCBjb25zdCBJbnRSZWN0ICZzdGFydFJlY3QsIE5vZGUqIGRl
c3ROb2RlLCBGb2N1c0RpcmVjdGlvbiBkaXIsIEludFBvaW50ICZuZXdGb2N1c1BvaW50LCBJbnRS
ZWN0ICZuZXdGb2N1c1JlY3QpCit7CisgICAgaWYgKCEgZGVzdE5vZGUtPnJlbmRlcmVyKCkpCisg
ICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxpbnQ+OjptYXgoKTsKKworICAgIFJlbmRlck9i
amVjdCogcmVuZGVyZXIgPSBkZXN0Tm9kZS0+cmVuZGVyZXIoKTsKKworICAgIEZsb2F0UG9pbnQg
YWJzUG9zID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZSgpOworICAgIFZlY3RvcjxJbnRSZWN0
PiByZWN0czsKKyAgICByZW5kZXJlci0+YWJzb2x1dGVSZWN0cyhyZWN0cywgYWJzUG9zLngoKSwg
YWJzUG9zLnkoKSk7CisKKyAgICB1bnNpZ25lZCBpbnQgc2l6ZSA9IHJlY3RzLnNpemUoKTsKKyAg
ICBpbnQgY3VyID0gbnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyBpKyspCisgICAgICAgIHNlbGVjdEZvY3VzUG9pbnRGcm9tUmVjdChz
dGFydCwgc3RhcnRSZWN0LCByZWN0c1tpXSwgZGlyLCBjdXIsIG5ld0ZvY3VzUG9pbnQsIG5ld0Zv
Y3VzUmVjdCk7CisgICAgaWYgKHNpemUgPT0gMCkgeworICAgICAgICBJbnRSZWN0IHJlY3QgPSBk
ZXN0Tm9kZS0+Z2V0UmVjdCgpOworICAgICAgICBzZWxlY3RGb2N1c1BvaW50RnJvbVJlY3Qoc3Rh
cnQsIHN0YXJ0UmVjdCwgcmVjdCwgZGlyLCBjdXIsIG5ld0ZvY3VzUG9pbnQsIG5ld0ZvY3VzUmVj
dCk7CisgICAgfQorICAgIHJldHVybiBjdXI7Cit9CisKK3N0cnVjdCBCZXN0Q2FuZGlkYXRlIHsK
KyAgICBCZXN0Q2FuZGlkYXRlKCkKKyAgICAgICAgOiBub2RlKDApCisgICAgICAgICwgcG9pbnQo
MCwgMCkKKyAgICAgICAgLCByZWN0KDAsIDAsIDAsIDApCisgICAgICAgICwgZGlzdGFuY2UobnVt
ZXJpY19saW1pdHM8aW50Pjo6bWF4KCkpCisgICAgeworICAgIH0KKyAgICBOb2RlKiAgICBub2Rl
OworICAgIEludFBvaW50IHBvaW50OworICAgIEludFJlY3QgIHJlY3Q7CisgICAgaW50IGRpc3Rh
bmNlOworfTsKKwordm9pZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2Rl
KiBzdGFydCwgY29uc3QgSW50UG9pbnQgJmZvY3VzUG9pbnQsIGNvbnN0IEludFJlY3QgJmZvY3Vz
UmVjdCwgRm9jdXNEaXJlY3Rpb24gZGlyLCBLZXlib2FyZEV2ZW50KiBldmVudCwgQmVzdENhbmRp
ZGF0ZSYgYmVzdCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgLy8gd2FsayBhbGwg
dGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgYmVzdCBjYW5kaWRhdGUgaWYgd2UgZmluZCBhIG5l
YXJlciBub2RlLgorICAgIGZvciAoTm9kZSogY2FuZGlkYXRlID0gZG9jdW1lbnQtPmZpcnN0Q2hp
bGQoKTsgY2FuZGlkYXRlOyBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5vZGUo
KSkgeworICAgICAgICBpZiAoY2FuZGlkYXRlLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpIHsKKyAg
ICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxIVE1M
RnJhbWVPd25lckVsZW1lbnQqPihjYW5kaWRhdGUpOworICAgICAgICAgICAgaWYgKG93bmVyLT5j
b250ZW50RnJhbWUoKSkgeworICAgICAgICAgICAgICAgIERvY3VtZW50KiBpbm5lckRvY3VtZW50
ID0gb3duZXItPmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGlm
IChpbm5lckRvY3VtZW50KQorICAgICAgICAgICAgICAgICAgICBuZXh0SW5EaXJlY3Rpb24oaW5u
ZXJEb2N1bWVudCwgc3RhcnQsIGZvY3VzUG9pbnQsIGZvY3VzUmVjdCwgZGlyLCBldmVudCwgYmVz
dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9IHN0YXJ0
ICYmIGNhbmRpZGF0ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkpIHsKKyAgICAgICAgICAg
IEludFBvaW50IHBvaW50OworICAgICAgICAgICAgSW50UmVjdCByZWN0OworICAgICAgICAgICAg
aW50IGRpc3RhbmNlID0gZGlzdGFuY2VBbmRGb2N1c1BvaW50KGZvY3VzUG9pbnQsIGZvY3VzUmVj
dCwgY2FuZGlkYXRlLCBkaXIsIHBvaW50LCByZWN0KTsKKyAgICAgICAgICAgIGlmIChkaXN0YW5j
ZSA8IGJlc3QuZGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAgICBiZXN0Lm5vZGUgPSBjYW5kaWRh
dGU7CisgICAgICAgICAgICAgICAgYmVzdC5wb2ludCA9IHBvaW50OworICAgICAgICAgICAgICAg
IGJlc3QucmVjdCA9IHJlY3Q7CisgICAgICAgICAgICAgICAgYmVzdC5kaXN0YW5jZSA9IGRpc3Rh
bmNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvLyBUT0RPIHNob3Vs
ZCBub3QgYmUgaGFyZGNvZGVkIDUwMCwgYnV0IHRvdGFsIHZpZXdwb3J0IC0gc29tZSBtYXJnaW4K
K3ZvaWQgbmV4dFNjcm9sbFBvaW50SW5EaXJlY3Rpb24oY29uc3QgSW50UG9pbnQgJnN0YXJ0LCBG
b2N1c0RpcmVjdGlvbiBkaXIsIEJlc3RDYW5kaWRhdGUmIGJlc3QpIHsKKyAgICBJbnRQb2ludCBk
ZXN0OworICAgIHN3aXRjaCAoZGlyKSB7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0
OgorICAgICAgICAgICAgZGVzdCA9IEludFBvaW50KHN0YXJ0LngoKSAtIDUwMCwgc3RhcnQueSgp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6
CisgICAgICAgICAgICBkZXN0ID0gSW50UG9pbnQoc3RhcnQueCgpICsgNTAwLCBzdGFydC55KCkp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAg
ICAgICAgICAgIGRlc3QgPSBJbnRQb2ludChzdGFydC54KCksIHN0YXJ0LnkoKSAtIDUwMCk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAg
ICAgICAgICBkZXN0ID0gSW50UG9pbnQoc3RhcnQueCgpLCBzdGFydC55KCkgKyA1MDApOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICB9CisgICAgYmVzdC5kaXN0YW5jZSA9IDUwMDsKKyAgICBiZXN0Lm5v
ZGUgPSAwOworICAgIGJlc3QucG9pbnQgPSBkZXN0OworICAgIGJlc3QucmVjdCA9IEludFJlY3Qo
ZGVzdC54KCkgLSA1LCBkZXN0LnkoKSAtIDUsIDEwLCAxMCk7Cit9CisKK2Jvb2wgRm9jdXNDb250
cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9y
TWFpbkZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERv
Y3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisKKyAgICBpZiAoIWZvY3VzZWREb2N1bWVudCkg
eworICAgICAgICBwcmludGYoIm5vIGZvY3VzZWREb2N1bWVudFxuIik7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBOb2RlKiBmb2N1c2VkTm9kZSA9IGZvY3VzZWREb2N1bWVu
dC0+Zm9jdXNlZE5vZGUoKTsKKyAgICBpZiAoIWZvY3VzZWROb2RlKSB7CisgICAgICAgIHByaW50
Zigibm8gZm9jdXNlZE5vZGVcbiIpOworICAgICAgICAvLyBKdXN0IG1vdmUgdG8gdGhlIGZpcnN0
IGZvY3VzYWJsZSBub2RlLgorICAgICAgICBGb2N1c0RpcmVjdGlvbiB0YWJEaXJlY3Rpb24gPSAo
Rm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSA/Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0RpcmVjdGlvbkZvcndh
cmQgOiBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOworICAgICAgICAvLyAnaW5pdGlhbEZvY3VzJyBp
cyBzZXQgdG8gdHJ1ZSBzbyB0aGUgY2hyb21lIGlzIG5vdCBmb2N1c2VkLgorICAgICAgICBtX2Zv
Y3VzZWROb2RlID0gMDsKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRl
cih0YWJEaXJlY3Rpb24sIGV2ZW50LCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGlu
IHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAg
IEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBp
ZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgIGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVz
dENhbmRpZGF0ZSBiZXN0OworICAgIC8vIFRPRE8gZGlzYWJsZWQgZm9yIG5vdworICAgIC8vbmV4
dFNjcm9sbFBvaW50SW5EaXJlY3Rpb24oZm9jdXNQb2ludCgpLCBkaXJlY3Rpb24sIGJlc3QpOwor
ICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUsIGZvY3Vz
UG9pbnQoKSwgZm9jdXNSZWN0KCksIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3QpOworCisgICAgTm9k
ZSogbm9kZSA9IGJlc3Qubm9kZTsKKworICAgIC8vIG5vIGNhbmRpZGF0ZSwga2VlcCBmb2N1cyB3
aGVyZSBpdCBpcworICAgIC8vIFRPRE8gaW4gZnV0dXJlLCB3ZSB3YW50IHRvIGp1c3QgbW92ZSBt
b3VzZSB0byBhIHBvaW50IGluIHRoZSBtaWRkbGUgb2Ygbm93aGVyZTsgbWF5YmU/CisgICAgaWYg
KCFub2RlKQorICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzZXRGb2N1c1BvaW50KGJlc3QucmVj
dCwgYmVzdC5wb2ludCk7CisgICAgbV9mb2N1c2VkTm9kZSA9IGJlc3Qubm9kZTsKKworICAgIGlm
ICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVlZCBh
IHdheSB0byBmb2N1cyBhIGRvY3VtZW50IGhlcmUuCisgICAgICAgIHByaW50Zigibm8gZWxlbWVu
dCBub2RlIGZvdW5kIC4uIHdoYXQgaXMgaXQ6ICVzXG4iLCBub2RlLT5ub2RlTmFtZSgpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRG9jdW1lbnQq
IG5ld0RvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChuZXdEb2N1bWVudCAh
PSBmb2N1c2VkRG9jdW1lbnQpIHsKKyAgICAgICAgLy8gRm9jdXMgaXMgZ29pbmcgYXdheSBmcm9t
IHRoZSBvcmlnaW5hbGx5IGZvY3VzZWQgZG9jdW1lbnQsIHNvIGNsZWFyIHRoZSBmb2N1c2VkIG5v
ZGUuCisgICAgICAgIGZvY3VzZWREb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAgfQor
CisgICAgaWYgKG5ld0RvY3VtZW50KQorICAgICAgICBzZXRGb2N1c2VkRnJhbWUobmV3RG9jdW1l
bnQtPmZyYW1lKCkpOworCisgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5mb2N1cyhm
YWxzZSk7CisgICAgSW50UmVjdCByZWN0ID0gbm9kZS0+Z2V0UmVjdCgpOworICAgIHByaW50Zigi
Zm9jdXNlZCBub2RlOiAlcyBbJWQgJWQgJWQgJWRdXG4iLCBub2RlLT5ub2RlTmFtZSgpLnV0Zjgo
KS5kYXRhKCksIHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgp
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZl
bnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKIHsKICAgICBGcmFtZSogZnJhbWUgPSBmb2N1
c2VkT3JNYWluRnJhbWUoKTsKICAgICBBU1NFUlQoZnJhbWUpOwpAQCAtMTE3LDcgKzUwNSw3IEBA
IGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0
aW9uLCBLZXlib2FyZEV2ZW50KiBldmVuCiAgICAgTm9kZSogbm9kZSA9IChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25Gb3J3YXJkKQogICAgICAgICA/IGRvY3VtZW50LT5uZXh0Rm9jdXNhYmxl
Tm9kZShkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSwgZXZlbnQpCiAgICAgICAgIDogZG9jdW1lbnQt
PnByZXZpb3VzRm9jdXNhYmxlTm9kZShkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSwgZXZlbnQpOwot
ICAgICAgICAgICAgCisKICAgICAvLyBJZiB0aGVyZSdzIG5vIGZvY3VzYWJsZSBub2RlIHRvIGFk
dmFuY2UgdG8sIG1vdmUgdXAgdGhlIGZyYW1lIHRyZWUgdW50aWwgd2UgZmluZCBvbmUuCiAgICAg
d2hpbGUgKCFub2RlICYmIGZyYW1lKSB7CiAgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZy
YW1lLT50cmVlKCktPnBhcmVudCgpOwpAQCAtMTU2LDE5ICs1NDQsMjMgQEAgYm9vbCBGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJk
RXZlbnQqIGV2ZW4KIAogICAgICAgICBub2RlID0gZGVlcEZvY3VzYWJsZU5vZGUoZGlyZWN0aW9u
LCBub2RlLCBldmVudCk7CiAKLSAgICAgICAgaWYgKCFub2RlKQorICAgICAgICBpZiAoIW5vZGUp
IHsKKyAgICAgICAgICAgIHByaW50Zigibm8gbm9kZSBmb3VuZDsgZXZlbiBhZnRlciBjeWNsZSB0
aHJvdWdoIGNocm9tZVxuIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
ICAgICB9CiAKICAgICBBU1NFUlQobm9kZSk7CiAKLSAgICBpZiAobm9kZSA9PSBkb2N1bWVudC0+
Zm9jdXNlZE5vZGUoKSkKKyAgICBpZiAobm9kZSA9PSBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSkg
ewogICAgICAgICAvLyBGb2N1cyB3cmFwcGVkIGFyb3VuZCB0byB0aGUgc2FtZSBub2RlLgogICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKLSAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUo
KSkKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICAvLyBGSVhNRTog
TWF5IG5lZWQgYSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgewog
ICAgICAgICAvLyBXZSBmb2N1cyBmcmFtZXMgcmF0aGVyIHRoYW4gZnJhbWUgb3duZXJzLgpAQCAt
MTg4LDE3ICs1ODAsNDQgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KIAogICAgIERvY3VtZW50
KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CiAKLSAgICBpZiAobmV3RG9jdW1lbnQg
IT0gZG9jdW1lbnQpCisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGRvY3VtZW50KSB7CiAgICAgICAg
IC8vIEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGlzIGRvY3VtZW50LCBzbyBjbGVhciB0aGUg
Zm9jdXNlZCBub2RlLgogICAgICAgICBkb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAg
fQogCiAgICAgaWYgKG5ld0RvY3VtZW50KQogICAgICAgICBzZXRGb2N1c2VkRnJhbWUobmV3RG9j
dW1lbnQtPmZyYW1lKCkpOwogCisgICAgLy8gdW5zZXQgY3VycmVudCBtX2ZvY3VzTm9kZQorICAg
IG1fZm9jdXNlZE5vZGUgPSAwOworCisgICAgLy8gVE9ETyB0aGlzIHdpbGwgZXZlbnR1YWxseSBj
b21lIGJhY2sgdHJvdWdoIHNldEZvY3VzZWROb2RlKG5vZGUsIGZyYW1lKTsKKyAgICAvLyB3aGlj
aCBpcyBhbHNvIG91ciBvbmx5IGVudHJ5cG9pbnQgZnJvbSBleHRlcm5hbCBjaGFuZ2UgLi4uIHNv
IHRoYXQgc3Vja3MKICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmZvY3VzKGZhbHNl
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VG
b2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29s
IGluaXRpYWxGb2N1cykKK3sKKyAgICBib29sIHJlcyA9IGZhbHNlOworICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICByZXMgPSBhZHZhbmNlRm9jdXNJbkRvY3VtZW50
T3JkZXIoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3VzKTsKKyAgICAgICAgYnJlYWs7CisK
KyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmln
aHQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25E
b3duOgorICAgICAgICByZXMgPSBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KGRpcmVjdGlvbiwg
ZXZlbnQpOworICAgICAgICBicmVhazsKKyAgICB9CisKKworICAgIHJldHVybiByZXM7Cit9CisK
IHN0YXRpYyBib29sIHJlbGlucXVpc2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQogewogICAg
IEFTU0VSVChub2RlKTsKQEAgLTI0Miw2ICs2NjEsMTQgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxl
Y3Rpb25JZk5lZWRlZChGcmFtZSogb2xkRm9jdXNlZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZy
YW0KIAogYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWROb2RlKE5vZGUqIG5vZGUsIFBh
c3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSkKIHsKKyAgICBpZiAobV9mb2N1c2VkTm9k
ZSAhPSBub2RlICYmIG5vZGUpIHsKKyAgICAgICAgSW50UmVjdCByZWN0ID0gbm9kZS0+Z2V0UmVj
dCgpOworICAgICAgICBGbG9hdFBvaW50IGFic1BvcyA9IG5vZGUtPnJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZSgpOworICAgICAgICBWZWN0b3I8SW50UmVjdD4gcmVjdHM7CisgICAgICAgIG5v
ZGUtPnJlbmRlcmVyKCktPmFic29sdXRlUmVjdHMocmVjdHMsIGFic1Bvcy54KCksIGFic1Bvcy55
KCkpOworICAgICAgICBpZiAocmVjdHMuc2l6ZSgpID4gMCkgcmVjdCA9IHJlY3RzWzBdOworICAg
ICAgICBzZXRGb2N1c1BvaW50KHJlY3QsIEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgp
IC8gMiwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC8gMikpOworICAgIH0KICAgICBSZWZQdHI8
RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwogICAgIFJlZlB0cjxEb2N1
bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1c2VkRnJhbWUtPmRv
Y3VtZW50KCkgOiAwOwogICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IGY0YTY2MzIuLmEz
M2FlY2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDkgQEAKICNkZWZpbmUg
Rm9jdXNDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisjaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUg
IkludFJlY3QuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIApAQCAtNTAsMTMgKzUzLDMxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
CiAgICAgICAgIGJvb2wgc2V0Rm9jdXNlZE5vZGUoTm9kZSosIFBhc3NSZWZQdHI8RnJhbWU+KTsK
IAorICAgICAgICB2b2lkIHNldEZvY3VzUG9pbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3Qg
SW50UG9pbnQmIHBvaW50KTsKKyAgICAgICAgY29uc3QgSW50UG9pbnQgZm9jdXNQb2ludCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9jdXNQb2ludDsgfQorICAgICAgICBjb25zdCBJbnRSZWN0IGZvY3Vz
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNSZWN0OyB9CisKICAgICAgICAgdm9pZCBzZXRB
Y3RpdmUoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2lz
QWN0aXZlOyB9CiAKKyAgICAgICAgdm9pZCBwYWludEZvY3VzKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAg
ICAgICAgUmVmUHRyPEZyYW1lPiBtX2ZvY3VzZWRGcmFtZTsKICAgICAgICAgYm9vbCBtX2lzQWN0
aXZlOworCisgICAgICAgIEludFJlY3QgIG1fY3Vyc29yUmVjdDsKKyAgICAgICAgSW50UG9pbnQg
bV9mb2N1c1BvaW50OworICAgICAgICBJbnRSZWN0ICBtX2ZvY3VzUmVjdDsKKyAgICAgICAgTm9k
ZSogICAgbV9mb2N1c2VkTm9kZTsKKyAgICAgICAgLy8gbV9mb2N1c2VkTm9kZSBpcyBuZXZlciBk
ZXJlZmVyZW5jZWQsIGp1c3QgZm9yIGNvbXBhcmlzb24gd2hlbiB3ZSBoaXQgc2V0Rm9jdXNlZE5v
ZGUKKyAgICAgICAgLy8gc2luY2UgZm9jdXMgbWlnaHQgY2hhbmdlIHdpdGhvdXQgdGhlIGZvY3Vz
Q29udHJvbGxlciBpbml0aWF0aW5nIGl0LCBhbmQgZXZlbnR1YWxseSBzZXRGb2N1c2VkTm9kZSBp
cyBjYWxsZWQKKyAgICAgICAgLy8gd2hlcmUgd2UgbmVlZCB0byBrbm93IGFib3V0IHRoaXMgZmFj
dAorCisgICAgICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpOworICAgICAg
ICBib29sIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJk
RXZlbnQqKTsKKyAgICAgICAgYm9vbCBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNE
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1cyk7CiAgICAgfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGly
ZWN0aW9uLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAppbmRleCAyNjFjNzQ1Li41
NTFjNzI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaApAQCAtMjksNyArMjksMTEgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBlbnVtIEZvY3VzRGlyZWN0aW9uIHsKICAgICAgICAgRm9jdXNEaXJl
Y3Rpb25Gb3J3YXJkID0gMCwKLSAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZAorICAgICAg
ICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLAorICAgICAgICBGb2N1c0RpcmVjdGlvblVwLAorICAg
ICAgICBGb2N1c0RpcmVjdGlvbkRvd24sCisgICAgICAgIEZvY3VzRGlyZWN0aW9uTGVmdCwKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25SaWdodAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NjlmY2UxYS4uZjNlZjIwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTEzMjQsNiArMTMyNCw5IEBAIHZv
aWQgRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogcCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKICAgICAgICAgZG9jdW1lbnQtPmludmFsaWRhdGVSZW5kZXJlZFJlY3RzRm9y
TWFya2Vyc0luUmVjdChyZWN0KTsKICAgICBjb250ZW50UmVuZGVyZXItPmxheWVyKCktPnBhaW50
KHAsIHJlY3QsIG1fcGFpbnRSZXN0cmljdGlvbiwgZWx0UmVuZGVyZXIpOwogICAgIAorICAgIC8v
IGRyYXcgdGhlIGZvY3VzIGhpZ2hsaWdodHMgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24KKyAgICBm
cmFtZSgpLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5wYWludEZvY3VzKHAsIHJlY3QpOwor
CiAgICAgbV9pc1BhaW50aW5nID0gZmFsc2U7CiAgICAgbV9sYXN0UGFpbnRUaW1lID0gY3VycmVu
dFRpbWUoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggYTAwMGNiZS4uZjE0YjdiNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CkBAIC04OCw2ICs4OCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwg
bV9lbmZvcmNlQ1NTTUlNRVR5cGVJblN0cmljdE1vZGUodHJ1ZSkKICAgICAsIG1fbWF4aW11bURl
Y29kZWRJbWFnZVNpemUoc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKICAgICAs
IG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoZmFsc2UpCisgICAgLCBtX3Nob3VsZFVzZUFy
cm93S2V5c0ZvckRpcmVjdGlvbmFsTmF2aWdhdGlvbih0cnVlKQogewogICAgIC8vIEEgRnJhbWUg
bWF5IG5vdCBoYXZlIGJlZW4gY3JlYXRlZCB5ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21p
Y1N0cmluZyAKICAgICAvLyBoYXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRl
eCAwYTA1OWNiLi4yNDc2N2Y5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAor
KysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTk5LDYgKzE5OSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRNYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShzaXpl
X3Qgc2l6ZSkgeyBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplID0gc2l6ZTsgfQogICAgICAgICBz
aXplX3QgbWF4aW11bURlY29kZWRJbWFnZVNpemUoKSBjb25zdCB7IHJldHVybiBtX21heGltdW1E
ZWNvZGVkSW1hZ2VTaXplOyB9CiAKKyAgICAgICAgdm9pZCBzZXRTaG91bGRVc2VBcnJvd0tleXNG
b3JEaXJlY3Rpb25hbE5hdmlnYXRpb24oYm9vbCBzdGF0dXMpIHsgbV9zaG91bGRVc2VBcnJvd0tl
eXNGb3JEaXJlY3Rpb25hbE5hdmlnYXRpb24gPSBzdGF0dXM7IH0KKyAgICAgICAgYm9vbCBzaG91
bGRVc2VBcnJvd0tleXNGb3JEaXJlY3Rpb25hbE5hdmlnYXRpb24oKSB7IHJldHVybiBtX3Nob3Vs
ZFVzZUFycm93S2V5c0ZvckRpcmVjdGlvbmFsTmF2aWdhdGlvbjsgfQogI2lmIFVTRShTQUZBUklf
VEhFTUUpCiAgICAgICAgIC8vIFdpbmRvd3MgZGVidWdnaW5nIHByZWYgKGdsb2JhbCkgZm9yIHN3
aXRjaGluZyBiZXR3ZWVuIHRoZSBBcXVhIGxvb2sgYW5kIGEgbmF0aXZlIHdpbmRvd3MgbG9vay4K
ICAgICAgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUGFpbnROYXRpdmVDb250cm9scyhib29sKTsK
QEAgLTI2Miw2ICsyNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9l
bmZvcmNlQ1NTTUlNRVR5cGVJblN0cmljdE1vZGUgOiAxOwogICAgICAgICBzaXplX3QgbV9tYXhp
bXVtRGVjb2RlZEltYWdlU2l6ZTsKICAgICAgICAgYm9vbCBtX2FsbG93U2NyaXB0c1RvQ2xvc2VX
aW5kb3dzIDogMTsKKyAgICAgICAgYm9vbCBtX3Nob3VsZFVzZUFycm93S2V5c0ZvckRpcmVjdGlv
bmFsTmF2aWdhdGlvbiA6IDE7CiAKICNpZiBVU0UoU0FGQVJJX1RIRU1FKQogICAgICAgICBzdGF0
aWMgYm9vbCBnU2hvdWxkUGFpbnROYXRpdmVDb250cm9sczsKZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBhMWYyNTA5Li5jYWE2OGE4IDEwMDY0
NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysr
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0zNDQs
MjggKzM0NCwyOCBAQCB2b2lkIEVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXli
b2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgICAgICAgICAgICAgICAgIGtldmVudC0+Y3RybEtl
eSgpID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHksIGZhbHNlLCB0cnVl
KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktfTEVGVDoKLSAg
ICAgICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShrZXZlbnQtPnNoaWZ0S2V5
KCkgPyBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpN
T1ZFLAorICAgICAgICAgICAgICAgIGlmICghIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KGtl
dmVudC0+c2hpZnRLZXkoKSA/IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlv
bkNvbnRyb2xsZXI6Ok1PVkUsCiAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Rpb25Db250
cm9sbGVyOjpMRUZULAogICAgICAgICAgICAgICAgICAgICAgICAga2V2ZW50LT5jdHJsS2V5KCkg
PyBXb3JkR3JhbnVsYXJpdHkgOiBDaGFyYWN0ZXJHcmFudWxhcml0eSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHJldHVybjsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgVktfUklHSFQ6Ci0gICAg
ICAgICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoa2V2ZW50LT5zaGlmdEtleSgp
ID8gU2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9W
RSwKKyAgICAgICAgICAgICAgICBpZiAoISBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShrZXZl
bnQtPnNoaWZ0S2V5KCkgPyBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25D
b250cm9sbGVyOjpNT1ZFLAogICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uQ29udHJv
bGxlcjo6UklHSFQsCiAgICAgICAgICAgICAgICAgICAgICAgICBrZXZlbnQtPmN0cmxLZXkoKSA/
IFdvcmRHcmFudWxhcml0eSA6IENoYXJhY3RlckdyYW51bGFyaXR5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgcmV0dXJuOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBWS19VUDoKLSAgICAgICAg
ICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShrZXZlbnQtPnNoaWZ0S2V5KCkgPyBT
ZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLAor
ICAgICAgICAgICAgICAgIGlmICghIGZyYW1lLT5zZWxlY3Rpb24oKS0+bW9kaWZ5KGtldmVudC0+
c2hpZnRLZXkoKSA/IFNlbGVjdGlvbkNvbnRyb2xsZXI6OkVYVEVORCA6IFNlbGVjdGlvbkNvbnRy
b2xsZXI6Ok1PVkUsCiAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVy
OjpCQUNLV0FSRCwKICAgICAgICAgICAgICAgICAgICAgICAgIGtldmVudC0+Y3RybEtleSgpID8g
UGFyYWdyYXBoR3JhbnVsYXJpdHkgOiBMaW5lR3JhbnVsYXJpdHksCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSByZXR1cm47CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFZLX0RPV046Ci0gICAgICAg
ICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5tb2RpZnkoa2V2ZW50LT5zaGlmdEtleSgpID8g
U2VsZWN0aW9uQ29udHJvbGxlcjo6RVhURU5EIDogU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwK
KyAgICAgICAgICAgICAgICBpZiAoISBmcmFtZS0+c2VsZWN0aW9uKCktPm1vZGlmeShrZXZlbnQt
PnNoaWZ0S2V5KCkgPyBTZWxlY3Rpb25Db250cm9sbGVyOjpFWFRFTkQgOiBTZWxlY3Rpb25Db250
cm9sbGVyOjpNT1ZFLAogICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0aW9uQ29udHJvbGxl
cjo6Rk9SV0FSRCwKICAgICAgICAgICAgICAgICAgICAgICAgIGtldmVudC0+Y3RybEtleSgpID8g
UGFyYWdyYXBoR3JhbnVsYXJpdHkgOiBMaW5lR3JhbnVsYXJpdHksCi0gICAgICAgICAgICAgICAg
ICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSByZXR1cm47CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFZLX1BSSU9SOiAgLy8gUGFn
ZVVwCiAgICAgICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5jb21tYW5kKGtldmVudC0+c2hp
ZnRLZXkoKSA/ICJNb3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiA6ICJNb3ZlUGFnZVVwIiku
ZXhlY3V0ZSgpOwotLSAKMS42LjEuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46370</attachid>
            <date>2010-01-12 06:44:07 -0800</date>
            <delta_ts>2010-01-13 20:36:25 -0800</delta_ts>
            <desc>WIP - Add directional navigation to WebCore (v6)   </desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>51825</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA4OGY2ZmRjN2M0NWE5MTViYjIzYWQ2MjNkMGIxZWQ5YWYyM2IyN2I2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogVHVlLCAxMiBKYW4gMjAxMCAxMDozMzoyNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdHM6IGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aXRhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbAogICAgICAg
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVu
LWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRh
dGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdml0YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4t
ZGlyZWN0aW9uLmh0bWwKCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5o
dG1sOiBBZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2
aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIuaDoKKiBwYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHA6CihXZWJDb3JlOjphYnNvbHV0ZVJlbmRlclJlY3QpOgooV2Vi
Q29yZTo6cmVjdGFuZ2xlRGlzdGFuY2UpOgooV2ViQ29yZTo6aXNQb2ludEFib3ZlTWFpbkRpYWdv
bmFsKToKKFdlYkNvcmU6OmlzUG9pbnRBYm92ZUFudGlkaWFnb25hbCk6CihXZWJDb3JlOjppc1Jl
Y3RBYm92ZU1haW5EaWFnb25hbCk6CihXZWJDb3JlOjppc1JlY3RCZWxvd01haW5EaWFnb25hbCk6
CihXZWJDb3JlOjppc1JlY3RBYm92ZUFudGlkaWFnb25hbCk6CihXZWJDb3JlOjppc1JlY3RCZWxv
d0FudGlkaWFnb25hbCk6CihXZWJDb3JlOjpkaXN0YW5jZUluRGlyZWN0aW9uKToKKFdlYkNvcmU6
OkJlc3RDYW5kaWRhdGU6OkJlc3RDYW5kaWRhdGUpOgooV2ViQ29yZTo6bmV4dEluRGlyZWN0aW9u
KToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKToKKFdlYkNvcmU6OkZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKFdlYkNvcmU6OkZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CiogcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuaDoKKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6CihXZWJDb3JlOjopOgoqIHBhZ2Uv
U2V0dGluZ3MuY3BwOgooV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKFdlYkNvcmU6OlNl
dHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoqIHBhZ2UvU2V0dGluZ3MuaDoK
KFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CgpMYXlvdXRU
ZXN0czoKCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUu
aHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9p
ZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNv
dXJjZXMvaWZyYW1lMy5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRp
b24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgoqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1
c2FibGUtZWxlbWVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRp
b24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpdGF0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xs
LWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRp
b24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysKIC4uLi9zcGF0
aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sICAgICAgIHwgICAgNyArCiAuLi4v
c3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwgICAgICB8ICAgIDcgKwog
Li4uL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sICAgICAgfCAgICA4
ICsKIC4uLi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwg
ICA2NSArKysrKwogLi4uYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50
Lmh0bWwgfCAgIDYwICsrKysrCiAuLi4vc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFibGUtdHJh
dmVyc2FsLmh0bWwgICB8ICAgODcgKysrKysrCiAuLi4vc25hdi10aW55LXRhYmxlLXRyYXZlcnNh
bC5odG1sICAgICAgICAgICAgICAgICB8ICAgOTIgKysrKysrKwogLi4uc25hdi11bml0LW92ZXJm
bG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwgfCAgIDk1ICsrKysrKysKIC4uLi9zcGF0
aWFsLW5hdml0YXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIHwgICA2MiArKysrKwog
V2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQ0
ICsrKwogV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwg
fCAgICA5ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sICAgICAgICAg
ICAgIHwgIDEzNSArKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMzcgKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAgICAgICAgICAgICAgICAgICAgfCAgMjc3ICsrKysrKysrKysrKysrKysrKystCiBX
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggICAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggICAgICAgICAgICAgICAgICAgICAgfCAg
ICA2ICstCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDYgKwogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICsKIDIwIGZpbGVzIGNoYW5nZWQsIDEwMjMgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9p
ZnJhbWUyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LWlmcmFt
ZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNj
cmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0
bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dml0YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi11dGlscy5qcwogY3JlYXRlIG1vZGUgMTAwNzU1IFdlYkNvcmUvbWFudWFsLXRlc3RzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9t
YW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNh
c2VzLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNmYyYTlmOS4uMGNlNGFiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEwLTAxLTEyICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIGtleWJv
YXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICAq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0
YXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25h
di1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFibGUtdHJhdmVy
c2FsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlv
bi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1p
bi1kaXJlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpdGF0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCisKIDIwMTAtMDEt
MTEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkIHRyaXZpYWwgZml4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjQ4YWVhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZy
YW1lLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjEi
IGhyZWY9ImEiPmE8L2E+PGJyPgorICAgIDxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPjxicj4KKyAg
ICA8YSBpZD0iMyIgaHJlZj0iYSI+YTwvYT48YnI+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0
aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjc5MTA0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sCkBAIC0wLDAgKzEsNyBA
QAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPgorICAgIDxh
IGlkPSI1IiBocmVmPSJhIj5hPC9hPgorICAgIDxhIGlkPSI2IiBocmVmPSJhIj5hPC9hPgorICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YTgyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFt
ZTMuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIg
aHJlZj0iYSI+YTwvYT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEwMHB4Ij4KKyAgICAg
IDxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24v
c25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBjMWVhYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlv
bi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDY1IEBA
Cis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyBpZnJhbWUg
dHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBh
bGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlmcmFtZT4gc2hvdWxkIGJl
IGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0
IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAg
IDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHku
CisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0d28gaWZyYW1l
cyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2luZyB0byBvdXRlciBhbiBz
b3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0aGUgaWZyYW1lIG9uIHRo
ZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
c3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAg
IFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAorICAgICAgWyJEb3duIiwgIjMi
XSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBb
IlVwIiwgIjQiXSwKKyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAg
ICBbIlVwIiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRv
IGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5m
b2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAg
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIg
aHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5o
dG1sIj48L2lmcmFtZT48YnI+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUyLmh0
bWwiPjwvaWZyYW1lPgorICAgIDxkaXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZy
YW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4t
Zm9jdXNhYmxlLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4zZjM2Njg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVt
ZW50Lmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3Qg
ZW5zdXJlcyB0aGUgYmFzaWMgaWZyYW1lIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNw
YXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4g
YQorICAgIDxpZnJhbWU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0
aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAg
ICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMg
dG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFsb25nIHRoZSBl
bGVtZW50cyBpbiB0aGUgdHdvIGlmcmFtZXMgaW4gdGhlCisgICAgICAgV2ViIHBhZ2UsIGV2ZW50
dWFsbHkgZ29pbmcgdG8gb3V0ZXIgYW4gc291dGh3YXJkIGxpbmssIGJ1dAorICAgICAgIGdvaW5n
IGJhY2sgdG8gdGhlIGlmcmFtZSBvbiB0aGUgdG9wIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAg
IHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwg
IjIiXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAg
WyJVcCIsICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdj48YSBpZD0ic3RhcnQiIGhy
ZWY9ImEiPmE8L2E+PC9kaXY+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUzLmh0
bWwiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgc2Nyb2xsaW5nPSJhdXRvIj48L2lmcmFtZT48YnI+
CisgICAgPGRpdj48YSBpZD0iZW5kIiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3
MWY1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdml0YXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbApAQCAtMCwwICsxLDg3IEBACis8
aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyB0YWJsZSB0cmF2
ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29y
aXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGluIGEKKyAgICA8dGFibGU+IHNob3VsZCBiZSBhY2Nl
c3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3Ig
U05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBM
b2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAg
IDIpIEZvY3VzIG1vdmVzIGFsb25nIHRocm91Z2ggdGhlIHNwYXJzZWx5IHBvc2l0aW9uZWQgZWxl
bWVudHMKKyAgICAgICBpbiB0aGUgdGFibGUsIGV2ZW50dWFsbHkgZ29pbmcgdG8gYW4gb3V0ZXIg
c291dGh3YXJkIGxpbmssCisgICAgICAgYnV0IGdvaW5nIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBs
YXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFs
LW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3du
IiwgIjEiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAg
ICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0Iiwg
IjgiXSwKKyAgICAgIFsiUmlnaHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBb
IlVwIiwgIjMiXSwKKyAgICAgIFsiTGVmdCIsICIyIl0sCisgICAgICBbIkxlZnQiLCAiMSJdLAor
ICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgewor
ICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4K
KyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAg
IHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5UZXN0IHRhYmxl
IHRyYXZlcnNhbDxhPgorICAgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6
IDEwMCU7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3JkZXI9IjEi
IGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMSI+CisgICAgICA8dGJvZHk+CisgICAgICAg
IDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGlkPSIxIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRk
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0i
MiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjMiIGhyZWY9ImEiPmE8L2E+PC90
ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVy
dGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjQiIGhyZWY9ImEi
PmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI1IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iNiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+
CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij48YSBpZD0iNyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHls
ZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjgiIGhy
ZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI5IiBocmVmPSJhIj5hPC9hPjwvdGQ+Cisg
ICAgICAgIDwvdHI+CisgICAgICA8L3Rib2R5PgorICAgIDwvdGFibGU+CisgICAgPGRpdiBzdHls
ZT0nbWFyZ2luLXRvcDoxMDBweCc+CisgICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj5FbmQgb2Yg
dGFibGUgdHJhdmVyc2FsIHRlc3Q8YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRpbnkt
dGFibGUtdHJhdmVyc2FsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NDdhNjU0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aXRhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwKQEAgLTAsMCArMSw5
MiBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFi
bGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2
KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPHRhYmxlPiBzaG91bGQg
YmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBv
cnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6Cisg
ICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxs
eS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUgZWxlbWVudHMgaW4gdGhlIHRhYmxlLCBl
dmVudHVhbGx5CisgICAgICAgZ29pbmcgdG8gb3V0ZXIgc291dGh3YXJkIGFuZCBlYXN0d2FyZCBs
aW5rcywgYnV0IGdvaW5nCisgICAgICAgYmFjayBpbnNpZGUgdGhlIHRhYmxlIGxhdGVyIG9uLgor
ICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlv
bi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAor
ICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI3Il0sCisgICAgICBbIkRvd24i
LCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjciXSwKKyAgICAgIFsiUmlnaHQiLCAiOCJdLAorICAg
ICAgWyJSaWdodCIsICI5Il0sCisgICAgICBbIlVwIiwgIjYiXSwKKyAgICAgIFsiUmlnaHQiLCAi
cmlnaHQiXSwKKyAgICAgIFsiTGVmdCIsICI2Il0sCisgICAgICBbIlVwIiwgIjMiXSwKKyAgICAg
IFsiTGVmdCIsICIyIl0sCisgICAgICBbIkxlZnQiLCAiMSJdLAorICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNl
S2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcg
dGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFi
bGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQo
KQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cu
b25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9k
eSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5hPC9hPjxicj4KKyAgICA8dGFibGU+CisgICAg
ICA8dGJvZHk+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTog
c21hbGw7Ij48YSBpZD0iMSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHls
ZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAg
ICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjMiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHls
ZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAg
ICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjUiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0i
NiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAg
ICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjciIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0i
OCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBz
bWFsbDsiPjxhIGlkPSI5IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAg
ICA8L3Rib2R5PgorICAgIDwvdGFibGU+CisgICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRvcDo4cHgn
PgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTxhPgorICAgIDwvZGl2PgorICAgIDxkaXYg
c3R5bGU9Im1hcmdpbi1sZWZ0OiA1MHB4OyBtYXJnaW4tdG9wOi03MHB4Ij4KKyAgICAgIDxhIGlk
PSJyaWdodCIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tIj5hPC9hPgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0
LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwt
aW4tZGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc3
YzgwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aXRhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRt
bApAQCAtMCwwICsxLDk1IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVz
IHRoZSBjb3JyZWN0bmVzcyB0aGUgZm9sbG93aW5nIFNwYXRpYWwgTmF2aWdhdGlvbgorICAgIChT
TmF2KSBhbGdvcml0aG0gZmVhdHVyZXMuCisKKyAgICAxKSBUaGVyZSBpcyBubyB1bml0IG92ZXJm
bG93IGluIHRoZSBTTmF2IGFsZ29yaXRobSB3aGlsZSBjYWxjdWxhdGluZworICAgICAgIHRoZSBi
ZXN0IG5vZGUgY2FuZGlkYXRlIHRvIG1vdmUgZm9jdXMgdG8uIFRvIHRlc3QgdGhhdCB0aGlzIHBh
Z2UKKyAgICAgICBwb3NpdGlvbnMgc29tZSBlbGVtZW50cyAxMDAwMDAwMCBwaXhlbHMgZmFyIGZy
b20gZWFjaCBvdGhlciAoZGlzdGFuY2UKKyAgICAgICB0aGF0IGNhbiBjb25zaWRlcmVkIGxhcmdl
IGVub3VnaCBmb3IgbW9zdCBvZiB0aGUgV2ViIFBhZ2VzIG9uIHRoZQorICAgICAgIEludGVybmV0
KS4KKworICAgIDIpIE1ha2Ugc3VyZSB0aGF0IGEgYmVzdCBmb2N1c2FibGUgY2FuZGlkYXRlIG9u
bHkgZ2V0cyBmb2N1c2VkCisgICAgICAgaWYgaXQgaXMgdmlzaWJsZSBpbiB0aGUgY3VycmVudGwg
Vmlld3BvcnQuIFNjcm9sbC1pbi1kaXJlY3Rpb24KKyAgICAgICBpcyBwZXJmb3JtZWQgb3RoZXJ3
aXNlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05h
diBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2Fk
cyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIp
IEF0dGVtcHQgdG8gbW92ZSBmb2N1cyBkb3duIHRvICJlbmQuIEFzIGl0IGlzIHRvbyBmYXIgYW5k
IG91dCBvZgorICAgICAgIHZpZXdwb3J0LCBmb2N1cyBjaGFuZ2Ugd2lsbCBub3QgaGFwcGVuIGFu
ZCBwYWdlIHdpbGwgYmUgc2Nyb2xsZWQKKyAgICAgICBhIHN0ZXAgZG93bi4KKyAgICAzKSBCeSBz
ZW5kaW5nIGFuICJFbmQiIGtleXByZXNzLCBwYWdlIGdldHMgc2Nyb2xsZWQgZG93biB0byBhIHBs
YWNlCisgICAgICAgd2hlcmUgdGhlICJlbmQiIG5vZGUgZ2V0cyB2aXNpYmxlIGluIHRoZSB2aWV3
cG9ydC4KKyAgICA0KSBTdGVwIF8xXyBpcyByYW4gYWdhaW4sIGFuZCAiZW5kIiBnZXRzIGZvY3Vz
ZWQuIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0
aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZTEgPSBbCisgICAgICBbIkRvd24iLCAic3Rh
cnQiXSwKKyAgICAgIFsiIiwgIiJdCisgICAgXTsKKworICAgIHZhciBtb3ZlVGFibGUyID0gWwor
ICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxm
OiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
dGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHNldFRpbWVvdXQoc3RlcDEgLCAwKTsKKyAgICAgIHNl
dFRpbWVvdXQoc3RlcDIgLCA1MDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAg
ICB7CisgICAgICAvLyBBY3Rpb25zIGluICdtb3ZlVGFibGUxJyBzaG91bGQga2VlcCB0aGUgZm9j
dXMgaW4gdGhlIGN1cnJlbnRseQorICAgICAgLy8gZm9jdXNlZCBlbGVtZW50ICgnc3RhcnQnKSBv
bmNlIHRoZSBiZXN0IGNhbmRpZGF0ZSAoJ2VuZCcpIGlzIG5vdAorICAgICAgLy8gdmlzaWJsZSBp
biBjdXJyZW50IHZpZXdwb3J0LgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTEpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICBzaG91bGRCZVRydWUoU3RyaW5n
KGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICE9IDApKTsKKworICAgICAgLy8gVGhlbiBpdCBzY3Jv
bGxzIGRvd24gdG8gdGhlIGVuZCBvZiB0aGUgcGFnZSAuLi4KKyAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVuZCIpOworCisgICAgICAv
LyBBbmQgJ21vdmVUYWJsZTInIHJlLXRyaWVzIHRvIG1vdmUgZm9jdXMgZG93bi4KKyAgICAgIHRl
c3RNb3Zlcyhtb3ZlVGFibGUyLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+U3RhcnQ8L2E+Cisg
ICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRvcDoxMDAwMDAwMDBweCc+CisgICAgICAgIDxhIGlkPSJl
bmQiIGhyZWY9ImEiPkVuZDwvYT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zcGF0aWFsLW5hdmlnYXRp
b24tdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUyYWYxYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRh
dGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMKQEAgLTAsMCArMSw2MiBAQAordmFyIF9t
b3ZlVGFibGU7Cit2YXIgX21vdmVUYWJsZUluZGV4ID0gMDsKK3ZhciBfY29tcGxldGVkQ2FsbGJh
Y2sgPSBudWxsOworCitmdW5jdGlvbiB0ZXN0TW92ZXModGFibGUsIGNvbXBsZXRlZENiKSB7Cisg
ICAvLyBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIF92ZXJpZnlBbmRBZHZhbmNl
LCB0cnVlKTsKKworICBfbW92ZVRhYmxlID0gdGFibGU7CisgIF9tb3ZlVGFibGVJbmRleCA9IDA7
CisgIF9jb21wbGV0ZWRDYWxsYmFjayA9IGNvbXBsZXRlZENiOworICBfbW92ZSgpOworfQorCitm
dW5jdGlvbiBfbmV4dE1vdmUoKQoreworICBfbW92ZVRhYmxlSW5kZXgrKzsKKworICAvLyBXaGVu
IGEgdGFibGUgZW5kcyB3aXRoICJET05FIiwgY2FsbCB0aGUgY29tcGxldGlvbiBjYWxsYmFjay4K
KyAgaWYgKF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXSA9PSAiRE9ORSIpCisgICAgaWYg
KF9jb21wbGV0ZWRDYWxsYmFjaykgeworICAgICAgX2NvbXBsZXRlZENhbGxiYWNrKCk7CisgICAg
ICByZXR1cm47CisgICAgfQorCisgIC8vIHdoZW4gYSB0YWJsZSBoYXMgYW4gZW1wdHkgZWxlbWVu
dCwgZW5kIHRoZSBtb3Zlcy4KKyAgaWYgKF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXSA9
PSAiIikKKyAgICByZXR1cm47CisKKyAgX21vdmUoKTsKK30KKworZnVuY3Rpb24gX21vdmUoKQor
eworICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudHMnKTsK
KyAgZXZlbnQuaW5pdEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVu
dC5kZWZhdWx0VmlldywgX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdLCAwLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2
ZW50KTsKKworICBzZXRUaW1lb3V0KCBfdmVyaWZ5QW5kQWR2YW5jZSAsIDEwMCk7Cit9CisKK2Z1
bmN0aW9uIF92ZXJpZnlBbmRBZHZhbmNlKCkKK3sKKyAgdmFyIGRpcmVjdGlvbiA9IF9tb3ZlVGFi
bGVbX21vdmVUYWJsZUluZGV4XVswXTsKKyAgdmFyIGV4cGVjdGVkSUQgPSBfbW92ZVRhYmxlW19t
b3ZlVGFibGVJbmRleF1bMV07CisKKyAgdmFyIGkgPSAwOworICB2YXIgbWFpbkZyYW1lSGFzRm9j
dXMgPSB0cnVlOworICBmb3IoOyBpIDwgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzLmxlbmd0
aDsgaSsrKQorICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbaV0uZG9jdW1lbnQu
aGFzRm9jdXMoKSkgeworICAgICAgbWFpbkZyYW1lSGFzRm9jdXMgPSBmYWxzZTsKKyAgICAgIGJy
ZWFrOworICAgIH0KKworICAvLyB0aGlzIHN1cHBvcnQgZnJhbWVzIG5lc3RlZCBpbiBvbmUgbGV2
ZWwgZGVlcCBvbmx5LgorICBpZiAobWFpbkZyYW1lSGFzRm9jdXMpCisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcImlkXCIpIiwg
ZXhwZWN0ZWRJRCk7CisgIGVsc2UKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmRlZmF1bHRWaWV3LmZyYW1lc1siICsgaSArICJdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsKKworICBfbmV4dE1vdmUoKTsKK30KKwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBl
NDkwOTljLi4zZWMwYmY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEwLTAxLTEyICBBbnRvbmlvIEdvbWVz
ICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXh0ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGly
ZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpdGF0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtd2l0aC1v
ZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJh
dmVyc2FsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlv
bi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAorCisgICAg
ICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxl
cik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjphYnNvbHV0ZVJlbmRlclJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6cmVjdGFuZ2xlRGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
aXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmlzUG9pbnRBYm92
ZUFudGlkaWFnb25hbCk6CisgICAgICAgIChXZWJDb3JlOjppc1JlY3RBYm92ZU1haW5EaWFnb25h
bCk6CisgICAgICAgIChXZWJDb3JlOjppc1JlY3RCZWxvd01haW5EaWFnb25hbCk6CisgICAgICAg
IChXZWJDb3JlOjppc1JlY3RBYm92ZUFudGlkaWFnb25hbCk6CisgICAgICAgIChXZWJDb3JlOjpp
c1JlY3RCZWxvd0FudGlkaWFnb25hbCk6CisgICAgICAgIChXZWJDb3JlOjpkaXN0YW5jZUluRGly
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJlc3RDYW5kaWRhdGU6OkJlc3RDYW5kaWRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6bmV4dEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CisgICAgICAg
ICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzRGlyZWN0aW9u
Lmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZCk6CisKIDIwMTAtMDEtMTEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBBdHRlbXB0IHRvIGZpeCB3aW5k
b3dzIGJ1aWxkcywgYnkgcmVtb3ZpbmcgdGhlIG5vLWxvbmdlciBleGlzdGFudCBKU1NWR1BvaW50
TGlzdEN1c3RvbS5jcHAgZnJvbSBKU0JpbmRpbmdzQWxsSW5PbmUuY3BwLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwgYi9XZWJD
b3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDZlZDdjCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKQEAgLTAsMCAr
MSw5IEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+Cis8YSBocmVmPSJhIj5h
PC9hPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxhIGhyZWY9ImEiPmE8L2E+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24v
c3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3Rz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyODM0NmQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXRlc3QtY2FzZXMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPCFET0NUWVBFIGh0bWwg
UFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQv
aHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlNwYXRpYWwgTmF2aWdhdGlvbiBU
ZXN0IENhc2VzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgorICA8aDEgc3R5bGU9InRleHQtYWxpZ246
IGxlZnQ7Ij5TcGF0aWFsIE5hdmlnYXRpb24gRnVuPC9oMT4KKyAgPGgyIHN0eWxlPSJ0ZXh0LWFs
aWduOiBsZWZ0OyI+M3gzIENlbnRlcmVkIFRhYmxlIFRlc3Q8L2gyPgorPC9kaXY+Cis8dGFibGUg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsg
bWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNp
bmc9IjIiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+
CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRl
cjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwt
YWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3Rk
PgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAg
ICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxh
IGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAg
IDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQg
c3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9
ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwvdHI+
CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxicj4KKyAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsi
PgorICAgIDxoMj5WZXJ0aWNhbCBTaW5lIFRlc3Q8L2gyPjxicj4KKyAgPC9kaXY+CisgIDxkaXYg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4K
KyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPjxhIGhyZWY9ImEiPnRlc3Q8YnI+
PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICA8
YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0OiA0MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8
YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7
Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9
Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwv
ZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhyZWY9ImEi
PnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+Jm5ic3A7
Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorCisgIDxoMj5JbmNyZWFzaW5n
IHNlbnRlbmNlIGxlbmd0aDwvaDI+CisgIDxhIGhyZWY9ImEiPkg8L2E+PGJyPgorICA8YSBocmVm
PSJwIj5Ibzxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdzxicj48L2E+CisgIDxhIGhyZWY9InAi
PkhvdyA8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgTjwvYT48YnI+CisgIDxhIGhyZWY9InAi
PkhvdyBObzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3c8L2E+PGJyPgorICA8YSBocmVm
PSJwIj5Ib3cgTm93IDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT48YnI+Cisg
IDxhIGhyZWY9InAiPkhvdyBOb3cgQnI8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
bzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOb3cgQnJvd248L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIDwv
YT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOb3cgQnJvd24gQ288L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3du
IENvdzwvYT48YnI+CisgIDxicj4KKyAgPGgyPlNwbGl0IHNlbnRlbmNlPGJyPjwvaDI+CisgIDxi
cj4KKyAgPGEgaHJlZj0icCI+SDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEgaHJlZj0icCI+b3cgTm93IEJyb3du
IENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgTm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4KKyAg
PGEgaHJlZj0icCI+SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgQnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ccm93biBD
b3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+cm93
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vd24g
Q293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnduIENv
dzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
PGEgaHJlZj0icCI+biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duPC9h
PiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7IDxhIGhyZWY9InAiPkNvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cg
QnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBO
b3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd24gQ293PC9hPjxicj48YnI+CisgIDxoMj5MaW5lIFdyYXAgVGVzdDwvaDI+PGJy
PgorICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAzOTNweDsgaGVpZ2h0
OiA3MnB4OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAg
IDx0Ym9keT4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyI+CisgICAgICAgICAgPHNwYW4gY2xhc3M9Imh1Z2UiPgorICAgICAgICAgICAgPGEgaHJl
Zj0iYSI+V2hpY2ggb2YgdGhlIGZvbGxvd2luZyBjb25zdGFuc3QgZG8geW91IGxpa2UgdGhlIG1v
c3QsIG9uZSBpcyBnLCBvbmUgaXMgcGksIGFuZCB0aGUgb3RoZXIgaXMgZS4gPC9hPjxicj4KKyAg
ICAgICAgICA8L3NwYW4+PC90ZD4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+My4xNDwvYT48YnI+CisgICAgICAgICAgPGEg
aHJlZj0iYSI+Mi43MTwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Ni42NzwvYT48YnI+
CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFibGU+PGJy
PgorICA8aDI+SmF2YXNjcmlwdCBGb2N1cy9CbHVyIFRlc3Q8L2gyPgorICAgIFdoZW4gZ29pbmcg
dG8gYW55IGxpbmsgZnJvbSB0aGUgZm9sbG93aW5nIGxpbmssIHlvdSBzaG91bGQgc2VlIGEgZGlh
bG9nLjxicj48YnI+CisgIDxhIGhyZWY9ImEiIG9uYmx1cj0nYWxlcnQoIm9uQmx1cnQiKSc+VGVz
dDwvYT48YnI+PGJyPgorCisgIDxoMj5GcmFtZVNldHM8L2gyPiA8YnI+CisgIDxmcmFtZXNldCBj
b2xzPSIyNSUsMjUlLCoiPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJh
bWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICA8
L2ZyYW1lc2V0PgorICA8YnI+PGJyPgorCisgIDxoMj5JRnJhbWVzPC9oMj48YnI+CisgIDxpZnJh
bWUgc3JjPSJsaW5rcy5odG1sIj48L2lmcmFtZT48YnI+PGJyPjxicj4KKyAgPGgyPkRJVnM8L2gy
Pjxicj4KKyAgPGRpdiBpZD12PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPGRpdiBpZD0i
RGl2MSI+CisgICAgICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGEgaHJl
Zj0iYSI+YTwvYT4KKyAgPC9kaXY+PGJyPjxicj4KKyAgPC9kaXY+CisgIDwvZGl2PgorICA8YSBo
cmVmPSJsYXN0Ij5sYXN0PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCBhZGQ1YWRlLi41N2UwODI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjE1Niw2ICsy
MTU2LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGV2
ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSIpCiAgICAgICAgICAgICBkZWZhdWx0VGFi
RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgZWxzZSBpZiAoRm9jdXNEaXJlY3Rpb24gZGly
ZWN0aW9uID0gaXNBcnJvd0tleShldmVudC0+a2V5SWRlbnRpZmllcigpKSkKKyAgICAgICAgICAg
IGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKIAogICAgICAgIC8v
IHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNz
aWJpbGl0eSB1c2VycwogICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5o
YW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpKQpAQCAtMjE3MCw2ICsyMTcyLDIwIEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCiAgICAgfQogfQogCitGb2N1c0RpcmVjdGlvbiBFdmVudEhhbmRsZXI6OmlzQXJyb3dL
ZXkoY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyKQoreworICAgIGlmIChrZXlJZGVudGlmaWVy
ID09ICJEb3duIikKKyAgICAgICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uRG93bjsKKyAgICBlbHNl
IGlmIChrZXlJZGVudGlmaWVyID09ICJVcCIpCisgICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlv
blVwOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKQorICAgICAgICByZXR1
cm4gRm9jdXNEaXJlY3Rpb25MZWZ0OworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIlJp
Z2h0IikKKyAgICAgICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisKKyAgICByZXR1cm4g
KEZvY3VzRGlyZWN0aW9uKSAwOworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIGJvb2wg
RXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmIGZs
b2F0RHJhZ1ZpZXdwb3J0TG9jYXRpb24pIGNvbnN0CiB7CkBAIC0yNDYyLDYgKzI0NzgsMjcgQEAg
dm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50
KiBldmVudCkKIAogI2VuZGlmCiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJyb3dFdmVu
dEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2
ZW50KQoreworICAgIGlmIChldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5KCkgfHwg
ZXZlbnQtPmFsdEdyYXBoS2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgIXBhZ2UtPnNl
dHRpbmdzKCktPmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIEFycm93cyBhbmQgb3RoZXIgcG9zc2libGUgZGlyZWN0aW9uYWwgbmF2aWdhdGlv
biBrZXlzIGNhbiBiZSB1c2VkIGluIGRlc2lnbgorICAgIC8vIG1vZGUgZWRpdGluZy4KKyAgICBp
ZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZvY3VzKGZvY3VzRGly
ZWN0aW9uLCBldmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworfQor
CiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50
KiBldmVudCkKIHsKICAgICAvLyBXZSBzaG91bGQgb25seSBhZHZhbmNlIGZvY3VzIG9uIHRhYnMg
aWYgbm8gc3BlY2lhbCBtb2RpZmllciBrZXlzIGFyZSBoZWxkIGRvd24uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
aW5kZXggNmExMmU3MC4uZjdiM2QyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjcsNiArMjcsNyBA
QAogI2RlZmluZSBFdmVudEhhbmRsZXJfaAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKKyNp
bmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTMwMSw2
ICszMDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIo
S2V5Ym9hcmRFdmVudCopOwogICAgIHZvaWQgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50Kik7CisgICAgdm9pZCBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rp
b24sIEtleWJvYXJkRXZlbnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9p
ZCBhbGxvd0RIVE1MRHJhZyhib29sJiBmbGFnREhUTUwsIGJvb2wmIGZsYWdVQSkgY29uc3Q7CkBA
IC0zMjMsNiArMzI1LDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHNldEZyYW1lV2FzU2Ny
b2xsZWRCeVVzZXIoKTsKIAorICAgIEZvY3VzRGlyZWN0aW9uIGlzQXJyb3dLZXkoY29uc3QgU3Ry
aW5nJik7CisKICAgICBib29sIGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2Nh
cHR1cmVzRHJhZ2dpbmc7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNf
XykgJiYgIUVOQUJMRShFWFBFUklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKaW5kZXggNWU3OGM3ZC4uNDU3NjBkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkZvY3VzQ29udHJvbGxlci5oIgotCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkFY
T2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtNTUsNiArNTUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogc3RhdGljIGlubGluZSB2b2lk
IGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgZm9jdXNlZCkKIHsKQEAgLTE0Niw4ICsxNDcsMjA5IEBAIGJvb2wgRm9jdXNDb250cm9s
bGVyOjpzZXRJbml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2
ZW50KiBlCiAgICAgcmV0dXJuIGFkdmFuY2VGb2N1cyhkaXJlY3Rpb24sIGV2ZW50LCB0cnVlKTsK
IH0KIAorLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgZmxhd2VkIGJlY2F1c2UgaXQgZG9lc24n
dCBjb25zaWRlciB0aGUgZWZmZWN0cyBvZiBDU1Mgb3IgU1ZHIHRyYW5zZm9ybXMuCitzdGF0aWMg
aW5saW5lIEludFJlY3QgYWJzb2x1dGVSZW5kZXJSZWN0KFJlbmRlck9iamVjdCogcmVuZGVyKQor
eworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1
dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworCisgICAgLy8gaGFuZGxlIG5lc3RlZCBmcmFtZXMu
CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSByZW5kZXItPmRvY3VtZW50KCktPmZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpKQorICAgICAgICBpZihIVE1MRnJh
bWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1lbnQoKSkKKyAg
ICAgICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPm9mZnNldExlZnQoKSwgb3duZXJFbGVt
ZW50LT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVjdDsKK30KKworc3RhdGljIGlubGlu
ZSBsb25nIGxvbmcgcmVjdGFuZ2xlRGlzdGFuY2UoSW50UmVjdCYgcmVjdDEsIEludFJlY3QmIHJl
Y3QyKQoreworICAgIGxvbmcgbG9uZyB4RGlzdCA9IDA7CisgICAgaWYgKHJlY3QxLngoKSA+IHJl
Y3QyLnJpZ2h0KCkpCisgICAgICAgIHhEaXN0ID0gcmVjdDEueCgpIC0gcmVjdDIucmlnaHQoKTsK
KyAgICBlbHNlIGlmIChyZWN0Mi54KCkgPiByZWN0MS5yaWdodCgpKQorICAgICAgICB4RGlzdCA9
IHJlY3QyLngoKSAtIHJlY3QxLnJpZ2h0KCk7CisKKyAgICBsb25nIGxvbmcgeURpc3QgPSAwOwor
ICAgIGlmIChyZWN0MS55KCkgPiByZWN0Mi5ib3R0b20oKSkKKyAgICAgICAgeURpc3QgPSByZWN0
MS55KCkgLSByZWN0Mi5ib3R0b20oKTsKKyAgICBlbHNlIGlmIChyZWN0Mi55KCkgPiByZWN0MS5i
b3R0b20oKSkKKyAgICAgICAgeURpc3QgPSByZWN0Mi55KCkgLSByZWN0MS5ib3R0b20oKTsKKwor
ICAgIHJldHVybiB4RGlzdCAqIHhEaXN0ICsgeURpc3QgKiB5RGlzdDsKK30KKworaW5saW5lIHN0
YXRpYyBib29sIGlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChjb25zdCBJbnRQb2ludCYgcmVjdFBv
aW50LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCit7CisgICAgLy8gQ2hlY2sgaWYgcG9pbnQgaXMg
YWJvdmUgdGhlIHkgPSB4ICsgYyBsaW5lIHBhc3NpbmcgdGhyb3VnaCByZWN0UG9pbnQuCisgICAg
cmV0dXJuIHJlY3RQb2ludC54KCkgLSByZWN0UG9pbnQueSgpIDwgcG9pbnQueCgpIC0gcG9pbnQu
eSgpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNQb2ludEFib3ZlQW50aWRpYWdvbmFsKGNv
bnN0IEludFBvaW50JiByZWN0UG9pbnQsIGNvbnN0IEludFBvaW50JiBwb2ludCkKK3sKKyAgICAv
LyBDaGVjayBpZiBwb2ludCBpcyBhYm92ZSB0aGUgeSA9IC14ICsgYyBsaW5lIHBhc3NpbmcgdGhy
b3VnaCByZWN0UG9pbnQuCisgICAgcmV0dXJuIHJlY3RQb2ludC54KCkgKyByZWN0UG9pbnQueSgp
ID4gcG9pbnQueCgpICsgcG9pbnQueSgpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNSZWN0
QWJvdmVNYWluRGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKK3sKKyAgICAvLyBDaGVjayBpZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVj
dCBhcmUgYWJvdmUgdGhlIHkgPSB4ICsgYyBsaW5lIHBhc3NpbmcKKyAgICAvLyB0aHJvdWdoIHJl
Y3RQb2ludC4KKyAgICByZXR1cm4gaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwg
cmVjdC5sb2NhdGlvbigpKQorICAgICAgICAgICB8fCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwo
cmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QueSgpKSkKKyAgICAgICAgICAg
fHwgaXNQb2ludEFib3ZlTWFpbkRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC54KCks
IHJlY3QuYm90dG9tKCkpKQorICAgICAgICAgICB8fCBpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwo
cmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0KCksIHJlY3QuYm90dG9tKCkpKTsKK30KKwor
aW5saW5lIHN0YXRpYyBib29sIGlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKGNvbnN0IEludFBvaW50
JiByZWN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgLy8gQ2hlY2sgaWYgc29t
ZSBwb2ludHMgYmVsb25naW5nIHRvIHJlY3QgYXJlIGJlbG93IHRoZSB5ID0geCArIGMgbGluZSBw
YXNzaW5nCisgICAgLy8gdGhyb3VnaCByZWN0UG9pbnQuCisgICAgcmV0dXJuICFpc1BvaW50QWJv
dmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCByZWN0LmxvY2F0aW9uKCkpCisgICAgICAgICAgIHx8
ICFpc1BvaW50QWJvdmVNYWluRGlhZ29uYWwocmVjdFBvaW50LCBJbnRQb2ludChyZWN0LnJpZ2h0
KCksIHJlY3QueSgpKSkKKyAgICAgICAgICAgfHwgIWlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChy
ZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCByZWN0LmJvdHRvbSgpKSkKKyAgICAgICAgICAg
fHwgIWlzUG9pbnRBYm92ZU1haW5EaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3Qucmln
aHQoKSwgcmVjdC5ib3R0b20oKSkpOworfQorCitpbmxpbmUgc3RhdGljIGJvb2wgaXNSZWN0QWJv
dmVBbnRpZGlhZ29uYWwoY29uc3QgSW50UG9pbnQmIHJlY3RQb2ludCwgY29uc3QgSW50UmVjdCYg
cmVjdCkKK3sKKyAgICAvLyBDaGVjayBpZiBzb21lIHBvaW50cyBiZWxvbmdpbmcgdG8gcmVjdCBh
cmUgYWJvdmUgdGhlIHkgPSAteCArIGMgbGluZSBwYXNzaW5nCisgICAgLy8gdGhyb3VnaCByZWN0
UG9pbnQuCisgICAgcmV0dXJuIGlzUG9pbnRBYm92ZUFudGlkaWFnb25hbChyZWN0UG9pbnQsIHJl
Y3QubG9jYXRpb24oKSkKKyAgICAgICAgICAgfHwgaXNQb2ludEFib3ZlQW50aWRpYWdvbmFsKHJl
Y3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LnkoKSkpCisgICAgICAgICAgIHx8
IGlzUG9pbnRBYm92ZUFudGlkaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QueCgpLCBy
ZWN0LmJvdHRvbSgpKSkKKyAgICAgICAgICAgfHwgaXNQb2ludEFib3ZlQW50aWRpYWdvbmFsKHJl
Y3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdodCgpLCByZWN0LmJvdHRvbSgpKSk7Cit9CisKK2lu
bGluZSBzdGF0aWMgYm9vbCBpc1JlY3RCZWxvd0FudGlkaWFnb25hbChjb25zdCBJbnRQb2ludCYg
cmVjdFBvaW50LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIC8vIENoZWNrIGlmIHNvbWUg
cG9pbnRzIGJlbG9uZ2luZyB0byByZWN0IGFyZSBiZWxvdyB0aGUgeSA9IC14ICsgYyBsaW5lIHBh
c3NpbmcKKyAgICAvLyB0aHJvdWdoIHJlY3RQb2ludC4KKyAgICByZXR1cm4gIWlzUG9pbnRBYm92
ZUFudGlkaWFnb25hbChyZWN0UG9pbnQsIHJlY3QubG9jYXRpb24oKSkKKyAgICAgICAgICAgfHwg
IWlzUG9pbnRBYm92ZUFudGlkaWFnb25hbChyZWN0UG9pbnQsIEludFBvaW50KHJlY3QucmlnaHQo
KSwgcmVjdC55KCkpKQorICAgICAgICAgICB8fCAhaXNQb2ludEFib3ZlQW50aWRpYWdvbmFsKHJl
Y3RQb2ludCwgSW50UG9pbnQocmVjdC54KCksIHJlY3QuYm90dG9tKCkpKQorICAgICAgICAgICB8
fCAhaXNQb2ludEFib3ZlQW50aWRpYWdvbmFsKHJlY3RQb2ludCwgSW50UG9pbnQocmVjdC5yaWdo
dCgpLCByZWN0LmJvdHRvbSgpKSk7Cit9CisKK3N0YXRpYyBsb25nIGxvbmcgZGlzdGFuY2VJbkRp
cmVjdGlvbihOb2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
LCBjb25zdCBJbnRSZWN0JiB2aWV3cG9ydFJlY3QpCit7CisgICAgUmVuZGVyT2JqZWN0KiBzdGFy
dFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJlcigpOworICAgIEludFJlY3Qgc3RhcnRSZWN0KGFic29s
dXRlUmVuZGVyUmVjdChzdGFydFJlbmRlcikpOworCisgICAgUmVuZGVyT2JqZWN0KiBkZXN0UmVu
ZGVyID0gZGVzdC0+cmVuZGVyZXIoKTsKKyAgICBJbnRSZWN0IGRlc3RSZWN0KGFic29sdXRlUmVu
ZGVyUmVjdChkZXN0UmVuZGVyKSk7CisgICAgcHJpbnRmKCJcdHJlY3QueD0lZCA9IHJlY3QueT0l
ZFxuIiwgZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCkpOworCisgICAgLy8gSW4gb3JkZXIgdG8g
YXZvaWQgY3JhenkganVtcCBiZXR3ZWVuIGxpbmtzIHRoYXQgYXJlIGVpdGhlciBmYXIgYXdheSBm
cm9tIGVhY2ggb3RoZXIsCisgICAgLy8gb3IganVzdCBub3QgY3VycmVudGx5IHZpc2libGUsIGxl
dHMgYmFpbCBvdXQgaWYgdGhlIGRlc3RpbmF0aW9uIGZvY3VzYWJsZSBlbGVtZW50IGlzCisgICAg
Ly8gbm90IGluIHRoZSB2aWV3cG9ydC4KKyAgICBpZiAoIXZpZXdwb3J0UmVjdC5pbnRlcnNlY3Rz
KGRlc3RSZWN0KSkKKyAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1h
eCgpOworCisgICAgLy8gVGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBvZiB0d28gY29uc2VjdXRpdmUg
bGlua3MgY291bGQgb3ZlcmxhcCwgc28gd2UgZGVjcmVhc2UgdGhlIHNpemUKKyAgICAvLyBvZiBi
b3RoIHJlY3RhbmdsZXMuCisgICAgLy8gRklYTUU6IGFkZCB0ZXN0cy4KKyAgICBzdGFydFJlY3Qu
aW5mbGF0ZSgtNCk7CisgICAgZGVzdFJlY3QuaW5mbGF0ZSgtNCk7CisKKyAgICAvLyBBIG1vdmVt
ZW50IHRvIHRoZSByaWdodCBpcyBhbGxvd2VkIG9ubHkgaWYgdGhlIGRlc3RpbmF0aW9uIHJlY3Rh
bmdsZSBpcyBpbiB0aGUgcmVnaW9uCisgICAgLy8gZGVsaW1pdGVkIGJ5IHRoZSByaWdodCBzaWRl
IG9mIHRoZSBzdGFydCByZWN0YW5nbGUgYW5kIHRoZSB0d28gZGlhZ29uYWxzIHN0YXJ0aW5nIGZy
b20KKyAgICAvLyBpdHMgdmVydGljZXMuIFRoZSBzYW1lIGlzIGRvbmUgZm9yIHRoZSBvdGhlciBk
aXJlY3Rpb25zLgorICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVj
dGlvblJpZ2h0OgorICAgICAgICBpZiAoZGVzdFJlY3QucmlnaHQoKSA8PSBzdGFydFJlY3Qucmln
aHQoKQorICAgICAgICAgICAgfHwgIWlzUmVjdEJlbG93QW50aWRpYWdvbmFsKEludFBvaW50KHN0
YXJ0UmVjdC5yaWdodCgpLCBzdGFydFJlY3QueSgpKSwgZGVzdFJlY3QpCisgICAgICAgICAgICB8
fCAhaXNSZWN0QWJvdmVNYWluRGlhZ29uYWwoSW50UG9pbnQoc3RhcnRSZWN0LnJpZ2h0KCksIHN0
YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KSkKKyAgICAgICAgICAgIHJldHVybiBudW1lcmlj
X2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgIGlmIChkZXN0UmVjdC54KCkgPj0gc3RhcnRSZWN0Lngo
KQorICAgICAgICAgICAgfHwgIWlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKHN0YXJ0UmVjdC5sb2Nh
dGlvbigpLCBkZXN0UmVjdCkKKyAgICAgICAgICAgIHx8ICFpc1JlY3RBYm92ZUFudGlkaWFnb25h
bChJbnRQb2ludChzdGFydFJlY3QueCgpLCBzdGFydFJlY3QuYm90dG9tKCkpLCBkZXN0UmVjdCkp
CisgICAgICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICAgICAgaWYgKGRl
c3RSZWN0LnkoKSA+PSBzdGFydFJlY3QueSgpCisgICAgICAgICAgICB8fCAhaXNSZWN0QWJvdmVN
YWluRGlhZ29uYWwoc3RhcnRSZWN0LmxvY2F0aW9uKCksIGRlc3RSZWN0KQorICAgICAgICAgICAg
fHwgIWlzUmVjdEFib3ZlQW50aWRpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgpLCBz
dGFydFJlY3QueSgpKSwgZGVzdFJlY3QpKQorICAgICAgICAgICAgcmV0dXJuIG51bWVyaWNfbGlt
aXRzPGxvbmcgbG9uZz46Om1heCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uRG93bjoKKyAgICAgICAgaWYgKGRlc3RSZWN0LmJvdHRvbSgpIDw9IHN0YXJ0UmVjdC5i
b3R0b20oKQorICAgICAgICAgICAgfHwgIWlzUmVjdEJlbG93QW50aWRpYWdvbmFsKEludFBvaW50
KHN0YXJ0UmVjdC54KCksIHN0YXJ0UmVjdC5ib3R0b20oKSksIGRlc3RSZWN0KQorICAgICAgICAg
ICAgfHwgIWlzUmVjdEJlbG93TWFpbkRpYWdvbmFsKEludFBvaW50KHN0YXJ0UmVjdC5yaWdodCgp
LCBzdGFydFJlY3QuYm90dG9tKCkpLCBkZXN0UmVjdCkpCisgICAgICAgICAgICByZXR1cm4gbnVt
ZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVtZXJp
Y19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CisgICAgfQorCisgICAgcmV0dXJuIHJlY3Rhbmds
ZURpc3RhbmNlKHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworfQorCitzdHJ1Y3QgQmVzdENhbmRpZGF0
ZSB7CisgICAgQmVzdENhbmRpZGF0ZSgpCisgICAgICAgIDogbm9kZSgwKQorICAgICAgICAsIGRp
c3RhbmNlKG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpKQorICAgIHsKKyAgICB9Cisg
ICAgTm9kZSogbm9kZTsKKyAgICBsb25nIGxvbmcgZGlzdGFuY2U7Cit9OworCitzdGF0aWMgdm9p
ZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBzdGFydCwgRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgQmVzdENhbmRpZGF0ZSYg
YmVzdENhbmRpZGF0ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgLy8gR2V0IHRo
ZSBjdXJyZW50IHZpZXdwb3J0IHJlY3Qgc28gd2UgY2FuIGNoZWNrIGlmIGJlc3RDYW5kaWRhdGUn
cyByZWN0CisgICAgLy8gaXMgdmlzaWJsZSBiZWZvcmUgYWN0dWFsbHkgbW92aW5nIHRoZSBmb2N1
cyB0byBpdC4gSW4gY2FzZSBpdCBpcyBub3QgdmlzaWJsZSwKKyAgICAvLyB3ZSBzY3JvbGwgaW4g
ZGlyZWN0aW9uIGxhdGVyIG9uIGluc3RlYWQuCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBk
b2N1bWVudC0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlldygpOworICAgIGlm
ICghZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBJbnRSZWN0IHZpc2libGVSZWN0
ID0gZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKworICAgIC8vIFdhbGsgYWxsIHRo
ZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRlIGJlc3RDYW5kaWRhdGUgaWYgd2UgZmluZCBhIG5lYXJl
ciBub2RlLgorICAgIGZvciAoTm9kZSogY2FuZGlkYXRlID0gZG9jdW1lbnQtPmZpcnN0Q2hpbGQo
KTsgY2FuZGlkYXRlOyBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkg
eworICAgICAgICBwcmludGYoIiVzIGxvY2FsTmFtZT0nJXMnXG4iLCBfX0ZVTkNUSU9OX18sIGNh
bmRpZGF0ZS0+bG9jYWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlm
IChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgeworICAgICAgICAgICAgSFRNTEZy
YW1lT3duZXJFbGVtZW50KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVu
dCo+KGNhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAob3duZXItPmNvbnRlbnRGcmFtZSgpKSB7
CisgICAgICAgICAgICAgICAgRG9jdW1lbnQqIGlubmVyRG9jdW1lbnQgPSBvd25lci0+Y29udGVu
dEZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAgICAgICAgaWYgKGlubmVyRG9jdW1lbnQp
CisgICAgICAgICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFy
dCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9IHN0YXJ0ICYmIGNhbmRpZGF0ZS0+aXNLZXlib2Fy
ZEZvY3VzYWJsZShldmVudCkpIHsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IGRp
c3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uLCB2aXNpYmxlUmVj
dCk7CisgICAgICAgICAgICBwcmludGYoIlx0ZGlzdGFuY2U9JWxsZFxuIiwgZGlzdGFuY2UpOwor
ICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgYmVzdENhbmRpZGF0ZS5kaXN0YW5jZSkgeworICAg
ICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUubm9kZSA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAg
ICAgICBiZXN0Q2FuZGlkYXRlLmRpc3RhbmNlID0gZGlzdGFuY2U7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMo
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0
aWFsRm9jdXMpCiB7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uRm9yd2FyZDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAg
IHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBldmVudCwgaW5p
dGlhbEZvY3VzKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIEZvY3Vz
RGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgIGNhc2UgRm9j
dXNEaXJlY3Rpb25Eb3duOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxs
eShkaXJlY3Rpb24sIGV2ZW50KTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMp
Cit7CiAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJU
KGZyYW1lKTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAg
LTI1Miw2ICs0NTQsNzkgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHko
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBG
cmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOwor
ICAgIERvY3VtZW50KiBmb2N1c2VkRG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBp
ZiAoIWZvY3VzZWREb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZSog
Zm9jdXNlZE5vZGUgPSBmb2N1c2VkRG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFm
b2N1c2VkTm9kZSkgeworICAgICAgICAvLyBKdXN0IG1vdmUgdG8gdGhlIGZpcnN0IGZvY3VzYWJs
ZSBub2RlLgorICAgICAgICBGb2N1c0RpcmVjdGlvbiB0YWJEaXJlY3Rpb24gPSAoRm9jdXNEaXJl
Y3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSA/CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0RpcmVjdGlvbkZvcndhcmQgOiBGb2N1
c0RpcmVjdGlvbkJhY2t3YXJkOworICAgICAgICAvLyAnaW5pdGlhbEZvY3VzJyBpcyBzZXQgdG8g
dHJ1ZSBzbyB0aGUgY2hyb21lIGlzIG5vdCBmb2N1c2VkLgorICAgICAgICByZXR1cm4gYWR2YW5j
ZUZvY3VzSW5Eb2N1bWVudE9yZGVyKHRhYkRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOworICAgIH0K
KworICAgIC8vIE1vdmUgdXAgaW4gdGhlIGNoYWluIG9mIG5lc3RlZCBmcmFtZXMuCisgICAgd2hp
bGUgKHRydWUpIHsKKyAgICAgICAgRnJhbWUqIHBhcmVudEZyYW1lID0gZnJhbWUtPnRyZWUoKS0+
cGFyZW50KCk7CisgICAgICAgIGlmICghcGFyZW50RnJhbWUgfHwgIXBhcmVudEZyYW1lLT5kb2N1
bWVudCgpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZnJhbWUgPSBwYXJlbnRGcmFt
ZTsKKyAgICB9CisKKyAgICBCZXN0Q2FuZGlkYXRlIGJlc3RDYW5kaWRhdGU7CisgICAgbmV4dElu
RGlyZWN0aW9uKGZyYW1lLT5kb2N1bWVudCgpLCBmb2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVu
dCwgYmVzdENhbmRpZGF0ZSk7CisKKyAgICBOb2RlKiBub2RlID0gYmVzdENhbmRpZGF0ZS5ub2Rl
OworICAgIGlmICghbm9kZSkgeworICAgICAgICAvLyBMZWF2ZSB0aGUgZm9jdXMgb24gdGhlIHNh
bWUgbm9kZSBidXQgc2Nyb2xsLgorICAgICAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICAgICAgU2Nyb2xsRGlyZWN0
aW9uIHNjcm9sbERpcmVjdGlvbjsKKworICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAg
ICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgICAgIHNjcm9sbERpcmVjdGlv
biA9IFNjcm9sbExlZnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvblJpZ2h0OgorICAgICAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsUmlnaHQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAg
ICAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsVXA7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgICAgICBzY3JvbGxEaXJl
Y3Rpb24gPSBTY3JvbGxEb3duOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAg
ICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KHNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IE1heSBuZWVk
IGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisK
KyAgICBpZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIC8vIEZv
Y3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50LCBz
byBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNldEZv
Y3VzZWROb2RlKDApOworICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0
Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0
aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkKIHsKICAgICBBU1NF
UlQobm9kZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZDg2NDA4YS4uMzhjMDhjNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNTgsNiArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0K
IAogICAgIHByaXZhdGU6CisgICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShG
b2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOworICAgICAgICBib29sIGFkdmFuY2VGb2N1
c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5p
dGlhbEZvY3VzKTsKKwogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIFJlZlB0cjxGcmFt
ZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgICAgIGJvb2wgbV9pc0FjdGl2ZTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0
aW9uLmgKaW5kZXggMjYxYzc0NS4uNTUxYzcyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Zv
Y3VzRGlyZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKQEAgLTI5
LDcgKzI5LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVjdGlv
biB7CiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3VzRGly
ZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAg
Rm9jdXNEaXJlY3Rpb25VcCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25Eb3duLAorICAgICAgICBG
b2N1c0RpcmVjdGlvbkxlZnQsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uUmlnaHQKICAgICB9Owog
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAppbmRleCAzODczYzg5Li40YWMwMWI0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTY0
LDYgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX21heGlt
dW1EZWNvZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAgICwg
bV9sb2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhl
IEhUTUw1IHNwZWMuCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkpCisgICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRy
dWUpCiAgICAgLCBtX2lzSmF2YUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0
b21hdGljYWxseShmYWxzZSkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmYWxzZSkK
QEAgLTIzNyw2ICsyMzgsMTEgQEAgdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHMoYm9vbCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb20KICAgICBtX2FsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzID0gYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHM7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChi
b29sIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKQoreworICAgIG1faXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQgPSBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDsKK30KKwogdm9pZCBTZXR0
aW5nczo6c2V0SmF2YUVuYWJsZWQoYm9vbCBpc0phdmFFbmFibGVkKQogewogICAgIG1faXNKYXZh
RW5hYmxlZCA9IGlzSmF2YUVuYWJsZWQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDlmMDBiMGQuLjNmYjM5YmQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCkBAIC0xMTMsNiArMTEzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAg
ICAgIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpIGNvbnN0IHsg
cmV0dXJuIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsgfQogCisgICAg
ICAgIHZvaWQgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wpOworICAgICAgICBib29s
IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkgeyByZXR1cm4gbV9pc1NwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZDsgfQorCiAgICAgICAgIHZvaWQgc2V0SmF2YUVuYWJsZWQoYm9vbCk7CiAgICAg
ICAgIGJvb2wgaXNKYXZhRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNKYXZhRW5hYmxlZDsg
fQogCkBAIC0yOTgsNiArMzAxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzaXpl
X3QgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZTsKICAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0
b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKKyAg
ICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9v
bCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5IDogMTsKICAgICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAxOwot
LSAKMS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46537</attachid>
            <date>2010-01-13 20:36:25 -0800</date>
            <delta_ts>2010-01-14 09:48:47 -0800</delta_ts>
            <desc>WIP - Add directional navigation to WebCore (v7)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>60761</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA3NTljOGE1NTAyMGYxMzFiZTA3MWI0YTQ1ZWY2ZDIyNzE3OTMwMzdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAxNCBKYW4gMjAxMCAwMDoyMToyOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpXZWJDb3JlOgoKVGVzdHM6IGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aXRhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbAogICAgICAg
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVu
LWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRh
dGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdml0YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4t
ZGlyZWN0aW9uLmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2
LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCgoqIG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5h
dmlnYXRpb24vbGlua3MuaHRtbDogQWRkZWQuCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sOiBBZGRlZC4KKiBwYWdlL0V2
ZW50SGFuZGxlci5jcHA6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2
ZW50SGFuZGxlcik6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmlzQXJyb3dLZXkpOgooV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIpOgoqIHBhZ2UvRXZlbnRI
YW5kbGVyLmg6CiogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgooV2ViQ29yZTo6KToKKFdlYkNv
cmU6OkJlc3RDYW5kaWRhdGU6OkJlc3RDYW5kaWRhdGUpOgooV2ViQ29yZTo6bmV4dEluRGlyZWN0
aW9uKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKToKKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CihXZWJDb3JlOjpp
c1JlY3RJbkRpcmVjdGlvbik6CihXZWJDb3JlOjpkaXN0YW5jZUluRGlyZWN0aW9uKToKKFdlYkNv
cmU6OmFic29sdXRlUmVuZGVyUmVjdCk6CihXZWJDb3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6
CihXZWJDb3JlOjp0YWtlc1ByZWNlZGVuY2UpOgooV2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNl
KToKKFdlYkNvcmU6OnJlY3RhbmdsZURpc3RhbmNlKToKKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5o
OgoqIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaDoKKFdlYkNvcmU6Oik6CiogcGFnZS9TZXR0aW5ncy5j
cHA6CihXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgooV2ViQ29yZTo6U2V0dGluZ3M6OnNl
dFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CiogcGFnZS9TZXR0aW5ncy5oOgooV2ViQ29yZTo6
U2V0dGluZ3M6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKCkxheW91dFRlc3RzOgoKKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sOiBBZGRl
ZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRt
bDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJh
bWUzLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LWlm
cmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVt
ZW50Lmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRp
b24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXZl
cnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdml0YXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzOiBBZGRlZC4KLS0tCiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKwog
Li4uL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgICAgICAgfCAgICA3
ICsKIC4uLi9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbCAgICAgIHwg
ICAgNyArCiAuLi4vc3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwgICAg
ICB8ICAgIDggKwogLi4uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sICAg
ICAgICAgfCAgIDY1ICsrKwogLi4uYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1l
bGVtZW50Lmh0bWwgfCAgIDYwICsrKwogLi4uL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRhYmxl
LXRyYXZlcnNhbC5odG1sICAgfCAgIDg3ICsrKysKIC4uLi9zbmF2LXRpbnktdGFibGUtdHJhdmVy
c2FsLmh0bWwgICAgICAgICAgICAgICAgIHwgICA5MiArKysrCiAuLi5zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbCB8ICAgOTUgKysrKwogLi4uL3NuYXYtdmVy
dGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwgICAgICAgICAgICAgfCAgIDgwICsrKysKIC4uLi9z
cGF0aWFsLW5hdml0YXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIHwgICA2MiArKysK
IFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0
NCArKwogV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwg
fCAgICA5ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sICAgICAgICAg
ICAgIHwgIDEzNSArKysrKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAg
ICAgICAgICAgICAgIHwgICAzNyArKwogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwICAgICAgICAgICAgICAgICAgIHwgIDQ0OSArKysrKysrKysrKysrKysrKysrLQogV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdl
YkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiAr
LQogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA2ICsKIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNCArCiAyMSBmaWxlcyBjaGFuZ2VkLCAxMjc2IGluc2VydGlvbnMoKyksIDIgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1l
Mi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4t
Zm9jdXNhYmxlLWVsZW1lbnQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0
aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVy
cHJlY2VkZW5jZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwogY3JlYXRl
IG1vZGUgMTAwNzU1IFdlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5r
cy5odG1sCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzYy
OTk3Mi4uY2I1YzNkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTAxLTEzICBBbnRvbmlv
IEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxs
b3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFt
ZTMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9u
L3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3Jl
ZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJh
dmVyc2FsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRh
dGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdmVydGlj
YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aXRhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanM6IEFkZGVkLgorCiAy
MDEwLTAxLTEzICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFt
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY0OGFlYTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24v
cmVzb3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+CisgIDxib2R5Pgor
ICAgIDxhIGlkPSIxIiBocmVmPSJhIj5hPC9hPjxicj4KKyAgICA8YSBpZD0iMiIgaHJlZj0iYSI+
YTwvYT48YnI+CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPmE8L2E+PGJyPgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0
YXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aXRhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmI3OTEwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbApA
QCAtMCwwICsxLDcgQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iNCIgaHJlZj0iYSI+
YTwvYT4KKyAgICA8YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT4KKyAgICA8YSBpZD0iNiIgaHJlZj0i
YSI+YTwvYT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vcmVzb3VyY2VzL2lmcmFtZTMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGE4MjA1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3Jl
c291cmNlcy9pZnJhbWUzLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDox
MDBweCI+CisgICAgICA8YSBpZD0iMiIgaHJlZj0iYSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLW5vLXNj
cm9sbGFibGUtY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmEwYzFlYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdml0YXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKQEAg
LTAsMCArMSw2NSBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUg
YmFzaWMgaWZyYW1lIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdh
dGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDxpZnJh
bWU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAx
KSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlv
biBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBh
dXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFsb25nIHRoZSBlbGVtZW50cyBpbiB0
aGUgdHdvIGlmcmFtZXMgaW4gdGhlCisgICAgICAgV2ViIHBhZ2UsIGV2ZW50dWFsbHkgZ29pbmcg
dG8gb3V0ZXIgYW4gc291dGh3YXJkIGxpbmssIGJ1dAorICAgICAgIGdvaW5nIGJhY2sgdG8gdGhl
IGlmcmFtZSBvbiB0aGUgdG9wIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFi
bGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAg
IFsiRG93biIsICIzIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwgImVu
ZCJdLAorICAgICAgWyJVcCIsICI0Il0sCisgICAgICBbIlVwIiwgIjMiXSwKKyAgICAgIFsiVXAi
LCAiMiJdLAorICAgICAgWyJVcCIsICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAg
XTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBp
dHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENv
bXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgewor
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBy
dW5UZXN0OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1j
b250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdj48
YSBpZD0ic3RhcnQiIGhyZWY9ImEiPmE8L2E+PC9kaXY+CisgICAgPGlmcmFtZSBzcmM9InJlc291
cmNlcy9pZnJhbWUuaHRtbCI+PC9pZnJhbWU+PGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJj
ZXMvaWZyYW1lMi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEi
PmE8L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRh
dGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtaWZyYW1lLXdp
dGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uM2YzNjY4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1m
b2N1c2FibGUtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzxodG1sPgorICA8IS0tCisg
ICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIGlmcmFtZSB0cmF2ZXJzYWwgY29ycmVjdG5l
c3Mgb2YKKyAgICBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxl
IGVsZW1lbnRzIGluIGEKKyAgICA8aWZyYW1lPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAg
ICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rp
c2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdl
LCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3Zl
cyBhbG9uZyB0aGUgZWxlbWVudHMgaW4gdGhlIHR3byBpZnJhbWVzIGluIHRoZQorICAgICAgIFdl
YiBwYWdlLCBldmVudHVhbGx5IGdvaW5nIHRvIG91dGVyIGFuIHNvdXRod2FyZCBsaW5rLCBidXQK
KyAgICAgICBnb2luZyBiYWNrIHRvIHRoZSBpZnJhbWUgb24gdGhlIHRvcCBsYXRlciBvbi4KKyAg
LS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24t
dXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNj
cmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAg
ICAgIFsiRG93biIsICIyIl0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwg
IjIiXSwKKyAgICAgIFsiVXAiLCAiMSJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07
CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRz
ZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21w
bGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVu
VGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29u
dGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEg
aWQ9InN0YXJ0IiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJj
ZXMvaWZyYW1lMy5odG1sIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+
PC9pZnJhbWU+PGJyPgorICAgIDxkaXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFi
bGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0
YXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NzFmNTUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKQEAgLTAs
MCArMSw4NyBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgYmFz
aWMgdGFibGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9u
IChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPHRhYmxlPiBz
aG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJU
IHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3Rl
cHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21h
dGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aHJvdWdoIHRoZSBzcGFyc2VseSBw
b3NpdGlvbmVkIGVsZW1lbnRzCisgICAgICAgaW4gdGhlIHRhYmxlLCBldmVudHVhbGx5IGdvaW5n
IHRvIGFuIG91dGVyIHNvdXRod2FyZCBsaW5rLAorICAgICAgIGJ1dCBnb2luZyBiYWNrIGluc2lk
ZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsK
KyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3du
IiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAg
ICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjkiXSwKKyAgICAgIFsiVXAiLCAi
NiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQiLCAiMiJdLAorICAgICAgWyJM
ZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJl
bmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEg
a25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1
cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0i
YSI+VGVzdCB0YWJsZSB0cmF2ZXJzYWw8YT4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246
IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRv
OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjEiPgorICAgICAgPHRi
b2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMSIgaHJlZj0iYSI+YTwvYT48L3RkPgor
ICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9
InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVm
PSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8
dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlk
PSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48
L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4K
KyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjciIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAg
ICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsi
PjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0
aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+
YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90Ym9keT4KKyAgICA8L3RhYmxlPgor
ICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6MTAwcHgnPgorICAgICAgPGEgaWQ9ImVuZCIgaHJl
Zj0iYSI+RW5kIG9mIHRhYmxlIHRyYXZlcnNhbCB0ZXN0PGE+CisgICAgPC9kaXY+CisgICAgPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRpbnktdGFibGUt
dHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRp
b24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQ3YTY1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1s
CkBAIC0wLDAgKzEsOTIgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMg
dGhlIGJhc2ljIHRhYmxlIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2
aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0
YWJsZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAg
IDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0
aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQi
IGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGlu
IHRoZSB0YWJsZSwgZXZlbnR1YWxseQorICAgICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBh
bmQgZWFzdHdhcmQgbGlua3MsIGJ1dCBnb2luZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJs
ZSBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0
aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBw
bGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJE
b3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAor
ICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0
IiwgIjgiXSwKKyAgICAgIFsiUmlnaHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAg
ICBbIlJpZ2h0IiwgInJpZ2h0Il0sCisgICAgICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIs
ICIzIl0sCisgICAgICBbIkxlZnQiLCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAg
IFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xp
bmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAg
IC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0
TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0
ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQor
CisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwv
aGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+CisgICAg
PHRhYmxlPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxl
PSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAg
ICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+YTwv
YT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIz
IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAg
ICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwv
YT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI1
IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNt
YWxsOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAg
ICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI3
IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNt
YWxsOyI+PGEgaWQ9IjgiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICA8L3RyPgorICAgICAgPC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21h
cmdpbi10b3A6OHB4Jz4KKyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBweCI+
CisgICAgICA8YSBpZD0icmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwvYT4K
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0
aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9uL3NuYXYtdW5pdC1vdmVyZmxv
dy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI3N2M4MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4t
ZGlyZWN0aW9uLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlz
IHRlc3QgZW5zdXJlcyB0aGUgY29ycmVjdG5lc3MgdGhlIGZvbGxvd2luZyBTcGF0aWFsIE5hdmln
YXRpb24KKyAgICAoU05hdikgYWxnb3JpdGhtIGZlYXR1cmVzLgorCisgICAgMSkgVGhlcmUgaXMg
bm8gdW5pdCBvdmVyZmxvdyBpbiB0aGUgU05hdiBhbGdvcml0aG0gd2hpbGUgY2FsY3VsYXRpbmcK
KyAgICAgICB0aGUgYmVzdCBub2RlIGNhbmRpZGF0ZSB0byBtb3ZlIGZvY3VzIHRvLiBUbyB0ZXN0
IHRoYXQgdGhpcyBwYWdlCisgICAgICAgcG9zaXRpb25zIHNvbWUgZWxlbWVudHMgMTAwMDAwMDAg
cGl4ZWxzIGZhciBmcm9tIGVhY2ggb3RoZXIgKGRpc3RhbmNlCisgICAgICAgdGhhdCBjYW4gY29u
c2lkZXJlZCBsYXJnZSBlbm91Z2ggZm9yIG1vc3Qgb2YgdGhlIFdlYiBQYWdlcyBvbiB0aGUKKyAg
ICAgICBJbnRlcm5ldCkuCisKKyAgICAyKSBNYWtlIHN1cmUgdGhhdCBhIGJlc3QgZm9jdXNhYmxl
IGNhbmRpZGF0ZSBvbmx5IGdldHMgZm9jdXNlZAorICAgICAgIGlmIGl0IGlzIHZpc2libGUgaW4g
dGhlIGN1cnJlbnRsIFZpZXdwb3J0LiBTY3JvbGwtaW4tZGlyZWN0aW9uCisgICAgICAgaXMgcGVy
Zm9ybWVkIG90aGVyd2lzZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1
cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6
CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGlj
YWxseS4KKyAgICAyKSBBdHRlbXB0IHRvIG1vdmUgZm9jdXMgZG93biB0byAiZW5kLiBBcyBpdCBp
cyB0b28gZmFyIGFuZCBvdXQgb2YKKyAgICAgICB2aWV3cG9ydCwgZm9jdXMgY2hhbmdlIHdpbGwg
bm90IGhhcHBlbiBhbmQgcGFnZSB3aWxsIGJlIHNjcm9sbGVkCisgICAgICAgYSBzdGVwIGRvd24u
CisgICAgMykgQnkgc2VuZGluZyBhbiAiRW5kIiBrZXlwcmVzcywgcGFnZSBnZXRzIHNjcm9sbGVk
IGRvd24gdG8gYSBwbGFjZQorICAgICAgIHdoZXJlIHRoZSAiZW5kIiBub2RlIGdldHMgdmlzaWJs
ZSBpbiB0aGUgdmlld3BvcnQuCisgICAgNCkgU3RlcCBfMV8gaXMgcmFuIGFnYWluLCBhbmQgImVu
ZCIgZ2V0cyBmb2N1c2VkLiAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNw
YXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUxID0gWworICAgICAg
WyJEb3duIiwgInN0YXJ0Il0sCisgICAgICBbIiIsICIiXQorICAgIF07CisKKyAgICB2YXIgbW92
ZVRhYmxlMiA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiRE9ORSIsICJET05F
Il0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICBzZXRUaW1lb3V0KHN0ZXAxICwg
MCk7CisgICAgICBzZXRUaW1lb3V0KHN0ZXAyICwgNTAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBzdGVwMSgpCisgICAgeworICAgICAgLy8gQWN0aW9ucyBpbiAnbW92ZVRhYmxlMScgc2hvdWxk
IGtlZXAgdGhlIGZvY3VzIGluIHRoZSBjdXJyZW50bHkKKyAgICAgIC8vIGZvY3VzZWQgZWxlbWVu
dCAoJ3N0YXJ0Jykgb25jZSB0aGUgYmVzdCBjYW5kaWRhdGUgKCdlbmQnKSBpcyBub3QKKyAgICAg
IC8vIHZpc2libGUgaW4gY3VycmVudCB2aWV3cG9ydC4KKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFi
bGUxKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgeworICAgICAgc2hvdWxk
QmVUcnVlKFN0cmluZyhkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCAhPSAwKSk7CisKKyAgICAgIC8v
IFRoZW4gaXQgc2Nyb2xscyBkb3duIHRvIHRoZSBlbmQgb2YgdGhlIHBhZ2UgLi4uCisgICAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlbmQi
KTsKKworICAgICAgLy8gQW5kICdtb3ZlVGFibGUyJyByZS10cmllcyB0byBtb3ZlIGZvY3VzIGRv
d24uCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlMiwgdGVzdENvbXBsZXRlZCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisgICAgPC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEi
PlN0YXJ0PC9hPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6MTAwMDAwMDAwcHgnPgorICAg
ICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj5FbmQ8L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVy
cHJlY2VkZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0
aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNmU3NjRjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2Vk
ZW5jZS5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0
IGVuc3VyZXMgdGhlIHN1cGVyIHByZWNlZGVuY2UgbG9naWMgb2YgU3BhdGlhbCBOYXZpZ2F0aW9u
CisgICAgKFNOYXYpIGFsZ29yaXRobTogdGFyZ2V0cyB3aG9zZSBtaWRkbGUgZmFsbHMgYmV0d2Vl
biB0aGUgdG9wIG9yIGJvdHRvbQorICAgIG9mIHRoZSBjdXJyZW50IHJlY3QgYXJlIHByZWZlcmFi
bHkgdG8gbW92ZSBmb2N1cyB0by4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJU
IHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3Rl
cHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21h
dGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBwcmVmZXJhYmx5IHRvIGVsZW1lbnRzIHJpZ2h0
IHVwIG9yIGFib3ZlIHRoZQorICAgICAgIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50LCBldmVuIHdo
ZW4gdGhlcmUgYXJlIHNvbWUgb3RoZXIgY2xvc2VyCisgICAgICAgYnV0IG5vdCB2ZXJ0aWNhbGx5
IGFsaWduZWQgZWxlbWVudHMgaW4gdGhlIHNhbWUgZGlyZWN0aW9uLgorICAtLT4KKyAgPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAg
IHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwg
IjYiXSwKKyAgICAgIFsiRG93biIsICI4Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAg
ICBbIlVwIiwgIjciXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJET05FIiwgIkRPTkUi
XQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5
IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhl
IHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUs
IHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQor
ICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25s
b2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9
InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAg
IDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyI+CisgICAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgICAgICA8YSBpZD0ic3RhcnQi
IGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8YSBpZD0iMiIgaHJl
Zj0iYSI+dGVzdDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8YSBpZD0iMyIgaHJlZj0iYSI+dGVz
dDwvYT48YnI+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgICAg
ICA8YSBpZD0iNCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgICAgIDxhIGlkPSI1IiBocmVmPSJh
Ij50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjYiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAg
ICAgPC9kaXY+CisgICAgICA8YSBpZD0iNyIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8
YnI+PGJyPjxicj48YnI+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgor
ICAgICAgICA8YSBpZD0iOCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAg
ICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDwvZGl2PgorICAgIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zcGF0aWFsLW5hdmln
YXRpb24tdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRp
b24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjI1MmFmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdml0YXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzCkBAIC0w
LDAgKzEsNjIgQEAKK3ZhciBfbW92ZVRhYmxlOwordmFyIF9tb3ZlVGFibGVJbmRleCA9IDA7Cit2
YXIgX2NvbXBsZXRlZENhbGxiYWNrID0gbnVsbDsKKworZnVuY3Rpb24gdGVzdE1vdmVzKHRhYmxl
LCBjb21wbGV0ZWRDYikgeworICAgLy8gZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMi
LCBfdmVyaWZ5QW5kQWR2YW5jZSwgdHJ1ZSk7CisKKyAgX21vdmVUYWJsZSA9IHRhYmxlOworICBf
bW92ZVRhYmxlSW5kZXggPSAwOworICBfY29tcGxldGVkQ2FsbGJhY2sgPSBjb21wbGV0ZWRDYjsK
KyAgX21vdmUoKTsKK30KKworZnVuY3Rpb24gX25leHRNb3ZlKCkKK3sKKyAgX21vdmVUYWJsZUlu
ZGV4Kys7CisKKyAgLy8gV2hlbiBhIHRhYmxlIGVuZHMgd2l0aCAiRE9ORSIsIGNhbGwgdGhlIGNv
bXBsZXRpb24gY2FsbGJhY2suCisgIGlmIChfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0g
PT0gIkRPTkUiKQorICAgIGlmIChfY29tcGxldGVkQ2FsbGJhY2spIHsKKyAgICAgIF9jb21wbGV0
ZWRDYWxsYmFjaygpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAvLyB3aGVuIGEgdGFibGUg
aGFzIGFuIGVtcHR5IGVsZW1lbnQsIGVuZCB0aGUgbW92ZXMuCisgIGlmIChfbW92ZVRhYmxlW19t
b3ZlVGFibGVJbmRleF1bMF0gPT0gIiIpCisgICAgcmV0dXJuOworCisgIF9tb3ZlKCk7Cit9CisK
K2Z1bmN0aW9uIF9tb3ZlKCkKK3sKKyAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQo
J0tleWJvYXJkRXZlbnRzJyk7CisgIGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywg
dHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIF9tb3ZlVGFibGVbX21vdmVUYWJsZUlu
ZGV4XVswXSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKKyAgZG9jdW1l
bnQuZGlzcGF0Y2hFdmVudChldmVudCk7CisKKyAgc2V0VGltZW91dCggX3ZlcmlmeUFuZEFkdmFu
Y2UgLCAxMDApOworfQorCitmdW5jdGlvbiBfdmVyaWZ5QW5kQWR2YW5jZSgpCit7CisgIHZhciBk
aXJlY3Rpb24gPSBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF07CisgIHZhciBleHBlY3Rl
ZElEID0gX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzFdOworCisgIHZhciBpID0gMDsKKyAg
dmFyIG1haW5GcmFtZUhhc0ZvY3VzID0gdHJ1ZTsKKyAgZm9yKDsgaSA8IGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lcy5sZW5ndGg7IGkrKykKKyAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcu
ZnJhbWVzW2ldLmRvY3VtZW50Lmhhc0ZvY3VzKCkpIHsKKyAgICAgIG1haW5GcmFtZUhhc0ZvY3Vz
ID0gZmFsc2U7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgLy8gdGhpcyBzdXBwb3J0IGZyYW1l
cyBuZXN0ZWQgaW4gb25lIGxldmVsIGRlZXAgb25seS4KKyAgaWYgKG1haW5GcmFtZUhhc0ZvY3Vz
KQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoXCJpZFwiKSIsIGV4cGVjdGVkSUQpOworICBlbHNlCisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbIiArIGkgKyAiXS5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcImlkXCIpIiwgZXhwZWN0ZWRJRCk7CisKKyAg
X25leHRNb3ZlKCk7Cit9CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNmEyY2I1Mi4uYTkzZTc5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0w
MS0xMyAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZp
Z2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCisKKyAgICAgICAgVGVzdHM6IGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNv
bnRlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpdGF0aW9u
L3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlvbi9zbmF2LXRhYmxlLXRyYXZl
cnNhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdml0YXRpb24v
c25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdml0YXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aXRhdGlv
bi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCisKKyAgICAgICAgKiBtYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1h
bnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2Fz
ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppc0Fycm93S2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKToKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpCZXN0Q2FuZGlkYXRl
OjpCZXN0Q2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Om5leHRJbkRpcmVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyk6CisgICAgICAg
IChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6
CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6ZGlzdGFuY2VJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjphYnNvbHV0
ZVJlbmRlclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6dGFrZXNTdXBlclByZWNlZGVuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6dGFrZXNQcmVjZWRlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OnBy
ZWNlZGVuY2VEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpyZWN0YW5nbGVEaXN0YW5jZSk6
CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3Vz
RGlyZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBhZ2UvU2V0dGlu
Z3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisKIDIwMTAtMDEtMTMgIE5pa29sYXMgWmltbWVybWFubiAg
PG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlu
a3MuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBkNmVkN2MKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3Mu
aHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD4K
KzxhIGhyZWY9ImEiPmE8L2E+Cis8YSBocmVmPSJhIj5hPC9hPgorPGEgaHJlZj0iYSI+YTwvYT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sIGIvV2ViQ29y
ZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0
LWNhc2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzI4MzQ2ZAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorICA8dGl0bGU+U3BhdGlh
bCBOYXZpZ2F0aW9uIFRlc3QgQ2FzZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CisgIDxoMSBzdHls
ZT0idGV4dC1hbGlnbjogbGVmdDsiPlNwYXRpYWwgTmF2aWdhdGlvbiBGdW48L2gxPgorICA8aDIg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4zeDMgQ2VudGVyZWQgVGFibGUgVGVzdDwvaDI+Cis8
L2Rpdj4KKzx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCU7IG1hcmdp
bi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5n
PSIyIiBjZWxsc3BhY2luZz0iMiI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5
bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEi
PnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJh
Ij50ZXN0PC9hPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZl
cnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8
L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0
PC9hPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90
ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwv
dGQ+CisgICAgPC90cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGJyPgorICA8ZGl2IHN0eWxlPSJ0ZXh0
LWFsaWduOiBsZWZ0OyI+CisgICAgPGgyPlZlcnRpY2FsIFNpbmUgVGVzdDwvaDI+PGJyPgorICA8
L2Rpdj4KKyAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPgorICAgIDxhIGhyZWY9ImEi
PnRlc3Q8YnI+PC9hPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+PGEgaHJl
Zj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDog
ODBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4K
KyAgPC9kaXY+CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8ZGl2IHN0eWxlPSJtYXJn
aW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4K
KyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0
PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+Cisg
ICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8YSBocmVmPSJhIj50ZXN0
PGJyPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisKKyAg
PGgyPkluY3JlYXNpbmcgc2VudGVuY2UgbGVuZ3RoPC9oMj4KKyAgPGEgaHJlZj0iYSI+SDwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvPGJyPjwvYT4KKyAgPGEgaHJlZj0icCI+SG93PGJyPjwvYT4K
KyAgPGEgaHJlZj0icCI+SG93IDxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdyBOPC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE5vPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5v
dyBCPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcjwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOb3cgQnJvPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93bjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd24gPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDPC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDbzwvYT48YnI+CisgIDxhIGhyZWY9InAi
PkhvdyBOb3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGJyPgorICA8aDI+U3BsaXQgc2VudGVuY2U8
YnI+PC9oMj4KKyAgPGJyPgorICA8YSBocmVmPSJwIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBocmVmPSJw
Ij5vdyBOb3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88L2E+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dyBOb3cgQnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPk5vdyBCcm93biBD
b3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vdyBCcm93
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm88L2E+ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dyBC
cm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IDwvYT4mbmJzcDsmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhy
ZWY9InAiPkJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT4gJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNw
OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8
YSBocmVmPSJwIj5yb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnI8L2E+
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxh
IGhyZWY9InAiPm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJybzwvYT4g
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEg
aHJlZj0icCI+d24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93PC9hPiZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5uIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd248L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE5vdyBCcm93biBDPC9hPiAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93PC9hPjxicj4KKyAgPGEg
aHJlZj0icCI+SG93IE5vdyBCcm93biBDbzwvYT4gJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53PC9hPjxicj4KKyAg
PGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDb3c8L2E+PGJyPjxicj4KKyAgPGgyPkxpbmUgV3Jh
cCBUZXN0PC9oMj48YnI+CisgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6
IDM5M3B4OyBoZWlnaHQ6IDcycHg7IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3Bh
Y2luZz0iMiI+CisgICAgPHRib2R5PgorICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InZl
cnRpY2FsLWFsaWduOiB0b3A7Ij4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0iaHVnZSI+CisgICAg
ICAgICAgICA8YSBocmVmPSJhIj5XaGljaCBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW5zdCBkbyB5
b3UgbGlrZSB0aGUgbW9zdCwgb25lIGlzIGcsIG9uZSBpcyBwaSwgYW5kIHRoZSBvdGhlciBpcyBl
LiA8L2E+PGJyPgorICAgICAgICAgIDwvc3Bhbj48L3RkPgorICAgICAgICA8dGQgc3R5bGU9InZl
cnRpY2FsLWFsaWduOiB0b3A7Ij4KKyAgICAgICAgICA8YSBocmVmPSJhIj4zLjE0PC9hPjxicj4K
KyAgICAgICAgICA8YSBocmVmPSJhIj4yLjcxPC9hPjxicj4KKyAgICAgICAgICA8YSBocmVmPSJh
Ij42LjY3PC9hPjxicj4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90Ym9keT4K
KyAgPC90YWJsZT48YnI+CisgIDxoMj5KYXZhc2NyaXB0IEZvY3VzL0JsdXIgVGVzdDwvaDI+Cisg
ICAgV2hlbiBnb2luZyB0byBhbnkgbGluayBmcm9tIHRoZSBmb2xsb3dpbmcgbGluaywgeW91IHNo
b3VsZCBzZWUgYSBkaWFsb2cuPGJyPjxicj4KKyAgPGEgaHJlZj0iYSIgb25ibHVyPSdhbGVydCgi
b25CbHVydCIpJz5UZXN0PC9hPjxicj48YnI+CisKKyAgPGgyPkZyYW1lU2V0czwvaDI+IDxicj4K
KyAgPGZyYW1lc2V0IGNvbHM9IjI1JSwyNSUsKiI+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRt
bCIvPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJhbWUgc3JjPSJsaW5r
cy5odG1sIi8+CisgIDwvZnJhbWVzZXQ+CisgIDxicj48YnI+CisKKyAgPGgyPklGcmFtZXM8L2gy
Pjxicj4KKyAgPGlmcmFtZSBzcmM9ImxpbmtzLmh0bWwiPjwvaWZyYW1lPjxicj48YnI+PGJyPgor
ICA8aDI+RElWczwvaDI+PGJyPgorICA8ZGl2IGlkPXY+CisgICAgPGEgaHJlZj0iYSI+YTwvYT4K
KyAgICA8ZGl2IGlkPSJEaXYxIj4KKyAgICAgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8L2Rp
dj4KKyAgICA8YSBocmVmPSJhIj5hPC9hPgorICA8L2Rpdj48YnI+PGJyPgorICA8L2Rpdj4KKyAg
PC9kaXY+CisgIDxhIGhyZWY9Imxhc3QiPmxhc3Q8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IGFkZDVhZGUuLjU3ZTA4MjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0yMTU2LDYgKzIxNTYsOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJk
RXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IikKICAgICAgICAg
ICAgIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBlbHNlIGlmIChGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24gPSBpc0Fycm93S2V5KGV2ZW50LT5rZXlJZGVudGlmaWVyKCkp
KQorICAgICAgICAgICAgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKGRpcmVjdGlvbiwgZXZlbnQp
OwogCiAgICAgICAgLy8gcHJvdmlkZXMgS0IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBl
bmhhbmNlZCBhY2Nlc3NpYmlsaXR5IHVzZXJzCiAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFj
Y2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCkBAIC0yMTcwLDYgKzIx
NzIsMjAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50KiBldmVudCkKICAgICB9CiB9CiAKK0ZvY3VzRGlyZWN0aW9uIEV2ZW50SGFu
ZGxlcjo6aXNBcnJvd0tleShjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIpCit7CisgICAgaWYg
KGtleUlkZW50aWZpZXIgPT0gIkRvd24iKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJlY3Rpb25E
b3duOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIlVwIikKKyAgICAgICAgcmV0dXJu
IEZvY3VzRGlyZWN0aW9uVXA7CisgICAgZWxzZSBpZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIp
CisgICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvbkxlZnQ7CisgICAgZWxzZSBpZiAoa2V5SWRl
bnRpZmllciA9PSAiUmlnaHQiKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJlY3Rpb25SaWdodDsK
KworICAgIHJldHVybiAoRm9jdXNEaXJlY3Rpb24pIDA7Cit9CisKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3Qg
RmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbikgY29uc3QKIHsKQEAgLTI0NjIs
NiArMjQ3OCwyNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVy
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAjZW5kaWYKIAordm9pZCBFdmVudEhhbmRsZXI6OmRl
ZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5KCkgfHwgZXZlbnQt
Pm1ldGFLZXkoKSB8fCBldmVudC0+YWx0R3JhcGhLZXkoKSB8fCBldmVudC0+c2hpZnRLZXkoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3Mo
KSB8fCAhcGFnZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gQXJyb3dzIGFuZCBvdGhlciBwb3NzaWJsZSBkaXJlY3Rp
b25hbCBuYXZpZ2F0aW9uIGtleXMgY2FuIGJlIHVzZWQgaW4gZGVzaWduCisgICAgLy8gbW9kZSBl
ZGl0aW5nLgorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5hZHZhbmNl
Rm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRI
YW5kbGVkKCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVy
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIC8vIFdlIHNob3VsZCBvbmx5IGFkdmFuY2Ug
Zm9jdXMgb24gdGFicyBpZiBubyBzcGVjaWFsIG1vZGlmaWVyIGtleXMgYXJlIGhlbGQgZG93bi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaAppbmRleCA2YTEyZTcwLi5mN2IzZDI0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBA
IC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEV2ZW50SGFuZGxlcl9oCiAKICNpbmNsdWRlICJEcmFn
QWN0aW9ucy5oIgorI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUaW1l
ci5oIgpAQCAtMzAxLDYgKzMwMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlZmF1bHRTcGFj
ZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CiAgICAgdm9pZCBkZWZhdWx0VGFiRXZlbnRI
YW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxl
cihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKICAgICB2b2lkIGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdESFRNTCwgYm9vbCYgZmxh
Z1VBKSBjb25zdDsKQEAgLTMyMyw2ICszMjUsOCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQg
c2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogCisgICAgRm9jdXNEaXJlY3Rpb24gaXNBcnJv
d0tleShjb25zdCBTdHJpbmcmKTsKKwogICAgIGJvb2wgY2FwdHVyZXNEcmFnZ2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fY2FwdHVyZXNEcmFnZ2luZzsgfQogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBk
ZWZpbmVkKF9fT0JKQ19fKSAmJiAhRU5BQkxFKEVYUEVSSU1FTlRBTF9TSU5HTEVfVklFV19NT0RF
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA1ZTc4YzdkLi4zZWY5MmViIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcApAQCAtMjYsNyArMjYsNyBAQAogCiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCi0KKyNpbmNsdWRlICJDU3RyaW5nLmgi
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCkBAIC01NSw2ICs1NSwzMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworZW51
bSBQcmVjZWRlbmNlTW9kZSB7CisgICAgTG93ID0gMCwKKyAgICBQcmVjZWRlbnQsCisgICAgU3Vw
ZXJQcmVjZWRlbnQKK307CisKK3N0cnVjdCBCZXN0Q2FuZGlkYXRlIHsKKyAgICBCZXN0Q2FuZGlk
YXRlKCkKKyAgICAgICAgOiBub2RlKDApCisgICAgICAgICwgZGlzdGFuY2UobnVtZXJpY19saW1p
dHM8bG9uZyBsb25nPjo6bWF4KCkpCisgICAgICAgICwgbW9kZShMb3cpCisgICAgeworICAgIH0K
KyAgICBOb2RlKiBub2RlOworICAgIGxvbmcgbG9uZyBkaXN0YW5jZTsKKyAgICBQcmVjZWRlbmNl
TW9kZSBtb2RlOworfTsKKworc3RhdGljIGJvb2wgdGFrZXNTdXBlclByZWNlZGVuY2UoRm9jdXNE
aXJlY3Rpb24sIEludFJlY3QmLCBJbnRSZWN0Jik7CitzdGF0aWMgYm9vbCB0YWtlc1ByZWNlZGVu
Y2UoRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRSZWN0Jik7CitzdGF0aWMgbG9uZyBsb25n
IHByZWNlZGVuY2VEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiwgSW50UmVjdCYsIEludFJlY3QmKTsK
K3N0YXRpYyB2b2lkIGRpc3RhbmNlSW5EaXJlY3Rpb24oTm9kZSosIE5vZGUqLCBGb2N1c0RpcmVj
dGlvbiwgY29uc3QgSW50UmVjdCYsIGxvbmcgbG9uZyYsIFByZWNlZGVuY2VNb2RlJik7CitzdGF0
aWMgYm9vbCBpc1JlY3RJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiwgSW50UmVjdCYsIEludFJl
Y3QmKTsKK3N0YXRpYyBpbmxpbmUgSW50UmVjdCBhYnNvbHV0ZVJlbmRlclJlY3QoUmVuZGVyT2Jq
ZWN0Kik7CitzdGF0aWMgaW5saW5lIGxvbmcgbG9uZyByZWN0YW5nbGVEaXN0YW5jZShJbnRSZWN0
JiwgSW50UmVjdCYpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlzcGF0Y2hFdmVudHNPbldpbmRv
d0FuZEZvY3VzZWROb2RlKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBmb2N1c2VkKQogewpAQCAt
MTQ2LDggKzE3Myw2MyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZQogICAgIHJldHVybiBhZHZh
bmNlRm9jdXMoZGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CiB9CiAKK3N0YXRpYyB2b2lkIG5leHRJ
bkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIHN0YXJ0LCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBCZXN0Q2FuZGlkYXRlJiBiZXN0Q2Fu
ZGlkYXRlKQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisKKyAgICAvLyBHZXQgdGhlIGN1cnJl
bnQgdmlld3BvcnQgcmVjdCBzbyB3ZSBjYW4gY2hlY2sgaWYgYmVzdENhbmRpZGF0ZSdzIHJlY3QK
KyAgICAvLyBpcyB2aXNpYmxlIGJlZm9yZSBhY3R1YWxseSBtb3ZpbmcgdGhlIGZvY3VzIHRvIGl0
LiBJbiBjYXNlIGl0IGlzIG5vdCB2aXNpYmxlLAorICAgIC8vIHdlIHNjcm9sbCBpbiBkaXJlY3Rp
b24gbGF0ZXIgb24gaW5zdGVhZC4KKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGRvY3VtZW50
LT5wYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3KCk7CisgICAgaWYgKCFmcmFt
ZVZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FCisgICAgSW50UmVjdCB2aXNp
YmxlUmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisKKyAgICBsb25nIGxv
bmcgZGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKworICAgIC8v
IFdhbGsgYWxsIHRoZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRlIGJlc3RDYW5kaWRhdGUgaWYgd2Ug
ZmluZCBhIG5lYXJlciBub2RlLgorICAgIGZvciAoTm9kZSogY2FuZGlkYXRlID0gZG9jdW1lbnQt
PmZpcnN0Q2hpbGQoKTsgY2FuZGlkYXRlOyBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNl
TmV4dE5vZGUoKSkgeworICAgICAgICAvLyBwcmludGYoIiVzIGxvY2FsTmFtZT0nJXMnXG4iLCBf
X0ZVTkNUSU9OX18sIGNhbmRpZGF0ZS0+bG9jYWxOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgIGlmIChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgeworICAg
ICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxG
cmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAob3duZXItPmNv
bnRlbnRGcmFtZSgpKSB7CisgICAgICAgICAgICAgICAgRG9jdW1lbnQqIGlubmVyRG9jdW1lbnQg
PSBvd25lci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAgICAgICAgaWYg
KGlubmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlvbihpbm5l
ckRvY3VtZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9IHN0YXJ0ICYmIGNhbmRp
ZGF0ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkpIHsKKyAgICAgICAgICAgIGRpc3RhbmNl
SW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uLCB2aXNpYmxlUmVjdCwgZGlz
dGFuY2UsIGJlc3RDYW5kaWRhdGUubW9kZSk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBi
ZXN0Q2FuZGlkYXRlLmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJcdGRpc3Rh
bmNlPSVsbGRcbiIsIGRpc3RhbmNlKTsKKyAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRlLm5v
ZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0ZS5kaXN0YW5jZSA9
IGRpc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCiBib29sIEZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQogeworICAgIHN3aXRjaCAoZGly
ZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7CisgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvbkxlZnQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRm9j
dXNEaXJlY3Rpb25VcDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0
dXJuIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoZGlyZWN0aW9uLCBldmVudCk7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJv
b2wgaW5pdGlhbEZvY3VzKQorewogICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFt
ZSgpOwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCk7CkBAIC0yNTIsNiArMzM0LDc5IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjph
ZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVu
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9j
dXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAg
QVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUtPmRv
Y3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2VkTm9k
ZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRvIHRo
ZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rpb24gdGFiRGlyZWN0
aW9uID0gKEZvY3VzRGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVm
dCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJlY3Rp
b25Gb3J3YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDsKKyAgICAgICAgLy8gJ2luaXRpYWxG
b2N1cycgaXMgc2V0IHRvIHRydWUgc28gdGhlIGNocm9tZSBpcyBub3QgZm9jdXNlZC4KKyAgICAg
ICAgcmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcih0YWJEaXJlY3Rpb24sIGV2ZW50
LCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0ZWQg
ZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9
IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8ICFw
YXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZy
YW1lID0gcGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVzdENhbmRpZGF0ZSBiZXN0Q2FuZGlk
YXRlOworICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUs
IGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworCisgICAgTm9kZSogbm9kZSA9IGJl
c3RDYW5kaWRhdGUubm9kZTsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgLy8gTGVhdmUgdGhl
IGZvY3VzIG9uIHRoZSBzYW1lIG5vZGUgYnV0IHNjcm9sbC4KKyAgICAgICAgRnJhbWUqIGZyYW1l
ID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAg
ICAgIFNjcm9sbERpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb247CisKKyAgICAgICAgc3dpdGNoIChk
aXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgICAg
ICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxMZWZ0OworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgICAgIHNjcm9sbERpcmVjdGlv
biA9IFNjcm9sbFJpZ2h0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNE
aXJlY3Rpb25VcDoKKyAgICAgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbFVwOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAg
ICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsRG93bjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNp
dmVseShzY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEJ5TGluZSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIC8v
IEZJWE1FOiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3VtZW50IGhlcmUuCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBub2Rl
LT5kb2N1bWVudCgpOworCisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGZvY3VzZWREb2N1bWVudCkg
eworICAgICAgICAvLyBGb2N1cyBpcyBnb2luZyBhd2F5IGZyb20gdGhlIG9yaWdpbmFsbHkgZm9j
dXNlZCBkb2N1bWVudCwgc28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KKyAgICAgICAgZm9jdXNl
ZERvY3VtZW50LT5zZXRGb2N1c2VkTm9kZSgwKTsKKyAgICB9CisKKyAgICBpZiAobmV3RG9jdW1l
bnQpCisgICAgICAgIHNldEZvY3VzZWRGcmFtZShuZXdEb2N1bWVudC0+ZnJhbWUoKSk7CisKKyAg
ICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmZvY3VzKGZhbHNlKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogc3RhdGljIGJvb2wgcmVsaW5xdWlzaGVzRWRpdGluZ0ZvY3VzKE5vZGUgKm5v
ZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwpAQCAtMzU5LDQgKzUxNCwyOTYgQEAgdm9pZCBGb2N1
c0NvbnRyb2xsZXI6OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKICAgICAgICAgZGlzcGF0Y2hFdmVu
dHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKG1fZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLCBhY3Rp
dmUpOwogfQogCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEhF
TFBFUiBTUEFUSUFMIE5BVklHQVRJT04gTUVUSE9EUyAvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisKKy8vIC0tIGdyYWJiZWQgZnJvbSBNSUNST0IgZXhjZXB0ZWQg
YnkgVVB8RE9XTiBsb2dpYy4KK3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgZm9jdXNlZFJlY3QsIEludFJlY3QmIGRlc3RSZWN0
KQoreworICAgIGludCBtaWRkbGUgPSAwOworCisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgbWlkZGxlID0gZGVzdFJlY3QueCgp
ICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgcmV0dXJuIChtaWRkbGUgPCBm
b2N1c2VkUmVjdC54KCkpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAg
bWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAg
ICAgcmV0dXJuIChtaWRkbGUgID4gZm9jdXNlZFJlY3QueCgpICsgYWJzKGZvY3VzZWRSZWN0Lndp
ZHRoKCkpKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXAgOgorICAgICAgICByZXR1cm4gKGRl
c3RSZWN0LnkoKSA8IGZvY3VzZWRSZWN0LnkoKSk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRv
d246CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgp
KSA+IGZvY3VzZWRSZWN0LnkoKSArIGFicyhmb2N1c2VkUmVjdC5oZWlnaHQoKSkpOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgZGlzdGFuY2VJbkRpcmVjdGlvbihOb2RlKiBzdGFy
dCwgTm9kZSogZGVzdCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiB2
aWV3cG9ydFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyYg
ZGlzdGFuY2UsIFByZWNlZGVuY2VNb2RlJiBtb2RlKQoreworICAgIFJlbmRlck9iamVjdCogc3Rh
cnRSZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIoKTsKKyAgICBJbnRSZWN0IHN0YXJ0UmVjdChhYnNv
bHV0ZVJlbmRlclJlY3Qoc3RhcnRSZW5kZXIpKTsKKworICAgIFJlbmRlck9iamVjdCogZGVzdFJl
bmRlciA9IGRlc3QtPnJlbmRlcmVyKCk7CisgICAgSW50UmVjdCBkZXN0UmVjdChhYnNvbHV0ZVJl
bmRlclJlY3QoZGVzdFJlbmRlcikpOworCisgICAgLy8gSW4gb3JkZXIgdG8gYXZvaWQgY3Jhenkg
anVtcCBiZXR3ZWVuIGxpbmtzIHRoYXQgYXJlIGVpdGhlciBmYXIgYXdheSBmcm9tIGVhY2ggb3Ro
ZXIsCisgICAgLy8gb3IganVzdCBub3QgY3VycmVudGx5IHZpc2libGUsIGxldHMgYmFpbCBvdXQg
aWYgdGhlIGRlc3RpbmF0aW9uIGZvY3VzYWJsZSBlbGVtZW50IGlzCisgICAgLy8gbm90IGluIHRo
ZSB2aWV3cG9ydC4KKyAgICBpZiAoIXZpZXdwb3J0UmVjdC5pbnRlcnNlY3RzKGRlc3RSZWN0KSkK
KyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xl
IG9mIHR3byBjb25zZWN1dGl2ZSBsaW5rcyBjb3VsZCBvdmVybGFwLCBzbyB3ZSBkZWNyZWFzZSB0
aGUgc2l6ZQorICAgIC8vIG9mIGJvdGggcmVjdGFuZ2xlcy4KKyAgICAvLyBGSVhNRTogYWRkIHRl
c3RzLgorICAgIHN0YXJ0UmVjdC5pbmZsYXRlKC00KTsKKyAgICBkZXN0UmVjdC5pbmZsYXRlKC00
KTsKKworICAgIGlmICghaXNSZWN0SW5EaXJlY3Rpb24oZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRl
c3RSZWN0KSkKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICAvLyBJZiB0YXJnZXQgdGFr
ZXMgcHJlY2VkZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5vdCBhbHdheXMgdGhlIHNo
b3J0ZXN0CisgICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldAorICAgIGlmICh0YWtlc1N1cGVy
UHJlY2VkZW5jZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpKSB7CisgICAgICAgIC8v
IHJlc2V0IGRpc3RhbmNlIGFzIHdlIGFyZSBub3cgaW4gc3VwZXIgcHJlY2VkZW5jZSBtb2RlCisg
ICAgICAgIGlmIChtb2RlICE9IFN1cGVyUHJlY2VkZW50KQorICAgICAgICAgICAgZGlzdGFuY2Ug
PSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKyAgICAgICAgbW9kZSA9IFN1cGVy
UHJlY2VkZW50OworCisgICAgICAgIGxvbmcgbG9uZyBwcmVjZWRlbnREaXN0YW5jZSA9IHByZWNl
ZGVuY2VEaXN0YW5jZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworCisgICAgICAg
IGlmIChkaXN0YW5jZSA+IHByZWNlZGVudERpc3RhbmNlKQorICAgICAgICAgICAgZGlzdGFuY2Ug
PSBwcmVjZWRlbnREaXN0YW5jZTsKKyAgICB9CisKKyAgICBpZiAobW9kZSA9PSBTdXBlclByZWNl
ZGVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgdGFyZ2V0IHRha2VzIHByZWNlZGVu
Y2UgdGhlbiB1c2UgaXQgLSBkaXN0YW5jZSBpcyBub3QgYWx3YXlzIHRoZSBzaG9ydGVzdAorICAg
IC8vIGZvciBhIHByZWNlZGVudCB0YXJnZXQKKyAgICBpZiAodGFrZXNQcmVjZWRlbmNlKGRpcmVj
dGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCkpIHsKKyAgICAgICAgbW9kZSA9IFByZWNlZGVudDsK
KyAgICAgICAgbG9uZyBsb25nIHByZWNlZGVudERpc3RhbmNlID0gcHJlY2VkZW5jZURpc3RhbmNl
KGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisKKyAgICAgICAgaWYgKGRpc3RhbmNl
ID4gcHJlY2VkZW50RGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHByZWNlZGVudERp
c3RhbmNlOworICAgIH0KKworICAgIGlmIChtb2RlID09IFByZWNlZGVudCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZGlzdGFuY2UgPSByZWN0YW5nbGVEaXN0YW5jZShzdGFydFJlY3QsIGRlc3RS
ZWN0KTsKKyAgICByZXR1cm47CisKK2V4aXRQb2ludDoKKyAgICBkaXN0YW5jZSA9IG51bWVyaWNf
bGltaXRzPGxvbmcgbG9uZz46Om1heCgpOworfQorCisvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBp
cyBmbGF3ZWQgYmVjYXVzZSBpdCBkb2Vzbid0IGNvbnNpZGVyIHRoZSBlZmZlY3RzIG9mIENTUyBv
ciBTVkcgdHJhbnNmb3Jtcy4KK3N0YXRpYyBpbmxpbmUgSW50UmVjdCBhYnNvbHV0ZVJlbmRlclJl
Y3QoUmVuZGVyT2JqZWN0KiByZW5kZXIpCit7CisgICAgQVNTRVJUKHJlbmRlcik7CisKKyAgICAv
LyBGSVhNRTogbm9kZS0+Z2V0UmVjdCgpID8KKyAgICBJbnRSZWN0IHJlY3QocmVuZGVyLT5hYnNv
bHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSk7CisKKyAgICAvLyBoYW5kbGUgbmVzdGVkIGZyYW1l
cy4KKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHJlbmRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCisgICAgICAgIGlmIChIVE1M
RnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1lbnQoKSkK
KyAgICAgICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPm9mZnNldExlZnQoKSwgb3duZXJF
bGVtZW50LT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVjdDsKK30KKworLy8gVGhpcyBt
ZXRob2QgY2hlY2tzIGZvciB2ZXJ5IHByZWZlcmFibGUgcmVjdCB0byBtb3ZlIGZvY3VzIHRvLiBJ
biBlc3NlbmNlIHRhcmdldHMKKy8vIHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVuIHRoZSB0b3Ag
b3IgYm90dG9tIG9mIHRoZSBjdXJyZW50IHJlY3QuCitzdGF0aWMgYm9vbCB0YWtlc1N1cGVyUHJl
Y2VkZW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0YXJ0UmVjdCwgSW50
UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxl
ZnQgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IGRl
c3RNaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAg
ICAgICAgaW50IGRlc3RCb3R0b20gPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0
KCkpOworICAgICAgICBpbnQgZGVzdEVuZCAgICA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVj
dC53aWR0aCgpKTsKKworICAgICAgICBpbnQgc3RhcnRCb3R0b20gPSBzdGFydFJlY3QueSgpICsg
YWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGludCBzdGFydEVuZCAgICA9IHN0YXJ0
UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpOworCisgICAgICAgIGlmIChkaXJlY3Rp
b24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0ICYmIGRlc3RFbmQgPiBzdGFydFJlY3QueCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25SaWdodCAmJiBkZXN0UmVjdC54KCkgPCBzdGFydEVuZCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0UmVjdC55KCkgPj0gc3RhcnRSZWN0
LnkoKSAmJiBkZXN0UmVjdC55KCkgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICB8fCAgKGRl
c3RNaWRkbGUgPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0TWlkZGxlIDw9IHN0YXJ0Qm90dG9tKQor
ICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRv
bSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpID09IHN0YXJ0
UmVjdC55KCkpCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPT0gc3RhcnRCb3R0b20pCisg
ICAgICAgICAgICB8fCAgKGRlc3RSZWN0LnkoKSA8PSBzdGFydFJlY3QueSgpICYmIGRlc3RCb3R0
b20gPj0gc3RhcnRCb3R0b20pKTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAg
ICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAv
IDI7CisgICAgICAgIGludCBkZXN0RW5kICAgID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0
LndpZHRoKCkpOworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhk
ZXN0UmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAgaW50IHN0YXJ0RW5kICAgID0gc3RhcnRSZWN0
LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBzdGFydEJvdHRvbSA9
IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKworICAgICAgICBpZiAo
ZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXAgJiYgZGVzdFJlY3QueSgpID4gc3RhcnRSZWN0
LnkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoZGlyZWN0aW9u
ID09IEZvY3VzRGlyZWN0aW9uRG93biAmJiBkZXN0UmVjdC55KCkgPCBzdGFydFJlY3QueSgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiAoKGRlc3RNaWRkbGUg
Pj0gc3RhcnRSZWN0LngoKSAmJiBkZXN0TWlkZGxlIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAg
fHwgIChkZXN0UmVjdC54KCkgPj0gc3RhcnRSZWN0LngoKSAmJiBkZXN0UmVjdC54KCkgPD0gc3Rh
cnRFbmQpCisgICAgICAgICAgICB8fCAgKHN0YXJ0UmVjdC54KCkgPT0gZGVzdFJlY3QueCgpKQor
ICAgICAgICAgICAgfHwgIChzdGFydEVuZCA9PSBkZXN0RW5kKQorICAgICAgICAgICAgfHwgIChk
ZXN0RW5kID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA8PSBzdGFydEVuZCkKKyAgICAgICAg
ICAgIHx8ICAoZGVzdFJlY3QueCgpIDw9IHN0YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA+PSBzdGFy
dEVuZCkpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgdGFr
ZXNQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0
LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0
aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBp
bnQgaGFsZiA9IGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IG1pblko
c3RhcnRSZWN0LnkoKSAvKiAtIGhhbGYgKi8pOworICAgICAgICBpbnQgbWF4WShzdGFydFJlY3Qu
eSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyogKyBoYWxmICovKTsKKworICAgICAgICBp
bnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAy
OworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5o
ZWlnaHQoKSk7CisKKyAgICAgICAgaW50IHN0YXJ0Qm90dG9tID0gc3RhcnRSZWN0LnkoKSArIGFi
cyhzdGFydFJlY3QuaGVpZ2h0KCkpOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LnkoKSA+
PSBtaW5ZICYmIGRlc3RSZWN0LnkoKSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90
dG9tID49IG1pblkgJiYgZGVzdEJvdHRvbSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0
TWlkZGxlID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAg
ICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdFJlY3Qu
eSgpIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IHN0YXJ0
UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAo
ZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRv
bSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBk
aXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIGludCBoYWxmID0gYWJz
KHN0YXJ0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBtaW5YKHN0YXJ0UmVjdC54KCkg
LyogLSBoYWxmICovKTsKKyAgICAgICAgaW50IG1heFgoc3RhcnRSZWN0LngoKSArIGFicyhzdGFy
dFJlY3Qud2lkdGgoKSkgLyogKyBoYWxmICovKTsKKworICAgICAgICBpbnQgc3RhcnRFbmQgPSBz
dGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgaW50IGRlc3RF
bmQgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgcmV0
dXJuICgoZGVzdFJlY3QueCgpID49IG1pblggJiYgZGVzdFJlY3QueCgpIDw9IG1heFgpCisgICAg
ICAgICAgICAgfHwgKGRlc3RFbmQgPj0gbWluWCAmJiBkZXN0RW5kIDw9IG1heFgpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIHNxcnQoKCh4MSAtIHgyKSBeIDIpICsgKCh5
MSAtIHkyKSBeIDIpKQorc3RhdGljIGxvbmcgbG9uZyBwcmVjZWRlbmNlRGlzdGFuY2UoRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uLCBJbnRSZWN0JiBzdGFydFJlY3QsIEludFJlY3QmIGRlc3RSZWN0
KQoreworICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46
Om1heCgpOworICAgIGxvbmcgbG9uZyBzZWMgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+Ojpt
YXgoKTsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7CisgICAg
ICAgIGludCBzdGFydFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkg
LyAyOworICAgICAgICBpbnQgZGVzdFkgID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0Lmhl
aWdodCgpKSAvIDI7CisgICAgICAgIGludCBzdGFydFggPSBzdGFydFJlY3QueCgpOworICAgICAg
ICBpbnQgZGVzdFggID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisg
ICAgICAgIGludCBwID0gKChzdGFydFggLSBkZXN0WCkgKiAoc3RhcnRYIC0gZGVzdFgpKSArICgo
c3RhcnRZIC0gZGVzdFkpICogKGRlc3RZIC0gZGVzdFkpKTsKKyAgICAgICAgc2VjID0gc3FydChw
KTsKKworICAgICAgICBwID0gKChzdGFydFJlY3QueCgpIC0gZGVzdFJlY3QueCgpKSAqIChzdGFy
dFJlY3QueCgpIC0gZGVzdFJlY3QueCgpKSkgKyAoKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55
KCkpICogKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpKTsKKyAgICAgICAgZGlzdGFuY2Ug
PSBzcXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueSgp
ID09IGRlc3RSZWN0LnkoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKwor
ICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBpbnQg
c3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAg
ICAgICAgaW50IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkg
LyAyOworICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qu
d2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCk7CisKKyAgICAgICAg
aW50IHAgPSAoKGRlc3RYIC0gc3RhcnRYKSAqIChkZXN0WCAtIHN0YXJ0WCkpICsgKChkZXN0WSAt
IHN0YXJ0WSkgKiAoZGVzdFkgLSBzdGFydFkpKTsKKyAgICAgICAgc2VjID0gc3FydChwKTsKKwor
ICAgICAgICBwID0gKChkZXN0UmVjdC54KCkgLSBzdGFydFJlY3QueCgpKSAqIChkZXN0UmVjdC54
KCkgLSBzdGFydFJlY3QueCgpKSkgKyAoKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkpICog
KGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkpKTsKKyAgICAgICAgZGlzdGFuY2UgPSBzcXJ0
KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueSgpID09IGRl
c3RSZWN0LnkoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKworICAgIGlm
IChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCkgeworICAgICAgICBpbnQgc3RhcnRYID0g
c3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQg
ZGVzdFggID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAg
ICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCk7CisgICAgICAgIGludCBkZXN0WSA9IGRlc3RS
ZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAgaW50IHAgPSAoKHN0
YXJ0WCAtIGRlc3RYKSAqIChzdGFydFggLSBkZXN0WCkpICsgKChzdGFydFkgLSBkZXN0WSkgKiAo
c3RhcnRZIC0gZGVzdFkpKTsKKyAgICAgICAgc2VjID0gc3FydChwKTsKKworICAgICAgICBwID0g
KChzdGFydFJlY3QueCgpIC0gZGVzdFJlY3QueCgpKSAqIChzdGFydFJlY3QueCgpIC0gZGVzdFJl
Y3QueCgpKSkgKyAoKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpICogKHN0YXJ0UmVjdC55
KCkgLSBkZXN0UmVjdC55KCkpKTsKKworICAgICAgICBkaXN0YW5jZSA9IHNxcnQocCk7CisKKyAg
ICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC54KCkgPT0gZGVzdFJlY3QueCgp
KQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisKKyAgICAgICAgc2VjID0gKHN0YXJ0UmVj
dC55KCkgLSBkZXN0UmVjdC55KCkpOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSkKKyAg
ICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIC8vIGdldCBtaWRkbGUgWCBmb3IgY3VycmVu
dCBhbmQgdGFyZ2V0IHJlY3RzCisgICAgICAgIGludCBzdGFydFggPSBzdGFydFJlY3QueCgpICsg
YWJzKHN0YXJ0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVj
dC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgc3RhcnRZID0g
c3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50
IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworCisg
ICAgICAgIGludCBwID0gKChkZXN0WCAtIHN0YXJ0WCkgKiAoZGVzdFggLSBzdGFydFgpKSArICgo
ZGVzdFkgLSBzdGFydFkpICogKGRlc3RZIC0gc3RhcnRZKSk7CisgICAgICAgIHNlYyA9IHNxcnQo
cCk7CisKKyAgICAgICAgcCA9ICgoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkgKiAoZGVz
dFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkpICsgKChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3Qu
eSgpKSAqIChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKSk7CisgICAgICAgIGRpc3RhbmNl
ID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0Lngo
KSA9PSBkZXN0UmVjdC54KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKworICAgICAg
ICBzZWMgPSAoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKHNl
YyA8IGRpc3RhbmNlKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisgICAgfQorCisgICAg
cmV0dXJuIGFicyhkaXN0YW5jZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgbG9uZyBsb25nIHJlY3Rh
bmdsZURpc3RhbmNlKEludFJlY3QmIHJlY3QxLCBJbnRSZWN0JiByZWN0MikKK3sKKyAgICBsb25n
IGxvbmcgeERpc3QgPSAwOworICAgIGlmIChyZWN0MS54KCkgPiByZWN0Mi5yaWdodCgpKQorICAg
ICAgICB4RGlzdCA9IHJlY3QxLngoKSAtIHJlY3QyLnJpZ2h0KCk7CisgICAgZWxzZSBpZiAocmVj
dDIueCgpID4gcmVjdDEucmlnaHQoKSkKKyAgICAgICAgeERpc3QgPSByZWN0Mi54KCkgLSByZWN0
MS5yaWdodCgpOworCisgICAgbG9uZyBsb25nIHlEaXN0ID0gMDsKKyAgICBpZiAocmVjdDEueSgp
ID4gcmVjdDIuYm90dG9tKCkpCisgICAgICAgIHlEaXN0ID0gcmVjdDEueSgpIC0gcmVjdDIuYm90
dG9tKCk7CisgICAgZWxzZSBpZiAocmVjdDIueSgpID4gcmVjdDEuYm90dG9tKCkpCisgICAgICAg
IHlEaXN0ID0gcmVjdDIueSgpIC0gcmVjdDEuYm90dG9tKCk7CisKKyAgICByZXR1cm4geERpc3Qg
KiB4RGlzdCArIHlEaXN0ICogeURpc3Q7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaAppbmRleCBkODY0MDhhLi4zOGMwOGM0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oCkBAIC01OCw2ICs1OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9v
bCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogCiAgICAgcHJpdmF0
ZToKKyAgICAgICAgYm9vbCBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9u
LCBLZXlib2FyZEV2ZW50Kik7CisgICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9y
ZGVyKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOwor
CiAgICAgICAgIFBhZ2UqIG1fcGFnZTsKICAgICAgICAgUmVmUHRyPEZyYW1lPiBtX2ZvY3VzZWRG
cmFtZTsKICAgICAgICAgYm9vbCBtX2lzQWN0aXZlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0ZvY3VzRGlyZWN0aW9uLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAppbmRleCAy
NjFjNzQ1Li41NTFjNzI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24u
aAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaApAQCAtMjksNyArMjksMTEgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVtIEZvY3VzRGlyZWN0aW9uIHsKICAgICAgICAg
Rm9jdXNEaXJlY3Rpb25Gb3J3YXJkID0gMCwKLSAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2Fy
ZAorICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLAorICAgICAgICBGb2N1c0RpcmVjdGlv
blVwLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkRvd24sCisgICAgICAgIEZvY3VzRGlyZWN0aW9u
TGVmdCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25SaWdodAogICAgIH07CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CmluZGV4IDM4NzNjODkuLjRhYzAxYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjQsNiArNjQsNyBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fbWF4aW11bURlY29kZWRJbWFn
ZVNpemUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAgLCBtX2xvY2FsU3RvcmFn
ZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4K
ICAgICAsIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWUobnVtZXJpY19saW1pdHM8dW5zaWduZWQ+Ojpt
YXgoKSkKKyAgICAsIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAsIG1f
aXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZh
bHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMjM3LDYgKzIz
OCwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyhib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbQogICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKIH0KIAor
dm9pZCBTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQpCit7CisgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9
IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZh
RW5hYmxlZChib29sIGlzSmF2YUVuYWJsZWQpCiB7CiAgICAgbV9pc0phdmFFbmFibGVkID0gaXNK
YXZhRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggOWYwMGIwZC4uM2ZiMzliZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEx
Myw2ICsxMTMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBqYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9
CisKICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBpc0ph
dmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFFbmFibGVkOyB9CiAKQEAgLTI5OCw2
ICszMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1E
ZWNvZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOwog
ICAgICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOworICAgICAgICBib29sIG1f
aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5h
YmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgOiAxOwog
ICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7Ci0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46576</attachid>
            <date>2010-01-14 09:48:47 -0800</date>
            <delta_ts>2010-01-18 20:09:38 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v8)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>68057</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBlOWZhNzE3MjFiZWI2MDVhODVlMzhkOTcwMWZkYzJkM2NmNGFlODI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAxNCBKYW4gMjAxMCAwMDoyMToyOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29AZ21h
aWwuY29tPgpCYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFy
Y28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KCldlYkNvcmU6CgpUaGlzIHBhdGNoIGltcGxl
bWVudHMgdGhlIGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZlYXR1cmUg
WzFdLgpJdCBpbXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IG9mIFdlYkNvcmUgYnkg
ZXh0ZW5kaW5nIHRoZSBiYXNpYyBrZXlib2FyZApuYXZpZ2F0aW9uIGN1cnJlbnRseSBhdmFpbGFi
bGUgKGJhc2VkIG9uIFRBQiBmb3J3YXJkIGFuZCBiYWNrd2FyZCkgd2l0aCB0aGUKYWRkaXRpb24g
b2YgYSBkaXJlY3Rpb25hbCBiYXNlZCBuYXZpZ2F0aW9uLCB3aGVyZSBmb2N1c2FibGUgZWxlbWVu
dHMgYXJlIGFjY2Vzc2libGUKYmFzZWQgb24gdGhlaXIgc3BhdGlhbCBsb2NhdGlvbiBpbiBhIFdl
YiBQYWdlLCBub3Qgb24gaXRzIFRhYiBpbmRleCB2YWx1ZS4KCkhpZ2hsaWdodHM6CiogRmVhdHVy
ZSBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gJ1NldHRpbmdzJy4gUG9ydCBzcGVjaWZpYyBB
UElzIG5lZWQgdG8gYmUgYWRkZWQKICBmb3IgdG9nZ2xlIGl0IG9uIGFuZCBvZmYuCiogT25seSBl
bGVtZW50cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92
ZSB0byBpdC4gSWYgdGhlcmUgaXMKICBub3QgYW55LCBzY3JvbGwtaW4tZGlyZWN0aW9uIGlzIHBl
cmZvcm1lZC4KKiBUaGUgbGF5b3V0IHRlc3RzIGFkZGVkIHJ1biBvbiBRdCdzIERSVCBvbmx5IGZv
ciBub3cgKHNraXBwZWQgZm9yIE1hYywgV2luIGFuZCBHdGspLgoKS25vd24gaXNzdWVzICh0byBi
ZSBjb3ZlcmVkIGluIGZvbGxvdyB1cCBidWdzKToKKiBBZGQgcG9ydCBzcGVjaWZpYyBob29rcyB0
byBlYWNoIERSVHMgdG8gZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uLgoqIEZvcm0g
bmF2aWdhdGlvbiBpcyBub3QgeWV0IHN1cHBvcnRlZC4KKiBJZnJhbWVzIHdpdGggc2Nyb2xsYWJs
ZSBjb250ZW50IG5lZWRzIGJldHRlciBzdXBwb3J0LgoqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1
c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtzIHdpdGggYXJyb3dzIGtleXMgb25seQogICh1
cCwgZG93biwgcmlnaHQgYW5kIGxlZnQpLgoqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFs
dCwgQ3RybCBhbmQgU2hpZnQpLgoKWzFdIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3Bh
dGlhbF9uYXZpZ2F0aW9uCgpUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbAogICAgICAgZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAog
ICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAoKKiBtYW51YWwtdGVz
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWw6IEFkZGVkLgoqIG1hbnVhbC10ZXN0cy9z
cGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbDogQWRk
ZWQuCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZh
dWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgooV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppc0Fycm93
S2V5KToKKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKToK
KiBwYWdlL0V2ZW50SGFuZGxlci5oOgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKFdlYkNv
cmU6Oik6CihXZWJDb3JlOjpCZXN0Q2FuZGlkYXRlOjpCZXN0Q2FuZGlkYXRlKToKKFdlYkNvcmU6
Om5leHRJbkRpcmVjdGlvbik6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1
cyk6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRl
cik6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkp
OgooV2ViQ29yZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6ZGlzdGFuY2VJbkRpcmVj
dGlvbik6CihXZWJDb3JlOjphYnNvbHV0ZVJlbmRlclJlY3QpOgooV2ViQ29yZTo6dGFrZXNTdXBl
clByZWNlZGVuY2UpOgooV2ViQ29yZTo6dGFrZXNQcmVjZWRlbmNlKToKKFdlYkNvcmU6OnByZWNl
ZGVuY2VEaXN0YW5jZSk6CihXZWJDb3JlOjpyZWN0YW5nbGVEaXN0YW5jZSk6CiogcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuaDoKKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6CihXZWJDb3JlOjopOgoqIHBh
Z2UvU2V0dGluZ3MuY3BwOgooV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKFdlYkNvcmU6
OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoqIHBhZ2UvU2V0dGluZ3Mu
aDoKKFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CgpMYXlv
dXRUZXN0czoKCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQu
CiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQt
c2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCiogZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczog
QWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUu
aHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNv
dXJjZXMvaWZyYW1lMy5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlv
bi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgICAgICAgfCAgICA3ICsKIC4uLi9zcGF0aWFsLW5hdmln
YXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbCAgICAgIHwgICAgNyArCiAuLi4vc3BhdGlhbC1u
YXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NuYXYt
aWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQgfCAgIDE0ICsKIC4uLi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwgICA2NiArKysK
IC4uLi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgICAgICAgICAgICAgIHwgICAx
NyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgICB8
ICAgODggKysrKwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0ICAg
ICAgICAgfCAgIDIwICsKIC4uLi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwgICAgICAg
ICAgICAgICAgIHwgICA5MyArKysrCiAuLi50LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLWV4cGVjdGVkLnR4dCB8ICAgIDYgKwogLi4uc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3Jv
bGwtaW4tZGlyZWN0aW9uLmh0bWwgfCAgIDk2ICsrKysrCiAuLi4vc25hdi12ZXJ0aWNhbC1zdXBl
cnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0ICAgICB8ICAgMTkgKwogLi4uL3NuYXYtdmVydGljYWwt
c3VwZXJwcmVjZWRlbmNlLmh0bWwgICAgICAgICAgICAgfCAgIDgxICsrKysKIC4uLi9zcGF0aWFs
LW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIHwgICA2OSArKysKIExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAg
ICAzICsKIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICA2OSArKysKIFdlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5r
cy5odG1sIHwgICAgOSArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbCAg
ICAgICAgICAgICB8ICAxMzUgKysrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICA0NDUgKysrKysrKysrKysrKysrKysrKy0K
IFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwgICAg
MyArCiBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDYgKy0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDQgKwogMjggZmlsZXMgY2hhbmdlZCwgMTMzMyBpbnNlcnRpb25zKCspLCAy
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2Vz
L2lmcmFtZTIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZy
YW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUt
bm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZl
cnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXRlc3QtY2FzZXMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNjI5OTcyLi40ZWYzMDczIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTAtMDEtMTMgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRl
bmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNj
cm9sbGFibGUtY29udGVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJz
YWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWUyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0xMyAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NDhhZWEwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIg
aHJlZj0iYSI+YTwvYT48YnI+CisgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PGJyPgorICAg
IDxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjxicj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iNzkxMDRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwKQEAgLTAsMCArMSw3IEBA
Cis8aHRtbD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjQiIGhyZWY9ImEiPmE8L2E+CisgICAgPGEg
aWQ9IjUiIGhyZWY9ImEiPmE8L2E+CisgICAgPGEgaWQ9IjYiIGhyZWY9ImEiPmE8L2E+CisgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRhODIwNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1l
My5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSIxIiBo
cmVmPSJhIj5hPC9hPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTAwcHgiPgorICAgICAg
PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFi
bGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWE0YzAyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK2EKKworCithCitQQVNTIGRvY3VtZW50LmRlZmF1bHRW
aWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0
Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICI0IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Ny
b2xsYWJsZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhiNWNhNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1z
Y3JvbGxhYmxlLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDY2IEBACis8aHRtbD4KKyAgPCEtLQor
ICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3Ru
ZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJs
ZSBlbGVtZW50cyBpbiBhCisgICAgPGlmcmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAg
ICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9k
aXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFn
ZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92
ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBX
ZWIgcGFnZSwgZXZlbnR1YWxseSBnb2luZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0
CisgICAgICAgZ29pbmcgYmFjayB0byB0aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisg
IC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9u
LXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisg
ICAgICBbIkRvd24iLCAiMiJdLAorICAgICAgWyJEb3duIiwgIjMiXSwKKyAgICAgIFsiRG93biIs
ICI0Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjQiXSwKKyAgICAg
IFsiVXAiLCAiMyJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAg
ICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRy
dWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAg
IHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxh
Y2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisg
ICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwv
YT48L2Rpdj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1sIj48L2lmcmFt
ZT48YnI+CisgICAgPGlmcmFtZSBmcmFtZWJvcmRlcj0iMCIgc3JjPSJyZXNvdXJjZXMvaWZyYW1l
Mi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDoxMHB4IiA+PGEg
aWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRy
YXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OWIwNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNyBAQAorVGVzdCB0YWJsZSB0cmF2ZXJzYWwKK2EJYQlhCithCWEJYQorYQlhCWEKK0VuZCBv
ZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
MSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgxOGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
Lmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5z
dXJlcyB0aGUgYmFzaWMgdGFibGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlh
bCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisg
ICAgPHRhYmxlPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6
CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5h
dmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJz
dGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aHJvdWdoIHRo
ZSBzcGFyc2VseSBwb3NpdGlvbmVkIGVsZW1lbnRzCisgICAgICAgaW4gdGhlIHRhYmxlLCBldmVu
dHVhbGx5IGdvaW5nIHRvIGFuIG91dGVyIHNvdXRod2FyZCBsaW5rLAorICAgICAgIGJ1dCBnb2lu
ZyBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1v
dmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAor
ICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAi
LCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjkiXSwKKyAg
ICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQiLCAiMiJd
LAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0
IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0
Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9
IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNv
bWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxh
IGlkPSJzdGFydCIgaHJlZj0iYSI+VGVzdCB0YWJsZSB0cmF2ZXJzYWw8YT4KKyAgICA8dGFibGUg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsg
bWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNp
bmc9IjEiPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxl
PSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMSIgaHJl
Zj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRv
cDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAg
ICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRl
cjsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAg
IDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRk
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0i
NSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8L2E+PC90
ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVy
dGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjciIGhyZWY9ImEi
PmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90Ym9k
eT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6MTAwcHgnPgorICAg
ICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kIG9mIHRhYmxlIHRyYXZlcnNhbCB0ZXN0PGE+Cisg
ICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWUwOGJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAg
QEAKK2EKK2EJYQlhCithCWEJYQorYQlhCWEKK2EKK2EKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNh
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMGQwMzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzxodG1sPgor
ICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRhYmxlIHRyYXZlcnNhbCBj
b3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBm
b2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUu
CisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVu
YWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRo
aXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9j
dXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgZXZlbnR1YWxseQorICAg
ICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBhbmQgZWFzdHdhcmQgbGlua3MsIGJ1dCBnb2lu
ZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAg
ICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIs
ICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAg
ICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0IiwgIjgiXSwKKyAgICAgIFsiUmlnaHQiLCAi
OSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgInJpZ2h0Il0sCisgICAg
ICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQiLCAiMiJd
LAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0
IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0
Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9
IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNv
bWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxh
IGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+CisgICAgPHRhYmxlPgorICAgICAgPHRib2R5
PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+
PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQt
c2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0
ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQt
c2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0
ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI1IiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjYiIGhyZWY9
ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0
ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI3IiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjgiIGhyZWY9
ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48
YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90Ym9k
eT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6OHB4Jz4KKyAgICAg
IDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJt
YXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBweCI+CisgICAgICA8YSBpZD0icmlnaHQi
IGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxv
dy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwt
aW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xMmE1MzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVj
dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitTdGFydAorRW5kCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgdHJ1
ZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQt
b3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jZjM3NDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Ny
b2xsLWluLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzxodG1sPgorICA8IS0tCisg
ICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGNvcnJlY3RuZXNzIHRoZSBmb2xsb3dpbmcgU3BhdGlh
bCBOYXZpZ2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobSBmZWF0dXJlcy4KKworICAgIDEpIFRo
ZXJlIGlzIG5vIHVuaXQgb3ZlcmZsb3cgaW4gdGhlIFNOYXYgYWxnb3JpdGhtIHdoaWxlIGNhbGN1
bGF0aW5nCisgICAgICAgdGhlIGJlc3Qgbm9kZSBjYW5kaWRhdGUgdG8gbW92ZSBmb2N1cyB0by4g
VG8gdGVzdCB0aGF0IHRoaXMgcGFnZQorICAgICAgIHBvc2l0aW9ucyBzb21lIGVsZW1lbnRzIDEw
MDAwMDAwIHBpeGVscyBmYXIgZnJvbSBlYWNoIG90aGVyIChkaXN0YW5jZQorICAgICAgIHRoYXQg
Y2FuIGNvbnNpZGVyZWQgbGFyZ2UgZW5vdWdoIGZvciBtb3N0IG9mIHRoZSBXZWIgUGFnZXMgb24g
dGhlCisgICAgICAgSW50ZXJuZXQpLgorCisgICAgMikgTWFrZSBzdXJlIHRoYXQgYSBiZXN0IGZv
Y3VzYWJsZSBjYW5kaWRhdGUgb25seSBnZXRzIGZvY3VzZWQKKyAgICAgICBpZiBpdCBpcyB2aXNp
YmxlIGluIHRoZSBjdXJyZW50bCBWaWV3cG9ydC4gU2Nyb2xsLWluLWRpcmVjdGlvbgorICAgICAg
IGlzIHBlcmZvcm1lZCBvdGhlcndpc2UuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEp
IERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9u
IHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1
dG9tYXRpY2FsbHkuCisgICAgMikgQXR0ZW1wdCB0byBtb3ZlIGZvY3VzIGRvd24gdG8gImVuZC4g
QXMgaXQgaXMgdG9vIGZhciBhbmQgb3V0IG9mCisgICAgICAgdmlld3BvcnQsIGZvY3VzIGNoYW5n
ZSB3aWxsIG5vdCBoYXBwZW4gYW5kIHBhZ2Ugd2lsbCBiZSBzY3JvbGxlZAorICAgICAgIGEgc3Rl
cCBkb3duLgorICAgIDMpIEJ5IHNlbmRpbmcgYW4gIkVuZCIga2V5cHJlc3MsIHBhZ2UgZ2V0cyBz
Y3JvbGxlZCBkb3duIHRvIGEgcGxhY2UKKyAgICAgICB3aGVyZSB0aGUgImVuZCIgbm9kZSBnZXRz
IHZpc2libGUgaW4gdGhlIHZpZXdwb3J0LgorICAgIDQpIFN0ZXAgXzFfIGlzIHJhbiBhZ2Fpbiwg
YW5kICJlbmQiIGdldHMgZm9jdXNlZC4gLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
dHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlMSA9IFsK
KyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyIiLCAiIl0KKyAgICBdOworCisgICAg
dmFyIG1vdmVUYWJsZTIgPSBbCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIkRPTkUi
LCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5r
c1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAv
LyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgc2V0VGlt
ZW91dChzdGVwMSAsIDApOworICAgICAgc2V0VGltZW91dChzdGVwMiAsIDUwMCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgIC8vIEFjdGlvbnMgaW4gJ21vdmVU
YWJsZTEnIHNob3VsZCBrZWVwIHRoZSBmb2N1cyBpbiB0aGUgY3VycmVudGx5CisgICAgICAvLyBm
b2N1c2VkIGVsZW1lbnQgKCdzdGFydCcpIG9uY2UgdGhlIGJlc3QgY2FuZGlkYXRlICgnZW5kJykg
aXMgbm90CisgICAgICAvLyB2aXNpYmxlIGluIGN1cnJlbnQgdmlld3BvcnQuCisgICAgICB0ZXN0
TW92ZXMobW92ZVRhYmxlMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgIHsK
KyAgICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgIT0gMCkp
OworCisgICAgICAvLyBUaGVuIGl0IHNjcm9sbHMgZG93biB0byB0aGUgZW5kIG9mIHRoZSBwYWdl
IC4uLgorICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiZW5kIik7CisKKyAgICAgIC8vIEFuZCAnbW92ZVRhYmxlMicgcmUtdHJpZXMgdG8g
bW92ZSBmb2N1cyBkb3duLgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTIsIHRlc3RDb21wbGV0
ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVz
dDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250
ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEgaWQ9InN0
YXJ0IiBocmVmPSJhIj5TdGFydDwvYT4KKyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjEwMDAw
MDAwMHB4Jz4KKyAgICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kPC9hPgorICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12
ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWIwZDMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE5IEBACit0ZXN0Cit0ZXN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0Cit0ZXN0Cit0
ZXN0Cit0ZXN0Cit0ZXN0CisKKworCisKK3Rlc3QKK3Rlc3QKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZl
cnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjUwZTY4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApA
QCAtMCwwICsxLDgxIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRo
ZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgorICAgIChTTmF2
KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhlIHRvcCBv
ciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5IHRvIG1vdmUg
Zm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZv
ciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEp
IExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisg
ICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1cCBvciBhYm92
ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVuIHRoZXJlIGFy
ZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBhbGlnbmVkIGVs
ZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRh
YmxlID0gWworICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI2Il0sCisgICAg
ICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICI3
Il0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0
IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0
Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9
IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21l
LWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2
IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1hbGlnbjogbGVmdDsiPgorICAgICAgPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9InN0YXJ0IiBocmVm
PSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEi
PnRlc3Q8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaWQ9IjMiIGhyZWY9ImEiPnRlc3Q8L2E+
PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEg
aWQ9IjQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgICAgICA8YSBpZD0iNSIgaHJlZj0iYSI+dGVz
dDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0
MHB4OyI+CisgICAgICAgIDxhIGlkPSI2IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwv
ZGl2PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPGJyPjxi
cj48YnI+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAg
ICAgPGEgaWQ9IjgiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8
YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nw
YXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44MDExOWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpAQCAtMCwwICsx
LDY5IEBACisvKgorICogT3JpZ2luYWwgYXV0aG9yOiBEb3VnIFR1cm5lciA8ZG91Zy50dXJuZXJA
Z21haWwuY29tPgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgICAqIEFudG9uaW8gR29tZXMg
PHRvbmlraXRvb0B3ZWJraXQub3JnPgorICoqLworCit2YXIgX21vdmVUYWJsZTsKK3ZhciBfbW92
ZVRhYmxlSW5kZXggPSAwOwordmFyIF9jb21wbGV0ZWRDYWxsYmFjayA9IG51bGw7CisKK2Z1bmN0
aW9uIHRlc3RNb3Zlcyh0YWJsZSwgY29tcGxldGVkQ2IpIHsKKyAgIC8vIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImZvY3VzIiwgX3ZlcmlmeUFuZEFkdmFuY2UsIHRydWUpOworCisgIF9tb3Zl
VGFibGUgPSB0YWJsZTsKKyAgX21vdmVUYWJsZUluZGV4ID0gMDsKKyAgX2NvbXBsZXRlZENhbGxi
YWNrID0gY29tcGxldGVkQ2I7CisgIF9tb3ZlKCk7Cit9CisKK2Z1bmN0aW9uIF9uZXh0TW92ZSgp
Cit7CisgIF9tb3ZlVGFibGVJbmRleCsrOworCisgIC8vIFdoZW4gYSB0YWJsZSBlbmRzIHdpdGgg
IkRPTkUiLCBjYWxsIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgorICBpZiAoX21vdmVUYWJsZVtf
bW92ZVRhYmxlSW5kZXhdWzBdID09ICJET05FIikKKyAgICBpZiAoX2NvbXBsZXRlZENhbGxiYWNr
KSB7CisgICAgICBfY29tcGxldGVkQ2FsbGJhY2soKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgLy8gd2hlbiBhIHRhYmxlIGhhcyBhbiBlbXB0eSBlbGVtZW50LCBlbmQgdGhlIG1vdmVzLgor
ICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICIiKQorICAgIHJldHVybjsK
KworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbW92ZSgpCit7CisgIHZhciBldmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50cycpOworICBldmVudC5pbml0S2V5Ym9h
cmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCBfbW92
ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0sIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSk7CisgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgIHNldFRpbWVv
dXQoIF92ZXJpZnlBbmRBZHZhbmNlICwgMTAwKTsKK30KKworZnVuY3Rpb24gX3ZlcmlmeUFuZEFk
dmFuY2UoKQoreworICB2YXIgZGlyZWN0aW9uID0gX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhd
WzBdOworICB2YXIgZXhwZWN0ZWRJRCA9IF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVsxXTsK
KworICB2YXIgaSA9IDA7CisgIHZhciBtYWluRnJhbWVIYXNGb2N1cyA9IHRydWU7CisgIGZvcig7
IGkgPCBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXMubGVuZ3RoOyBpKyspCisgICAgaWYgKGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1tpXS5kb2N1bWVudC5oYXNGb2N1cygpKSB7CisgICAg
ICBtYWluRnJhbWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAgYnJlYWs7CisgICAgfQorCisgIC8v
IHRoaXMgc3VwcG9ydCBmcmFtZXMgbmVzdGVkIGluIG9uZSBsZXZlbCBkZWVwIG9ubHkuCisgIGlm
IChtYWluRnJhbWVIYXNGb2N1cykKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsKKyAgZWxz
ZQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVz
WyIgKyBpICsgIl0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSIs
IGV4cGVjdGVkSUQpOworCisgIF9uZXh0TW92ZSgpOworfQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCmluZGV4IDAyMGEwOTguLmMxMGUwZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBA
IC01NzQ4LDMgKzU3NDgsNiBAQCBtZWRpYS9ldmVudC1hdHRyaWJ1dGVzLmh0bWwKIAogIyBGYWls
cyBvbiByZWxlYXNlIGJvdCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMzAxNQogbWVkaWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wbGF5aW5nLmh0bWwKKworIyBO
ZWVkIHRvIGFkZCBmdW5jdGlvbmFsaXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhhbmRsZSBlbmFi
bGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24KK2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBjYmQ1ZTg4Li44MDQ1YjIyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtOTgsMyArOTgsNiBAQCBtZWRpYS9tZWRpYS1jYW4t
cGxheS1vZ2cuaHRtbAogCiAjIFRoZXNlIHRlc3RzIHJlcXVpcmUgdG91Y2ggc3VwcG9ydAogZmFz
dC9ldmVudHMvdG91Y2gKKworIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFsaXR5IHRvIER1bXBSZW5k
ZXJUcmVlIHRvIGhhbmRsZSBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24KK2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBi
NmZmZDIwLi4xNmQzNDJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtNzQyLDMgKzc0
Miw2IEBAIGZhc3QvZnJhbWVzL2lmcmFtZS1vbmxvYWQtcmVtb3ZlLXNlbGYtbm8tY3Jhc2guaHRt
bAogIyBGSVhNRTogVGhpcyBpcyB0aGUgd3JvbmcgdGVzdCB0byBza2lwLiAgSXQgaXMgYmVsaWV2
ZWQgc29tZSBvdGhlciB0ZXN0IGlzIGFmZmVjdGluZyB0aGlzIHRlc3QgcmVzdWx0cy4KICMgU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzM3NAogc3ZnL1czQy1T
VkctMS4xL2ZpbHRlcnMtY29udi0wMS1mLnN2ZworCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2
aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZhMmNiNTIuLjcyNDY2ZmMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzIgQEAKKzIwMTAtMDEtMTMgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFeHRlbmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2
MgorCisgICAgICAgIFBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0BnbWFpbC5jb20+
CisgICAgICAgIEJhc2VkIG9uIHRoZSBpbml0aWFsIHdvcmsgb2YgTWFyY28gQmFyaXNpb25lIDxt
YXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVy
ZSBbMV0uCisgICAgICAgIEl0IGltcHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2Yg
V2ViQ29yZSBieSBleHRlbmRpbmcgdGhlIGJhc2ljIGtleWJvYXJkCisgICAgICAgIG5hdmlnYXRp
b24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQgb24gVEFCIGZvcndhcmQgYW5kIGJhY2t3YXJk
KSB3aXRoIHRoZQorICAgICAgICBhZGRpdGlvbiBvZiBhIGRpcmVjdGlvbmFsIGJhc2VkIG5hdmln
YXRpb24sIHdoZXJlIGZvY3VzYWJsZSBlbGVtZW50cyBhcmUgYWNjZXNzaWJsZQorICAgICAgICBi
YXNlZCBvbiB0aGVpciBzcGF0aWFsIGxvY2F0aW9uIGluIGEgV2ViIFBhZ2UsIG5vdCBvbiBpdHMg
VGFiIGluZGV4IHZhbHVlLgorCisgICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVy
ZSBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gJ1NldHRpbmdzJy4gUG9ydCBzcGVjaWZpYyBB
UElzIG5lZWQgdG8gYmUgYWRkZWQKKyAgICAgICAgICBmb3IgdG9nZ2xlIGl0IG9uIGFuZCBvZmYu
CisgICAgICAgICogT25seSBlbGVtZW50cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQg
Y2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4gSWYgdGhlcmUgaXMKKyAgICAgICAgICBub3QgYW55
LCBzY3JvbGwtaW4tZGlyZWN0aW9uIGlzIHBlcmZvcm1lZC4KKyAgICAgICAgKiBUaGUgbGF5b3V0
IHRlc3RzIGFkZGVkIHJ1biBvbiBRdCdzIERSVCBvbmx5IGZvciBub3cgKHNraXBwZWQgZm9yIE1h
YywgV2luIGFuZCBHdGspLgorCisgICAgICAgIEtub3duIGlzc3VlcyAodG8gYmUgY292ZXJlZCBp
biBmb2xsb3cgdXAgYnVncyk6CisgICAgICAgICogQWRkIHBvcnQgc3BlY2lmaWMgaG9va3MgdG8g
ZWFjaCBEUlRzIHRvIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbi4KKyAgICAgICAg
KiBGb3JtIG5hdmlnYXRpb24gaXMgbm90IHlldCBzdXBwb3J0ZWQuCisgICAgICAgICogSWZyYW1l
cyB3aXRoIHNjcm9sbGFibGUgY29udGVudCBuZWVkcyBiZXR0ZXIgc3VwcG9ydC4KKyAgICAgICAg
KiBNYWtlIG5hdmlnYXRpb24ga2V5cyBjdXN0b21pemFibGUuIEl0IGN1cnJlbnRseSB3b3JrcyB3
aXRoIGFycm93cyBrZXlzIG9ubHkKKyAgICAgICAgICAodXAsIGRvd24sIHJpZ2h0IGFuZCBsZWZ0
KS4KKyAgICAgICAgKiBNYWtlIGl0IHN1cHBvcnQgbW9kaWZpZXJzIChBbHQsIEN0cmwgYW5kIFNo
aWZ0KS4KKworICAgICAgICBbMV0gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGF0aWFs
X25hdmlnYXRpb24KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlu
eS10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12
ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAorCisgICAgICAgICogbWFudWFsLXRlc3RzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYW51YWwtdGVz
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVzdENh
bmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6YWJzb2x1dGVSZW5kZXJS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRha2VzU3VwZXJQcmVjZWRlbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OnRha2VzUHJlY2VkZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpwcmVjZWRlbmNl
RGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6cmVjdGFuZ2xlRGlzdGFuY2UpOgorICAgICAg
ICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQpOgorCiAyMDEwLTAxLTEzICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVy
bWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwg
Yi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDZlZDdjCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKQEAg
LTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+Cis8YSBocmVm
PSJhIj5hPC9hPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxhIGhyZWY9ImEiPmE8L2E+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmln
YXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbCBiL1dlYkNvcmUvbWFudWFs
LXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyODM0NmQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPCFET0NUWVBF
IGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9
InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlNwYXRpYWwgTmF2aWdh
dGlvbiBUZXN0IENhc2VzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0ibWFy
Z2luLWxlZnQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgorICA8aDEgc3R5bGU9InRleHQt
YWxpZ246IGxlZnQ7Ij5TcGF0aWFsIE5hdmlnYXRpb24gRnVuPC9oMT4KKyAgPGgyIHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyI+M3gzIENlbnRlcmVkIFRhYmxlIFRlc3Q8L2gyPgorPC9kaXY+Cis8
dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDog
YXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2Vs
bHNwYWNpbmc9IjIiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0
aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9h
PjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246
IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVy
dGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwv
YT48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+
CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRl
cjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwt
YWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3Rk
PgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAg
ICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxh
IGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAg
IDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQw
cHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxicj4KKyAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjog
bGVmdDsiPgorICAgIDxoMj5WZXJ0aWNhbCBTaW5lIFRlc3Q8L2gyPjxicj4KKyAgPC9kaXY+Cisg
IDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPjxhIGhyZWY9ImEiPnRl
c3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4K
KyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2
PgorICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYg
c3R5bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+
CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhy
ZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorCisgIDxoMj5JbmNy
ZWFzaW5nIHNlbnRlbmNlIGxlbmd0aDwvaDI+CisgIDxhIGhyZWY9ImEiPkg8L2E+PGJyPgorICA8
YSBocmVmPSJwIj5Ibzxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdzxicj48L2E+CisgIDxhIGhy
ZWY9InAiPkhvdyA8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgTjwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBObzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3c8L2E+PGJyPgorICA8
YSBocmVmPSJwIj5Ib3cgTm93IDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnI8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJybzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdyBOb3cgQnJvd248L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duIDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQzwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQ288L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93
IEJyb3duIENvdzwvYT48YnI+CisgIDxicj4KKyAgPGgyPlNwbGl0IHNlbnRlbmNlPGJyPjwvaDI+
CisgIDxicj4KKyAgPGEgaHJlZj0icCI+SDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEgaHJlZj0icCI+b3cgTm93
IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgTm93IEJyb3duIENvdzwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3cgQnJvd24gQ293PC9h
Pjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgQnJvd24gQ293
PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5C
cm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0i
cCI+cm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJw
Ij5vd24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAi
PnduIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgPGEgaHJlZj0icCI+biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPkNvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vdzwvYT48YnI+CisgIDxhIGhyZWY9InAi
PkhvdyBOb3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOb3cgQnJvd24gQ293PC9hPjxicj48YnI+CisgIDxoMj5MaW5lIFdyYXAgVGVzdDwv
aDI+PGJyPgorICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAzOTNweDsg
aGVpZ2h0OiA3MnB4OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIi
PgorICAgIDx0Ym9keT4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjogdG9wOyI+CisgICAgICAgICAgPHNwYW4gY2xhc3M9Imh1Z2UiPgorICAgICAgICAgICAg
PGEgaHJlZj0iYSI+V2hpY2ggb2YgdGhlIGZvbGxvd2luZyBjb25zdGFuc3QgZG8geW91IGxpa2Ug
dGhlIG1vc3QsIG9uZSBpcyBnLCBvbmUgaXMgcGksIGFuZCB0aGUgb3RoZXIgaXMgZS4gPC9hPjxi
cj4KKyAgICAgICAgICA8L3NwYW4+PC90ZD4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjogdG9wOyI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+My4xNDwvYT48YnI+CisgICAgICAg
ICAgPGEgaHJlZj0iYSI+Mi43MTwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Ni42Nzwv
YT48YnI+CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFi
bGU+PGJyPgorICA8aDI+SmF2YXNjcmlwdCBGb2N1cy9CbHVyIFRlc3Q8L2gyPgorICAgIFdoZW4g
Z29pbmcgdG8gYW55IGxpbmsgZnJvbSB0aGUgZm9sbG93aW5nIGxpbmssIHlvdSBzaG91bGQgc2Vl
IGEgZGlhbG9nLjxicj48YnI+CisgIDxhIGhyZWY9ImEiIG9uYmx1cj0nYWxlcnQoIm9uQmx1cnQi
KSc+VGVzdDwvYT48YnI+PGJyPgorCisgIDxoMj5GcmFtZVNldHM8L2gyPiA8YnI+CisgIDxmcmFt
ZXNldCBjb2xzPSIyNSUsMjUlLCoiPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAg
ICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIv
PgorICA8L2ZyYW1lc2V0PgorICA8YnI+PGJyPgorCisgIDxoMj5JRnJhbWVzPC9oMj48YnI+Cisg
IDxpZnJhbWUgc3JjPSJsaW5rcy5odG1sIj48L2lmcmFtZT48YnI+PGJyPjxicj4KKyAgPGgyPkRJ
VnM8L2gyPjxicj4KKyAgPGRpdiBpZD12PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPGRp
diBpZD0iRGl2MSI+CisgICAgICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgICAg
PGEgaHJlZj0iYSI+YTwvYT4KKyAgPC9kaXY+PGJyPjxicj4KKyAgPC9kaXY+CisgIDwvZGl2Pgor
ICA8YSBocmVmPSJsYXN0Ij5sYXN0PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCBhZGQ1YWRlLi41N2UwODI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjE1
Niw2ICsyMTU2LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFu
ZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
aWYgKGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSIpCiAgICAgICAgICAgICBkZWZh
dWx0VGFiRXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgZWxzZSBpZiAoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uID0gaXNBcnJvd0tleShldmVudC0+a2V5SWRlbnRpZmllcigpKSkKKyAgICAg
ICAgICAgIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKIAogICAg
ICAgIC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQg
YWNjZXNzaWJpbGl0eSB1c2VycwogICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpKQpAQCAtMjE3MCw2ICsyMTcyLDIwIEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAgICAgfQogfQogCitGb2N1c0RpcmVjdGlvbiBFdmVudEhhbmRsZXI6Omlz
QXJyb3dLZXkoY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyKQoreworICAgIGlmIChrZXlJZGVu
dGlmaWVyID09ICJEb3duIikKKyAgICAgICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uRG93bjsKKyAg
ICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJVcCIpCisgICAgICAgIHJldHVybiBGb2N1c0Rp
cmVjdGlvblVwOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKQorICAgICAg
ICByZXR1cm4gRm9jdXNEaXJlY3Rpb25MZWZ0OworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIg
PT0gIlJpZ2h0IikKKyAgICAgICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisKKyAgICBy
ZXR1cm4gKEZvY3VzRGlyZWN0aW9uKSAwOworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
IGJvb2wgRXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9p
bnQmIGZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXRpb24pIGNvbnN0CiB7CkBAIC0yNDYyLDYgKzI0Nzgs
MjcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIAogI2VuZGlmCiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJy
b3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZl
bnQqIGV2ZW50KQoreworICAgIGlmIChldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5
KCkgfHwgZXZlbnQtPmFsdEdyYXBoS2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFw
YWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgIXBh
Z2UtPnNldHRpbmdzKCktPmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIEFycm93cyBhbmQgb3RoZXIgcG9zc2libGUgZGlyZWN0aW9uYWwgbmF2
aWdhdGlvbiBrZXlzIGNhbiBiZSB1c2VkIGluIGRlc2lnbgorICAgIC8vIG1vZGUgZWRpdGluZy4K
KyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZvY3VzKGZv
Y3VzRGlyZWN0aW9uLCBldmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OworfQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBXZSBzaG91bGQgb25seSBhZHZhbmNlIGZvY3VzIG9u
IHRhYnMgaWYgbm8gc3BlY2lhbCBtb2RpZmllciBrZXlzIGFyZSBoZWxkIGRvd24uCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKaW5kZXggNmExMmU3MC4uZjdiM2QyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjcsNiAr
MjcsNyBAQAogI2RlZmluZSBFdmVudEhhbmRsZXJfaAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMu
aCIKKyNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VF
dmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAg
LTMwMSw2ICszMDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWZhdWx0U3BhY2VFdmVudEhh
bmRsZXIoS2V5Ym9hcmRFdmVudCopOwogICAgIHZvaWQgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50Kik7CisgICAgdm9pZCBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNE
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAg
ICAgdm9pZCBhbGxvd0RIVE1MRHJhZyhib29sJiBmbGFnREhUTUwsIGJvb2wmIGZsYWdVQSkgY29u
c3Q7CkBAIC0zMjMsNiArMzI1LDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHNldEZyYW1l
V2FzU2Nyb2xsZWRCeVVzZXIoKTsKIAorICAgIEZvY3VzRGlyZWN0aW9uIGlzQXJyb3dLZXkoY29u
c3QgU3RyaW5nJik7CisKICAgICBib29sIGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVy
biBtX2NhcHR1cmVzRHJhZ2dpbmc7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChf
X09CSkNfXykgJiYgIUVOQUJMRShFWFBFUklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKaW5kZXggNWU3OGM3ZC4uZDRkYzExZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgotCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgpAQCAtNTUsNiArNTUsMzMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK2VudW0gUHJlY2Vk
ZW5jZU1vZGUgeworICAgIExvdyA9IDAsCisgICAgUHJlY2VkZW50LAorICAgIFN1cGVyUHJlY2Vk
ZW50Cit9OworCitzdHJ1Y3QgQmVzdENhbmRpZGF0ZSB7CisgICAgQmVzdENhbmRpZGF0ZSgpCisg
ICAgICAgIDogbm9kZSgwKQorICAgICAgICAsIGRpc3RhbmNlKG51bWVyaWNfbGltaXRzPGxvbmcg
bG9uZz46Om1heCgpKQorICAgICAgICAsIG1vZGUoTG93KQorICAgIHsKKyAgICB9CisgICAgTm9k
ZSogbm9kZTsKKyAgICBsb25nIGxvbmcgZGlzdGFuY2U7CisgICAgUHJlY2VkZW5jZU1vZGUgbW9k
ZTsKK307CisKK3N0YXRpYyBib29sIHRha2VzU3VwZXJQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9u
LCBJbnRSZWN0JiwgSW50UmVjdCYpOworc3RhdGljIGJvb2wgdGFrZXNQcmVjZWRlbmNlKEZvY3Vz
RGlyZWN0aW9uLCBJbnRSZWN0JiwgSW50UmVjdCYpOworc3RhdGljIGxvbmcgbG9uZyBwcmVjZWRl
bmNlRGlzdGFuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRSZWN0Jik7CitzdGF0aWMg
dm9pZCBkaXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIGNv
bnN0IEludFJlY3QmLCBsb25nIGxvbmcmLCBQcmVjZWRlbmNlTW9kZSYpOworc3RhdGljIGJvb2wg
aXNSZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRSZWN0Jik7Citz
dGF0aWMgaW5saW5lIEludFJlY3QgYWJzb2x1dGVSZW5kZXJSZWN0KFJlbmRlck9iamVjdCopOwor
c3RhdGljIGlubGluZSBsb25nIGxvbmcgcmVjdGFuZ2xlRGlzdGFuY2UoSW50UmVjdCYsIEludFJl
Y3QmKTsKIAogc3RhdGljIGlubGluZSB2b2lkIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1
c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZm9jdXNlZCkKIHsKQEAgLTE0Niw4ICsx
NzMsNjEgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGUKICAgICByZXR1cm4gYWR2YW5jZUZvY3Vz
KGRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOwogfQogCitzdGF0aWMgdm9pZCBuZXh0SW5EaXJlY3Rp
b24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBzdGFydCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0
aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgQmVzdENhbmRpZGF0ZSYgYmVzdENhbmRpZGF0ZSkK
K3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgLy8gR2V0IHRoZSBjdXJyZW50IHZpZXdw
b3J0IHJlY3Qgc28gd2UgY2FuIGNoZWNrIGlmIGJlc3RDYW5kaWRhdGUncyByZWN0CisgICAgLy8g
aXMgdmlzaWJsZSBiZWZvcmUgYWN0dWFsbHkgbW92aW5nIHRoZSBmb2N1cyB0byBpdC4gSW4gY2Fz
ZSBpdCBpcyBub3QgdmlzaWJsZSwKKyAgICAvLyB3ZSBzY3JvbGwgaW4gZGlyZWN0aW9uIGxhdGVy
IG9uIGluc3RlYWQuCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBkb2N1bWVudC0+cGFnZSgp
LT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+dmlldygpOworICAgIGlmICghZnJhbWVWaWV3KQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRQorICAgIEludFJlY3QgdmlzaWJsZVJlY3Qg
PSBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOworCisgICAgbG9uZyBsb25nIGRpc3Rh
bmNlID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CisKKyAgICAvLyBXYWxrIGFs
bCB0aGUgY2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBiZXN0Q2FuZGlkYXRlIGlmIHdlIGZpbmQgYSBu
ZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9IGRvY3VtZW50LT5maXJzdENo
aWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJzZU5leHROb2Rl
KCkpIHsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7Cisg
ICAgICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRN
TEZyYW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlmIChvd25lci0+
Y29udGVudEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVu
dCA9IG93bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBp
ZiAoaW5uZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlu
bmVyRG9jdW1lbnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2Fu
ZGlkYXRlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkgeworICAgICAgICAgICAgZGlzdGFu
Y2VJbkRpcmVjdGlvbihzdGFydCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIHZpc2libGVSZWN0LCBk
aXN0YW5jZSwgYmVzdENhbmRpZGF0ZS5tb2RlKTsKKyAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8
IGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRl
Lm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0ZS5kaXN0YW5j
ZSA9IGRpc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCiBib29s
IEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwg
S2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQogeworICAgIHN3aXRjaCAo
ZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2FzZSBG
b2N1c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25VcDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAg
cmV0dXJuIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoZGlyZWN0aW9uLCBldmVudCk7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1
bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQs
IGJvb2wgaW5pdGlhbEZvY3VzKQorewogICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5G
cmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCk7CkBAIC0yNTIsNiArMzMyLDgyIEBAIGJvb2wgRm9jdXNDb250cm9sbGVy
OjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBl
dmVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNl
Rm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7Cisg
ICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2Vk
Tm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRv
IHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rpb24gdGFiRGly
ZWN0aW9uID0gKEZvY3VzRGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9u
TGVmdCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJl
Y3Rpb25Gb3J3YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDsKKyAgICAgICAgLy8gJ2luaXRp
YWxGb2N1cycgaXMgc2V0IHRvIHRydWUgc28gdGhlIGNocm9tZSBpcyBub3QgZm9jdXNlZC4KKyAg
ICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcih0YWJEaXJlY3Rpb24sIGV2
ZW50LCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0
ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFt
ZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8
ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAg
IGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVzdENhbmRpZGF0ZSBiZXN0Q2Fu
ZGlkYXRlOworICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5v
ZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworCisgICAgTm9kZSogbm9kZSA9
IGJlc3RDYW5kaWRhdGUubm9kZTsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgLy8gTGVhdmUg
dGhlIGZvY3VzIG9uIHRoZSBzYW1lIG5vZGUgYnV0IHNjcm9sbC4KKyAgICAgICAgRnJhbWUqIGZy
YW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Cisg
ICAgICAgIFNjcm9sbERpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb247CisKKyAgICAgICAgc3dpdGNo
IChkaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAg
ICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxMZWZ0OworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgICAgIHNjcm9sbERpcmVj
dGlvbiA9IFNjcm9sbFJpZ2h0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9j
dXNEaXJlY3Rpb25VcDoKKyAgICAgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbFVwOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAg
ICAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsRG93bjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KHNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsQnlM
aW5lKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFub2RlLT5pc0Vs
ZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRvIGZvY3Vz
IGEgZG9jdW1lbnQgaGVyZS4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIERv
Y3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisKKyAgICBpZiAobmV3RG9j
dW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIC8vIEZvY3VzIGlzIGdvaW5nIGF3
YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50LCBzbyBjbGVhciB0aGUgZm9j
dXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNldEZvY3VzZWROb2RlKDApOwor
ICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG5l
d0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+
Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCByZWxpbnF1
aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CkBAIC0z
NTksNCArNTE1LDI5MSBAQCB2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0QWN0aXZlKGJvb2wgYWN0
aXZlKQogICAgICAgICBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUobV9mb2N1
c2VkRnJhbWUtPmRvY3VtZW50KCksIGFjdGl2ZSk7CiB9CiAKKy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLworLy8gSEVMUEVSIFNQQVRJQUwgTkFWSUdBVElPTiBNRVRIT0RT
IC8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gLS0gZ3Jh
YmJlZCBmcm9tIE1JQ1JPQiBleGNlcHRlZCBieSBVUHxET1dOIGxvZ2ljLgorc3RhdGljIGJvb2wg
aXNSZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbnRSZWN0JiBmb2N1
c2VkUmVjdCwgSW50UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaW50IG1pZGRsZSA9IDA7CisKKyAg
ICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAg
ICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOwor
ICAgICAgICByZXR1cm4gKG1pZGRsZSA8IGZvY3VzZWRSZWN0LngoKSk7CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVz
dFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICByZXR1cm4gKG1pZGRsZSAgPiBmb2N1c2VkUmVj
dC54KCkgKyBhYnMoZm9jdXNlZFJlY3Qud2lkdGgoKSkpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rp
b25VcCA6CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpIDwgZm9jdXNlZFJlY3QueSgpKTsK
KyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIChkZXN0UmVjdC55
KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpID4gZm9jdXNlZFJlY3QueSgpICsgYWJzKGZvY3Vz
ZWRSZWN0LmhlaWdodCgpKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBkaXN0
YW5jZUluRGlyZWN0aW9uKE5vZGUqIHN0YXJ0LCBOb2RlKiBkZXN0LCBGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbG9uZyBsb25nJiBkaXN0YW5jZSwgUHJlY2VkZW5jZU1vZGUmIG1vZGUp
Cit7CisgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJlcigpOwor
ICAgIEludFJlY3Qgc3RhcnRSZWN0KGFic29sdXRlUmVuZGVyUmVjdChzdGFydFJlbmRlcikpOwor
CisgICAgUmVuZGVyT2JqZWN0KiBkZXN0UmVuZGVyID0gZGVzdC0+cmVuZGVyZXIoKTsKKyAgICBJ
bnRSZWN0IGRlc3RSZWN0KGFic29sdXRlUmVuZGVyUmVjdChkZXN0UmVuZGVyKSk7CisKKyAgICAv
LyBJbiBvcmRlciB0byBhdm9pZCBjcmF6eSBqdW1wIGJldHdlZW4gbGlua3MgdGhhdCBhcmUgZWl0
aGVyIGZhciBhd2F5IGZyb20gZWFjaCBvdGhlciwKKyAgICAvLyBvciBqdXN0IG5vdCBjdXJyZW50
bHkgdmlzaWJsZSwgbGV0cyBiYWlsIG91dCBpZiB0aGUgZGVzdGluYXRpb24gZm9jdXNhYmxlIGVs
ZW1lbnQgaXMKKyAgICAvLyBub3QgaW4gdGhlIHZpZXdwb3J0LgorICAgIGlmICghdmlld3BvcnRS
ZWN0LmludGVyc2VjdHMoZGVzdFJlY3QpKQorICAgICAgICBnb3RvIGV4aXRQb2ludDsKKworICAg
IC8vIFRoZSBib3VuZGluZyByZWN0YW5nbGUgb2YgdHdvIGNvbnNlY3V0aXZlIGxpbmtzIGNvdWxk
IG92ZXJsYXAsIHNvIHdlIGRlY3JlYXNlIHRoZSBzaXplCisgICAgLy8gb2YgYm90aCByZWN0YW5n
bGVzLgorICAgIC8vIEZJWE1FOiBhZGQgdGVzdHMuCisgICAgc3RhcnRSZWN0LmluZmxhdGUoLTQp
OworICAgIGRlc3RSZWN0LmluZmxhdGUoLTQpOworCisgICAgaWYgKCFpc1JlY3RJbkRpcmVjdGlv
bihkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpKQorICAgICAgICBnb3RvIGV4aXRQb2lu
dDsKKworICAgIC8vIElmIHRhcmdldCB0YWtlcyBwcmVjZWRlbmNlIHRoZW4gdXNlIGl0IC0gZGlz
dGFuY2UgaXMgbm90IGFsd2F5cyB0aGUgc2hvcnRlc3QKKyAgICAvLyBmb3IgYSBwcmVjZWRlbnQg
dGFyZ2V0CisgICAgaWYgKHRha2VzU3VwZXJQcmVjZWRlbmNlKGRpcmVjdGlvbiwgc3RhcnRSZWN0
LCBkZXN0UmVjdCkpIHsKKyAgICAgICAgLy8gcmVzZXQgZGlzdGFuY2UgYXMgd2UgYXJlIG5vdyBp
biBzdXBlciBwcmVjZWRlbmNlIG1vZGUKKyAgICAgICAgaWYgKG1vZGUgIT0gU3VwZXJQcmVjZWRl
bnQpCisgICAgICAgICAgICBkaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1h
eCgpOworICAgICAgICBtb2RlID0gU3VwZXJQcmVjZWRlbnQ7CisKKyAgICAgICAgbG9uZyBsb25n
IHByZWNlZGVudERpc3RhbmNlID0gcHJlY2VkZW5jZURpc3RhbmNlKGRpcmVjdGlvbiwgc3RhcnRS
ZWN0LCBkZXN0UmVjdCk7CisKKyAgICAgICAgaWYgKGRpc3RhbmNlID4gcHJlY2VkZW50RGlzdGFu
Y2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHByZWNlZGVudERpc3RhbmNlOworICAgIH0KKwor
ICAgIGlmIChtb2RlID09IFN1cGVyUHJlY2VkZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBJZiB0YXJnZXQgdGFrZXMgcHJlY2VkZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5v
dCBhbHdheXMgdGhlIHNob3J0ZXN0CisgICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldAorICAg
IGlmICh0YWtlc1ByZWNlZGVuY2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KSkgewor
ICAgICAgICBtb2RlID0gUHJlY2VkZW50OworICAgICAgICBsb25nIGxvbmcgcHJlY2VkZW50RGlz
dGFuY2UgPSBwcmVjZWRlbmNlRGlzdGFuY2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0
KTsKKworICAgICAgICBpZiAoZGlzdGFuY2UgPiBwcmVjZWRlbnREaXN0YW5jZSkKKyAgICAgICAg
ICAgIGRpc3RhbmNlID0gcHJlY2VkZW50RGlzdGFuY2U7CisgICAgfQorCisgICAgaWYgKG1vZGUg
PT0gUHJlY2VkZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBkaXN0YW5jZSA9IHJlY3Rhbmds
ZURpc3RhbmNlKHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworICAgIHJldHVybjsKKworZXhpdFBvaW50
OgorICAgIGRpc3RhbmNlID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7Cit9CisK
Ky8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIGZsYXdlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgY29u
c2lkZXIgdGhlIGVmZmVjdHMgb2YgQ1NTIG9yIFNWRyB0cmFuc2Zvcm1zLgorc3RhdGljIGlubGlu
ZSBJbnRSZWN0IGFic29sdXRlUmVuZGVyUmVjdChSZW5kZXJPYmplY3QqIHJlbmRlcikKK3sKKyAg
ICBBU1NFUlQocmVuZGVyKTsKKworICAgIC8vIEZJWE1FOiBub2RlLT5nZXRSZWN0KCkgPworICAg
IEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKwor
ICAgIC8vIGhhbmRsZSBuZXN0ZWQgZnJhbWVzLgorICAgIGZvciAoRnJhbWUqIGZyYW1lID0gcmVu
ZGVyLT5kb2N1bWVudCgpLT5mcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5w
YXJlbnQoKSkKKyAgICAgICAgaWYgKEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50
ID0gZnJhbWUtPm93bmVyRWxlbWVudCgpKQorICAgICAgICAgICAgcmVjdC5tb3ZlKG93bmVyRWxl
bWVudC0+b2Zmc2V0TGVmdCgpLCBvd25lckVsZW1lbnQtPm9mZnNldFRvcCgpKTsKKworICAgIHJl
dHVybiByZWN0OworfQorCisvLyBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIHZlcnkgcHJlZmVyYWJs
ZSByZWN0IHRvIG1vdmUgZm9jdXMgdG8uIEluIGVzc2VuY2UgdGFyZ2V0cworLy8gd2hvc2UgbWlk
ZGxlIGZhbGxzIGJldHdlZW4gdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVjdC4K
K3N0YXRpYyBib29sIHRha2VzU3VwZXJQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgSW50UmVjdCYgc3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGly
ZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rp
b25SaWdodCkgeworICAgICAgICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhk
ZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0
LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGludCBkZXN0RW5kICAgID0g
ZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIGludCBzdGFy
dEJvdHRvbSA9IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKyAgICAg
ICAgaW50IHN0YXJ0RW5kICAgID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgo
KSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgJiYgZGVz
dEVuZCA+IHN0YXJ0UmVjdC54KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0ICYmIGRlc3RSZWN0LngoKSA8
IHN0YXJ0RW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiAo
KGRlc3RSZWN0LnkoKSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RSZWN0LnkoKSA8PSBzdGFydEJv
dHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYmIGRl
c3RNaWRkbGUgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPj0g
c3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9tIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAg
fHwgIChkZXN0UmVjdC55KCkgPT0gc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHx8ICAoZGVz
dEJvdHRvbSA9PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpIDw9
IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0KKwor
ICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9j
dXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIGludCBzdGFydEVuZCAgID0gc3RhcnRSZWN0Lngo
KSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVz
dFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RF
bmQgICAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAg
aWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwICYmIGRlc3RSZWN0LnkoKSA+IHN0YXJ0
UmVjdC55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVj
dGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24gJiYgZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0Lnko
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0TWlk
ZGxlID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEVuZCkKKyAgICAgICAg
ICAgIHx8ICAoZGVzdFJlY3QueCgpID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9
IHN0YXJ0RW5kKQorICAgICAgICAgICAgfHwgIChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0Lngo
KSkKKyAgICAgICAgICAgIHx8ICAoc3RhcnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAgIHx8
ICAoZGVzdEVuZCA+PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPD0gc3RhcnRFbmQpCisgICAg
ICAgICAgICB8fCAgKGRlc3RSZWN0LngoKSA8PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPj0g
c3RhcnRFbmQpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29s
IHRha2VzUHJlY2VkZW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0YXJ0
UmVjdCwgSW50UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0Rp
cmVjdGlvbkxlZnQgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAg
ICAgaW50IGhhbGYgPSBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBt
aW5ZID0gc3RhcnRSZWN0LnkoKSAvKiAtIGhhbGYgKi87CisgICAgICAgIGludCBtYXhZID0gc3Rh
cnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8qICsgaGFsZiAqLzsKKyAgICAg
ICAgaW50IHN0YXJ0Qm90dG9tID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0
KCkpOworCisgICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RS
ZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0Qm90dG9tID0gZGVzdFJlY3QueSgp
ICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKTsKKworICAgICAgICByZXR1cm4gKChkZXN0UmVjdC55
KCkgPj0gbWluWSAmJiBkZXN0UmVjdC55KCkgPD0gbWF4WSkKKyAgICAgICAgICAgIHx8ICAoZGVz
dEJvdHRvbSA+PSBtaW5ZICYmIGRlc3RCb3R0b20gPD0gbWF4WSkKKyAgICAgICAgICAgIHx8ICAo
ZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RNaWRkbGUgPD0gc3RhcnRCb3R0b20p
CisgICAgICAgICAgICB8fCAgKGRlc3RSZWN0LnkoKSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RS
ZWN0LnkoKSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdEJvdHRvbSA+PSBz
dGFydFJlY3QueSgpICYmIGRlc3RCb3R0b20gPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICB8
fCAgKGRlc3RSZWN0LnkoKSA8PSBzdGFydFJlY3QueSgpICYmIGRlc3RCb3R0b20gPj0gc3RhcnRC
b3R0b20pKTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXAg
fHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAgICBpbnQgaGFsZiA9
IGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgbWluWCA9IHN0YXJ0UmVj
dC54KCkgLyogLSBoYWxmICovOworICAgICAgICBpbnQgbWF4WCA9IHN0YXJ0UmVjdC54KCkgKyBh
YnMoc3RhcnRSZWN0LndpZHRoKCkpIC8qICsgaGFsZiAqLzsKKworICAgICAgICBpbnQgZGVzdEVu
ZCA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKTsKKworICAgICAgICByZXR1
cm4gKChkZXN0UmVjdC54KCkgPj0gbWluWCAmJiBkZXN0UmVjdC54KCkgPD0gbWF4WCkKKyAgICAg
ICAgICAgICB8fCAoZGVzdEVuZCA+PSBtaW5YICYmIGRlc3RFbmQgPD0gbWF4WCkpOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gc3FydCgoKHgxIC0geDIpIF4gMikgKyAoKHkx
IC0geTIpIF4gMikpCitzdGF0aWMgbG9uZyBsb25nIHByZWNlZGVuY2VEaXN0YW5jZShGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0YXJ0UmVjdCwgSW50UmVjdCYgZGVzdFJlY3Qp
Cit7CisgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6
bWF4KCk7CisgICAgbG9uZyBsb25nIHNlYyA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1h
eCgpOworCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpIHsKKyAgICAg
ICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAv
IDI7CisgICAgICAgIGludCBkZXN0WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVp
Z2h0KCkpIC8gMjsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCk7CisgICAgICAg
IGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAg
ICAgICAgaW50IHAgPSAoKHN0YXJ0WCAtIGRlc3RYKSAqIChzdGFydFggLSBkZXN0WCkpICsgKChz
dGFydFkgLSBkZXN0WSkgKiAoZGVzdFkgLSBkZXN0WSkpOworICAgICAgICBzZWMgPSBzcXJ0KHAp
OworCisgICAgICAgIHAgPSAoKHN0YXJ0UmVjdC54KCkgLSBkZXN0UmVjdC54KCkpICogKHN0YXJ0
UmVjdC54KCkgLSBkZXN0UmVjdC54KCkpKSArICgoc3RhcnRSZWN0LnkoKSAtIGRlc3RSZWN0Lnko
KSkgKiAoc3RhcnRSZWN0LnkoKSAtIGRlc3RSZWN0LnkoKSkpOworICAgICAgICBkaXN0YW5jZSA9
IHNxcnQocCk7CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC55KCkg
PT0gZGVzdFJlY3QueSgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisgICAgfQorCisg
ICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0KSB7CisgICAgICAgIGludCBz
dGFydFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyAyOworICAg
ICAgICBpbnQgZGVzdFkgID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSAv
IDI7CisgICAgICAgIGludCBzdGFydFggPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53
aWR0aCgpKTsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKTsKKworICAgICAgICBp
bnQgcCA9ICgoZGVzdFggLSBzdGFydFgpICogKGRlc3RYIC0gc3RhcnRYKSkgKyAoKGRlc3RZIC0g
c3RhcnRZKSAqIChkZXN0WSAtIHN0YXJ0WSkpOworICAgICAgICBzZWMgPSBzcXJ0KHApOworCisg
ICAgICAgIHAgPSAoKGRlc3RSZWN0LngoKSAtIHN0YXJ0UmVjdC54KCkpICogKGRlc3RSZWN0Lngo
KSAtIHN0YXJ0UmVjdC54KCkpKSArICgoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkgKiAo
ZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkpOworICAgICAgICBkaXN0YW5jZSA9IHNxcnQo
cCk7CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC55KCkgPT0gZGVz
dFJlY3QueSgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisgICAgfQorCisgICAgaWYg
KGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwKSB7CisgICAgICAgIGludCBzdGFydFggPSBz
dGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBk
ZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAg
ICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKTsKKyAgICAgICAgaW50IGRlc3RZID0gZGVzdFJl
Y3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKTsKKworICAgICAgICBpbnQgcCA9ICgoc3Rh
cnRYIC0gZGVzdFgpICogKHN0YXJ0WCAtIGRlc3RYKSkgKyAoKHN0YXJ0WSAtIGRlc3RZKSAqIChz
dGFydFkgLSBkZXN0WSkpOworICAgICAgICBzZWMgPSBzcXJ0KHApOworCisgICAgICAgIHAgPSAo
KHN0YXJ0UmVjdC54KCkgLSBkZXN0UmVjdC54KCkpICogKHN0YXJ0UmVjdC54KCkgLSBkZXN0UmVj
dC54KCkpKSArICgoc3RhcnRSZWN0LnkoKSAtIGRlc3RSZWN0LnkoKSkgKiAoc3RhcnRSZWN0Lnko
KSAtIGRlc3RSZWN0LnkoKSkpOworCisgICAgICAgIGRpc3RhbmNlID0gc3FydChwKTsKKworICAg
ICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0LngoKSA9PSBkZXN0UmVjdC54KCkp
CisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKworICAgICAgICBzZWMgPSAoc3RhcnRSZWN0
LnkoKSAtIGRlc3RSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlKQorICAg
ICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvbkRvd24pIHsKKyAgICAgICAgLy8gZ2V0IG1pZGRsZSBYIGZvciBjdXJyZW50
IGFuZCB0YXJnZXQgcmVjdHMKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBh
YnMoc3RhcnRSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0
LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBzdGFydFkgPSBz
dGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAgICBpbnQg
ZGVzdFkgID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSAvIDI7CisKKyAg
ICAgICAgaW50IHAgPSAoKGRlc3RYIC0gc3RhcnRYKSAqIChkZXN0WCAtIHN0YXJ0WCkpICsgKChk
ZXN0WSAtIHN0YXJ0WSkgKiAoZGVzdFkgLSBzdGFydFkpKTsKKyAgICAgICAgc2VjID0gc3FydChw
KTsKKworICAgICAgICBwID0gKChkZXN0UmVjdC54KCkgLSBzdGFydFJlY3QueCgpKSAqIChkZXN0
UmVjdC54KCkgLSBzdGFydFJlY3QueCgpKSkgKyAoKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55
KCkpICogKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkpKTsKKyAgICAgICAgZGlzdGFuY2Ug
PSBzcXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueCgp
ID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworCisgICAgICAg
IHNlYyA9IChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKTsKKworICAgICAgICBpZiAoc2Vj
IDwgZGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBy
ZXR1cm4gYWJzKGRpc3RhbmNlKTsKK30KKworc3RhdGljIGlubGluZSBsb25nIGxvbmcgcmVjdGFu
Z2xlRGlzdGFuY2UoSW50UmVjdCYgcmVjdDEsIEludFJlY3QmIHJlY3QyKQoreworICAgIGxvbmcg
bG9uZyB4RGlzdCA9IDA7CisgICAgaWYgKHJlY3QxLngoKSA+IHJlY3QyLnJpZ2h0KCkpCisgICAg
ICAgIHhEaXN0ID0gcmVjdDEueCgpIC0gcmVjdDIucmlnaHQoKTsKKyAgICBlbHNlIGlmIChyZWN0
Mi54KCkgPiByZWN0MS5yaWdodCgpKQorICAgICAgICB4RGlzdCA9IHJlY3QyLngoKSAtIHJlY3Qx
LnJpZ2h0KCk7CisKKyAgICBsb25nIGxvbmcgeURpc3QgPSAwOworICAgIGlmIChyZWN0MS55KCkg
PiByZWN0Mi5ib3R0b20oKSkKKyAgICAgICAgeURpc3QgPSByZWN0MS55KCkgLSByZWN0Mi5ib3R0
b20oKTsKKyAgICBlbHNlIGlmIChyZWN0Mi55KCkgPiByZWN0MS5ib3R0b20oKSkKKyAgICAgICAg
eURpc3QgPSByZWN0Mi55KCkgLSByZWN0MS5ib3R0b20oKTsKKworICAgIHJldHVybiB4RGlzdCAq
IHhEaXN0ICsgeURpc3QgKiB5RGlzdDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5oCmluZGV4IGQ4NjQwOGEuLjM4YzA4YzQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmgKQEAgLTU4LDYgKzU4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IGlzRm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9CiAKICAgICBwcml2YXRl
OgorICAgICAgICBib29sIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqKTsKKyAgICAgICAgYm9vbCBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3Jk
ZXIoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1cyk7CisK
ICAgICAgICAgUGFnZSogbV9wYWdlOwogICAgICAgICBSZWZQdHI8RnJhbWU+IG1fZm9jdXNlZEZy
YW1lOwogICAgICAgICBib29sIG1faXNBY3RpdmU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCmluZGV4IDI2
MWM3NDUuLjU1MWM3MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5o
CisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0yOSw3ICsyOSwxMSBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRm9jdXNEaXJlY3Rpb24gewogICAgICAgICBG
b2N1c0RpcmVjdGlvbkZvcndhcmQgPSAwLAotICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJk
CisgICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsCisgICAgICAgIEZvY3VzRGlyZWN0aW9u
VXAsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25M
ZWZ0LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
aW5kZXggMzg3M2M4OS4uNWI5ZDZjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02NCw2ICs2NCw3IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdl
U2l6ZShudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKICAgICAsIG1fbG9jYWxTdG9yYWdl
UXVvdGEoNSAqIDEwMjQgKiAxMDI0KSAgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBzcGVjLgog
ICAgICwgbV9wbHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpKQorICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
aXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZh
bHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMjM3LDYgKzIz
OCwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyhib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbQogICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKIH0KIAor
dm9pZCBTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQpCit7CisgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9
IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZh
RW5hYmxlZChib29sIGlzSmF2YUVuYWJsZWQpCiB7CiAgICAgbV9pc0phdmFFbmFibGVkID0gaXNK
YXZhRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggOWYwMGIwZC4uM2ZiMzliZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEx
Myw2ICsxMTMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBqYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9
CisKICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBpc0ph
dmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFFbmFibGVkOyB9CiAKQEAgLTI5OCw2
ICszMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1E
ZWNvZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOwog
ICAgICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOworICAgICAgICBib29sIG1f
aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5h
YmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgOiAxOwog
ICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7Ci0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46881</attachid>
            <date>2010-01-18 20:09:38 -0800</date>
            <delta_ts>2010-01-27 17:22:14 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v9)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>81430</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBkZGRmYWRhNDJlZDRiYzY1NTM0MTg3NzE2M2UxMGNkMTU2NjY2Yzk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAxNCBKYW4gMjAxMCAwMDoyMToyOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29AZ21h
aWwuY29tPgpCYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFy
Y28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KCldlYkNvcmU6CgpUaGlzIHBhdGNoIGltcGxl
bWVudHMgdGhlIGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZlYXR1cmUg
WzFdLgpJdCBpbXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IG9mIFdlYkNvcmUgYnkg
ZXh0ZW5kaW5nIHRoZSBiYXNpYyBrZXlib2FyZApuYXZpZ2F0aW9uIGN1cnJlbnRseSBhdmFpbGFi
bGUgKGJhc2VkIG9uIFRBQiBmb3J3YXJkIGFuZCBiYWNrd2FyZCkgd2l0aCB0aGUKYWRkaXRpb24g
b2YgYSBkaXJlY3Rpb25hbCBiYXNlZCBuYXZpZ2F0aW9uLCB3aGVyZSBmb2N1c2FibGUgZWxlbWVu
dHMgYXJlIGFjY2Vzc2libGUKYmFzZWQgb24gdGhlaXIgc3BhdGlhbCBsb2NhdGlvbiBpbiBhIFdl
YiBQYWdlLCBub3Qgb24gaXRzIFRhYiBpbmRleCB2YWx1ZS4KCkhpZ2hsaWdodHM6CiogRmVhdHVy
ZSBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gJ1NldHRpbmdzJy4gUG9ydCBzcGVjaWZpYyBB
UElzIG5lZWQgdG8gYmUgYWRkZWQKICBmb3IgdG9nZ2xlIGl0IG9uIGFuZCBvZmYuCiogT25seSBl
bGVtZW50cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92
ZSB0byBpdC4gSWYgdGhlcmUgaXMKICBub3QgYW55LCBzY3JvbGwtaW4tZGlyZWN0aW9uIGlzIHBl
cmZvcm1lZC4KKiBUaGUgbGF5b3V0IHRlc3RzIGFkZGVkIHJ1biBvbiBRdCdzIERSVCBvbmx5IGZv
ciBub3cgKHNraXBwZWQgZm9yIE1hYywgV2luIGFuZCBHdGspLgoKS25vd24gaXNzdWVzICh0byBi
ZSBjb3ZlcmVkIGluIGZvbGxvdyB1cCBidWdzKToKKiBBZGQgcG9ydCBzcGVjaWZpYyBob29rcyB0
byBlYWNoIERSVHMgdG8gZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uLgoqIEZvcm0g
bmF2aWdhdGlvbiBpcyBub3QgeWV0IHN1cHBvcnRlZC4KKiBJZnJhbWVzIHdpdGggc2Nyb2xsYWJs
ZSBjb250ZW50IG5lZWRzIGJldHRlciBzdXBwb3J0LgoqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1
c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtzIHdpdGggYXJyb3dzIGtleXMgb25seQogICh1
cCwgZG93biwgcmlnaHQgYW5kIGxlZnQpLgoqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFs
dCwgQ3RybCBhbmQgU2hpZnQpLgoKWzFdIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3Bh
dGlhbF9uYXZpZ2F0aW9uCgpUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbAogICAgICAgZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAog
ICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAgZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0
bWwKCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4K
KiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0
LWNhc2VzLmh0bWw6IEFkZGVkLgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aXNBcnJvd0tleSk6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJv
d0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIuaDoKKiBwYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHA6CihXZWJDb3JlOjopOgooV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVzdENhbmRp
ZGF0ZSk6CihXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6Rm9jdXNDb250cm9s
bGVyOjphZHZhbmNlRm9jdXMpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9j
dXNJbkRvY3VtZW50T3JkZXIpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9j
dXNEaXJlY3Rpb25hbGx5KToKKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKFdlYkNvcmU6
OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6YWJzb2x1dGVSZW5kZXJSZWN0KToKKFdl
YkNvcmU6OnRha2VzU3VwZXJQcmVjZWRlbmNlKToKKFdlYkNvcmU6OnRha2VzUHJlY2VkZW5jZSk6
CihXZWJDb3JlOjpwcmVjZWRlbmNlRGlzdGFuY2UpOgooV2ViQ29yZTo6cmVjdGFuZ2xlRGlzdGFu
Y2UpOgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CiogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgoo
V2ViQ29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoKKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0
aW5ncyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToK
KiBwYWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQpOgoKTGF5b3V0VGVzdHM6CgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCiogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFkZGVk
LgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVy
c2FsLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVu
aXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbDogQWRkZWQuCiogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0
bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250
YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanM6IEFkZGVkLgoqIGZhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVkLgoqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sOiBBZGRlZC4K
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbDog
QWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE3ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5o
dG1sICAgICAgIHwgICAgOSArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUyLmh0bWwgICAgICB8ICAgIDcgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lMy5odG1sICAgICAgfCAgICA4ICsKIC4uLi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKysKIC4uLi9zbmF2LWlmcmFtZS1u
by1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IHwgICAxNyArCiAuLi4vc25hdi1pZnJh
bWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwgICAgICAgICB8ICAgNjkgKysrCiAuLi4vc25h
di10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICB8ICAgMTcgKwogLi4u
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sICAgfCAgIDg4ICsr
KwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0ICAgICAgICAgfCAg
IDIwICsKIC4uLi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwgICAgICAgICAgICAgICAg
IHwgICA5MyArKysrCiAuLi50LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVj
dGVkLnR4dCB8ICAgIDYgKwogLi4uc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwgfCAgIDk2ICsrKysKIC4uLi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5j
ZS1leHBlY3RlZC50eHQgICAgIHwgICAxOSArCiAuLi4vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbCAgICAgICAgICAgICB8ICAgODEgKysrCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9u
L3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjkgKysr
CiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbCB8ICAg
IDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwgICAgICAgICAgICAg
fCAgMTM1ICsrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMzcgKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCAg
ICAgICAgICAgICAgICAgICB8ICA1NzYgKysrKysrKysrKysrKysrKysrKy0KIFdlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3Jl
L3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIFdl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiAr
CiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
IDQgKwogMzAgZmlsZXMgY2hhbmdlZCwgMTYxNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt
KQogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRt
bAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZl
cnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwt
c3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJl
Y2VkZW5jZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwogY3JlYXRlIG1v
ZGUgMTAwNzU1IFdlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5o
dG1sCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzc5YmY4
MS4uMzE1MWM1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTAxLTEzICBBbnRvbmlvIEdv
bWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cg
ZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVy
c2FsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1p
bi1kaXJlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24t
dXRpbHMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbDog
QWRkZWQuCisKIDIwMTAtMDEtMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFt
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk0MzA0Y2YKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
cmVzb3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+CisgIDxib2R5Pgor
ICAgIDwhLS08ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjcwcHgiID48YSBpZD0iMSIgaHJlZj0iYSI+
YjwvYT48L2Rpdj4tLT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT48YnI+CisgICAgPGEg
aWQ9IjIiIGhyZWY9ImEiPmM8L2E+PGJyPgorICAgIDxhIGlkPSIzIiBocmVmPSJhIj5kPC9hPjxi
cj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4MHB4IiA+PGEgaWQ9IjciIGhyZWY9ImEi
PmU8L2E+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE5N2MwMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+CisgIDxib2R5
PgorICAgIDxhIGlkPSI0IiBocmVmPSJhIj5nPC9hPgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5o
PC9hPgorICAgIDxhIGlkPSI2IiBocmVmPSJhIj5pPC9hPgorICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZTMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU0YTgyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbApAQCAtMCwwICsx
LDggQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+YTwvYT4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEwMHB4Ij4KKyAgICAgIDxhIGlkPSIyIiBocmVmPSJh
Ij5hPC9hPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1
cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM3MDI5OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ2IEBA
Cit0ZXN0CitIwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCDCoG93IE5vdyBCcm93biBDb3cKK0hvwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKgIHcgTm93IEJyb3duIENvdworSG93IMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKgwqAgTm93IEJyb3duIENv
dworSG93IE4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIMKgIMKgwqAg
b3cgQnJvd24gQ293CitIb3cgTm8gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKg
IMKgIMKgIMKgwqAgdyBCcm93biBDb3cKK0hvdyBOb3cgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoMKgwqAgwqAgwqAgwqAgwqAgwqDCoCBCcm93biBDb3cKK0hvdyBOb3cgQiDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCByb3duIENvdworSG93IE5vdyBC
ciDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIG93biBDb3cK
K0hvdyBOb3cgQnJvIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
wqAgd24gQ293CitIb3cgTm93IEJyb3fCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuIENvdworSG93IE5vdyBCcm93biDCoCDCoCDC
oCDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIENvdworSG93IE5vdyBC
cm93biBDIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIG93
CitIb3cgTm93IEJyb3duIENvIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoMKgIHcKK0hvdyBOb3cgQnJvd24gQ293CisKK3Rlc3QKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjEwIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiMTIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIxMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgIjEzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMTQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjE1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiMTciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIxOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjIwIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMTkiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIyMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICIyMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjI1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
MjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIy
NyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVu
ZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdmYTI1MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKQEAgLTAsMCArMSw5OCBAQAor
PGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgc3VwZXIgcHJlY2VkZW5j
ZSBsb2dpYyBvZiBTcGF0aWFsIE5hdmlnYXRpb24KKyAgICAoU05hdikgYWxnb3JpdGhtOiB0YXJn
ZXRzIHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVuIHRoZSB0b3Agb3IgYm90dG9tCisgICAgb2Yg
dGhlIGN1cnJlbnQgcmVjdCBhcmUgcHJlZmVyYWJseSB0byBtb3ZlIGZvY3VzIHRvLgorCisgICAg
KiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlz
YWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2Us
IGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVz
IHByZWZlcmFibHkgdG8gZWxlbWVudHMgcmlnaHQgdXAgb3IgYWJvdmUgdGhlCisgICAgICAgY3Vy
cmVudCBmb2N1c2VkIGVsZW1lbnQsIGV2ZW4gd2hlbiB0aGVyZSBhcmUgc29tZSBvdGhlciBjbG9z
ZXIKKyAgICAgICBidXQgbm90IHZlcnRpY2FsbHkgYWxpZ25lZCBlbGVtZW50cyBpbiB0aGUgc2Ft
ZSBkaXJlY3Rpb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3Bh
dGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsi
RG93biIsICIxIl0sCisgICAgICBbIlJpZ2h0IiwgIjIiXSwKKyAgICAgIFsiRG93biIsICI0Il0s
CisgICAgICBbIkxlZnQiLCAiMyJdLAorICAgICAgWyJEb3duIiwgIjUiXSwKKyAgICAgIFsiUmln
aHQiLCAiNiJdLAorICAgICAgWyJEb3duIiwgIjgiXSwKKyAgICAgIFsiTGVmdCIsICI3Il0sCisg
ICAgICBbIkRvd24iLCAiOSJdLAorICAgICAgWyJSaWdodCIsICIxMCJdLAorICAgICAgWyJEb3du
IiwgIjEyIl0sCisgICAgICBbIkxlZnQiLCAiMTEiXSwKKyAgICAgIFsiRG93biIsICIxMyJdLAor
ICAgICAgWyJSaWdodCIsICIxNCJdLAorICAgICAgWyJEb3duIiwgIjE2Il0sCisgICAgICBbIkxl
ZnQiLCAiMTUiXSwKKyAgICAgIFsiRG93biIsICIxNyJdLAorICAgICAgWyJSaWdodCIsICIxOCJd
LAorICAgICAgWyJEb3duIiwgIjIwIl0sCisgICAgICBbIkxlZnQiLCAiMTkiXSwKKyAgICAgIFsi
RG93biIsICIyMSJdLAorICAgICAgWyJSaWdodCIsICIyMiJdLAorICAgICAgWyJEb3duIiwgIjI0
Il0sCisgICAgICBbIkxlZnQiLCAiMjMiXSwKKyAgICAgIFsiRG93biIsICIyNSJdLAorICAgICAg
WyJSaWdodCIsICIyNiJdLAorICAgICAgWyJEb3duIiwgIjI3Il0sCisgICAgICBbIkRvd24iLCAi
ZW5kIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJh
Ij50ZXN0PGJyPjwvYT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+SDwvYT4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEg
aWQ9IjIiIGhyZWY9InAiPm93IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIzIiBo
cmVmPSJhIj5IbzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0iNCIg
aHJlZj0icCI+dyBOb3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iNSIgaHJlZj0iYSI+
SG93PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI2IiBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4K
KyAgICA8YSBpZD0iNyIgaHJlZj0iYSI+SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjgiIGhyZWY9InAiPm93
IEJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjkiIGhyZWY9ImEiPkhvdyBObzwvYT4gJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8
YSBpZD0iMTAiIGhyZWY9InAiPncgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTEiIGhy
ZWY9ImEiPkhvdyBOb3cgPC9hPiZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjEyIiBocmVmPSJwIj5Ccm93biBDb3c8
L2E+PGJyPgorICAgIDxhIGlkPSIxMyIgaHJlZj0iYSI+SG93IE5vdyBCPC9hPiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIx
NCIgaHJlZj0icCI+cm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxNSIgaHJlZj0iYSI+SG93
IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsmbmJzcDsgPGEgaWQ9IjE2IiBocmVmPSJwIj5vd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0i
MTciIGhyZWY9ImEiPkhvdyBOb3cgQnJvPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTgiIGhyZWY9InAiPnduIENvdzwvYT48
YnI+CisgICAgPGEgaWQ9IjE5IiBocmVmPSJhIj5Ib3cgTm93IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IDxhIGlkPSIyMCIgaHJlZj0icCI+biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIyMSIgaHJl
Zj0iYSI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0iMjIiIGhyZWY9InAiPkNvdzwv
YT48YnI+CisgICAgPGEgaWQ9IjIzIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duIEM8L2E+ICZuYnNw
OyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEg
aWQ9IjI0IiBocmVmPSJwIj5vdzwvYT48YnI+CisgICAgPGEgaWQ9IjI1IiBocmVmPSJhIj5Ib3cg
Tm93IEJyb3duIENvPC9hPiAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIyNiIgaHJlZj0icCI+dzwvYT48YnI+CisgICAgPGEg
aWQ9IjI3IiBocmVmPSJhIj5Ib3cgTm93IEJyb3duIENvdzwvYT48YnI+PGJyPgorICAgIDxhIGlk
PSJlbmQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y5MjhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1z
Y3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK2EKKworCith
CitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcu
ZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIy
IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3
LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
NCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVu
ZCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmll
dy5mcmFtZXNbMV0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjUiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICI3IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRW
aWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xs
YWJsZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA4MWNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3Jv
bGxhYmxlLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKyAgPCEtLQorICAg
IFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNz
IG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBl
bGVtZW50cyBpbiBhCisgICAgPGlmcmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAq
IFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNh
YmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwg
Zm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMg
YWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIg
cGFnZSwgZXZlbnR1YWxseSBnb2luZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0Cisg
ICAgICAgZ29pbmcgYmFjayB0byB0aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0t
PgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0
aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAg
ICBbIkRvd24iLCAiMiJdLAorICAgICAgWyJEb3duIiwgIjMiXSwKKyAgICAgIFsiRG93biIsICI0
Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjQiXSwKKyAgICAgIFsi
UmlnaHQiLCAiNSJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgIjci
XSwKKyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwg
IjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJl
bmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEg
a25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1
cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJl
Zj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1s
Ij48L2lmcmFtZT48YnI+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUyLmh0bWwi
PjwvaWZyYW1lPgorICAgIDxkaXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUt
dHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNh
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdCB0YWJsZSB0cmF2ZXJzYWwKK2EJ
YQlhCithCWEJYQorYQlhCWEKK0VuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdAorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2
ZXJzYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgxOGRkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0bWw+Cisg
IDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFibGUgdHJhdmVyc2FsIGNv
cnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZv
Y3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPHRhYmxlPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4K
KworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5h
YmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhp
cyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1
cyBtb3ZlcyBhbG9uZyB0aHJvdWdoIHRoZSBzcGFyc2VseSBwb3NpdGlvbmVkIGVsZW1lbnRzCisg
ICAgICAgaW4gdGhlIHRhYmxlLCBldmVudHVhbGx5IGdvaW5nIHRvIGFuIG91dGVyIHNvdXRod2Fy
ZCBsaW5rLAorICAgICAgIGJ1dCBnb2luZyBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24u
CisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0
aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0s
CisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93
biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisg
ICAgICBbIlJpZ2h0IiwgIjkiXSwKKyAgICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJVcCIsICIz
Il0sCisgICAgICBbIkxlZnQiLCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsi
RE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOwor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJU
b0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAg
ICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0
ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+VGVzdCB0YWJsZSB0
cmF2ZXJzYWw8YT4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAx
MDAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBj
ZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjEiPgorICAgICAgPHRib2R5PgorICAgICAgICA8
dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij48YSBpZD0iMSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBz
dHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRp
Y2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVmPSJhIj5h
PC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAg
IDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEg
aWQ9IjYiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgor
ICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaWQ9IjciIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9
InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4IiBocmVm
PSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9w
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAg
ICAgICA8L3RyPgorICAgICAgPC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9
J21hcmdpbi10b3A6MTAwcHgnPgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kIG9mIHRh
YmxlIHRyYXZlcnNhbCB0ZXN0PGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zYWUwOGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK2EKK2EJYQlhCithCWEJYQorYQlhCWEKK2EKK2EK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJh
dmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjEzMGQwMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBA
IC0wLDAgKzEsOTMgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhl
IGJhc2ljIHRhYmxlIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdh
dGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJs
ZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEp
IERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9u
IHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1
dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRo
ZSB0YWJsZSwgZXZlbnR1YWxseQorICAgICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBhbmQg
ZWFzdHdhcmQgbGlua3MsIGJ1dCBnb2luZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBs
YXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFs
LW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3du
IiwgIjEiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAg
ICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0Iiwg
IjgiXSwKKyAgICAgIFsiUmlnaHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBb
IlJpZ2h0IiwgInJpZ2h0Il0sCisgICAgICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIsICIz
Il0sCisgICAgICBbIkxlZnQiLCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsi
RE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOwor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJU
b0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAg
ICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0
ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+Cisg
ICAgPHRhYmxlPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0
eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAg
ICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+
YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlk
PSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAg
ICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+
YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlk
PSI1IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6
IHNtYWxsOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAg
ICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlk
PSI3IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6
IHNtYWxsOyI+PGEgaWQ9IjgiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5
bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAg
ICAgICA8L3RyPgorICAgICAgPC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9
J21hcmdpbi10b3A6OHB4Jz4KKyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBw
eCI+CisgICAgICA8YSBpZD0icmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwv
YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11
bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmE1MzE2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVy
Zmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitTdGFydAorRW5kCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICJzdGFydCIKK1BBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5k
LXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjM3NDQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEs
OTYgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGNvcnJlY3Ru
ZXNzIHRoZSBmb2xsb3dpbmcgU3BhdGlhbCBOYXZpZ2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRo
bSBmZWF0dXJlcy4KKworICAgIDEpIFRoZXJlIGlzIG5vIHVuaXQgb3ZlcmZsb3cgaW4gdGhlIFNO
YXYgYWxnb3JpdGhtIHdoaWxlIGNhbGN1bGF0aW5nCisgICAgICAgdGhlIGJlc3Qgbm9kZSBjYW5k
aWRhdGUgdG8gbW92ZSBmb2N1cyB0by4gVG8gdGVzdCB0aGF0IHRoaXMgcGFnZQorICAgICAgIHBv
c2l0aW9ucyBzb21lIGVsZW1lbnRzIDEwMDAwMDAwIHBpeGVscyBmYXIgZnJvbSBlYWNoIG90aGVy
IChkaXN0YW5jZQorICAgICAgIHRoYXQgY2FuIGNvbnNpZGVyZWQgbGFyZ2UgZW5vdWdoIGZvciBt
b3N0IG9mIHRoZSBXZWIgUGFnZXMgb24gdGhlCisgICAgICAgSW50ZXJuZXQpLgorCisgICAgMikg
TWFrZSBzdXJlIHRoYXQgYSBiZXN0IGZvY3VzYWJsZSBjYW5kaWRhdGUgb25seSBnZXRzIGZvY3Vz
ZWQKKyAgICAgICBpZiBpdCBpcyB2aXNpYmxlIGluIHRoZSBjdXJyZW50bCBWaWV3cG9ydC4gU2Ny
b2xsLWluLWRpcmVjdGlvbgorICAgICAgIGlzIHBlcmZvcm1lZCBvdGhlcndpc2UuCisKKyAgICAq
IFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNh
YmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwg
Zm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgQXR0ZW1wdCB0byBt
b3ZlIGZvY3VzIGRvd24gdG8gImVuZC4gQXMgaXQgaXMgdG9vIGZhciBhbmQgb3V0IG9mCisgICAg
ICAgdmlld3BvcnQsIGZvY3VzIGNoYW5nZSB3aWxsIG5vdCBoYXBwZW4gYW5kIHBhZ2Ugd2lsbCBi
ZSBzY3JvbGxlZAorICAgICAgIGEgc3RlcCBkb3duLgorICAgIDMpIEJ5IHNlbmRpbmcgYW4gIkVu
ZCIga2V5cHJlc3MsIHBhZ2UgZ2V0cyBzY3JvbGxlZCBkb3duIHRvIGEgcGxhY2UKKyAgICAgICB3
aGVyZSB0aGUgImVuZCIgbm9kZSBnZXRzIHZpc2libGUgaW4gdGhlIHZpZXdwb3J0LgorICAgIDQp
IFN0ZXAgXzFfIGlzIHJhbiBhZ2FpbiwgYW5kICJlbmQiIGdldHMgZm9jdXNlZC4gLS0+CisgIDxo
ZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisK
KyAgICB2YXIgbW92ZVRhYmxlMSA9IFsKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAg
WyIiLCAiIl0KKyAgICBdOworCisgICAgdmFyIG1vdmVUYWJsZTIgPSBbCisgICAgICBbIkRvd24i
LCAiZW5kIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0
byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iiku
Zm9jdXMoKTsKKworICAgICAgc2V0VGltZW91dChzdGVwMSAsIDApOworICAgICAgc2V0VGltZW91
dChzdGVwMiAsIDUwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAg
ICAgIC8vIEFjdGlvbnMgaW4gJ21vdmVUYWJsZTEnIHNob3VsZCBrZWVwIHRoZSBmb2N1cyBpbiB0
aGUgY3VycmVudGx5CisgICAgICAvLyBmb2N1c2VkIGVsZW1lbnQgKCdzdGFydCcpIG9uY2UgdGhl
IGJlc3QgY2FuZGlkYXRlICgnZW5kJykgaXMgbm90CisgICAgICAvLyB2aXNpYmxlIGluIGN1cnJl
bnQgdmlld3BvcnQuCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlMSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcoZG9jdW1l
bnQuYm9keS5zY3JvbGxUb3AgIT0gMCkpOworCisgICAgICAvLyBUaGVuIGl0IHNjcm9sbHMgZG93
biB0byB0aGUgZW5kIG9mIHRoZSBwYWdlIC4uLgorICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZW5kIik7CisKKyAgICAgIC8vIEFuZCAn
bW92ZVRhYmxlMicgcmUtdHJpZXMgdG8gbW92ZSBmb2N1cyBkb3duLgorICAgICAgdGVzdE1vdmVz
KG1vdmVUYWJsZTIsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RD
b21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAg
ICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFk
PgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5TdGFydDwvYT4KKyAgICA8ZGl2
IHN0eWxlPSdtYXJnaW4tdG9wOjEwMDAwMDAwMHB4Jz4KKyAgICAgICAgPGEgaWQ9ImVuZCIgaHJl
Zj0iYSI+RW5kPC9hPgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVy
dGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi44ZWIwZDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACit0ZXN0Cit0ZXN0wqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqB0ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0CisKKworCisKK3Rlc3QKK3Rl
c3QKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQi
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2Igor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12
ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwZTY4MGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNh
bC1zdXBlcnByZWNlZGVuY2UuaHRtbApAQCAtMCwwICsxLDgxIEBACis8aHRtbD4KKyAgPCEtLQor
ICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRp
YWwgTmF2aWdhdGlvbgorICAgIChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxl
IGZhbGxzIGJldHdlZW4gdGhlIHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0
IGFyZSBwcmVmZXJhYmx5IHRvIG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25z
OgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBO
YXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAi
c3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBl
bGVtZW50cyByaWdodCB1cCBvciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxl
bWVudCwgZXZlbiB3aGVuIHRoZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBu
b3QgdmVydGljYWxseSBhbGlnbmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAg
LS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24t
dXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNj
cmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjQiXSwKKyAg
ICAgIFsiRG93biIsICI2Il0sCisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJEb3duIiwg
ImVuZCJdLAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsi
RE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOwor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJU
b0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAg
ICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0
ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8
L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1h
bGlnbjogbGVmdDsiPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAg
ICAgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2Pgor
ICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPnRlc3Q8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEg
aWQ9IjMiIGhyZWY9ImEiPnRlc3Q8L2E+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAg
ICAgPC9kaXY+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgICAg
ICA8YSBpZD0iNSIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI2IiBocmVmPSJh
Ij50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPnRl
c3Q8YnI+PC9hPgorICAgICAgPGJyPjxicj48YnI+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFy
Z2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjgiIGhyZWY9ImEiPnRlc3Q8YnI+PC9h
PgorICAgICAgPC9kaXY+CisgICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJyPjwvYT4K
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9o
dG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDExOWVhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi11dGlscy5qcwpAQCAtMCwwICsxLDY5IEBACisvKgorICogT3JpZ2luYWwgYXV0aG9yOiBE
b3VnIFR1cm5lciA8ZG91Zy50dXJuZXJAZ21haWwuY29tPgorICoKKyAqIENvbnRyaWJ1dG9yczoK
KyAqICAgICAqIEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorICoqLworCit2
YXIgX21vdmVUYWJsZTsKK3ZhciBfbW92ZVRhYmxlSW5kZXggPSAwOwordmFyIF9jb21wbGV0ZWRD
YWxsYmFjayA9IG51bGw7CisKK2Z1bmN0aW9uIHRlc3RNb3Zlcyh0YWJsZSwgY29tcGxldGVkQ2Ip
IHsKKyAgIC8vIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgX3ZlcmlmeUFuZEFk
dmFuY2UsIHRydWUpOworCisgIF9tb3ZlVGFibGUgPSB0YWJsZTsKKyAgX21vdmVUYWJsZUluZGV4
ID0gMDsKKyAgX2NvbXBsZXRlZENhbGxiYWNrID0gY29tcGxldGVkQ2I7CisgIF9tb3ZlKCk7Cit9
CisKK2Z1bmN0aW9uIF9uZXh0TW92ZSgpCit7CisgIF9tb3ZlVGFibGVJbmRleCsrOworCisgIC8v
IFdoZW4gYSB0YWJsZSBlbmRzIHdpdGggIkRPTkUiLCBjYWxsIHRoZSBjb21wbGV0aW9uIGNhbGxi
YWNrLgorICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICJET05FIikKKyAg
ICBpZiAoX2NvbXBsZXRlZENhbGxiYWNrKSB7CisgICAgICBfY29tcGxldGVkQ2FsbGJhY2soKTsK
KyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgLy8gd2hlbiBhIHRhYmxlIGhhcyBhbiBlbXB0eSBl
bGVtZW50LCBlbmQgdGhlIG1vdmVzLgorICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhd
WzBdID09ICIiKQorICAgIHJldHVybjsKKworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbW92
ZSgpCit7CisgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50
cycpOworICBldmVudC5pbml0S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRv
Y3VtZW50LmRlZmF1bHRWaWV3LCBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0sIDAsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisgIGRvY3VtZW50LmRpc3BhdGNoRXZl
bnQoZXZlbnQpOworCisgIHNldFRpbWVvdXQoIF92ZXJpZnlBbmRBZHZhbmNlICwgMTAwKTsKK30K
KworZnVuY3Rpb24gX3ZlcmlmeUFuZEFkdmFuY2UoKQoreworICB2YXIgZGlyZWN0aW9uID0gX21v
dmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdOworICB2YXIgZXhwZWN0ZWRJRCA9IF9tb3ZlVGFi
bGVbX21vdmVUYWJsZUluZGV4XVsxXTsKKworICB2YXIgaSA9IDA7CisgIHZhciBtYWluRnJhbWVI
YXNGb2N1cyA9IHRydWU7CisgIGZvcig7IGkgPCBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXMu
bGVuZ3RoOyBpKyspCisgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1tpXS5kb2N1
bWVudC5oYXNGb2N1cygpKSB7CisgICAgICBtYWluRnJhbWVIYXNGb2N1cyA9IGZhbHNlOworICAg
ICAgYnJlYWs7CisgICAgfQorCisgIC8vIHRoaXMgc3VwcG9ydCBmcmFtZXMgbmVzdGVkIGluIG9u
ZSBsZXZlbCBkZWVwIG9ubHkuCisgIGlmIChtYWluRnJhbWVIYXNGb2N1cykKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRc
IikiLCBleHBlY3RlZElEKTsKKyAgZWxzZQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9j
dW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWyIgKyBpICsgIl0uZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSIsIGV4cGVjdGVkSUQpOworCisgIF9uZXh0TW92ZSgpOwor
fQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDFkNDVlMGEuLjc3MDhlNWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01NzU2LDMgKzU3NTYsNiBAQCBtZWRpYS92aWRlby1s
b29wLmh0bWwKIAogIyBHVEsrIGRvZXMgbm90IGhhdmUgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwuCiBmYXN0L2xvYWRlci9vbmxvYWQtd2lsbFNlbmRS
ZXF1ZXN0LW51bGwtZm9yLXNjcmlwdC5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0
eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZp
Z2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQKaW5kZXggY2JkNWU4OC4uODA0NWIyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
QEAgLTk4LDMgKzk4LDYgQEAgbWVkaWEvbWVkaWEtY2FuLXBsYXktb2dnLmh0bWwKIAogIyBUaGVz
ZSB0ZXN0cyByZXF1aXJlIHRvdWNoIHN1cHBvcnQKIGZhc3QvZXZlbnRzL3RvdWNoCisKKyMgTmVl
ZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZW5hYmxl
L2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggOWM3YzE4Ni4uODQ3YzA5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTc0MiwzICs3NDIsNiBAQCBzdmcvVzNDLVNWRy0xLjEv
ZmlsdGVycy1jb252LTAxLWYuc3ZnCiAKICMgSnVzdCBuZWVkcyBwaXhlbCBhbmQgcmVuZGVyaW5n
IHJlc3VsdHMgZ2VuZXJhdGVkIGJ5IHNvbWVvbmUgd2l0aCB0aGlzIHBsYXRmb3JtOgogZmFzdC9j
c3Mvbm9uLXN0YW5kYXJkLWNoZWNrYm94LXNpemUuaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0
aW9uYWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRp
YWwgTmF2aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3ODlhZTMuLmMy
YzhkMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTAtMDEtMTMgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0
b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8dG9uaWtpdG9vQGdtYWlsLmNvbT4KKyAgICAg
ICAgQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1hcmNvLmJh
cmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgRXh0ZW5kIGtleWJvYXJkIG5hdmln
YXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICBUaGlzIHBhdGNo
IGltcGxlbWVudHMgdGhlIGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZl
YXR1cmUgWzFdLgorICAgICAgICBJdCBpbXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0
IG9mIFdlYkNvcmUgYnkgZXh0ZW5kaW5nIHRoZSBiYXNpYyBrZXlib2FyZAorICAgICAgICBuYXZp
Z2F0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgKGJhc2VkIG9uIFRBQiBmb3J3YXJkIGFuZCBiYWNr
d2FyZCkgd2l0aCB0aGUKKyAgICAgICAgYWRkaXRpb24gb2YgYSBkaXJlY3Rpb25hbCBiYXNlZCBu
YXZpZ2F0aW9uLCB3aGVyZSBmb2N1c2FibGUgZWxlbWVudHMgYXJlIGFjY2Vzc2libGUKKyAgICAg
ICAgYmFzZWQgb24gdGhlaXIgc3BhdGlhbCBsb2NhdGlvbiBpbiBhIFdlYiBQYWdlLCBub3Qgb24g
aXRzIFRhYiBpbmRleCB2YWx1ZS4KKworICAgICAgICBIaWdobGlnaHRzOgorICAgICAgICAqIEZl
YXR1cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluICdTZXR0aW5ncycuIFBvcnQgc3BlY2lm
aWMgQVBJcyBuZWVkIHRvIGJlIGFkZGVkCisgICAgICAgICAgZm9yIHRvZ2dsZSBpdCBvbiBhbmQg
b2ZmLgorICAgICAgICAqIE9ubHkgZWxlbWVudHMgdmlld2VkIGluIHRoZSBjdXJyZW50IHZpZXdw
b3J0IGNhbiBoYXZlIGZvY3VzIG1vdmUgdG8gaXQuIElmIHRoZXJlIGlzCisgICAgICAgICAgbm90
IGFueSwgc2Nyb2xsLWluLWRpcmVjdGlvbiBpcyBwZXJmb3JtZWQuCisgICAgICAgICogVGhlIGxh
eW91dCB0ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lwcGVkIGZv
ciBNYWMsIFdpbiBhbmQgR3RrKS4KKworICAgICAgICBLbm93biBpc3N1ZXMgKHRvIGJlIGNvdmVy
ZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgorICAgICAgICAqIEFkZCBwb3J0IHNwZWNpZmljIGhvb2tz
IHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24uCisgICAg
ICAgICogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorICAgICAgICAqIElm
cmFtZXMgd2l0aCBzY3JvbGxhYmxlIGNvbnRlbnQgbmVlZHMgYmV0dGVyIHN1cHBvcnQuCisgICAg
ICAgICogTWFrZSBuYXZpZ2F0aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkgd29y
a3Mgd2l0aCBhcnJvd3Mga2V5cyBvbmx5CisgICAgICAgICAgKHVwLCBkb3duLCByaWdodCBhbmQg
bGVmdCkuCisgICAgICAgICogTWFrZSBpdCBzdXBwb3J0IG1vZGlmaWVycyAoQWx0LCBDdHJsIGFu
ZCBTaGlmdCkuCisKKyAgICAgICAgWzFdIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3Bh
dGlhbF9uYXZpZ2F0aW9uCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rp
b24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLmh0
bWwKKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRt
bDogQWRkZWQuCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0
aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRL
ZXlib2FyZEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omlz
QXJyb3dLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJyb3dF
dmVudEhhbmRsZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAg
KFdlYkNvcmU6OkJlc3RDYW5kaWRhdGU6OkJlc3RDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6bmV4dEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6
YWR2YW5jZUZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5j
ZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CisgICAgICAgIChXZWJDb3JlOjppc1JlY3RJ
bkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpkaXN0YW5jZUluRGlyZWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OmFic29sdXRlUmVuZGVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjp0
YWtlc1N1cGVyUHJlY2VkZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjp0YWtlc1ByZWNlZGVuY2Up
OgorICAgICAgICAoV2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OnJlY3RhbmdsZURpc3RhbmNlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5o
OgorICAgICAgICAqIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
czo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKwogMjAxMC0wMS0x
OCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZHJlc3MgcmV2
aWV3IGNvbW1lbnRzIG9uIHRoZSBsYXN0IGNoYW5nZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51
YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwgYi9XZWJDb3JlL21hbnVhbC10
ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwLi4wZDZlZDdjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRt
bD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+Cis8YSBocmVmPSJhIj5hPC9hPgorPGEgaHJl
Zj0iYSI+YTwvYT4KKzxhIGhyZWY9ImEiPmE8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXRlc3QtY2FzZXMuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyODM0NmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3Qt
Y2FzZXMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICA8
bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlNwYXRpYWwgTmF2aWdhdGlvbiBUZXN0IENhc2VzPC90
aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPgorICA8aDEgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij5TcGF0
aWFsIE5hdmlnYXRpb24gRnVuPC9oMT4KKyAgPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+
M3gzIENlbnRlcmVkIFRhYmxlIFRlc3Q8L2gyPgorPC9kaXY+Cis8dGFibGUgc3R5bGU9InRleHQt
YWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0
OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICA8
dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQg
c3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9
ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwvdHI+
CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFs
aWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9
InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRl
c3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1h
bGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwvdHI+CisgICAg
PHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRp
Y2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+
PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjog
Y2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+
Cis8L3RhYmxlPgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxicj4KKyAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPgorICAgIDxoMj5W
ZXJ0aWNhbCBTaW5lIFRlc3Q8L2gyPjxicj4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9InRleHQt
YWxpZ246IGxlZnQ7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPjxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rp
dj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50
ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+
CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8YSBocmVmPSJhIj50
ZXN0PGJyPjwvYT4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBo
cmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
OiA4MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2
IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9h
PgorICA8L2Rpdj4KKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7
ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Cisg
IDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorCisgIDxoMj5JbmNyZWFzaW5nIHNlbnRlbmNlIGxl
bmd0aDwvaDI+CisgIDxhIGhyZWY9ImEiPkg8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ibzxicj48
L2E+CisgIDxhIGhyZWY9InAiPkhvdzxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdyA8YnI+PC9h
PgorICA8YSBocmVmPSJwIj5Ib3cgTjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBObzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93
IDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT48YnI+CisgIDxhIGhyZWY9InAi
PkhvdyBOb3cgQnI8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJybzwvYT48YnI+Cisg
IDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cg
QnJvd248L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIDwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cg
QnJvd24gQ288L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIENvdzwvYT48YnI+
CisgIDxicj4KKyAgPGgyPlNwbGl0IHNlbnRlbmNlPGJyPjwvaDI+CisgIDxicj4KKyAgPGEgaHJl
Zj0icCI+SDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEgaHJlZj0icCI+b3cgTm93IEJyb3duIENvdzwvYT48YnI+
CisgIDxhIGhyZWY9InAiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxh
IGhyZWY9InAiPncgTm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdzwvYT4g
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyA8YSBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+
SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0i
cCI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ccm93biBDb3c8L2E+PGJyPgor
ICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+cm93biBDb3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vd24gQ293PC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnduIENvdzwvYT48YnI+Cisg
IDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duPC9hPiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IDxh
IGhyZWY9InAiPkNvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQzwvYT4g
Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj5vdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQ288
L2E+ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsgPGEgaHJlZj0icCI+dzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24g
Q293PC9hPjxicj48YnI+CisgIDxoMj5MaW5lIFdyYXAgVGVzdDwvaDI+PGJyPgorICA8dGFibGUg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAzOTNweDsgaGVpZ2h0OiA3MnB4OyIgYm9y
ZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgIDx0Ym9keT4KKyAg
ICAgIDx0cj4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+CisgICAg
ICAgICAgPHNwYW4gY2xhc3M9Imh1Z2UiPgorICAgICAgICAgICAgPGEgaHJlZj0iYSI+V2hpY2gg
b2YgdGhlIGZvbGxvd2luZyBjb25zdGFuc3QgZG8geW91IGxpa2UgdGhlIG1vc3QsIG9uZSBpcyBn
LCBvbmUgaXMgcGksIGFuZCB0aGUgb3RoZXIgaXMgZS4gPC9hPjxicj4KKyAgICAgICAgICA8L3Nw
YW4+PC90ZD4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+CisgICAg
ICAgICAgPGEgaHJlZj0iYSI+My4xNDwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Mi43
MTwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Ni42NzwvYT48YnI+CisgICAgICAgIDwv
dGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFibGU+PGJyPgorICA8aDI+SmF2
YXNjcmlwdCBGb2N1cy9CbHVyIFRlc3Q8L2gyPgorICAgIFdoZW4gZ29pbmcgdG8gYW55IGxpbmsg
ZnJvbSB0aGUgZm9sbG93aW5nIGxpbmssIHlvdSBzaG91bGQgc2VlIGEgZGlhbG9nLjxicj48YnI+
CisgIDxhIGhyZWY9ImEiIG9uYmx1cj0nYWxlcnQoIm9uQmx1cnQiKSc+VGVzdDwvYT48YnI+PGJy
PgorCisgIDxoMj5GcmFtZVNldHM8L2gyPiA8YnI+CisgIDxmcmFtZXNldCBjb2xzPSIyNSUsMjUl
LCoiPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJhbWUgc3JjPSJsaW5r
cy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICA8L2ZyYW1lc2V0Pgor
ICA8YnI+PGJyPgorCisgIDxoMj5JRnJhbWVzPC9oMj48YnI+CisgIDxpZnJhbWUgc3JjPSJsaW5r
cy5odG1sIj48L2lmcmFtZT48YnI+PGJyPjxicj4KKyAgPGgyPkRJVnM8L2gyPjxicj4KKyAgPGRp
diBpZD12PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPGRpdiBpZD0iRGl2MSI+CisgICAg
ICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iYSI+YTwvYT4K
KyAgPC9kaXY+PGJyPjxicj4KKyAgPC9kaXY+CisgIDwvZGl2PgorICA8YSBocmVmPSJsYXN0Ij5s
YXN0PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBlOTk3MjBl
Li4xN2JlYmFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjE1Niw2ICsyMTU2LDggQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50
KiBldmVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGV2ZW50LT5rZXlJZGVu
dGlmaWVyKCkgPT0gIlUrMDAwOSIpCiAgICAgICAgICAgICBkZWZhdWx0VGFiRXZlbnRIYW5kbGVy
KGV2ZW50KTsKKyAgICAgICAgZWxzZSBpZiAoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uID0gaXNB
cnJvd0tleShldmVudC0+a2V5SWRlbnRpZmllcigpKSkKKyAgICAgICAgICAgIGRlZmF1bHRBcnJv
d0V2ZW50SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKIAogICAgICAgIC8vIHByb3ZpZGVzIEtC
IG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2Vy
cwogICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50
ZXJmYWNlRW5hYmxlZCgpKQpAQCAtMjE3MCw2ICsyMTcyLDIwIEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAg
fQogfQogCitGb2N1c0RpcmVjdGlvbiBFdmVudEhhbmRsZXI6OmlzQXJyb3dLZXkoY29uc3QgU3Ry
aW5nJiBrZXlJZGVudGlmaWVyKQoreworICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJEb3duIikK
KyAgICAgICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uRG93bjsKKyAgICBlbHNlIGlmIChrZXlJZGVu
dGlmaWVyID09ICJVcCIpCisgICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvblVwOworICAgIGVs
c2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIkxlZnQiKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJl
Y3Rpb25MZWZ0OworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IikKKyAgICAg
ICAgcmV0dXJuIEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisKKyAgICByZXR1cm4gKEZvY3VzRGlyZWN0
aW9uKSAwOworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIGJvb2wgRXZlbnRIYW5kbGVy
OjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0RHJhZ1ZpZXdw
b3J0TG9jYXRpb24pIGNvbnN0CiB7CkBAIC0yNDYyLDYgKzI0NzgsMjcgQEAgdm9pZCBFdmVudEhh
bmRsZXI6OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKIAog
I2VuZGlmCiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9j
dXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAg
IGlmIChldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5KCkgfHwgZXZlbnQtPmFsdEdy
YXBoS2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBh
Z2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgIXBhZ2UtPnNldHRpbmdzKCktPmlz
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFy
cm93cyBhbmQgb3RoZXIgcG9zc2libGUgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBrZXlzIGNhbiBi
ZSB1c2VkIGluIGRlc2lnbgorICAgIC8vIG1vZGUgZWRpdGluZy4KKyAgICBpZiAobV9mcmFtZS0+
ZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChw
YWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZvY3VzKGZvY3VzRGlyZWN0aW9uLCBldmVu
dCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCiB2b2lkIEV2ZW50
SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKIHsK
ICAgICAvLyBXZSBzaG91bGQgb25seSBhZHZhbmNlIGZvY3VzIG9uIHRhYnMgaWYgbm8gc3BlY2lh
bCBtb2RpZmllciBrZXlzIGFyZSBoZWxkIGRvd24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNmExMmU3
MC4uZjdiM2QyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBi
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBF
dmVudEhhbmRsZXJfaAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKKyNpbmNsdWRlICJGb2N1
c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTMwMSw2ICszMDIsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVu
dCopOwogICAgIHZvaWQgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7Cisg
ICAgdm9pZCBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJk
RXZlbnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBhbGxvd0RIVE1M
RHJhZyhib29sJiBmbGFnREhUTUwsIGJvb2wmIGZsYWdVQSkgY29uc3Q7CkBAIC0zMjMsNiArMzI1
LDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHNldEZyYW1lV2FzU2Nyb2xsZWRCeVVzZXIo
KTsKIAorICAgIEZvY3VzRGlyZWN0aW9uIGlzQXJyb3dLZXkoY29uc3QgU3RyaW5nJik7CisKICAg
ICBib29sIGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVzRHJhZ2dp
bmc7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNfXykgJiYgIUVOQUJM
RShFWFBFUklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
aW5kZXggNWU3OGM3ZC4uMzBjZTdiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTI2
LDcgKzI2LDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJv
bGxlci5oIgotCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNTUsNiAr
NTUsMzcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK2VudW0gUHJlY2VkZW5jZU1vZGUgeworICAgIExv
dyA9IDAsCisgICAgUHJlY2VkZW50LAorICAgIFN1cGVyUHJlY2VkZW50Cit9OworCitzdHJ1Y3Qg
QmVzdENhbmRpZGF0ZSB7CisgICAgQmVzdENhbmRpZGF0ZSgpCisgICAgICAgIDogbm9kZSgwKQor
ICAgICAgICAsIGRpc3RhbmNlKG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpKQorICAg
ICAgICAsIG1vZGUoTG93KQorICAgICAgICAsIHBhcmVudE1vZGUoTG93KQorICAgIHsKKyAgICB9
CisgICAgTm9kZSogbm9kZTsKKyAgICBsb25nIGxvbmcgZGlzdGFuY2U7CisgICAgUHJlY2VkZW5j
ZU1vZGUgbW9kZTsKKyAgICBQcmVjZWRlbmNlTW9kZSBwYXJlbnRNb2RlOworfTsKKworc3RhdGlj
IGJvb2wgdGFrZXNTdXBlclByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRS
ZWN0Jik7CitzdGF0aWMgYm9vbCB0YWtlc1ByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJl
Y3QmLCBJbnRSZWN0Jik7CitzdGF0aWMgbG9uZyBsb25nIHByZWNlZGVuY2VEaXN0YW5jZShGb2N1
c0RpcmVjdGlvbiwgSW50UmVjdCYsIEludFJlY3QmKTsKK3N0YXRpYyBsb25nIGxvbmcgZGlzdGFu
Y2VJbkRpcmVjdGlvbihOb2RlKiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0
JiwgQmVzdENhbmRpZGF0ZSYpOworc3RhdGljIHZvaWQgbmV4dEluRGlyZWN0aW9uKERvY3VtZW50
KiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgQmVzdENhbmRpZGF0ZSYp
Oworc3RhdGljIGJvb2wgaXNSZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24sIEludFJlY3Qs
IEludFJlY3QpOworc3RhdGljIGlubGluZSBJbnRSZWN0IGFic29sdXRlUmVuZGVyUmVjdChSZW5k
ZXJPYmplY3QqKTsKK3N0YXRpYyBsb25nIGxvbmcgcmVjdGFuZ2xlRGlzdGFuY2UoSW50UmVjdCYs
IEludFJlY3QmKTsKK3N0YXRpYyBsb25nIGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0
aW9uLCBJbnRSZWN0JiwgSW50UmVjdCYpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlzcGF0Y2hF
dmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBmb2N1
c2VkKQogewpAQCAtMTQ4LDYgKzE3OSwyNCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0SW5p
dGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZQogCiBi
b29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQogeworICAgIHN3aXRj
aCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5E
b2N1bWVudE9yZGVyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7CisgICAgY2FzZSBG
b2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgIGNh
c2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAg
ICAgcmV0dXJuIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoZGlyZWN0aW9uLCBldmVudCk7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5E
b2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZl
bnQsIGJvb2wgaW5pdGlhbEZvY3VzKQorewogICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1h
aW5GcmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
ZnJhbWUtPmRvY3VtZW50KCk7CkBAIC0yNTIsNiArMzAxLDgyIEBAIGJvb2wgRm9jdXNDb250cm9s
bGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
KiBldmVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRF
dmVudCogZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7
CisgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1
c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3Zl
IHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rpb24gdGFi
RGlyZWN0aW9uID0gKEZvY3VzRGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0
aW9uTGVmdCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNE
aXJlY3Rpb25Gb3J3YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDsKKyAgICAgICAgLy8gJ2lu
aXRpYWxGb2N1cycgaXMgc2V0IHRvIHRydWUgc28gdGhlIGNocm9tZSBpcyBub3QgZm9jdXNlZC4K
KyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcih0YWJEaXJlY3Rpb24s
IGV2ZW50LCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBu
ZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIEZyYW1lKiBwYXJlbnRG
cmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBpZiAoIXBhcmVudEZyYW1l
IHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVzdENhbmRpZGF0ZSBiZXN0
Q2FuZGlkYXRlOworICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNl
ZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworCisgICAgTm9kZSogbm9k
ZSA9IGJlc3RDYW5kaWRhdGUubm9kZTsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgLy8gTGVh
dmUgdGhlIGZvY3VzIG9uIHRoZSBzYW1lIG5vZGUgYnV0IHNjcm9sbC4KKyAgICAgICAgRnJhbWUq
IGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7
CisgICAgICAgIFNjcm9sbERpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb247CisKKyAgICAgICAgc3dp
dGNoIChkaXJlY3Rpb24pIHsKKyAgICAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAg
ICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxMZWZ0OworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgICAgIHNjcm9sbERp
cmVjdGlvbiA9IFNjcm9sbFJpZ2h0OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25VcDoKKyAgICAgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbFVw
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgor
ICAgICAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsRG93bjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KHNjcm9sbERpcmVjdGlvbiwgU2Nyb2xs
QnlMaW5lKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKCFub2RlLT5p
c0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IE1heSBuZWVkIGEgd2F5IHRvIGZv
Y3VzIGEgZG9jdW1lbnQgaGVyZS4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisKKyAgICBpZiAobmV3
RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIC8vIEZvY3VzIGlzIGdvaW5n
IGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50LCBzbyBjbGVhciB0aGUg
Zm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNldEZvY3VzZWROb2RlKDAp
OworICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNlZEZyYW1l
KG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2Rl
KS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCByZWxp
bnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CkBA
IC0zNTksNCArNDg0LDQ1MyBAQCB2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0QWN0aXZlKGJvb2wg
YWN0aXZlKQogICAgICAgICBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUobV9m
b2N1c2VkRnJhbWUtPmRvY3VtZW50KCksIGFjdGl2ZSk7CiB9CiAKKy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gSEVMUEVSIFNQQVRJQUwgTkFWSUdBVElPTiBNRVRI
T0RTIC8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworc3RhdGlj
IHZvaWQgbmV4dEluRGlyZWN0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogc3RhcnQsIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIEJlc3RDYW5kaWRh
dGUmIGJlc3RDYW5kaWRhdGUpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKworICAgIC8vIEdl
dCB0aGUgY3VycmVudCB2aWV3cG9ydCByZWN0IHNvIHdlIGNhbiBjaGVjayBpZiBiZXN0Q2FuZGlk
YXRlJ3MgcmVjdAorICAgIC8vIGlzIHZpc2libGUgYmVmb3JlIGFjdHVhbGx5IG1vdmluZyB0aGUg
Zm9jdXMgdG8gaXQuIEluIGNhc2UgaXQgaXMgbm90IHZpc2libGUsCisgICAgLy8gd2Ugc2Nyb2xs
IGluIGRpcmVjdGlvbiBsYXRlciBvbiBpbnN0ZWFkLgorICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gZG9jdW1lbnQtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnZpZXcoKTsKKyAg
ICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IGJyb2tl
biB3aGVuIHRoZXJlIGFyZSBzY3JvbGxhYmxlIGlmcmFtZXMgaW52b2x2ZWQuCisgICAgSW50UmVj
dCB2aXNpYmxlUmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisKKyAgICAv
LyBXYWxrIGFsbCB0aGUgY2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBiZXN0Q2FuZGlkYXRlIGlmIHdl
IGZpbmQgYSBuZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9IGRvY3VtZW50
LT5maXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRlLT50cmF2ZXJz
ZU5leHROb2RlKCkpIHsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVu
dCgpKSB7CisgICAgICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGlj
X2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlm
IChvd25lci0+Y29udGVudEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoRG9jdW1lbnQq
IGlubmVyRG9jdW1lbnQgPSBvd25lci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGlubmVyRG9jdW1lbnQgPT0gc3RhcnQtPmRvY3VtZW50KCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0SW5EaXJlY3Rpb24oaW5uZXJEb2N1bWVudCwg
c3RhcnQsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9
IGRpc3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uLCB2aXNpYmxl
UmVjdCwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlzdGFu
Y2UgPCBiZXN0Q2FuZGlkYXRlLmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmVzdENhbmRpZGF0ZS5wYXJlbnRNb2RlID0gYmVzdENhbmRpZGF0ZS5tb2RlOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFy
dCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9IHN0YXJ0ICYmIGNhbmRpZGF0
ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkpIHsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBk
aXN0YW5jZSA9IGRpc3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9u
LCB2aXNpYmxlUmVjdCwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2Ug
PCBiZXN0Q2FuZGlkYXRlLmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0
ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUuZGlzdGFu
Y2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworc3Rh
dGljIGxvbmcgbG9uZyBkaXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqIHN0YXJ0LCBOb2RlKiBkZXN0
LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVzdENhbmRpZGF0ZSYgY2FuZGlkYXRl
KQoreworICAgIC8vIEZJWE1FOiBkb2VzIHRoaXMgaGF2ZSB0byBiZSBjYWxjdWxhdGVkIGV2ZXJ5
IHRpbWUgPworICAgIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIo
KTsKKyAgICBJbnRSZWN0IHN0YXJ0UmVjdChhYnNvbHV0ZVJlbmRlclJlY3Qoc3RhcnRSZW5kZXIp
KTsKKworICAgIFJlbmRlck9iamVjdCogZGVzdFJlbmRlciA9IGRlc3QtPnJlbmRlcmVyKCk7Cisg
ICAgSW50UmVjdCBkZXN0UmVjdChhYnNvbHV0ZVJlbmRlclJlY3QoZGVzdFJlbmRlcikpOworCisg
ICAgbG9uZyBsb25nIGRpc3RhbmNlID0gY2FuZGlkYXRlLmRpc3RhbmNlOworCisgICAgLy8gSW4g
b3JkZXIgdG8gYXZvaWQgY3JhenkganVtcCBiZXR3ZWVuIGxpbmtzIHRoYXQgYXJlIGVpdGhlciBm
YXIgYXdheSBmcm9tIGVhY2ggb3RoZXIsCisgICAgLy8gb3IganVzdCBub3QgY3VycmVudGx5IHZp
c2libGUsIGxldHMgYmFpbCBvdXQgaWYgdGhlIGRlc3RpbmF0aW9uIGZvY3VzYWJsZSBlbGVtZW50
IGlzCisgICAgLy8gbm90IGluIHRoZSB2aWV3cG9ydC4KKyAgICBpZiAoIXZpZXdwb3J0UmVjdC5p
bnRlcnNlY3RzKGRlc3RSZWN0KSkKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICAvLyBU
aGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHR3byBjb25zZWN1dGl2ZSBsaW5rcyBjb3VsZCBvdmVy
bGFwLCBzbyB3ZSBkZWNyZWFzZSB0aGUgc2l6ZQorICAgIC8vIG9mIGJvdGggcmVjdGFuZ2xlcy4K
KyAgICBzdGFydFJlY3QuaW5mbGF0ZSgtNCk7CisgICAgZGVzdFJlY3QuaW5mbGF0ZSgtNCk7CisK
KyAgICBpZiAoIWlzUmVjdEluRGlyZWN0aW9uKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVj
dCkpCisgICAgICAgIGdvdG8gZXhpdFBvaW50OworCisgICAgLy8gSWYgdGFyZ2V0IHRha2VzIHBy
ZWNlZGVuY2UgdGhlbiB1c2UgaXQgLSBkaXN0YW5jZSBpcyBub3QgYWx3YXlzIHRoZSBzaG9ydGVz
dAorICAgIC8vIGZvciBhIHByZWNlZGVudCB0YXJnZXQKKyAgICBpZiAodGFrZXNTdXBlclByZWNl
ZGVuY2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KSB8fCBjYW5kaWRhdGUucGFyZW50
TW9kZSA9PSBTdXBlclByZWNlZGVudCkgeworICAgICAgICAvLyByZXNldCBkaXN0YW5jZSBhcyB3
ZSBhcmUgbm93IGluIHN1cGVyIHByZWNlZGVuY2UgbW9kZQorICAgICAgICBpZiAoY2FuZGlkYXRl
Lm1vZGUgIT0gU3VwZXJQcmVjZWRlbnQpCisgICAgICAgICAgICBkaXN0YW5jZSA9IG51bWVyaWNf
bGltaXRzPGxvbmcgbG9uZz46Om1heCgpOworCisgICAgICAgIGxvbmcgbG9uZyBwcmVjZWRlbnRE
aXN0YW5jZSA9IHByZWNlZGVuY2VEaXN0YW5jZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJl
Y3QpOworICAgICAgICBpZiAoZGlzdGFuY2UgPiBwcmVjZWRlbnREaXN0YW5jZSkgeworICAgICAg
ICAgICAgY2FuZGlkYXRlLm1vZGUgPSBTdXBlclByZWNlZGVudDsKKyAgICAgICAgICAgIHJldHVy
biBwcmVjZWRlbnREaXN0YW5jZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChjYW5kaWRh
dGUubW9kZSA9PSBTdXBlclByZWNlZGVudCkKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAg
ICAvLyBJZiB0YXJnZXQgdGFrZXMgcHJlY2VkZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlz
IG5vdCBhbHdheXMgdGhlIHNob3J0ZXN0CisgICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldAor
ICAgIGlmICh0YWtlc1ByZWNlZGVuY2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KSkg
eworICAgICAgICBsb25nIGxvbmcgcHJlY2VkZW50RGlzdGFuY2UgPSBwcmVjZWRlbmNlRGlzdGFu
Y2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKworICAgICAgICBpZiAoZGlzdGFu
Y2UgPiBwcmVjZWRlbnREaXN0YW5jZSkgeworICAgICAgICAgICAgY2FuZGlkYXRlLm1vZGUgPSBQ
cmVjZWRlbnQ7CisgICAgICAgICAgICByZXR1cm4gcHJlY2VkZW50RGlzdGFuY2U7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoY2FuZGlkYXRlLm1vZGUgPT0gUHJlY2VkZW50KQorICAgICAg
ICBnb3RvIGV4aXRQb2ludDsKKworICAgIHJldHVybiBzcGF0aWFsRGlzdGFuY2UoZGlyZWN0aW9u
LCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKworZXhpdFBvaW50OgorICAgIHJldHVybiBudW1lcmlj
X2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKK30KKworLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24g
aXMgZmxhd2VkIGJlY2F1c2UgaXQgZG9lc24ndCBjb25zaWRlciB0aGUgZWZmZWN0cyBvZiBDU1Mg
b3IgU1ZHIHRyYW5zZm9ybXMuCitzdGF0aWMgaW5saW5lIEludFJlY3QgYWJzb2x1dGVSZW5kZXJS
ZWN0KFJlbmRlck9iamVjdCogcmVuZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAg
SW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworCisg
ICAgLy8gaGFuZGxlIG5lc3RlZCBmcmFtZXMuCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSByZW5k
ZXItPmRvY3VtZW50KCktPmZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBh
cmVudCgpKQorICAgICAgICBpZiAoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQg
PSBmcmFtZS0+b3duZXJFbGVtZW50KCkpCisgICAgICAgICAgICByZWN0Lm1vdmUob3duZXJFbGVt
ZW50LT5vZmZzZXRMZWZ0KCksIG93bmVyRWxlbWVudC0+b2Zmc2V0VG9wKCkpOworCisgICAgcmV0
dXJuIHJlY3Q7Cit9CisKKy8vIC0tIGdyYWJiZWQgZnJvbSBNSUNST0IgZXhjZXB0ZWQgYnkgVVB8
RE9XTiBsb2dpYy4KK3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbiwgSW50UmVjdCBzdGFydFJlY3QsIEludFJlY3QgZGVzdFJlY3QpCit7CisgICAg
aW50IG1pZGRsZSA9IDA7CisKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRm9j
dXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVz
dFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICByZXR1cm4gKG1pZGRsZSA8IHN0YXJ0UmVjdC54
KCkpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgbWlkZGxlID0gZGVz
dFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgcmV0dXJuICht
aWRkbGUgID4gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkpOworICAgIGNh
c2UgRm9jdXNEaXJlY3Rpb25VcCA6CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpIDwgc3Rh
cnRSZWN0LnkoKSk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVy
biAoZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSA+IHN0YXJ0UmVjdC55KCkg
KyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBUaGlz
IG1ldGhvZCBjaGVja3MgZm9yIHZlcnkgcHJlZmVyYWJsZSByZWN0IHRvIG1vdmUgZm9jdXMgdG8u
IEluIGVzc2VuY2UgdGFyZ2V0cworLy8gd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhlIHRv
cCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVjdC4KK3N0YXRpYyBib29sIHRha2VzU3VwZXJQ
cmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0LCBJ
bnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9u
TGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBpbnQg
ZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOwor
ICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWln
aHQoKSk7CisgICAgICAgIGludCBkZXN0RW5kICAgID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RS
ZWN0LndpZHRoKCkpOworCisgICAgICAgIGludCBzdGFydEJvdHRvbSA9IHN0YXJ0UmVjdC55KCkg
KyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgaW50IHN0YXJ0RW5kICAgID0gc3Rh
cnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVj
dGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgJiYgZGVzdEVuZCA+IHN0YXJ0UmVjdC54KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1
c0RpcmVjdGlvblJpZ2h0ICYmIGRlc3RSZWN0LngoKSA8IHN0YXJ0RW5kKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LnkoKSA+PSBzdGFydFJl
Y3QueSgpICYmIGRlc3RSZWN0LnkoKSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAo
ZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RNaWRkbGUgPD0gc3RhcnRCb3R0b20p
CisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90
dG9tIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0UmVjdC55KCkgPT0gc3Rh
cnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHx8ICAoZGVzdEJvdHRvbSA9PSBzdGFydEJvdHRvbSkK
KyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJv
dHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9j
dXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAg
ICAgIGludCBzdGFydEVuZCAgID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgo
KSk7CisgICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0
LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RFbmQgICAgPSBkZXN0UmVjdC54KCkgKyBh
YnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0Rp
cmVjdGlvblVwICYmIGRlc3RSZWN0LnkoKSA+IHN0YXJ0UmVjdC55KCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRv
d24gJiYgZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC54KCkgJiYg
ZGVzdE1pZGRsZSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueCgpID49
IHN0YXJ0UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAg
fHwgIChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIHx8ICAoc3Rh
cnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVzdEVuZCA+PSBzdGFydFJlY3Qu
eCgpICYmIGRlc3RFbmQgPD0gc3RhcnRFbmQpCisgICAgICAgICAgICB8fCAgKGRlc3RSZWN0Lngo
KSA8PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPj0gc3RhcnRFbmQpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIHRha2VzUHJlY2VkZW5jZShGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0YXJ0UmVjdCwgSW50UmVjdCYgZGVzdFJlY3Qp
Cit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgfHwgZGlyZWN0aW9u
ID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IG1pblkgPSBzdGFydFJlY3Qu
eSgpIC8qIC0gaGFsZiAqLzsKKyAgICAgICAgaW50IG1heFkgPSBzdGFydFJlY3QueSgpICsgYWJz
KHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyogKyBoYWxmICovOworICAgICAgICBpbnQgc3RhcnRCb3R0
b20gPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAg
aW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8g
MjsKKyAgICAgICAgaW50IGRlc3RCb3R0b20gPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3Qu
aGVpZ2h0KCkpOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LnkoKSA+PSBtaW5ZICYmIGRl
c3RSZWN0LnkoKSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IG1pblkg
JiYgZGVzdEJvdHRvbSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0TWlkZGxlID49IHN0
YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8
ICAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0YXJ0
Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IHN0YXJ0UmVjdC55KCkgJiYg
ZGVzdEJvdHRvbSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgp
IDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0K
KworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIGludCBtaW5YID0gc3RhcnRSZWN0LngoKSAv
KiAtIGhhbGYgKi87CisgICAgICAgIGludCBtYXhYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFy
dFJlY3Qud2lkdGgoKSkgLyogKyBoYWxmICovOworCisgICAgICAgIGludCBkZXN0RW5kID0gZGVz
dFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIHJldHVybiAoKGRl
c3RSZWN0LngoKSA+PSBtaW5YICYmIGRlc3RSZWN0LngoKSA8PSBtYXhYKQorICAgICAgICAgICAg
IHx8IChkZXN0RW5kID49IG1pblggJiYgZGVzdEVuZCA8PSBtYXhYKSk7CisgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOworfQorCisvLyBzcXJ0KCgoeDEgLSB4MikgXiAyKSArICgoeTEgLSB5Mikg
XiAyKSkKK3N0YXRpYyBsb25nIGxvbmcgcHJlY2VkZW5jZURpc3RhbmNlKEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAg
ICBsb25nIGxvbmcgZGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsK
KyAgICBsb25nIGxvbmcgc2VjID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CisK
KyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgeworICAgICAgICBpbnQg
c3RhcnRYID0gc3RhcnRSZWN0LngoKTsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55
KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WCAgPSBk
ZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0WSAg
PSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAgICBp
bnQgcCA9ICgoc3RhcnRYIC0gZGVzdFgpICogKHN0YXJ0WCAtIGRlc3RYKSkgKyAoKHN0YXJ0WSAt
IGRlc3RZKSAqIChkZXN0WSAtIGRlc3RZKSk7CisgICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAg
ICAgICAgcCA9ICgoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkgKiAoc3RhcnRSZWN0Lngo
KSAtIGRlc3RSZWN0LngoKSkpICsgKChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSAqIChz
dGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSk7CisgICAgICAgIGRpc3RhbmNlID0gc3FydChw
KTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0LnkoKSA9PSBkZXN0
UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBpZiAo
ZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IHN0YXJ0WCA9
IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpOworICAgICAgICBpbnQgc3Rh
cnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAg
ICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKTsKKyAgICAgICAgaW50IGRlc3RZICA9IGRlc3RS
ZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworCisgICAgICAgIGludCBwID0g
KChkZXN0WCAtIHN0YXJ0WCkgKiAoZGVzdFggLSBzdGFydFgpKSArICgoZGVzdFkgLSBzdGFydFkp
ICogKGRlc3RZIC0gc3RhcnRZKSk7CisgICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAgICAgICAg
cCA9ICgoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkgKiAoZGVzdFJlY3QueCgpIC0gc3Rh
cnRSZWN0LngoKSkpICsgKChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKSAqIChkZXN0UmVj
dC55KCkgLSBzdGFydFJlY3QueSgpKSk7CisgICAgICAgIGRpc3RhbmNlID0gc3FydChwKTsKKwor
ICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55
KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0
aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVj
dC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IHN0YXJ0WSA9
IHN0YXJ0UmVjdC55KCk7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMo
ZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgZGVzdFkgPSBkZXN0UmVjdC55KCkg
KyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpOworCisgICAgICAgIGludCBwID0gKChzdGFydFggLSBk
ZXN0WCkgKiAoc3RhcnRYIC0gZGVzdFgpKSArICgoc3RhcnRZIC0gZGVzdFkpICogKHN0YXJ0WSAt
IGRlc3RZKSk7CisgICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoc3RhcnRS
ZWN0LngoKSAtIGRlc3RSZWN0LngoKSkgKiAoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkp
ICsgKChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSAqIChzdGFydFJlY3QueSgpIC0gZGVz
dFJlY3QueSgpKSk7CisKKyAgICAgICAgZGlzdGFuY2UgPSBzcXJ0KHApOworCisgICAgICAgIGlm
IChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAg
ICAgICAgIGRpc3RhbmNlID0gc2VjOworCisgICAgICAgIHNlYyA9IChzdGFydFJlY3QueSgpIC0g
ZGVzdFJlY3QueSgpKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UpCisgICAgICAgICAg
ICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGly
ZWN0aW9uRG93bikgeworICAgICAgICAvLyBnZXQgbWlkZGxlIFggZm9yIGN1cnJlbnQgYW5kIHRh
cmdldCByZWN0cworICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFy
dFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSAr
IGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RS
ZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSAg
PSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAgICBp
bnQgcCA9ICgoZGVzdFggLSBzdGFydFgpICogKGRlc3RYIC0gc3RhcnRYKSkgKyAoKGRlc3RZIC0g
c3RhcnRZKSAqIChkZXN0WSAtIHN0YXJ0WSkpOworICAgICAgICBzZWMgPSBzcXJ0KHApOworCisg
ICAgICAgIHAgPSAoKGRlc3RSZWN0LngoKSAtIHN0YXJ0UmVjdC54KCkpICogKGRlc3RSZWN0Lngo
KSAtIHN0YXJ0UmVjdC54KCkpKSArICgoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkgKiAo
ZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkpOworICAgICAgICBkaXN0YW5jZSA9IHNxcnQo
cCk7CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC54KCkgPT0gZGVz
dFJlY3QueCgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisKKyAgICAgICAgc2VjID0g
KGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkpOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0
YW5jZSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKworICAgIHJldHVybiBh
YnMoZGlzdGFuY2UpOworfQorCitzdGF0aWMgaW5saW5lIGxvbmcgbG9uZyByZWN0YW5nbGVEaXN0
YW5jZShJbnRSZWN0JiByZWN0MSwgSW50UmVjdCYgcmVjdDIpCit7CisgICAgbG9uZyBsb25nIHhE
aXN0ID0gMDsKKyAgICBpZiAocmVjdDEueCgpID4gcmVjdDIucmlnaHQoKSkKKyAgICAgICAgeERp
c3QgPSByZWN0MS54KCkgLSByZWN0Mi5yaWdodCgpOworICAgIGVsc2UgaWYgKHJlY3QyLngoKSA+
IHJlY3QxLnJpZ2h0KCkpCisgICAgICAgIHhEaXN0ID0gcmVjdDIueCgpIC0gcmVjdDEucmlnaHQo
KTsKKworICAgIGxvbmcgbG9uZyB5RGlzdCA9IDA7CisgICAgaWYgKHJlY3QxLnkoKSA+IHJlY3Qy
LmJvdHRvbSgpKQorICAgICAgICB5RGlzdCA9IHJlY3QxLnkoKSAtIHJlY3QyLmJvdHRvbSgpOwor
ICAgIGVsc2UgaWYgKHJlY3QyLnkoKSA+IHJlY3QxLmJvdHRvbSgpKQorICAgICAgICB5RGlzdCA9
IHJlY3QyLnkoKSAtIHJlY3QxLmJvdHRvbSgpOworCisgICAgcmV0dXJuIHhEaXN0ICogeERpc3Qg
KyB5RGlzdCAqIHlEaXN0OworfQorCitzdGF0aWMgbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIGEsIEludFJlY3QmIGIpCit7CisgICAg
aW50IHgxID0gMCwgeTEgPSAwLCB4MiA9IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgp
KSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4
MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54
KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAg
ICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngo
KSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAg
ICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAg
ICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAg
IC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAor
ICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgp
KSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4
MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAg
ICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEu
d2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAg
ICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSAw
OworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAg
fQorICAgIH0KKyAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCkgewor
ICAgICAgICAvLyAgfC0tLXwgIHwtLS18ICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwgIHwtLS18
ICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8v
ICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueCgpID4gYi54KCkgKyBi
LndpZHRoKCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8gdGhlIGxlZnQgb2Yg
YS4KKyAgICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgICAgICB5MSA9IGEueSgpOworICAg
ICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCkg
KyBiLmhlaWdodCgpOworICAgICAgICB9IGVsc2UgaWYgKGEueCgpICsgYS53aWR0aCgpIDwgYi54
KCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8gdGhlIHJpZ2h0IG9mIGEKKyAg
ICAgICAgICAgIHgxID0gYS54KCkgKyBhLndpZHRoKCk7CisgICAgICAgICAgICB5MSA9IGEueSgp
OworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCkgKyBiLmhl
aWdodCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gYm90aCBiIGFuZCBhIHNo
YXJlIHNvbWUgY29tbW9uIHgncy4KKyAgICAgICAgICAgIHgxID0gMDsKKyAgICAgICAgICAgIHkx
ID0gYS55KCk7CisgICAgICAgICAgICB4MiA9IDA7CisgICAgICAgICAgICB5MiA9IGIueSgpICsg
Yi5oZWlnaHQoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uRG93bikgeworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAg
ICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwK
KyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYg
KGEueCgpID4gYi54KCkgKyBiLndpZHRoKCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3Qg
aXMgdG8gdGhlIGxlZnQgb2YgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgICAg
ICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBiLndp
ZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9IGVsc2UgaWYgKGEueCgp
ICsgYS53aWR0aCgpIDwgYi54KCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8g
dGhlIHJpZ2h0IG9mIGEKKyAgICAgICAgICAgIHgxID0gYS54KCkgKyBhLndpZHRoKCk7CisgICAg
ICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCk7
CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Ly8gYm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHgncy4KKyAgICAgICAgICAgIHgxID0g
MDsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIg
PSAwOworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxv
bmcgbG9uZyBkID0gKCh4MSAtIHgyKSAqICh4MSAtIHgyKSkgKyAoKHkxIC0geTIpICogKHkxIC0g
eTIpKTsKKyAgICBpZiAoZCA8IDApCisgICAgICAgIGQgKj0gKC0xKTsKKworICAgIHJldHVybiBk
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXgg
ZDg2NDA4YS4uMzhjMDhjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtNTgsNiArNTgsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KIAogICAgIHByaXZhdGU6CisgICAgICAgIGJvb2wgYWR2YW5j
ZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOworICAg
ICAgICBib29sIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsKKwogICAgICAgICBQYWdlKiBtX3BhZ2U7
CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgICAgIGJvb2wgbV9p
c0FjdGl2ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIGIvV2Vi
Q29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKaW5kZXggMjYxYzc0NS4uNTUxYzcyNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9wYWdlL0Zv
Y3VzRGlyZWN0aW9uLmgKQEAgLTI5LDcgKzI5LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgZW51bSBGb2N1c0RpcmVjdGlvbiB7CiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9
IDAsCi0gICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rp
b25CYWNrd2FyZCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25VcCwKKyAgICAgICAgRm9jdXNEaXJl
Y3Rpb25Eb3duLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkxlZnQsCisgICAgICAgIEZvY3VzRGly
ZWN0aW9uUmlnaHQKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCAzODczYzg5Li41YjlkNmM0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5jcHAKQEAgLTY0LDYgKzY0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2Uq
IHBhZ2UpCiAgICAgLCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNp
emVfdD46Om1heCgpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQp
ICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRS
dW5UaW1lKG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCisgICAgLCBtX2lzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNlKQog
ICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVC
cm93c2luZ0VuYWJsZWQoZmFsc2UpCkBAIC0yMzcsNiArMjM4LDExIEBAIHZvaWQgU2V0dGluZ3M6
OnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dVbml2ZXJzYWxB
Y2Nlc3NGcm9tCiAgICAgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IGFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKK3sK
KyAgICBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQ7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldEphdmFFbmFibGVkKGJvb2wgaXNKYXZhRW5h
YmxlZCkKIHsKICAgICBtX2lzSmF2YUVuYWJsZWQgPSBpc0phdmFFbmFibGVkOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRl
eCA5ZjAwYjBkLi4zZmIzOWJkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAor
KysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTEzLDYgKzExMyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGJvb2wpOwogICAgICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHkoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1
dG9tYXRpY2FsbHk7IH0KIAorICAgICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZChib29sKTsKKyAgICAgICAgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIHsgcmV0
dXJuIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7IH0KKwogICAgICAgICB2b2lkIHNldEph
dmFFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGlzSmF2YUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzSmF2YUVuYWJsZWQ7IH0KIApAQCAtMjk4LDYgKzMwMSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAg
ICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CiAgICAgICAgIHVuc2lnbmVkIG1fcGx1
Z2luQWxsb3dlZFJ1blRpbWU7CisgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9v
bCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRl
QnJvd3NpbmdFbmFibGVkIDogMTsKLS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47581</attachid>
            <date>2010-01-27 17:22:14 -0800</date>
            <delta_ts>2010-01-28 11:59:51 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v10) </desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>91666</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA3NjAwNjhjMGM1ZTZmNzQxYzE1YTE0NmU0ZDU5MGY3NjNhNjQ5NWIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBKYW4gMjAxMCAxMToyNDoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpXZWJDb3JlOgoKVGhpcyBwYXRjaCBpbXBs
ZW1lbnRzIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJl
IFsxXS4KSXQgaW1wcm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5
IGV4dGVuZGluZyB0aGUgYmFzaWMga2V5Ym9hcmQKbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxh
YmxlIChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCmFkZGl0aW9u
IG9mIGEgZGlyZWN0aW9uYWwgYmFzZWQgbmF2aWdhdGlvbiwgd2hlcmUgZm9jdXNhYmxlIGVsZW1l
bnRzIGFyZSBhY2Nlc3NpYmxlCmJhc2VkIG9uIHRoZWlyIHNwYXRpYWwgbG9jYXRpb24gaW4gYSBX
ZWIgUGFnZSwgbm90IG9uIGl0cyBUYWIgaW5kZXggdmFsdWUuCgpIaWdobGlnaHRzOgoqIEZlYXR1
cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluICdTZXR0aW5ncycuIFBvcnQgc3BlY2lmaWMg
QVBJcyBuZWVkIHRvIGJlIGFkZGVkCiAgZm9yIHRvZ2dsZSBpdCBvbiBhbmQgb2ZmLgoqIE9ubHkg
ZWxlbWVudHMgdmlld2VkIGluIHRoZSBjdXJyZW50IHZpZXdwb3J0IGNhbiBoYXZlIGZvY3VzIG1v
dmUgdG8gaXQuIElmIHRoZXJlIGlzCiAgbm90IGFueSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBh
Y3Rpb24gaXMgcGVyZm9ybWVkLgoqIFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9uIFF0J3Mg
RFJUIG9ubHkgZm9yIG5vdyAoc2tpcHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCgpLbm93biBp
c3N1ZXMgKHRvIGJlIGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgoqIEFkZCBwb3J0IHNwZWNp
ZmljIGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRp
b24uCiogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgoqIElmcmFtZXMgd2l0
aCBzY3JvbGxhYmxlIGNvbnRlbnQgbmVlZHMgYmV0dGVyIHN1cHBvcnQuCiogTWFrZSBuYXZpZ2F0
aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkgd29ya3Mgd2l0aCBhcnJvd3Mga2V5
cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCkuCiogTWFrZSBpdCBzdXBwb3J0IG1v
ZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0gaHR0cDovL2VuLndpa2lwZWRpYS5v
cmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KClRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbAogICAgICAgZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbAogICAgICAgZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKICAgICAgIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0
bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAg
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBB
ZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlv
bi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1
bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIuaDoKKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CihXZWJDb3JlOjopOgooV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVz
dENhbmRpZGF0ZSk6CihXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKFdl
YkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6cmVuZGVyUmVjdCk6CihXZWJD
b3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CihXZWJDb3JlOjp0YWtlc1ByZWNlZGVuY2UpOgoo
V2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6
CihXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CihXZWJDb3JlOjppc09mZnNjcmVlblJlY3Qp
OgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CiogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2Vi
Q29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoKKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5n
cyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBw
YWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQpOgoKTGF5b3V0VGVzdHM6CgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0
bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13
aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiog
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwu
aHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDog
QWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCiogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRl
ZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwg
ICAgICAgfCAgIDEwICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbCAgICAgIHwgICAgNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUzLmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lNC5odG1sICAgICAgfCAgICA4ICsKIC4uLi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKwogLi4uL3NuYXYtaWZyYW1lLW5v
LWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCAgfCAgICA3ICsKIC4uLi9zbmF2LWlmcmFt
ZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sICAgICAgICAgIHwgICA1OCArKwogLi4uL3NuYXYt
aWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQgfCAgIDE3ICsKIC4uLi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwgICA2OSArKysK
IC4uLmUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IHwgICAx
NCArCiAuLi5hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbCB8
ICAgNjYgKysKIC4uLi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgICAgICAgICAg
ICAgIHwgICAxNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
Lmh0bWwgICB8ICAgODggKysrCiAuLi4vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3Rl
ZC50eHQgICAgICAgICB8ICAgMjAgKwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRt
bCAgICAgICAgICAgICAgICAgfCAgIDkzICsrKwogLi4udC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQgfCAgICA2ICsKIC4uLnNuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIHwgICA5NiArKysKIC4uLi9zbmF2LXZlcnRpY2Fs
LXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgICAgIHwgICAxOSArCiAuLi4vc25hdi12ZXJ0
aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgICB8ICAgODEgKysrCiAuLi4vc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAg
ICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgMyArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNzIgKysrCiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24v
bGlua3MuaHRtbCB8ICAgIDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0
bWwgICAgICAgICAgICAgfCAgMTM1ICsrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICA2MjUgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDYgKy0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKwogMzUgZmlsZXMgY2hhbmdlZCwgMTgyNSBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291
cmNlcy9pZnJhbWU0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Ny
b2xsYWJsZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9j
dXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2Ny
ZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZl
cnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXRlc3QtY2FzZXMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNzZhNDZhLi5mZDBhNzA0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTAtMDEtMjUgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRl
bmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZv
Y3VzYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1l
LXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWw6IEFkZGVkLgor
CiAyMDEwLTAxLTI3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1ZjE3MTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorICA8Ym9keT4KKyAg
ICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT48YnI+CisgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmM8
L2E+PGJyPgorICAgIDxhIGlkPSIzIiBocmVmPSJhIj5kPC9hPjxicj4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDo4MHB4IiA+CisgICAgICA8YSBpZD0iNyIgaHJlZj0iYSI+ZTwvYT4KKyAg
ICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTk3YzAyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jl
c291cmNlcy9pZnJhbWUyLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGEgaWQ9IjQiIGhyZWY9ImEiPmc8L2E+CisgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPmg8L2E+
CisgICAgPGEgaWQ9IjYiIGhyZWY9ImEiPmk8L2E+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDFhZDlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCkBAIC0wLDAgKzEsOCBA
QAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSIxIiBocmVmPSJhIj5iPC9hPgorICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmQ8
L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWU0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmNDhmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+CisgIDxi
b2R5PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPHA+VGhpcyBm
cmFtZSBoYXMgc29tZSB0ZXh0IGFuZCBubyBmb2N1c2FibGUgZWxlbWVudCAuLi48L2E+CisgICAg
PC9kaXY+CisgICAgPHA+Li4uIGFuZCBzb21lIG1vcmUgdGV4dCAuLi48L2E+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwt
c3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wMzcwMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK3Rlc3QKK0jCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgb3cgTm93IEJyb3duIENvdwor
SG/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqAg
dyBOb3cgQnJvd24gQ293CitIb3cgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqDCoMKgwqDCoCBOb3cgQnJvd24gQ293CitIb3cgTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqAgwqAgwqDCoCBvdyBCcm93biBDb3cKK0hvdyBObyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqDCoCB3IEJyb3duIENvdworSG93IE5v
dyDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoMKgIEJyb3du
IENvdworSG93IE5vdyBCIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDC
oCDCoMKgIHJvd24gQ293CitIb3cgTm93IEJyIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgwqAgb3duIENvdworSG93IE5vdyBCcm8gwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCB3biBDb3cKK0hvdyBOb3cgQnJvd8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG4g
Q293CitIb3cgTm93IEJyb3duIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoMKgwqAgQ293CitIb3cgTm93IEJyb3duIEMgwqAgwqDCoMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgb3cKK0hvdyBOb3cgQnJvd24gQ28gwqDCoMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgdworSG93IE5vdyBCcm93biBDb3cK
KwordGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTAiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMiIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjExIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTMiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNCIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE2IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTUiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNyIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE4IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjAiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjUiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2Vk
ZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iN2ZhMjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVu
Y2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgor
ICAgIChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4g
dGhlIHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5
IHRvIG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBz
dXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBz
OgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRp
Y2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1
cCBvciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVu
IHRoZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBh
bGlnbmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2
YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiUmlnaHQiLCAi
MiJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiTGVmdCIsICIzIl0sCisgICAgICBb
IkRvd24iLCAiNSJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIkRvd24iLCAiOCJd
LAorICAgICAgWyJMZWZ0IiwgIjciXSwKKyAgICAgIFsiRG93biIsICI5Il0sCisgICAgICBbIlJp
Z2h0IiwgIjEwIl0sCisgICAgICBbIkRvd24iLCAiMTIiXSwKKyAgICAgIFsiTGVmdCIsICIxMSJd
LAorICAgICAgWyJEb3duIiwgIjEzIl0sCisgICAgICBbIlJpZ2h0IiwgIjE0Il0sCisgICAgICBb
IkRvd24iLCAiMTYiXSwKKyAgICAgIFsiTGVmdCIsICIxNSJdLAorICAgICAgWyJEb3duIiwgIjE3
Il0sCisgICAgICBbIlJpZ2h0IiwgIjE4Il0sCisgICAgICBbIkRvd24iLCAiMjAiXSwKKyAgICAg
IFsiTGVmdCIsICIxOSJdLAorICAgICAgWyJEb3duIiwgIjIxIl0sCisgICAgICBbIlJpZ2h0Iiwg
IjIyIl0sCisgICAgICBbIkRvd24iLCAiMjQiXSwKKyAgICAgIFsiTGVmdCIsICIyMyJdLAorICAg
ICAgWyJEb3duIiwgIjI1Il0sCisgICAgICBbIlJpZ2h0IiwgIjI2Il0sCisgICAgICBbIkRvd24i
LCAiMjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0K
KyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5n
IHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRh
YmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93
Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxhIGlkPSIxIiBo
cmVmPSJhIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBpZD0iMiIgaHJlZj0icCI+b3cgTm93IEJyb3duIENv
dzwvYT48YnI+CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI0IiBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJy
PgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5Ib3c8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjYiIGhyZWY9
InAiPk5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSI3IiBocmVmPSJhIj5Ib3cgTjwv
YT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyA8YSBpZD0iOCIgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0i
OSIgaHJlZj0iYSI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxMCIgaHJlZj0icCI+dyBCcm93biBDb3c8
L2E+PGJyPgorICAgIDxhIGlkPSIxMSIgaHJlZj0iYSI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBp
ZD0iMTIiIGhyZWY9InAiPkJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjEzIiBocmVmPSJh
Ij5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjE0IiBocmVmPSJwIj5yb3duIENvdzwvYT48YnI+Cisg
ICAgPGEgaWQ9IjE1IiBocmVmPSJhIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTYiIGhyZWY9InAiPm93
biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxNyIgaHJlZj0iYSI+SG93IE5vdyBCcm88L2E+ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlk
PSIxOCIgaHJlZj0icCI+d24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTkiIGhyZWY9ImEiPkhv
dyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjIwIiBocmVmPSJwIj5uIENvdzwv
YT48YnI+CisgICAgPGEgaWQ9IjIxIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duPC9hPiAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
IDxhIGlkPSIyMiIgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgICA8YSBpZD0iMjMiIGhyZWY9ImEi
PkhvdyBOb3cgQnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMjQiIGhyZWY9InAiPm93PC9hPjxicj4KKyAg
ICA8YSBpZD0iMjUiIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjI2IiBo
cmVmPSJwIj53PC9hPjxicj4KKyAgICA8YSBpZD0iMjciIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24g
Q293PC9hPjxicj48YnI+CisgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+dGVzdDxicj48L2E+Cisg
ICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZy
YW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU2NjRh
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACithCisKKworZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
aWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTNjYjUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVu
c3VyZXMgdGhlIGJhc2ljIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2
aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBpZnJhbWVzIHdpdGhvdXQKKyAgICBhbnkgZm9jdXNh
YmxlIGNvbnRlbnQgc2hvdWxkIGJlIGlnbm9yZWQuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgZnJvbSAic3RhcnQiIHRvICJl
bmQiIGJ5cGFzc2luZyB0aGUgdHdvIGlmcmFtZXMKKyAgICAgICBpbiBiZXR3ZWVuIHRoZW0sIG9u
Y2UgYm90aCBoYXZlIG5vIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUuCisgIC0tPgorICA8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisg
ICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAi
ICAsICJzdGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBn
ZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0
YXJ0IiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZy
YW1lNC5odG1sIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJh
bWU+PGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lNC5odG1sIiBzY3JvbGxp
bmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmU8
L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9s
bGFibGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2Y5MjhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK2EKKworCithCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQQVNTIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDA4MWNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbApA
QCAtMCwwICsxLDY5IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRo
ZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZp
Z2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlm
cmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAg
IDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0
aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQi
IGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGlu
IHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2lu
ZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0
aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVU
YWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAorICAg
ICAgWyJEb3duIiwgIjMiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAi
ZW5kIl0sCisgICAgICBbIlVwIiwgIjQiXSwKKyAgICAgIFsiUmlnaHQiLCAiNSJdLAorICAgICAg
WyJSaWdodCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgIjciXSwKKyAgICAgIFsiVXAiLCAiMyJd
LAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAgICAgIFsiRE9ORSIs
ICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtz
UHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8v
IHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92
ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisg
ICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAg
ICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1sIj48L2lmcmFtZT48YnI+CisgICAg
PGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUyLmh0bWwiPjwvaWZyYW1lPgorICAgIDxkaXY+
PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3Vz
YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMzYWEx
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorYQorCitlCitQQVNTIGRvY3VtZW50LmRlZmF1bHRW
aWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0
Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRo
LW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJs
ZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNjOTkz
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMg
dGhlIGJhc2ljIGlmcmFtZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5h
dmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGluIGEKKyAgICA8
aWZyYW1lPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6Cisg
ICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmln
YXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFy
dCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUgZWxlbWVudHMg
aW4gdGhlIHR3byBpZnJhbWVzIGluIHRoZQorICAgICAgIFdlYiBwYWdlLCBldmVudHVhbGx5IGdv
aW5nIHRvIG91dGVyIGFuIHNvdXRod2FyZCBsaW5rLCBidXQKKyAgICAgICBnb2luZyBiYWNrIHRv
IHRoZSBpZnJhbWUgb24gdGhlIHRvcCBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92
ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICIxIl0sCisg
ICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAgIFsiRG93biIs
ICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBb
IlVwIiwgIjIiXSwKKyAgICAgIFsiVXAiLCAiMSJdLAorICAgICAgWyJVcCIsICJzdGFydCJdLAor
ICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
dHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisg
ICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBw
bGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisK
KyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5h
PC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lMy5odG1sIiB3aWR0
aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJhbWU+PGJyPgorICAgIDxk
aXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+ZTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOWIwNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdCB0YWJsZSB0cmF2ZXJzYWwKK2EJYQlhCithCWEJYQorYQlhCWEK
K0VuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgxOGRkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJh
dmVyc2FsLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRl
c3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFibGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAg
U3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBp
biBhCisgICAgPHRhYmxlPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRp
dGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAg
ICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2Vz
IHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aHJv
dWdoIHRoZSBzcGFyc2VseSBwb3NpdGlvbmVkIGVsZW1lbnRzCisgICAgICAgaW4gdGhlIHRhYmxl
LCBldmVudHVhbGx5IGdvaW5nIHRvIGFuIG91dGVyIHNvdXRod2FyZCBsaW5rLAorICAgICAgIGJ1
dCBnb2luZyBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAg
dmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAi
NCJdLAorICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAg
IFsiVXAiLCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjki
XSwKKyAgICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQi
LCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkg
aWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgor
ICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+VGVzdCB0YWJsZSB0cmF2ZXJzYWw8YT4KKyAgICA8
dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDog
YXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2Vs
bHNwYWNpbmc9IjEiPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRk
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0i
MSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90
ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246
IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+Cisg
ICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHls
ZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjciIGhy
ZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+Cisg
ICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50
ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6MTAwcHgn
PgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kIG9mIHRhYmxlIHRyYXZlcnNhbCB0ZXN0
PGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVy
c2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWUw
OGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjAgQEAKK2EKK2EJYQlhCithCWEJYQorYQlhCWEKK2EKK2EKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRy
YXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMGQwMzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzxo
dG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRhYmxlIHRyYXZl
cnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3Jp
dGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxkIGJlIGFjY2Vz
c2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBT
TmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExv
YWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAg
MikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgZXZlbnR1YWxs
eQorICAgICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBhbmQgZWFzdHdhcmQgbGlua3MsIGJ1
dCBnb2luZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBsYXRlciBvbi4KKyAgLS0+Cisg
IDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+
CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsi
RG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAgICAgWyJEb3duIiwgImVuZCJd
LAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0IiwgIjgiXSwKKyAgICAgIFsiUmln
aHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgInJpZ2h0Il0s
CisgICAgICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQi
LCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkg
aWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgor
ICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+CisgICAgPHRhYmxlPgorICAgICAg
PHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNt
YWxsOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI1IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjYi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI3IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9Ijgi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21h
bGw7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6OHB4Jz4K
KyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBweCI+CisgICAgICA8YSBpZD0i
cmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1z
Y3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4xMmE1MzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitTdGFydAorRW5kCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BB
U1MgdHJ1ZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjM3NDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzxodG1sPgorICA8
IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGNvcnJlY3RuZXNzIHRoZSBmb2xsb3dpbmcg
U3BhdGlhbCBOYXZpZ2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobSBmZWF0dXJlcy4KKworICAg
IDEpIFRoZXJlIGlzIG5vIHVuaXQgb3ZlcmZsb3cgaW4gdGhlIFNOYXYgYWxnb3JpdGhtIHdoaWxl
IGNhbGN1bGF0aW5nCisgICAgICAgdGhlIGJlc3Qgbm9kZSBjYW5kaWRhdGUgdG8gbW92ZSBmb2N1
cyB0by4gVG8gdGVzdCB0aGF0IHRoaXMgcGFnZQorICAgICAgIHBvc2l0aW9ucyBzb21lIGVsZW1l
bnRzIDEwMDAwMDAwIHBpeGVscyBmYXIgZnJvbSBlYWNoIG90aGVyIChkaXN0YW5jZQorICAgICAg
IHRoYXQgY2FuIGNvbnNpZGVyZWQgbGFyZ2UgZW5vdWdoIGZvciBtb3N0IG9mIHRoZSBXZWIgUGFn
ZXMgb24gdGhlCisgICAgICAgSW50ZXJuZXQpLgorCisgICAgMikgTWFrZSBzdXJlIHRoYXQgYSBi
ZXN0IGZvY3VzYWJsZSBjYW5kaWRhdGUgb25seSBnZXRzIGZvY3VzZWQKKyAgICAgICBpZiBpdCBp
cyB2aXNpYmxlIGluIHRoZSBjdXJyZW50bCBWaWV3cG9ydC4gU2Nyb2xsLWluLWRpcmVjdGlvbgor
ICAgICAgIGlzIHBlcmZvcm1lZCBvdGhlcndpc2UuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgQXR0ZW1wdCB0byBtb3ZlIGZvY3VzIGRvd24gdG8g
ImVuZC4gQXMgaXQgaXMgdG9vIGZhciBhbmQgb3V0IG9mCisgICAgICAgdmlld3BvcnQsIGZvY3Vz
IGNoYW5nZSB3aWxsIG5vdCBoYXBwZW4gYW5kIHBhZ2Ugd2lsbCBiZSBzY3JvbGxlZAorICAgICAg
IGEgc3RlcCBkb3duLgorICAgIDMpIEJ5IHNlbmRpbmcgYW4gIkVuZCIga2V5cHJlc3MsIHBhZ2Ug
Z2V0cyBzY3JvbGxlZCBkb3duIHRvIGEgcGxhY2UKKyAgICAgICB3aGVyZSB0aGUgImVuZCIgbm9k
ZSBnZXRzIHZpc2libGUgaW4gdGhlIHZpZXdwb3J0LgorICAgIDQpIFN0ZXAgXzFfIGlzIHJhbiBh
Z2FpbiwgYW5kICJlbmQiIGdldHMgZm9jdXNlZC4gLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxl
MSA9IFsKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyIiLCAiIl0KKyAgICBdOwor
CisgICAgdmFyIG1vdmVUYWJsZTIgPSBbCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBb
IkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFi
VG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7Cisg
ICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAg
c2V0VGltZW91dChzdGVwMSAsIDApOworICAgICAgc2V0VGltZW91dChzdGVwMiAsIDUwMCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgIC8vIEFjdGlvbnMgaW4g
J21vdmVUYWJsZTEnIHNob3VsZCBrZWVwIHRoZSBmb2N1cyBpbiB0aGUgY3VycmVudGx5CisgICAg
ICAvLyBmb2N1c2VkIGVsZW1lbnQgKCdzdGFydCcpIG9uY2UgdGhlIGJlc3QgY2FuZGlkYXRlICgn
ZW5kJykgaXMgbm90CisgICAgICAvLyB2aXNpYmxlIGluIGN1cnJlbnQgdmlld3BvcnQuCisgICAg
ICB0ZXN0TW92ZXMobW92ZVRhYmxlMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoKQor
ICAgIHsKKyAgICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
IT0gMCkpOworCisgICAgICAvLyBUaGVuIGl0IHNjcm9sbHMgZG93biB0byB0aGUgZW5kIG9mIHRo
ZSBwYWdlIC4uLgorICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigiZW5kIik7CisKKyAgICAgIC8vIEFuZCAnbW92ZVRhYmxlMicgcmUtdHJp
ZXMgdG8gbW92ZSBmb2N1cyBkb3duLgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTIsIHRlc3RD
b21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsK
KyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29t
ZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEg
aWQ9InN0YXJ0IiBocmVmPSJhIj5TdGFydDwvYT4KKyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9w
OjEwMDAwMDAwMHB4Jz4KKyAgICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kPC9hPgorICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWIw
ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE5IEBACit0ZXN0Cit0ZXN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0Cit0
ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0CisKKworCisKK3Rlc3QKK3Rlc3QKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjUwZTY4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2Uu
aHRtbApAQCAtMCwwICsxLDgxIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1
cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgorICAg
IChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhl
IHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5IHRv
IG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBw
b3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgor
ICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2Fs
bHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1cCBv
ciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVuIHRo
ZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBhbGln
bmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIg
bW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI2Il0s
CisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJV
cCIsICI3Il0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlk
PSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1hbGlnbjogbGVmdDsiPgorICAg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9InN0YXJ0
IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjIiIGhy
ZWY9ImEiPnRlc3Q8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaWQ9IjMiIGhyZWY9ImEiPnRl
c3Q8L2E+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAg
ICAgPGEgaWQ9IjQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgICAgICA8YSBpZD0iNSIgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI2IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
ICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAg
PGJyPjxicj48YnI+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4K
KyAgICAgICAgPGEgaWQ9IjgiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+Cisg
ICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MDExOWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpAQCAt
MCwwICsxLDY5IEBACisvKgorICogT3JpZ2luYWwgYXV0aG9yOiBEb3VnIFR1cm5lciA8ZG91Zy50
dXJuZXJAZ21haWwuY29tPgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgICAqIEFudG9uaW8g
R29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorICoqLworCit2YXIgX21vdmVUYWJsZTsKK3Zh
ciBfbW92ZVRhYmxlSW5kZXggPSAwOwordmFyIF9jb21wbGV0ZWRDYWxsYmFjayA9IG51bGw7CisK
K2Z1bmN0aW9uIHRlc3RNb3Zlcyh0YWJsZSwgY29tcGxldGVkQ2IpIHsKKyAgIC8vIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgX3ZlcmlmeUFuZEFkdmFuY2UsIHRydWUpOworCisg
IF9tb3ZlVGFibGUgPSB0YWJsZTsKKyAgX21vdmVUYWJsZUluZGV4ID0gMDsKKyAgX2NvbXBsZXRl
ZENhbGxiYWNrID0gY29tcGxldGVkQ2I7CisgIF9tb3ZlKCk7Cit9CisKK2Z1bmN0aW9uIF9uZXh0
TW92ZSgpCit7CisgIF9tb3ZlVGFibGVJbmRleCsrOworCisgIC8vIFdoZW4gYSB0YWJsZSBlbmRz
IHdpdGggIkRPTkUiLCBjYWxsIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgorICBpZiAoX21vdmVU
YWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICJET05FIikKKyAgICBpZiAoX2NvbXBsZXRlZENh
bGxiYWNrKSB7CisgICAgICBfY29tcGxldGVkQ2FsbGJhY2soKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgLy8gd2hlbiBhIHRhYmxlIGhhcyBhbiBlbXB0eSBlbGVtZW50LCBlbmQgdGhlIG1v
dmVzLgorICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICIiKQorICAgIHJl
dHVybjsKKworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbW92ZSgpCit7CisgIHZhciBldmVu
dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50cycpOworICBldmVudC5pbml0
S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3
LCBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0sIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSk7CisgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgIHNl
dFRpbWVvdXQoIF92ZXJpZnlBbmRBZHZhbmNlICwgMTAwKTsKK30KKworZnVuY3Rpb24gX3Zlcmlm
eUFuZEFkdmFuY2UoKQoreworICB2YXIgZGlyZWN0aW9uID0gX21vdmVUYWJsZVtfbW92ZVRhYmxl
SW5kZXhdWzBdOworICB2YXIgZXhwZWN0ZWRJRCA9IF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4
XVsxXTsKKworICB2YXIgaSA9IDA7CisgIHZhciBtYWluRnJhbWVIYXNGb2N1cyA9IHRydWU7Cisg
IGZvcig7IGkgPCBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXMubGVuZ3RoOyBpKyspCisgICAg
aWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1tpXS5kb2N1bWVudC5oYXNGb2N1cygpKSB7
CisgICAgICBtYWluRnJhbWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAgYnJlYWs7CisgICAgfQor
CisgIC8vIHRoaXMgc3VwcG9ydCBmcmFtZXMgbmVzdGVkIGluIG9uZSBsZXZlbCBkZWVwIG9ubHku
CisgIGlmIChtYWluRnJhbWVIYXNGb2N1cykKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsK
KyAgZWxzZQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcu
ZnJhbWVzWyIgKyBpICsgIl0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJp
ZFwiKSIsIGV4cGVjdGVkSUQpOworCisgIF9uZXh0TW92ZSgpOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IDFlZjRmZDkuLjI0ZTYwYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC01NzgxLDMgKzU3ODEsNiBAQCBzdmcvY3VzdG9tL3VzZS1pbnN0YW5jZVJvb3QtZXZl
bnQtYnViYmxpbmcueGh0bWwKIAogIyBOZXcgZmFpbHVyZSBhZnRlciBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC81Mzc1OAogc2Nyb2xsYmFycy9zY3JvbGxiYXItbWlkZGxlY2xpY2st
bm9wYXN0ZS5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVy
VHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYmQy
MGIxZi4uMTdmZTdhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEwMSwzICsxMDEs
NiBAQCBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jaGFuZ2Utbm90aWZpY2F0aW9uLW9uLXNj
cm9sbC5odG1sCiAKICMgU2tpcCBHZW9sb2NhdGlvbiB1bnRpbCBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMjUgaXMgbGFuZGVkCiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZ2VvbG9jYXRpb24uaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9u
YWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwg
TmF2aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCmluZGV4IDZjMDEzNTAuLmRjMDliNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCkBAIC03MzQsMyArNzM0LDYgQEAgZmFzdC9jc3Mvbm9uLXN0YW5kYXJkLWNoZWNrYm94LXNp
emUuaHRtbAogCiAjIFNraXAgR2VvbG9jYXRpb24gdW50aWwgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0MDI1IGlzIGxhbmRlZAogZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9uLmh0bWwKKworIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFs
aXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhhbmRsZSBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5h
dmlnYXRpb24KK2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGZjMjY4Li5iZmNiNmI4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDc1IEBACisyMDEwLTAxLTI1ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IFBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQuY29tPgorICAgICAgICBC
YXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFyY28uYmFyaXNp
b25lQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBFeHRlbmQga2V5Ym9hcmQgbmF2aWdhdGlv
biB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVy
ZSBbMV0uCisgICAgICAgIEl0IGltcHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2Yg
V2ViQ29yZSBieSBleHRlbmRpbmcgdGhlIGJhc2ljIGtleWJvYXJkCisgICAgICAgIG5hdmlnYXRp
b24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQgb24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJk
KSB3aXRoIHRoZQorICAgICAgICBhZGRpdGlvbiBvZiBhIGRpcmVjdGlvbmFsIGJhc2VkIG5hdmln
YXRpb24sIHdoZXJlIGZvY3VzYWJsZSBlbGVtZW50cyBhcmUgYWNjZXNzaWJsZQorICAgICAgICBi
YXNlZCBvbiB0aGVpciBzcGF0aWFsIGxvY2F0aW9uIGluIGEgV2ViIFBhZ2UsIG5vdCBvbiBpdHMg
VGFiIGluZGV4IHZhbHVlLgorCisgICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVy
ZSBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gJ1NldHRpbmdzJy4gUG9ydCBzcGVjaWZpYyBB
UElzIG5lZWQgdG8gYmUgYWRkZWQKKyAgICAgICAgICBmb3IgdG9nZ2xlIGl0IG9uIGFuZCBvZmYu
CisgICAgICAgICogT25seSBlbGVtZW50cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQg
Y2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4gSWYgdGhlcmUgaXMKKyAgICAgICAgICBub3QgYW55
LCBhbiBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcyBwZXJmb3JtZWQuCisgICAgICAgICog
VGhlIGxheW91dCB0ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lw
cGVkIGZvciBNYWMsIFdpbiBhbmQgR3RrKS4KKworICAgICAgICBLbm93biBpc3N1ZXMgKHRvIGJl
IGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgorICAgICAgICAqIEFkZCBwb3J0IHNwZWNpZmlj
IGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24u
CisgICAgICAgICogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorICAgICAg
ICAqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtz
IHdpdGggYXJyb3dzIGtleXMgb25seQorICAgICAgICAgICh1cCwgZG93biwgcmlnaHQgYW5kIGxl
ZnQpLgorICAgICAgICAqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQg
U2hpZnQpLgorCisgICAgICAgIFsxXSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYXRp
YWxfbmF2aWdhdGlvbgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQt
c2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbAorCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2
aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVzdENhbmRpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3RhbmNl
SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjp0YWtlc1By
ZWNlZGVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxJ
bkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc09mZnNjcmVlblJlY3QpOgorICAgICAg
ICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQpOgorCiAyMDEwLTAxLTI3IEFudG9uIE11aGluIDxhbnRvbm1AZ29vZ2xlLmNv
bT4KICAgICAgICAgUmV2aWV3IGJ5IEFkYW0gQmFydGguCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sIGIvV2ViQ29yZS9tYW51
YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMC4uMGQ2ZWQ3YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFu
dWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCkBAIC0wLDAgKzEsOSBAQAor
PGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxwPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxh
IGhyZWY9ImEiPmE8L2E+Cis8YSBocmVmPSJhIj5hPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwt
bmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFs
LW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMjgzNDZkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10
ZXN0LWNhc2VzLmh0bWwKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KyAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9SVNPLTg4NTktMSI+CisgIDx0aXRsZT5TcGF0aWFsIE5hdmlnYXRpb24gVGVzdCBDYXNl
czwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKyAgPGgxIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+
U3BhdGlhbCBOYXZpZ2F0aW9uIEZ1bjwvaDE+CisgIDxoMiBzdHlsZT0idGV4dC1hbGlnbjogbGVm
dDsiPjN4MyBDZW50ZXJlZCBUYWJsZSBUZXN0PC9oMj4KKzwvZGl2PgorPHRhYmxlIHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1y
aWdodDogYXV0bzsiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4K
KyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRv
cDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAg
PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBo
cmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8
L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJh
Ij50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgor
ICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0
PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgorICA8L3Ri
b2R5PgorPC90YWJsZT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij48YnI+CisgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8
aDI+VmVydGljYWwgU2luZSBUZXN0PC9oMj48YnI+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij48YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
PC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBw
eDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAg
PGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogODBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAg
PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKyAgPC9kaXY+CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPiZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OworICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKworICA8aDI+SW5jcmVhc2luZyBzZW50ZW5j
ZSBsZW5ndGg8L2gyPgorICA8YSBocmVmPSJhIj5IPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88
YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3c8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgPGJy
PjwvYT4KKyAgPGEgaHJlZj0icCI+SG93IE48L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm88
L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93
IE5vdyA8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+PGJyPgorICA8YSBocmVm
PSJwIj5Ib3cgTm93IEJyPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJyb3duPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biA8L2E+PGJyPgor
ICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJyb3duIENvPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDb3c8L2E+
PGJyPgorICA8YnI+CisgIDxoMj5TcGxpdCBzZW50ZW5jZTxicj48L2gyPgorICA8YnI+CisgIDxh
IGhyZWY9InAiPkg8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOzxhIGhyZWY9InAiPm93IE5vdyBCcm93biBDb3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5IbzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3c8
L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+Tm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBObzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53IEJyb3duIENvdzwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdyBOb3cgPC9hPiZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+QnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnJvd24gQ293PC9h
Pjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3duIENvdzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53biBDb3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9
InAiPm4gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj5Db3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8
L2E+ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsgPGEgaHJlZj0icCI+b3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3du
IENvPC9hPiAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7IDxhIGhyZWY9InAiPnc8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duIENvdzwvYT48YnI+PGJyPgorICA8aDI+TGluZSBXcmFwIFRlc3Q8L2gyPjxicj4KKyAgPHRh
YmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMzkzcHg7IGhlaWdodDogNzJweDsi
IGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICA8dGJvZHk+
CisgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgor
ICAgICAgICAgIDxzcGFuIGNsYXNzPSJodWdlIj4KKyAgICAgICAgICAgIDxhIGhyZWY9ImEiPldo
aWNoIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnN0IGRvIHlvdSBsaWtlIHRoZSBtb3N0LCBvbmUg
aXMgZywgb25lIGlzIHBpLCBhbmQgdGhlIG90aGVyIGlzIGUuIDwvYT48YnI+CisgICAgICAgICAg
PC9zcGFuPjwvdGQ+CisgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgor
ICAgICAgICAgIDxhIGhyZWY9ImEiPjMuMTQ8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEi
PjIuNzE8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEiPjYuNjc8L2E+PGJyPgorICAgICAg
ICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorICA8L3RhYmxlPjxicj4KKyAgPGgy
PkphdmFzY3JpcHQgRm9jdXMvQmx1ciBUZXN0PC9oMj4KKyAgICBXaGVuIGdvaW5nIHRvIGFueSBs
aW5rIGZyb20gdGhlIGZvbGxvd2luZyBsaW5rLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZy48YnI+
PGJyPgorICA8YSBocmVmPSJhIiBvbmJsdXI9J2FsZXJ0KCJvbkJsdXJ0IiknPlRlc3Q8L2E+PGJy
Pjxicj4KKworICA8aDI+RnJhbWVTZXRzPC9oMj4gPGJyPgorICA8ZnJhbWVzZXQgY29scz0iMjUl
LDI1JSwqIj4KKyAgICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0i
bGlua3MuaHRtbCIvPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgPC9mcmFtZXNl
dD4KKyAgPGJyPjxicj4KKworICA8aDI+SUZyYW1lczwvaDI+PGJyPgorICA8aWZyYW1lIHNyYz0i
bGlua3MuaHRtbCI+PC9pZnJhbWU+PGJyPjxicj48YnI+CisgIDxoMj5ESVZzPC9oMj48YnI+Cisg
IDxkaXYgaWQ9dj4KKyAgICA8YSBocmVmPSJhIj5hPC9hPgorICAgIDxkaXYgaWQ9IkRpdjEiPgor
ICAgICAgICA8YSBocmVmPSJhIj5hPC9hPgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9ImEiPmE8
L2E+CisgIDwvZGl2Pjxicj48YnI+CisgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGEgaHJlZj0ibGFz
dCI+bGFzdDwvYT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDlk
ZjFkNC4uMTJiYzY2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIxNTYsNiArMjE1Niw4IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChldmVudC0+a2V5
SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAgICAgICAgICAgZGVmYXVsdFRhYkV2ZW50SGFu
ZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgaWYgKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IGlzQXJyb3dLZXkoZXZlbnQtPmtleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBkZWZhdWx0
QXJyb3dFdmVudEhhbmRsZXIoZGlyZWN0aW9uLCBldmVudCk7CiAKICAgICAgICAvLyBwcm92aWRl
cyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkg
dXNlcnMKICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWQoKSkKQEAgLTIxNzAsNiArMjE3MiwyMCBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ICAgIH0KIH0KIAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjppc0Fycm93S2V5KGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllcikKK3sKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiRG93
biIpCisgICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBpZiAoa2V5
SWRlbnRpZmllciA9PSAiVXAiKQorICAgICAgICByZXR1cm4gRm9jdXNEaXJlY3Rpb25VcDsKKyAg
ICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJMZWZ0IikKKyAgICAgICAgcmV0dXJuIEZvY3Vz
RGlyZWN0aW9uTGVmdDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpCisg
ICAgICAgIHJldHVybiBGb2N1c0RpcmVjdGlvblJpZ2h0OworCisgICAgcmV0dXJuIChGb2N1c0Rp
cmVjdGlvbikgMDsKK30KKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBib29sIEV2ZW50SGFu
ZGxlcjo6ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBGbG9hdFBvaW50JiBmbG9hdERyYWdW
aWV3cG9ydExvY2F0aW9uKSBjb25zdAogewpAQCAtMjQ2Miw2ICsyNDc4LDI3IEBAIHZvaWQgRXZl
bnRIYW5kbGVyOjpkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQp
CiAKICNlbmRpZgogCit2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVy
KEZvY3VzRGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sK
KyAgICBpZiAoZXZlbnQtPmN0cmxLZXkoKSB8fCBldmVudC0+bWV0YUtleSgpIHx8IGV2ZW50LT5h
bHRHcmFwaEtleSgpIHx8IGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpIHx8ICFwYWdlLT5zZXR0aW5ncygp
LT5pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBBcnJvd3MgYW5kIG90aGVyIHBvc3NpYmxlIGRpcmVjdGlvbmFsIG5hdmlnYXRpb24ga2V5cyBj
YW4gYmUgdXNlZCBpbiBkZXNpZ24KKyAgICAvLyBtb2RlIGVkaXRpbmcuCisgICAgaWYgKG1fZnJh
bWUtPmRvY3VtZW50KCktPmluRGVzaWduTW9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAocGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFuY2VGb2N1cyhmb2N1c0RpcmVjdGlvbiwg
ZXZlbnQpKQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwogdm9pZCBF
dmVudEhhbmRsZXI6OmRlZmF1bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQp
CiB7CiAgICAgLy8gV2Ugc2hvdWxkIG9ubHkgYWR2YW5jZSBmb2N1cyBvbiB0YWJzIGlmIG5vIHNw
ZWNpYWwgbW9kaWZpZXIga2V5cyBhcmUgaGVsZCBkb3duLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDZh
MTJlNzAuLmY3YjNkMjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZp
bmUgRXZlbnRIYW5kbGVyX2gKIAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCisjaW5jbHVkZSAi
Rm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNs
dWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zMDEsNiArMzAyLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVyKEtleWJvYXJk
RXZlbnQqKTsKICAgICB2b2lkIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCop
OworICAgIHZvaWQgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKEZvY3VzRGlyZWN0aW9uLCBLZXli
b2FyZEV2ZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgYWxsb3dE
SFRNTERyYWcoYm9vbCYgZmxhZ0RIVE1MLCBib29sJiBmbGFnVUEpIGNvbnN0OwpAQCAtMzIzLDYg
KzMyNSw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzZXRGcmFtZVdhc1Njcm9sbGVkQnlV
c2VyKCk7CiAKKyAgICBGb2N1c0RpcmVjdGlvbiBpc0Fycm93S2V5KGNvbnN0IFN0cmluZyYpOwor
CiAgICAgYm9vbCBjYXB0dXJlc0RyYWdnaW5nKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlc0Ry
YWdnaW5nOyB9CiAKICNpZiBQTEFURk9STShNQUMpICYmIGRlZmluZWQoX19PQkpDX18pICYmICFF
TkFCTEUoRVhQRVJJTUVOVEFMX1NJTkdMRV9WSUVXX01PREUpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCmluZGV4IDVlNzhjN2QuLjU4MTZjM2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBA
IC01NSw2ICs1NSw0MSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworZW51bSBQcmVjZWRlbmNlTW9kZSB7
CisgICAgTm9uZSA9IC0xLAorICAgIExvdywKKyAgICBQcmVjZWRlbnQsCisgICAgU3VwZXJQcmVj
ZWRlbnQKK307CisKK3N0cnVjdCBCZXN0Q2FuZGlkYXRlIHsKKyAgICBCZXN0Q2FuZGlkYXRlKCkK
KyAgICAgICAgOiBub2RlKDApCisgICAgICAgICwgZGlzdGFuY2UobnVtZXJpY19saW1pdHM8bG9u
ZyBsb25nPjo6bWF4KCkpCisgICAgICAgICwgcGFyZW50RGlzdGFuY2UobnVtZXJpY19saW1pdHM8
bG9uZyBsb25nPjo6bWF4KCkpCisgICAgICAgICwgbW9kZShOb25lKQorICAgICAgICAsIHBhcmVu
dE1vZGUoTm9uZSkKKyAgICB7CisgICAgfQorICAgIE5vZGUqIG5vZGU7CisgICAgbG9uZyBsb25n
IGRpc3RhbmNlOworICAgIGxvbmcgbG9uZyBwYXJlbnREaXN0YW5jZTsKKyAgICBQcmVjZWRlbmNl
TW9kZSBtb2RlOworICAgIFByZWNlZGVuY2VNb2RlIHBhcmVudE1vZGU7Cit9OworCitzdGF0aWMg
Ym9vbCB0YWtlc1N1cGVyUHJlY2VkZW5jZShGb2N1c0RpcmVjdGlvbiwgSW50UmVjdCYsIEludFJl
Y3QmKTsKK3N0YXRpYyBib29sIHRha2VzUHJlY2VkZW5jZShGb2N1c0RpcmVjdGlvbiwgSW50UmVj
dCYsIEludFJlY3QmKTsKK3N0YXRpYyBsb25nIGxvbmcgcHJlY2VkZW5jZURpc3RhbmNlKEZvY3Vz
RGlyZWN0aW9uLCBJbnRSZWN0JiwgSW50UmVjdCYpOworc3RhdGljIGxvbmcgbG9uZyBkaXN0YW5j
ZUluRGlyZWN0aW9uKE5vZGUqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEJlc3RDYW5kaWRhdGUm
KTsKK3N0YXRpYyB2b2lkIG5leHRJbkRpcmVjdGlvbihEb2N1bWVudCosIE5vZGUqLCBGb2N1c0Rp
cmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIEJlc3RDYW5kaWRhdGUmKTsKK3N0YXRpYyBib29sIGlz
UmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uLCBJbnRSZWN0LCBJbnRSZWN0KTsKK3N0YXRp
YyBpbmxpbmUgSW50UmVjdCByZW5kZXJSZWN0KFJlbmRlck9iamVjdCosIGJvb2wgdXNlU2Nyb2xs
T2Zmc2V0ID0gdHJ1ZSk7CitzdGF0aWMgbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0Rp
cmVjdGlvbiwgSW50UmVjdCYsIEludFJlY3QmKTsKK3N0YXRpYyBib29sIHNjcm9sbEluRGlyZWN0
aW9uKEZyYW1lKiwgRm9jdXNEaXJlY3Rpb24pOworc3RhdGljIGJvb2wgaXNPZmZzY3JlZW5SZWN0
KE5vZGUqKTsKIAogc3RhdGljIGlubGluZSB2b2lkIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRG
b2N1c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZm9jdXNlZCkKIHsKQEAgLTE0OCw2
ICsxODMsMjQgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEluaXRpYWxGb2N1cyhGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGUKIAogYm9vbCBGb2N1c0NvbnRyb2xs
ZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQq
IGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKIHsKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewor
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkOgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25C
YWNrd2FyZDoKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihkaXJl
Y3Rpb24sIGV2ZW50LCBpbml0aWFsRm9jdXMpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0
OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
VXA6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiBhZHZhbmNl
Rm9jdXNEaXJlY3Rpb25hbGx5KGRpcmVjdGlvbiwgZXZlbnQpOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxG
b2N1cykKK3sKICAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBB
U1NFUlQoZnJhbWUpOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgp
OwpAQCAtMjUyLDYgKzMwNSw3MCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbgogICAgIHJldHVy
biB0cnVlOwogfQogCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9u
YWxseShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQorewor
ICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEFTU0VSVChmcmFt
ZSk7CisgICAgRG9jdW1lbnQqIGZvY3VzZWREb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwor
ICAgIGlmICghZm9jdXNlZERvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBO
b2RlKiBmb2N1c2VkTm9kZSA9IGZvY3VzZWREb2N1bWVudC0+Zm9jdXNlZE5vZGUoKTsKKyAgICBp
ZiAoIWZvY3VzZWROb2RlKSB7CisgICAgICAgIC8vIEp1c3QgbW92ZSB0byB0aGUgZmlyc3QgZm9j
dXNhYmxlIG5vZGUuCisgICAgICAgIEZvY3VzRGlyZWN0aW9uIHRhYkRpcmVjdGlvbiA9IChGb2N1
c0RpcmVjdGlvblVwIHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpID8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6
IEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ7CisgICAgICAgIC8vICdpbml0aWFsRm9jdXMnIGlzIHNl
dCB0byB0cnVlIHNvIHRoZSBjaHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBh
ZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIodGFiRGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7Cisg
ICAgfQorCisgICAgLy8gTW92ZSB1cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAg
ICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLT5wYXJlbnQoKTsKKyAgICAgICAgaWYgKCFwYXJlbnRGcmFtZSB8fCAhcGFyZW50RnJhbWUt
PmRvY3VtZW50KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBmcmFtZSA9IHBhcmVu
dEZyYW1lOworICAgIH0KKworICAgIEJlc3RDYW5kaWRhdGUgYmVzdENhbmRpZGF0ZTsKKyAgICBu
ZXh0SW5EaXJlY3Rpb24oZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24s
IGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKworICAgIE5vZGUqIG5vZGUgPSBiZXN0Q2FuZGlkYXRl
Lm5vZGU7CisgICAgaWYgKG5vZGUpIHsKKyAgICAgICAgLy8gSW4gb3JkZXIgdG8gYXZvaWQgY3Jh
enkganVtcCBiZXR3ZWVuIGxpbmtzIHRoYXQgYXJlIGVpdGhlciBmYXIgYXdheSBmcm9tIGVhY2gg
b3RoZXIsCisgICAgICAgIC8vIG9yIGp1c3Qgbm90IGN1cnJlbnRseSB2aXNpYmxlLCBsZXRzIGJh
aWwgb3V0IGlmIHRoZSBkZXN0aW5hdGlvbiBmb2N1c2FibGUgZWxlbWVudCBpcworICAgICAgICAv
LyBub3QgaW4gdGhlIHZpZXdwb3J0LgorICAgICAgICBpZiAoaXNPZmZzY3JlZW5SZWN0KG5vZGUp
KSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCkt
PmZyYW1lKCk7CisgICAgICAgICAgICBzY3JvbGxJbkRpcmVjdGlvbihmcmFtZSwgZGlyZWN0aW9u
KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgICAgIHNjcm9s
bEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gRklY
TUU6IE1heSBuZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRv
Y3VtZW50KCk7CisKKyAgICBpZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7Cisg
ICAgICAgIC8vIEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2Vk
IGRvY3VtZW50LCBzbyBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9j
dW1lbnQtPnNldEZvY3VzZWROb2RlKDApOworICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkK
KyAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0
YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVl
OworfQorCiBzdGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkK
IHsKICAgICBBU1NFUlQobm9kZSk7CkBAIC0zNTksNCArNDc2LDUxMiBAQCB2b2lkIEZvY3VzQ29u
dHJvbGxlcjo6c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICBkaXNwYXRjaEV2ZW50c09u
V2luZG93QW5kRm9jdXNlZE5vZGUobV9mb2N1c2VkRnJhbWUtPmRvY3VtZW50KCksIGFjdGl2ZSk7
CiB9CiAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8gSEVMUEVS
IFNQQVRJQUwgTkFWSUdBVElPTiBNRVRIT0RTIC8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKworc3RhdGljIHZvaWQgbmV4dEluRGlyZWN0aW9uKERvY3VtZW50KiBk
b2N1bWVudCwgTm9kZSogc3RhcnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRF
dmVudCogZXZlbnQsIEJlc3RDYW5kaWRhdGUmIGJlc3RDYW5kaWRhdGUpCit7CisgICAgQVNTRVJU
KGRvY3VtZW50KTsKKworICAgIC8vIFdhbGsgYWxsIHRoZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRl
IGJlc3RDYW5kaWRhdGUgaWYgd2UgZmluZCBhIG5lYXJlciBub2RlLgorICAgIGZvciAoTm9kZSog
Y2FuZGlkYXRlID0gZG9jdW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2FuZGlkYXRlOyBjYW5kaWRhdGUg
PSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworCisgICAgICAgIC8vIElubmVyIGRv
Y3VtZW50cyBjYXNlLgorICAgICAgICBpZiAoY2FuZGlkYXRlLT5pc0ZyYW1lT3duZXJFbGVtZW50
KCkpIHsKKyAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNf
Y2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihjYW5kaWRhdGUpOworICAgICAgICAgICAgaWYg
KCFvd25lci0+Y29udGVudEZyYW1lKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgIERvY3VtZW50KiBpbm5lckRvY3VtZW50ID0gb3duZXItPmNvbnRlbnRGcmFtZSgp
LT5kb2N1bWVudCgpOworICAgICAgICAgICAgaWYgKCFpbm5lckRvY3VtZW50KQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoaW5uZXJEb2N1bWVudCA9PSBzdGFy
dC0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICBuZXh0SW5EaXJlY3Rpb24oaW5uZXJEb2N1
bWVudCwgc3RhcnQsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgaWZyYW1l
IChvciBmcmFtZSkgZWxlbWVudCBpdHNlbGYgaXMgYSBnb29kIGNhbmRpZGF0ZSB0byBtb3ZlIGZv
Y3VzIHRvLgorICAgICAgICAgICAgICAgIC8vIElmIGl0IGlzLCB0aGVuIHdlIHRyYXZlcnNlIGl0
cyBpbm5lciBub2Rlcy4KKyAgICAgICAgICAgICAgICAvLyBwczogbGV0cyBwYXNzIGEgY29weSBv
ZiB0aGUgYmVzdCBjYW5kaWRhdGUsIHRvIG5vdCBnZXQgZm9vbGVkIGJ5IGEgZnJhbWUgdy9vdXQK
KyAgICAgICAgICAgICAgICAvLyBmb2N1c2FibGUgZWxlbWVudHMuCisgICAgICAgICAgICAgICAg
QmVzdENhbmRpZGF0ZSBiZXN0Q2FuZGlkYXRlQ29weSA9IGJlc3RDYW5kaWRhdGU7CisgICAgICAg
ICAgICAgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gZGlzdGFuY2VJbkRpcmVjdGlvbihzdGFydCwg
Y2FuZGlkYXRlLCBkaXJlY3Rpb24sIGJlc3RDYW5kaWRhdGVDb3B5KTsKKyAgICAgICAgICAgICAg
ICBpZiAoZGlzdGFuY2UgPCBiZXN0Q2FuZGlkYXRlQ29weS5kaXN0YW5jZSkgeworICAgICAgICAg
ICAgICAgICAgICBiZXN0Q2FuZGlkYXRlQ29weS5wYXJlbnRNb2RlID0gYmVzdENhbmRpZGF0ZUNv
cHkubW9kZTsKKyAgICAgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0ZUNvcHkucGFyZW50RGlz
dGFuY2UgPSBkaXN0YW5jZTsKKworICAgICAgICAgICAgICAgICAgICBuZXh0SW5EaXJlY3Rpb24o
aW5uZXJEb2N1bWVudCwgc3RhcnQsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGVDb3B5
KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFsbHkgaGF2ZSBhIGlubmVyIGJl
c3Qgbm9kZSBjYW5kaWRhdGUsIHRha2UgaXQuCisgICAgICAgICAgICAgICAgICAgIGlmIChiZXN0
Q2FuZGlkYXRlLm5vZGUgIT0gYmVzdENhbmRpZGF0ZUNvcHkubm9kZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJlc3RDYW5kaWRhdGUgPSBiZXN0Q2FuZGlkYXRlQ29weTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlICE9IHN0
YXJ0ICYmIGNhbmRpZGF0ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkpIHsKKyAgICAgICAg
ICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IGRpc3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRp
ZGF0ZSwgZGlyZWN0aW9uLCBiZXN0Q2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlmIChkaXN0YW5j
ZSA8IGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UpCisgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNl
IDwgYmVzdENhbmRpZGF0ZS5wYXJlbnREaXN0YW5jZSB8fCBzdGFydC0+ZG9jdW1lbnQoKSAhPSBj
YW5kaWRhdGUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0
ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRlLmRp
c3RhbmNlID0gZGlzdGFuY2U7CisgICAgICAgICAgICAgICAgICAgIGlmKHN0YXJ0LT5kb2N1bWVu
dCgpID09IGNhbmRpZGF0ZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJl
c3RDYW5kaWRhdGUucGFyZW50RGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+Ojpt
YXgoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBs
b25nIGxvbmcgZGlzdGFuY2VJbkRpcmVjdGlvbihOb2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBCZXN0Q2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAg
bG9uZyBsb25nIGRpc3RhbmNlID0gY2FuZGlkYXRlLmRpc3RhbmNlOworCisgICAgLy8gSXQgaXMg
aW1wb3J0YW50IHRvIGtub3cgaWYgd2UgYXJlIG1vdmluZyBmb2N1cyBmcm9tIG9uZSBmcmFtZSB0
byBhbm90aGVyLgorICAgIGJvb2wgaXNDcm9zc0ZyYW1lRm9jdXNDaGFuZ2UgPSBzdGFydC0+ZG9j
dW1lbnQoKSAhPSBkZXN0LT5kb2N1bWVudCgpOworCisgICAgSW50UmVjdCBzdGFydFJlY3QgPSBJ
bnRSZWN0KCk7CisgICAgSW50UmVjdCBkZXN0UmVjdCA9IEludFJlY3QoKTsKKyAgICBSZW5kZXJP
YmplY3QqIHN0YXJ0UmVuZGVyID0gMDsKKyAgICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSAw
OworCisgICAgYm9vbCB1c2VTY3JvbGxPZmZzZXQgPSAhKGlzT2Zmc2NyZWVuUmVjdChzdGFydCkg
JiYgaXNDcm9zc0ZyYW1lRm9jdXNDaGFuZ2UpOworCisgICAgc3RhcnRSZW5kZXIgPSBzdGFydC0+
cmVuZGVyZXIoKTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVyKQorICAgICAgICBnb3RvIGV4aXRQb2lu
dDsKKworICAgIGRlc3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOworICAgIGlmICghZGVzdFJl
bmRlcikKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICBzdGFydFJlY3QgPSByZW5kZXJS
ZWN0KHN0YXJ0UmVuZGVyLCB1c2VTY3JvbGxPZmZzZXQpOworICAgIGRlc3RSZWN0ICA9IHJlbmRl
clJlY3QoZGVzdFJlbmRlcik7CisKKyAgICAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHR3
byBjb25zZWN1dGl2ZSBsaW5rcyBjb3VsZCBvdmVybGFwLCBzbyB3ZSBkZWNyZWFzZSB0aGUgc2l6
ZQorICAgIC8vIG9mIGJvdGggcmVjdGFuZ2xlcy4KKyAgICBzdGFydFJlY3QuaW5mbGF0ZSgtNCk7
CisgICAgZGVzdFJlY3QuaW5mbGF0ZSgtNCk7CisKKyAgICBpZiAoIWlzUmVjdEluRGlyZWN0aW9u
KGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCkpCisgICAgICAgIGdvdG8gZXhpdFBvaW50
OworCisgICAgLy8gSWYgdGFyZ2V0IHRha2VzIHByZWNlZGVuY2UgdGhlbiB1c2UgaXQgLSBkaXN0
YW5jZSBpcyBub3QgYWx3YXlzIHRoZSBzaG9ydGVzdAorICAgIC8vIGZvciBhIHByZWNlZGVudCB0
YXJnZXQKKyAgICBpZiAodGFrZXNTdXBlclByZWNlZGVuY2UoZGlyZWN0aW9uLCBzdGFydFJlY3Qs
IGRlc3RSZWN0KSB8fCBjYW5kaWRhdGUucGFyZW50TW9kZSA9PSBTdXBlclByZWNlZGVudCkgewor
ICAgICAgICAvLyByZXNldCBkaXN0YW5jZSBhcyB3ZSBhcmUgbm93IGluIHN1cGVyIHByZWNlZGVu
Y2UgbW9kZQorICAgICAgICBpZiAoY2FuZGlkYXRlLm1vZGUgIT0gU3VwZXJQcmVjZWRlbnQpCisg
ICAgICAgICAgICBkaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpOwor
CisgICAgICAgIGxvbmcgbG9uZyBwcmVjZWRlbnREaXN0YW5jZSA9IHByZWNlZGVuY2VEaXN0YW5j
ZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworICAgICAgICBpZiAoZGlzdGFuY2Ug
PiBwcmVjZWRlbnREaXN0YW5jZSkgeworICAgICAgICAgICAgY2FuZGlkYXRlLm1vZGUgPSBTdXBl
clByZWNlZGVudDsKKyAgICAgICAgICAgIHJldHVybiBwcmVjZWRlbnREaXN0YW5jZTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmIChjYW5kaWRhdGUubW9kZSA9PSBTdXBlclByZWNlZGVudCkK
KyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICAvLyBJZiB0YXJnZXQgdGFrZXMgcHJlY2Vk
ZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5vdCBhbHdheXMgdGhlIHNob3J0ZXN0Cisg
ICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldAorICAgIGlmICh0YWtlc1ByZWNlZGVuY2UoZGly
ZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KSB8fCBjYW5kaWRhdGUucGFyZW50TW9kZSA9PSBQ
cmVjZWRlbnQpIHsKKyAgICAgICAgbG9uZyBsb25nIHByZWNlZGVudERpc3RhbmNlID0gcHJlY2Vk
ZW5jZURpc3RhbmNlKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisKKyAgICAgICAg
aWYgKGRpc3RhbmNlID4gcHJlY2VkZW50RGlzdGFuY2UpIHsKKyAgICAgICAgICAgIGNhbmRpZGF0
ZS5tb2RlID0gUHJlY2VkZW50OworICAgICAgICAgICAgcmV0dXJuIHByZWNlZGVudERpc3RhbmNl
OworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGNhbmRpZGF0ZS5tb2RlID09IFByZWNlZGVu
dCkKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICByZXR1cm4gc3BhdGlhbERpc3RhbmNl
KGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisKK2V4aXRQb2ludDoKKyAgICByZXR1
cm4gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7Cit9CisKKy8vIEZJWE1FOiBUaGlz
IGZ1bmN0aW9uIGlzIGZsYXdlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgY29uc2lkZXIgdGhlIGVmZmVj
dHMgb2YgQ1NTIG9yIFNWRyB0cmFuc2Zvcm1zLgorc3RhdGljIGlubGluZSBJbnRSZWN0IHJlbmRl
clJlY3QoUmVuZGVyT2JqZWN0KiByZW5kZXIsIGJvb2wgdXNlU2Nyb2xsT2Zmc2V0KQoreworICAg
IEFTU0VSVChyZW5kZXIpOworCisgICAgRmxvYXRQb2ludCBwb2ludChyZW5kZXItPmxvY2FsVG9B
YnNvbHV0ZSgpKTsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92
ZXJmbG93UmVjdCgpKTsKKworICAgIC8vIFRoZXJlIGFyZSBjYXNlcywgbW9zdGx5IHdoZW4gfHJl
bmRlcnwncyBhc3NvY2lhdGVkIG5vZGUgaXMgb2Zmc2NyZWVuLAorICAgIC8vIGl0IGlzIHNhZmll
ciB0byBnZXQgaXRzIHBvc2l0aW9uIHJlZ2FyZGxlc3MgdGhlIGNvbnRhaW5lciBzY3JvbGwgb2Zm
c2V0LgorICAgIGlmICh1c2VTY3JvbGxPZmZzZXQpCisgICAgICAgIGlmIChGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IHJlbmRlci0+bm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCkpCisgICAgICAgICAg
ICByZWN0Lm1vdmUoLWZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOworCisgICAgLy8gaGFuZGxl
IG5lc3RlZCBmcmFtZXMuCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSByZW5kZXItPmRvY3VtZW50
KCktPmZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpKQorICAg
ICAgICBpZiAoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQgPSBmcmFtZS0+b3du
ZXJFbGVtZW50KCkpCisgICAgICAgICAgICByZWN0Lm1vdmUob3duZXJFbGVtZW50LT5vZmZzZXRM
ZWZ0KCksIG93bmVyRWxlbWVudC0+b2Zmc2V0VG9wKCkpOworCisgICAgcmV0dXJuIHJlY3Q7Cit9
CisKKy8vIC0tIGdyYWJiZWQgZnJvbSBNSUNST0IgZXhjZXB0ZWQgYnkgVVB8RE9XTiBsb2dpYy4K
K3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwg
SW50UmVjdCBzdGFydFJlY3QsIEludFJlY3QgZGVzdFJlY3QpCit7CisgICAgaW50IG1pZGRsZSA9
IDA7CisKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25M
ZWZ0OgorICAgICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgo
KSkgLyAyOworICAgICAgICByZXR1cm4gKG1pZGRsZSA8IHN0YXJ0UmVjdC54KCkpOworICAgIGNh
c2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgbWlkZGxlID0gZGVzdFJlY3QueCgpICsg
YWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgcmV0dXJuIChtaWRkbGUgID4gc3Rh
cnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkpOworICAgIGNhc2UgRm9jdXNEaXJl
Y3Rpb25VcCA6CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSk7
CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiAoZGVzdFJlY3Qu
eSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSA+IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRS
ZWN0LmhlaWdodCgpKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBDaGVja3MgaWYgfG5vZGV8
IGlzIGluIHRoZSB2aXNpYmxlIGFyZWEgKHZpZXdwb3J0KSBvZiBpdHMgY29udGFpbmVyIGRvY3Vt
ZW50Lgorc3RhdGljIGJvb2wgaXNPZmZzY3JlZW5SZWN0KE5vZGUqIG5vZGUpCit7CisgICAgLy8g
R2V0IHRoZSBjdXJyZW50IHZpZXdwb3J0IHJlY3Qgc28gd2UgY2FuIGNoZWNrIGlmIGJlc3RDYW5k
aWRhdGUncyByZWN0CisgICAgLy8gaXMgdmlzaWJsZSBiZWZvcmUgYWN0dWFsbHkgbW92aW5nIHRo
ZSBmb2N1cyB0byBpdC4gSW4gY2FzZSBpdCBpcyBub3QgdmlzaWJsZSwKKyAgICAvLyB3ZSBzY3Jv
bGwgaW4gZGlyZWN0aW9uIGxhdGVyIG9uIGluc3RlYWQuCisgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgSW50UmVjdCBjb250YWluZXJWaWV3cG9ydFJlY3QgPSBm
cmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOworCisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXIgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93
UmVjdCgpKTsKKworICAgIHJldHVybiAhY29udGFpbmVyVmlld3BvcnRSZWN0LmludGVyc2VjdHMo
cmVjdCk7Cit9CisKKy8vIEluIGEgYm90dG9tLXVwIHdheSwgdGhpcyBtZXRob2QgdHJpZXMgdG8g
c2Nyb2xsIHxmcmFtZXwgaW4gYSBnaXZlbiBkaXJlY3Rpb24KKy8vIHxkaXJlY3Rpb258LCBnb2lu
ZyB1cCBpbiB0aGUgZnJhbWUgdHJlZSBoaWVyYXJjaHkgaW4gY2FzZSBpdCBkb2VzIG5vdCBzdWNj
ZWVkLgorc3RhdGljIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqIGZyYW1lLCBGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgLy8gTGVhdmUgdGhlIGZvY3VzIG9uIHRoZSBzYW1lIG5vZGUgYnV0IHNjcm9s
bC4KKyAgICBTY3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uOworCisgICAgc3dpdGNoIChk
aXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgc2Nyb2xs
RGlyZWN0aW9uID0gU2Nyb2xsTGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxSaWdodDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICBzY3JvbGxE
aXJlY3Rpb24gPSBTY3JvbGxVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVj
dGlvbkRvd246CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbERvd247CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS0+c2Nyb2xsUmVjdXJzaXZlbHkoc2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxCeUxpbmUpOwor
fQorCisvLyBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIHZlcnkgcHJlZmVyYWJsZSByZWN0IHRvIG1v
dmUgZm9jdXMgdG8uIEluIGVzc2VuY2UgdGFyZ2V0cworLy8gd2hvc2UgbWlkZGxlIGZhbGxzIGJl
dHdlZW4gdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVjdC4KK3N0YXRpYyBib29s
IHRha2VzU3VwZXJQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYg
c3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZv
Y3VzRGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgewor
ICAgICAgICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWln
aHQoKSkgLyAyOworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhk
ZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGludCBkZXN0RW5kICAgID0gZGVzdFJlY3QueCgp
ICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIGludCBzdGFydEJvdHRvbSA9IHN0
YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgaW50IHN0YXJ0
RW5kICAgID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisKKyAgICAg
ICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgJiYgZGVzdEVuZCA+IHN0YXJ0
UmVjdC54KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVj
dGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0ICYmIGRlc3RSZWN0LngoKSA8IHN0YXJ0RW5kKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0Lnko
KSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RSZWN0LnkoKSA8PSBzdGFydEJvdHRvbSkKKyAgICAg
ICAgICAgIHx8ICAoZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RNaWRkbGUgPD0g
c3RhcnRCb3R0b20pCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0Lnko
KSAmJiBkZXN0Qm90dG9tIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0UmVj
dC55KCkgPT0gc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHx8ICAoZGVzdEJvdHRvbSA9PSBz
dGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55
KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJl
Y3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25E
b3duKSB7CisgICAgICAgIGludCBzdGFydEVuZCAgID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFy
dFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueCgpICsg
YWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RFbmQgICAgPSBkZXN0
UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlv
biA9PSBGb2N1c0RpcmVjdGlvblVwICYmIGRlc3RSZWN0LnkoKSA+IHN0YXJ0UmVjdC55KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1
c0RpcmVjdGlvbkRvd24gJiYgZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0YXJ0
UmVjdC54KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVz
dFJlY3QueCgpID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQor
ICAgICAgICAgICAgfHwgIChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAg
ICAgIHx8ICAoc3RhcnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVzdEVuZCA+
PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPD0gc3RhcnRFbmQpCisgICAgICAgICAgICB8fCAg
KGRlc3RSZWN0LngoKSA8PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPj0gc3RhcnRFbmQpKTsK
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIHRha2VzUHJlY2Vk
ZW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0YXJ0UmVjdCwgSW50UmVj
dCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQg
fHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IG1pblkg
PSBzdGFydFJlY3QueSgpIC8qIC0gaGFsZiAqLzsKKyAgICAgICAgaW50IG1heFkgPSBzdGFydFJl
Y3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyogKyBoYWxmICovOworICAgICAgICBp
bnQgc3RhcnRCb3R0b20gPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7
CisKKyAgICAgICAgaW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3Qu
aGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RCb3R0b20gPSBkZXN0UmVjdC55KCkgKyBh
YnMoZGVzdFJlY3QuaGVpZ2h0KCkpOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LnkoKSA+
PSBtaW5ZICYmIGRlc3RSZWN0LnkoKSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90
dG9tID49IG1pblkgJiYgZGVzdEJvdHRvbSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0
TWlkZGxlID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAg
ICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdFJlY3Qu
eSgpIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IHN0YXJ0
UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAo
ZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRv
bSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBk
aXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIGludCBtaW5YID0gc3Rh
cnRSZWN0LngoKSAvKiAtIGhhbGYgKi87CisgICAgICAgIGludCBtYXhYID0gc3RhcnRSZWN0Lngo
KSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyogKyBoYWxmICovOworCisgICAgICAgIGludCBk
ZXN0RW5kID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisgICAgICAg
IHJldHVybiAoKGRlc3RSZWN0LngoKSA+PSBtaW5YICYmIGRlc3RSZWN0LngoKSA8PSBtYXhYKQor
ICAgICAgICAgICAgIHx8IChkZXN0RW5kID49IG1pblggJiYgZGVzdEVuZCA8PSBtYXhYKSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBzcXJ0KCgoeDEgLSB4MikgXiAyKSAr
ICgoeTEgLSB5MikgXiAyKSkKK3N0YXRpYyBsb25nIGxvbmcgcHJlY2VkZW5jZURpc3RhbmNlKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0
UmVjdCkKK3sKKyAgICBsb25nIGxvbmcgZGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxv
bmc+OjptYXgoKTsKKyAgICBsb25nIGxvbmcgc2VjID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25n
Pjo6bWF4KCk7CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgewor
ICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKTsKKyAgICAgICAgaW50IHN0YXJ0WSA9
IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGlu
dCBkZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisgICAgICAg
IGludCBkZXN0WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsK
KworICAgICAgICBsb25nIGxvbmcgcCA9ICgoc3RhcnRYIC0gZGVzdFgpICogKHN0YXJ0WCAtIGRl
c3RYKSkgKyAoKHN0YXJ0WSAtIGRlc3RZKSAqIChkZXN0WSAtIGRlc3RZKSk7CisgICAgICAgIHNl
YyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0Lngo
KSkgKiAoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkpICsgKChzdGFydFJlY3QueSgpIC0g
ZGVzdFJlY3QueSgpKSAqIChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSk7CisgICAgICAg
IGRpc3RhbmNlID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3Rh
cnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsK
KyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAg
ICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkp
OworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVp
Z2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKTsKKyAgICAgICAg
aW50IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOwor
CisgICAgICAgIGxvbmcgbG9uZyBwID0gKChkZXN0WCAtIHN0YXJ0WCkgKiAoZGVzdFggLSBzdGFy
dFgpKSArICgoZGVzdFkgLSBzdGFydFkpICogKGRlc3RZIC0gc3RhcnRZKSk7CisgICAgICAgIHNl
YyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0Lngo
KSkgKiAoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkpICsgKChkZXN0UmVjdC55KCkgLSBz
dGFydFJlY3QueSgpKSAqIChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKSk7CisgICAgICAg
IGRpc3RhbmNlID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3Rh
cnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsK
KyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAg
ICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpIC8g
MjsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCk7CisgICAgICAgIGludCBkZXN0
WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBp
bnQgZGVzdFkgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpOworCisgICAg
ICAgIGxvbmcgbG9uZyBwID0gKChzdGFydFggLSBkZXN0WCkgKiAoc3RhcnRYIC0gZGVzdFgpKSAr
ICgoc3RhcnRZIC0gZGVzdFkpICogKHN0YXJ0WSAtIGRlc3RZKSk7CisgICAgICAgIHNlYyA9IHNx
cnQocCk7CisKKyAgICAgICAgcCA9ICgoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkgKiAo
c3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkpICsgKChzdGFydFJlY3QueSgpIC0gZGVzdFJl
Y3QueSgpKSAqIChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSk7CisKKyAgICAgICAgZGlz
dGFuY2UgPSBzcXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJl
Y3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworCisg
ICAgICAgIHNlYyA9IChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKTsKKworICAgICAgICBp
ZiAoc2VjIDwgZGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisK
KyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAgICAvLyBn
ZXQgbWlkZGxlIFggZm9yIGN1cnJlbnQgYW5kIHRhcmdldCByZWN0cworICAgICAgICBpbnQgc3Rh
cnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAg
ICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8g
MjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0
aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJl
Y3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAgICBsb25nIGxvbmcgcCA9ICgoZGVzdFggLSBzdGFy
dFgpICogKGRlc3RYIC0gc3RhcnRYKSkgKyAoKGRlc3RZIC0gc3RhcnRZKSAqIChkZXN0WSAtIHN0
YXJ0WSkpOworICAgICAgICBzZWMgPSBzcXJ0KHApOworCisgICAgICAgIHAgPSAoKGRlc3RSZWN0
LngoKSAtIHN0YXJ0UmVjdC54KCkpICogKGRlc3RSZWN0LngoKSAtIHN0YXJ0UmVjdC54KCkpKSAr
ICgoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkgKiAoZGVzdFJlY3QueSgpIC0gc3RhcnRS
ZWN0LnkoKSkpOworICAgICAgICBkaXN0YW5jZSA9IHNxcnQocCk7CisKKyAgICAgICAgaWYgKHNl
YyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC54KCkgPT0gZGVzdFJlY3QueCgpKQorICAgICAgICAg
ICAgZGlzdGFuY2UgPSBzZWM7CisKKyAgICAgICAgc2VjID0gKGRlc3RSZWN0LnkoKSAtIHN0YXJ0
UmVjdC55KCkpOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSkKKyAgICAgICAgICAgIGRp
c3RhbmNlID0gc2VjOworICAgIH0KKworICAgIHJldHVybiBhYnMoZGlzdGFuY2UpOworfQorCitz
dGF0aWMgbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24s
IEludFJlY3QmIGEsIEludFJlY3QmIGIpCit7CisgICAgaW50IHgxID0gMCwgeTEgPSAwLCB4MiA9
IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7
CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAg
ICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwgIHwtLS18CisgICAgICAgIC8v
CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAg
ICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAgICAgICAgICAvLyB0aGUg
YiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAg
eTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAg
ICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLnkoKSAr
IGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxv
dyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBh
LmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAg
ICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB4MSA9IGEueCgp
OworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgo
KTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZGlyZWN0
aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAor
ICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfCAg
fC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAg
ICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAg
ICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAgICAgICAgICAvLyB0aGUg
YiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOwor
ICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAg
ICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLnkoKSAr
IGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxv
dyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAgICAgIHkx
ID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAg
ICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB4MSA9IGEueCgp
ICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAgICAgeDIgPSBiLngo
KTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChk
aXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCkgeworICAgICAgICAvLyAgfC0tLXwgIHwtLS18
ICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwgIHwtLS18ICB8LS0tfAorICAgICAgICAvLworICAg
ICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAg
Ly8KKyAgICAgICAgaWYgKGEueCgpID4gYi54KCkgKyBiLndpZHRoKCkpIHsKKyAgICAgICAgICAg
IC8vIHRoZSBiIHJlY3QgaXMgdG8gdGhlIGxlZnQgb2YgYS4KKyAgICAgICAgICAgIHgxID0gYS54
KCk7CisgICAgICAgICAgICB5MSA9IGEueSgpOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIu
d2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCkgKyBiLmhlaWdodCgpOworICAgICAgICB9
IGVsc2UgaWYgKGEueCgpICsgYS53aWR0aCgpIDwgYi54KCkpIHsKKyAgICAgICAgICAgIC8vIHRo
ZSBiIHJlY3QgaXMgdG8gdGhlIHJpZ2h0IG9mIGEKKyAgICAgICAgICAgIHgxID0gYS54KCkgKyBh
LndpZHRoKCk7CisgICAgICAgICAgICB5MSA9IGEueSgpOworICAgICAgICAgICAgeDIgPSBiLngo
KTsKKyAgICAgICAgICAgIHkyID0gYi55KCkgKyBiLmhlaWdodCgpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgLy8gYm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHgncy4KKyAg
ICAgICAgICAgIHgxID0gMDsKKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAgICAgICB4
MiA9IDA7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAg
ICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8K
KyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0t
fCAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueCgpID4gYi54KCkgKyBiLndpZHRo
KCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8gdGhlIGxlZnQgb2YgYS4KKyAg
ICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQo
KTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9
IGIueSgpOworICAgICAgICB9IGVsc2UgaWYgKGEueCgpICsgYS53aWR0aCgpIDwgYi54KCkpIHsK
KyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8gdGhlIHJpZ2h0IG9mIGEKKyAgICAgICAg
ICAgIHgxID0gYS54KCkgKyBhLndpZHRoKCk7CisgICAgICAgICAgICB5MSA9IGEueSgpICsgYS5o
ZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gYm90aCBiIGFuZCBhIHNoYXJlIHNv
bWUgY29tbW9uIHgncy4KKyAgICAgICAgICAgIHgxID0gMDsKKyAgICAgICAgICAgIHkxID0gYS55
KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSAwOworICAgICAgICAgICAgeTIgPSBi
LnkoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgbG9uZyBkID0gKCh4MSAtIHgyKSAq
ICh4MSAtIHgyKSkgKyAoKHkxIC0geTIpICogKHkxIC0geTIpKTsKKyAgICBpZiAoZCA8IDApCisg
ICAgICAgIGQgKj0gKC0xKTsKKworICAgIHJldHVybiBkOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZDg2NDA4YS4uMzhjMDhjNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaApAQCAtNTgsNiArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KIAog
ICAgIHByaXZhdGU6CisgICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1
c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOworICAgICAgICBib29sIGFkdmFuY2VGb2N1c0lu
RG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlh
bEZvY3VzKTsKKwogICAgICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4g
bV9mb2N1c2VkRnJhbWU7CiAgICAgICAgIGJvb2wgbV9pc0FjdGl2ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9u
LmgKaW5kZXggMjYxYzc0NS4uNTUxYzcyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3Vz
RGlyZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKQEAgLTI5LDcg
KzI5LDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVjdGlvbiB7
CiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3VzRGlyZWN0
aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAgRm9j
dXNEaXJlY3Rpb25VcCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25Eb3duLAorICAgICAgICBGb2N1
c0RpcmVjdGlvbkxlZnQsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uUmlnaHQKICAgICB9OwogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAppbmRleCAzODczYzg5Li41YjlkNmM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTY0LDYg
KzY0LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX21heGltdW1E
ZWNvZGVkSW1hZ2VTaXplKG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAgICwgbV9s
b2NhbFN0b3JhZ2VRdW90YSg1ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhU
TUw1IHNwZWMuCiAgICAgLCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGltaXRzPHVu
c2lnbmVkPjo6bWF4KCkpCisgICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGZhbHNl
KQogICAgICwgbV9pc0phdmFFbmFibGVkKGZhbHNlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkoZmFsc2UpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCkBA
IC0yMzcsNiArMjM4LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldEFsbG93VW5pdmVyc2FsQWNjZXNz
RnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tCiAgICAgbV9hbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyA9IGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9v
bCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKK3sKKyAgICBtX2lzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7Cit9CisKIHZvaWQgU2V0dGlu
Z3M6OnNldEphdmFFbmFibGVkKGJvb2wgaXNKYXZhRW5hYmxlZCkKIHsKICAgICBtX2lzSmF2YUVu
YWJsZWQgPSBpc0phdmFFbmFibGVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA5ZjAwYjBkLi4zZmIzOWJkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaApAQCAtMTEzLDYgKzExMyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwogICAgICAg
ICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7IHJl
dHVybiBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7IH0KIAorICAgICAg
ICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKKyAgICAgICAgYm9vbCBp
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIG1faXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQ7IH0KKwogICAgICAgICB2b2lkIHNldEphdmFFbmFibGVkKGJvb2wpOwogICAgICAg
ICBib29sIGlzSmF2YUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSmF2YUVuYWJsZWQ7IH0K
IApAQCAtMjk4LDYgKzMwMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc2l6ZV90
IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAgICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9y
YWdlUXVvdGE7CiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CisgICAg
ICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wg
bV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkIDogMTsKLS0g
CjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47590</attachid>
            <date>2010-01-27 21:50:45 -0800</date>
            <delta_ts>2010-01-28 11:59:55 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v10+)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>91708</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAxZTNmMzJiZTJhYzBiNmVmMjliM2RiM2I4NDBmYjlmZGUwMTkyMGQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBKYW4gMjAxMCAxMToyNDoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpXZWJDb3JlOgoKVGhpcyBwYXRjaCBpbXBs
ZW1lbnRzIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJl
IFsxXS4KSXQgaW1wcm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5
IGV4dGVuZGluZyB0aGUgYmFzaWMga2V5Ym9hcmQKbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxh
YmxlIChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCmFkZGl0aW9u
IG9mIGEgZGlyZWN0aW9uYWwgYmFzZWQgbmF2aWdhdGlvbiwgd2hlcmUgZm9jdXNhYmxlIGVsZW1l
bnRzIGFyZSBhY2Nlc3NpYmxlCmJhc2VkIG9uIHRoZWlyIHNwYXRpYWwgbG9jYXRpb24gaW4gYSBX
ZWIgUGFnZSwgbm90IG9uIGl0cyBUYWIgaW5kZXggdmFsdWUuCgpIaWdobGlnaHRzOgoqIEZlYXR1
cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluICdTZXR0aW5ncycuIFBvcnQgc3BlY2lmaWMg
QVBJcyBuZWVkIHRvIGJlIGFkZGVkCiAgZm9yIHRvZ2dsZSBpdCBvbiBhbmQgb2ZmLgoqIE9ubHkg
ZWxlbWVudHMgdmlld2VkIGluIHRoZSBjdXJyZW50IHZpZXdwb3J0IGNhbiBoYXZlIGZvY3VzIG1v
dmUgdG8gaXQuIElmIHRoZXJlIGlzCiAgbm90IGFueSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBh
Y3Rpb24gaXMgcGVyZm9ybWVkLgoqIFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9uIFF0J3Mg
RFJUIG9ubHkgZm9yIG5vdyAoc2tpcHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCgpLbm93biBp
c3N1ZXMgKHRvIGJlIGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgoqIEFkZCBwb3J0IHNwZWNp
ZmljIGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRp
b24uCiogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgoqIElmcmFtZXMgd2l0
aCBzY3JvbGxhYmxlIGNvbnRlbnQgbmVlZHMgYmV0dGVyIHN1cHBvcnQuCiogTWFrZSBuYXZpZ2F0
aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkgd29ya3Mgd2l0aCBhcnJvd3Mga2V5
cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCkuCiogTWFrZSBpdCBzdXBwb3J0IG1v
ZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0gaHR0cDovL2VuLndpa2lwZWRpYS5v
cmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KClRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbAogICAgICAgZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbAogICAgICAgZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKICAgICAgIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0
bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAg
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBB
ZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlv
bi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1
bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIuaDoKKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CihXZWJDb3JlOjopOgooV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVz
dENhbmRpZGF0ZSk6CihXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKFdl
YkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6cmVuZGVyUmVjdCk6CihXZWJD
b3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CihXZWJDb3JlOjp0YWtlc1ByZWNlZGVuY2UpOgoo
V2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6
CihXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CihXZWJDb3JlOjppc09mZnNjcmVlblJlY3Qp
OgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CiogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2Vi
Q29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoKKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5n
cyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBw
YWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQpOgoKTGF5b3V0VGVzdHM6CgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0
bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13
aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiog
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwu
aHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDog
QWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCiogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRl
ZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwg
ICAgICAgfCAgIDEwICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbCAgICAgIHwgICAgNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUzLmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lNC5odG1sICAgICAgfCAgICA4ICsKIC4uLi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKwogLi4uL3NuYXYtaWZyYW1lLW5v
LWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCAgfCAgICA3ICsKIC4uLi9zbmF2LWlmcmFt
ZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sICAgICAgICAgIHwgICA1OCArKwogLi4uL3NuYXYt
aWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQgfCAgIDE3ICsKIC4uLi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwgICA2OSArKysK
IC4uLmUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IHwgICAx
NCArCiAuLi5hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbCB8
ICAgNjYgKysKIC4uLi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgICAgICAgICAg
ICAgIHwgICAxNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
Lmh0bWwgICB8ICAgODggKysrCiAuLi4vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3Rl
ZC50eHQgICAgICAgICB8ICAgMjAgKwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRt
bCAgICAgICAgICAgICAgICAgfCAgIDkzICsrKwogLi4udC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQgfCAgICA2ICsKIC4uLnNuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIHwgICA5NiArKysKIC4uLi9zbmF2LXZlcnRpY2Fs
LXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgICAgIHwgICAxOSArCiAuLi4vc25hdi12ZXJ0
aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgICB8ICAgODEgKysrCiAuLi4vc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAg
ICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgMyArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNzIgKysrCiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24v
bGlua3MuaHRtbCB8ICAgIDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0
bWwgICAgICAgICAgICAgfCAgMTM1ICsrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICA2MjQgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDYgKy0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKwogMzUgZmlsZXMgY2hhbmdlZCwgMTgyNiBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291
cmNlcy9pZnJhbWU0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Ny
b2xsYWJsZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9j
dXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2Ny
ZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZl
cnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXRlc3QtY2FzZXMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNzZhNDZhLi5mZDBhNzA0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTAtMDEtMjUgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRl
bmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZv
Y3VzYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1l
LXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWw6IEFkZGVkLgor
CiAyMDEwLTAxLTI3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1ZjE3MTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorICA8Ym9keT4KKyAg
ICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT48YnI+CisgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmM8
L2E+PGJyPgorICAgIDxhIGlkPSIzIiBocmVmPSJhIj5kPC9hPjxicj4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDo4MHB4IiA+CisgICAgICA8YSBpZD0iNyIgaHJlZj0iYSI+ZTwvYT4KKyAg
ICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTk3YzAyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jl
c291cmNlcy9pZnJhbWUyLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGEgaWQ9IjQiIGhyZWY9ImEiPmc8L2E+CisgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPmg8L2E+
CisgICAgPGEgaWQ9IjYiIGhyZWY9ImEiPmk8L2E+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDFhZDlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCkBAIC0wLDAgKzEsOCBA
QAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSIxIiBocmVmPSJhIj5iPC9hPgorICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmQ8
L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWU0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmNDhmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+CisgIDxi
b2R5PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPHA+VGhpcyBm
cmFtZSBoYXMgc29tZSB0ZXh0IGFuZCBubyBmb2N1c2FibGUgZWxlbWVudCAuLi48L2E+CisgICAg
PC9kaXY+CisgICAgPHA+Li4uIGFuZCBzb21lIG1vcmUgdGV4dCAuLi48L2E+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwt
c3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wMzcwMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK3Rlc3QKK0jCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgb3cgTm93IEJyb3duIENvdwor
SG/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqAg
dyBOb3cgQnJvd24gQ293CitIb3cgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqDCoMKgwqDCoCBOb3cgQnJvd24gQ293CitIb3cgTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqAgwqAgwqDCoCBvdyBCcm93biBDb3cKK0hvdyBObyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqDCoCB3IEJyb3duIENvdworSG93IE5v
dyDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoMKgIEJyb3du
IENvdworSG93IE5vdyBCIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDC
oCDCoMKgIHJvd24gQ293CitIb3cgTm93IEJyIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgwqAgb3duIENvdworSG93IE5vdyBCcm8gwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCB3biBDb3cKK0hvdyBOb3cgQnJvd8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG4g
Q293CitIb3cgTm93IEJyb3duIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoMKgwqAgQ293CitIb3cgTm93IEJyb3duIEMgwqAgwqDCoMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgb3cKK0hvdyBOb3cgQnJvd24gQ28gwqDCoMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgdworSG93IE5vdyBCcm93biBDb3cK
KwordGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTAiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMiIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjExIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTMiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNCIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE2IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTUiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNyIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE4IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjAiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjUiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2Vk
ZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iN2ZhMjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVu
Y2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgor
ICAgIChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4g
dGhlIHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5
IHRvIG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBz
dXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBz
OgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRp
Y2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1
cCBvciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVu
IHRoZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBh
bGlnbmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2
YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiUmlnaHQiLCAi
MiJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiTGVmdCIsICIzIl0sCisgICAgICBb
IkRvd24iLCAiNSJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIkRvd24iLCAiOCJd
LAorICAgICAgWyJMZWZ0IiwgIjciXSwKKyAgICAgIFsiRG93biIsICI5Il0sCisgICAgICBbIlJp
Z2h0IiwgIjEwIl0sCisgICAgICBbIkRvd24iLCAiMTIiXSwKKyAgICAgIFsiTGVmdCIsICIxMSJd
LAorICAgICAgWyJEb3duIiwgIjEzIl0sCisgICAgICBbIlJpZ2h0IiwgIjE0Il0sCisgICAgICBb
IkRvd24iLCAiMTYiXSwKKyAgICAgIFsiTGVmdCIsICIxNSJdLAorICAgICAgWyJEb3duIiwgIjE3
Il0sCisgICAgICBbIlJpZ2h0IiwgIjE4Il0sCisgICAgICBbIkRvd24iLCAiMjAiXSwKKyAgICAg
IFsiTGVmdCIsICIxOSJdLAorICAgICAgWyJEb3duIiwgIjIxIl0sCisgICAgICBbIlJpZ2h0Iiwg
IjIyIl0sCisgICAgICBbIkRvd24iLCAiMjQiXSwKKyAgICAgIFsiTGVmdCIsICIyMyJdLAorICAg
ICAgWyJEb3duIiwgIjI1Il0sCisgICAgICBbIlJpZ2h0IiwgIjI2Il0sCisgICAgICBbIkRvd24i
LCAiMjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0K
KyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5n
IHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRh
YmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93
Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxhIGlkPSIxIiBo
cmVmPSJhIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBpZD0iMiIgaHJlZj0icCI+b3cgTm93IEJyb3duIENv
dzwvYT48YnI+CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI0IiBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJy
PgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5Ib3c8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjYiIGhyZWY9
InAiPk5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSI3IiBocmVmPSJhIj5Ib3cgTjwv
YT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyA8YSBpZD0iOCIgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0i
OSIgaHJlZj0iYSI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxMCIgaHJlZj0icCI+dyBCcm93biBDb3c8
L2E+PGJyPgorICAgIDxhIGlkPSIxMSIgaHJlZj0iYSI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBp
ZD0iMTIiIGhyZWY9InAiPkJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjEzIiBocmVmPSJh
Ij5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjE0IiBocmVmPSJwIj5yb3duIENvdzwvYT48YnI+Cisg
ICAgPGEgaWQ9IjE1IiBocmVmPSJhIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTYiIGhyZWY9InAiPm93
biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxNyIgaHJlZj0iYSI+SG93IE5vdyBCcm88L2E+ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlk
PSIxOCIgaHJlZj0icCI+d24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTkiIGhyZWY9ImEiPkhv
dyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjIwIiBocmVmPSJwIj5uIENvdzwv
YT48YnI+CisgICAgPGEgaWQ9IjIxIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duPC9hPiAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
IDxhIGlkPSIyMiIgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgICA8YSBpZD0iMjMiIGhyZWY9ImEi
PkhvdyBOb3cgQnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMjQiIGhyZWY9InAiPm93PC9hPjxicj4KKyAg
ICA8YSBpZD0iMjUiIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjI2IiBo
cmVmPSJwIj53PC9hPjxicj4KKyAgICA8YSBpZD0iMjciIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24g
Q293PC9hPjxicj48YnI+CisgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+dGVzdDxicj48L2E+Cisg
ICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZy
YW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU2NjRh
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACithCisKKworZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
aWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTNjYjUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVu
c3VyZXMgdGhlIGJhc2ljIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2
aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBpZnJhbWVzIHdpdGhvdXQKKyAgICBhbnkgZm9jdXNh
YmxlIGNvbnRlbnQgc2hvdWxkIGJlIGlnbm9yZWQuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgZnJvbSAic3RhcnQiIHRvICJl
bmQiIGJ5cGFzc2luZyB0aGUgdHdvIGlmcmFtZXMKKyAgICAgICBpbiBiZXR3ZWVuIHRoZW0sIG9u
Y2UgYm90aCBoYXZlIG5vIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUuCisgIC0tPgorICA8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisg
ICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAi
ICAsICJzdGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBn
ZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0
YXJ0IiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZy
YW1lNC5odG1sIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJh
bWU+PGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lNC5odG1sIiBzY3JvbGxp
bmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmU8
L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9s
bGFibGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2Y5MjhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK2EKKworCithCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQQVNTIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDA4MWNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbApA
QCAtMCwwICsxLDY5IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRo
ZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZp
Z2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlm
cmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAg
IDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0
aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQi
IGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGlu
IHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2lu
ZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0
aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVU
YWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAorICAg
ICAgWyJEb3duIiwgIjMiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAi
ZW5kIl0sCisgICAgICBbIlVwIiwgIjQiXSwKKyAgICAgIFsiUmlnaHQiLCAiNSJdLAorICAgICAg
WyJSaWdodCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgIjciXSwKKyAgICAgIFsiVXAiLCAiMyJd
LAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAgICAgIFsiRE9ORSIs
ICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtz
UHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8v
IHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92
ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisg
ICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAg
ICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1sIj48L2lmcmFtZT48YnI+CisgICAg
PGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUyLmh0bWwiPjwvaWZyYW1lPgorICAgIDxkaXY+
PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3Vz
YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMzYWEx
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorYQorCitlCitQQVNTIGRvY3VtZW50LmRlZmF1bHRW
aWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0
Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRo
LW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJs
ZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNjOTkz
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMg
dGhlIGJhc2ljIGlmcmFtZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5h
dmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGluIGEKKyAgICA8
aWZyYW1lPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6Cisg
ICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmln
YXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFy
dCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUgZWxlbWVudHMg
aW4gdGhlIHR3byBpZnJhbWVzIGluIHRoZQorICAgICAgIFdlYiBwYWdlLCBldmVudHVhbGx5IGdv
aW5nIHRvIG91dGVyIGFuIHNvdXRod2FyZCBsaW5rLCBidXQKKyAgICAgICBnb2luZyBiYWNrIHRv
IHRoZSBpZnJhbWUgb24gdGhlIHRvcCBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92
ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICIxIl0sCisg
ICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAgIFsiRG93biIs
ICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBb
IlVwIiwgIjIiXSwKKyAgICAgIFsiVXAiLCAiMSJdLAorICAgICAgWyJVcCIsICJzdGFydCJdLAor
ICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
dHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisg
ICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBw
bGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisK
KyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5h
PC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lMy5odG1sIiB3aWR0
aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJhbWU+PGJyPgorICAgIDxk
aXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+ZTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOWIwNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdCB0YWJsZSB0cmF2ZXJzYWwKK2EJYQlhCithCWEJYQorYQlhCWEK
K0VuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgxOGRkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJh
dmVyc2FsLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRl
c3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFibGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAg
U3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBp
biBhCisgICAgPHRhYmxlPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRp
dGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAg
ICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2Vz
IHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aHJv
dWdoIHRoZSBzcGFyc2VseSBwb3NpdGlvbmVkIGVsZW1lbnRzCisgICAgICAgaW4gdGhlIHRhYmxl
LCBldmVudHVhbGx5IGdvaW5nIHRvIGFuIG91dGVyIHNvdXRod2FyZCBsaW5rLAorICAgICAgIGJ1
dCBnb2luZyBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAg
dmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAi
NCJdLAorICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAg
IFsiVXAiLCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjki
XSwKKyAgICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQi
LCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkg
aWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgor
ICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+VGVzdCB0YWJsZSB0cmF2ZXJzYWw8YT4KKyAgICA8
dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDog
YXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2Vs
bHNwYWNpbmc9IjEiPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRk
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0i
MSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90
ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246
IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+Cisg
ICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHls
ZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjciIGhy
ZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+Cisg
ICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50
ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6MTAwcHgn
PgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kIG9mIHRhYmxlIHRyYXZlcnNhbCB0ZXN0
PGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVy
c2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWUw
OGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjAgQEAKK2EKK2EJYQlhCithCWEJYQorYQlhCWEKK2EKK2EKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRy
YXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMGQwMzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzxo
dG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRhYmxlIHRyYXZl
cnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3Jp
dGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxkIGJlIGFjY2Vz
c2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBT
TmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExv
YWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAg
MikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgZXZlbnR1YWxs
eQorICAgICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBhbmQgZWFzdHdhcmQgbGlua3MsIGJ1
dCBnb2luZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBsYXRlciBvbi4KKyAgLS0+Cisg
IDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+
CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsi
RG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAgICAgWyJEb3duIiwgImVuZCJd
LAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0IiwgIjgiXSwKKyAgICAgIFsiUmln
aHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgInJpZ2h0Il0s
CisgICAgICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQi
LCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkg
aWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgor
ICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+CisgICAgPHRhYmxlPgorICAgICAg
PHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNt
YWxsOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI1IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjYi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI3IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9Ijgi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21h
bGw7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6OHB4Jz4K
KyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBweCI+CisgICAgICA8YSBpZD0i
cmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1z
Y3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4xMmE1MzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitTdGFydAorRW5kCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BB
U1MgdHJ1ZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjM3NDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzxodG1sPgorICA8
IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGNvcnJlY3RuZXNzIHRoZSBmb2xsb3dpbmcg
U3BhdGlhbCBOYXZpZ2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobSBmZWF0dXJlcy4KKworICAg
IDEpIFRoZXJlIGlzIG5vIHVuaXQgb3ZlcmZsb3cgaW4gdGhlIFNOYXYgYWxnb3JpdGhtIHdoaWxl
IGNhbGN1bGF0aW5nCisgICAgICAgdGhlIGJlc3Qgbm9kZSBjYW5kaWRhdGUgdG8gbW92ZSBmb2N1
cyB0by4gVG8gdGVzdCB0aGF0IHRoaXMgcGFnZQorICAgICAgIHBvc2l0aW9ucyBzb21lIGVsZW1l
bnRzIDEwMDAwMDAwIHBpeGVscyBmYXIgZnJvbSBlYWNoIG90aGVyIChkaXN0YW5jZQorICAgICAg
IHRoYXQgY2FuIGNvbnNpZGVyZWQgbGFyZ2UgZW5vdWdoIGZvciBtb3N0IG9mIHRoZSBXZWIgUGFn
ZXMgb24gdGhlCisgICAgICAgSW50ZXJuZXQpLgorCisgICAgMikgTWFrZSBzdXJlIHRoYXQgYSBi
ZXN0IGZvY3VzYWJsZSBjYW5kaWRhdGUgb25seSBnZXRzIGZvY3VzZWQKKyAgICAgICBpZiBpdCBp
cyB2aXNpYmxlIGluIHRoZSBjdXJyZW50bCBWaWV3cG9ydC4gU2Nyb2xsLWluLWRpcmVjdGlvbgor
ICAgICAgIGlzIHBlcmZvcm1lZCBvdGhlcndpc2UuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgQXR0ZW1wdCB0byBtb3ZlIGZvY3VzIGRvd24gdG8g
ImVuZC4gQXMgaXQgaXMgdG9vIGZhciBhbmQgb3V0IG9mCisgICAgICAgdmlld3BvcnQsIGZvY3Vz
IGNoYW5nZSB3aWxsIG5vdCBoYXBwZW4gYW5kIHBhZ2Ugd2lsbCBiZSBzY3JvbGxlZAorICAgICAg
IGEgc3RlcCBkb3duLgorICAgIDMpIEJ5IHNlbmRpbmcgYW4gIkVuZCIga2V5cHJlc3MsIHBhZ2Ug
Z2V0cyBzY3JvbGxlZCBkb3duIHRvIGEgcGxhY2UKKyAgICAgICB3aGVyZSB0aGUgImVuZCIgbm9k
ZSBnZXRzIHZpc2libGUgaW4gdGhlIHZpZXdwb3J0LgorICAgIDQpIFN0ZXAgXzFfIGlzIHJhbiBh
Z2FpbiwgYW5kICJlbmQiIGdldHMgZm9jdXNlZC4gLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxl
MSA9IFsKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyIiLCAiIl0KKyAgICBdOwor
CisgICAgdmFyIG1vdmVUYWJsZTIgPSBbCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBb
IkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFi
VG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7Cisg
ICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAg
c2V0VGltZW91dChzdGVwMSAsIDApOworICAgICAgc2V0VGltZW91dChzdGVwMiAsIDUwMCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgIC8vIEFjdGlvbnMgaW4g
J21vdmVUYWJsZTEnIHNob3VsZCBrZWVwIHRoZSBmb2N1cyBpbiB0aGUgY3VycmVudGx5CisgICAg
ICAvLyBmb2N1c2VkIGVsZW1lbnQgKCdzdGFydCcpIG9uY2UgdGhlIGJlc3QgY2FuZGlkYXRlICgn
ZW5kJykgaXMgbm90CisgICAgICAvLyB2aXNpYmxlIGluIGN1cnJlbnQgdmlld3BvcnQuCisgICAg
ICB0ZXN0TW92ZXMobW92ZVRhYmxlMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoKQor
ICAgIHsKKyAgICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
IT0gMCkpOworCisgICAgICAvLyBUaGVuIGl0IHNjcm9sbHMgZG93biB0byB0aGUgZW5kIG9mIHRo
ZSBwYWdlIC4uLgorICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigiZW5kIik7CisKKyAgICAgIC8vIEFuZCAnbW92ZVRhYmxlMicgcmUtdHJp
ZXMgdG8gbW92ZSBmb2N1cyBkb3duLgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTIsIHRlc3RD
b21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsK
KyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29t
ZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEg
aWQ9InN0YXJ0IiBocmVmPSJhIj5TdGFydDwvYT4KKyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9w
OjEwMDAwMDAwMHB4Jz4KKyAgICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kPC9hPgorICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWIw
ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE5IEBACit0ZXN0Cit0ZXN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0Cit0
ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0CisKKworCisKK3Rlc3QKK3Rlc3QKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjUwZTY4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2Uu
aHRtbApAQCAtMCwwICsxLDgxIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1
cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgorICAg
IChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhl
IHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5IHRv
IG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBw
b3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgor
ICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2Fs
bHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1cCBv
ciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVuIHRo
ZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBhbGln
bmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIg
bW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI2Il0s
CisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJV
cCIsICI3Il0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlk
PSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1hbGlnbjogbGVmdDsiPgorICAg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9InN0YXJ0
IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjIiIGhy
ZWY9ImEiPnRlc3Q8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaWQ9IjMiIGhyZWY9ImEiPnRl
c3Q8L2E+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAg
ICAgPGEgaWQ9IjQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgICAgICA8YSBpZD0iNSIgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI2IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
ICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAg
PGJyPjxicj48YnI+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4K
KyAgICAgICAgPGEgaWQ9IjgiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+Cisg
ICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MDExOWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpAQCAt
MCwwICsxLDY5IEBACisvKgorICogT3JpZ2luYWwgYXV0aG9yOiBEb3VnIFR1cm5lciA8ZG91Zy50
dXJuZXJAZ21haWwuY29tPgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgICAqIEFudG9uaW8g
R29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorICoqLworCit2YXIgX21vdmVUYWJsZTsKK3Zh
ciBfbW92ZVRhYmxlSW5kZXggPSAwOwordmFyIF9jb21wbGV0ZWRDYWxsYmFjayA9IG51bGw7CisK
K2Z1bmN0aW9uIHRlc3RNb3Zlcyh0YWJsZSwgY29tcGxldGVkQ2IpIHsKKyAgIC8vIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgX3ZlcmlmeUFuZEFkdmFuY2UsIHRydWUpOworCisg
IF9tb3ZlVGFibGUgPSB0YWJsZTsKKyAgX21vdmVUYWJsZUluZGV4ID0gMDsKKyAgX2NvbXBsZXRl
ZENhbGxiYWNrID0gY29tcGxldGVkQ2I7CisgIF9tb3ZlKCk7Cit9CisKK2Z1bmN0aW9uIF9uZXh0
TW92ZSgpCit7CisgIF9tb3ZlVGFibGVJbmRleCsrOworCisgIC8vIFdoZW4gYSB0YWJsZSBlbmRz
IHdpdGggIkRPTkUiLCBjYWxsIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgorICBpZiAoX21vdmVU
YWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICJET05FIikKKyAgICBpZiAoX2NvbXBsZXRlZENh
bGxiYWNrKSB7CisgICAgICBfY29tcGxldGVkQ2FsbGJhY2soKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgLy8gd2hlbiBhIHRhYmxlIGhhcyBhbiBlbXB0eSBlbGVtZW50LCBlbmQgdGhlIG1v
dmVzLgorICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICIiKQorICAgIHJl
dHVybjsKKworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbW92ZSgpCit7CisgIHZhciBldmVu
dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50cycpOworICBldmVudC5pbml0
S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3
LCBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0sIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSk7CisgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgIHNl
dFRpbWVvdXQoIF92ZXJpZnlBbmRBZHZhbmNlICwgMTAwKTsKK30KKworZnVuY3Rpb24gX3Zlcmlm
eUFuZEFkdmFuY2UoKQoreworICB2YXIgZGlyZWN0aW9uID0gX21vdmVUYWJsZVtfbW92ZVRhYmxl
SW5kZXhdWzBdOworICB2YXIgZXhwZWN0ZWRJRCA9IF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4
XVsxXTsKKworICB2YXIgaSA9IDA7CisgIHZhciBtYWluRnJhbWVIYXNGb2N1cyA9IHRydWU7Cisg
IGZvcig7IGkgPCBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXMubGVuZ3RoOyBpKyspCisgICAg
aWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1tpXS5kb2N1bWVudC5oYXNGb2N1cygpKSB7
CisgICAgICBtYWluRnJhbWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAgYnJlYWs7CisgICAgfQor
CisgIC8vIHRoaXMgc3VwcG9ydCBmcmFtZXMgbmVzdGVkIGluIG9uZSBsZXZlbCBkZWVwIG9ubHku
CisgIGlmIChtYWluRnJhbWVIYXNGb2N1cykKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsK
KyAgZWxzZQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcu
ZnJhbWVzWyIgKyBpICsgIl0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJp
ZFwiKSIsIGV4cGVjdGVkSUQpOworCisgIF9uZXh0TW92ZSgpOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IDFlZjRmZDkuLjI0ZTYwYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC01NzgxLDMgKzU3ODEsNiBAQCBzdmcvY3VzdG9tL3VzZS1pbnN0YW5jZVJvb3QtZXZl
bnQtYnViYmxpbmcueGh0bWwKIAogIyBOZXcgZmFpbHVyZSBhZnRlciBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC81Mzc1OAogc2Nyb2xsYmFycy9zY3JvbGxiYXItbWlkZGxlY2xpY2st
bm9wYXN0ZS5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVy
VHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYmQy
MGIxZi4uMTdmZTdhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEwMSwzICsxMDEs
NiBAQCBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jaGFuZ2Utbm90aWZpY2F0aW9uLW9uLXNj
cm9sbC5odG1sCiAKICMgU2tpcCBHZW9sb2NhdGlvbiB1bnRpbCBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMjUgaXMgbGFuZGVkCiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZ2VvbG9jYXRpb24uaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9u
YWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwg
TmF2aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCmluZGV4IDZjMDEzNTAuLmRjMDliNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCkBAIC03MzQsMyArNzM0LDYgQEAgZmFzdC9jc3Mvbm9uLXN0YW5kYXJkLWNoZWNrYm94LXNp
emUuaHRtbAogCiAjIFNraXAgR2VvbG9jYXRpb24gdW50aWwgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0MDI1IGlzIGxhbmRlZAogZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9uLmh0bWwKKworIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFs
aXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhhbmRsZSBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5h
dmlnYXRpb24KK2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGZjMjY4Li5iZmNiNmI4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDc1IEBACisyMDEwLTAxLTI1ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IFBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQuY29tPgorICAgICAgICBC
YXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFyY28uYmFyaXNp
b25lQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBFeHRlbmQga2V5Ym9hcmQgbmF2aWdhdGlv
biB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVy
ZSBbMV0uCisgICAgICAgIEl0IGltcHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2Yg
V2ViQ29yZSBieSBleHRlbmRpbmcgdGhlIGJhc2ljIGtleWJvYXJkCisgICAgICAgIG5hdmlnYXRp
b24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQgb24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJk
KSB3aXRoIHRoZQorICAgICAgICBhZGRpdGlvbiBvZiBhIGRpcmVjdGlvbmFsIGJhc2VkIG5hdmln
YXRpb24sIHdoZXJlIGZvY3VzYWJsZSBlbGVtZW50cyBhcmUgYWNjZXNzaWJsZQorICAgICAgICBi
YXNlZCBvbiB0aGVpciBzcGF0aWFsIGxvY2F0aW9uIGluIGEgV2ViIFBhZ2UsIG5vdCBvbiBpdHMg
VGFiIGluZGV4IHZhbHVlLgorCisgICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVy
ZSBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gJ1NldHRpbmdzJy4gUG9ydCBzcGVjaWZpYyBB
UElzIG5lZWQgdG8gYmUgYWRkZWQKKyAgICAgICAgICBmb3IgdG9nZ2xlIGl0IG9uIGFuZCBvZmYu
CisgICAgICAgICogT25seSBlbGVtZW50cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQg
Y2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4gSWYgdGhlcmUgaXMKKyAgICAgICAgICBub3QgYW55
LCBhbiBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcyBwZXJmb3JtZWQuCisgICAgICAgICog
VGhlIGxheW91dCB0ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lw
cGVkIGZvciBNYWMsIFdpbiBhbmQgR3RrKS4KKworICAgICAgICBLbm93biBpc3N1ZXMgKHRvIGJl
IGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgorICAgICAgICAqIEFkZCBwb3J0IHNwZWNpZmlj
IGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24u
CisgICAgICAgICogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorICAgICAg
ICAqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtz
IHdpdGggYXJyb3dzIGtleXMgb25seQorICAgICAgICAgICh1cCwgZG93biwgcmlnaHQgYW5kIGxl
ZnQpLgorICAgICAgICAqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQg
U2hpZnQpLgorCisgICAgICAgIFsxXSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYXRp
YWxfbmF2aWdhdGlvbgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQt
c2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbAorCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2
aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVzdENhbmRpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3RhbmNl
SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjp0YWtlc1By
ZWNlZGVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxJ
bkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc09mZnNjcmVlblJlY3QpOgorICAgICAg
ICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQpOgorCiAyMDEwLTAxLTI3IEFudG9uIE11aGluIDxhbnRvbm1AZ29vZ2xlLmNv
bT4KICAgICAgICAgUmV2aWV3IGJ5IEFkYW0gQmFydGguCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sIGIvV2ViQ29yZS9tYW51
YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMC4uMGQ2ZWQ3YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFu
dWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCkBAIC0wLDAgKzEsOSBAQAor
PGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxwPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxh
IGhyZWY9ImEiPmE8L2E+Cis8YSBocmVmPSJhIj5hPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwt
bmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFs
LW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMjgzNDZkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10
ZXN0LWNhc2VzLmh0bWwKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KyAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9SVNPLTg4NTktMSI+CisgIDx0aXRsZT5TcGF0aWFsIE5hdmlnYXRpb24gVGVzdCBDYXNl
czwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKyAgPGgxIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+
U3BhdGlhbCBOYXZpZ2F0aW9uIEZ1bjwvaDE+CisgIDxoMiBzdHlsZT0idGV4dC1hbGlnbjogbGVm
dDsiPjN4MyBDZW50ZXJlZCBUYWJsZSBUZXN0PC9oMj4KKzwvZGl2PgorPHRhYmxlIHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1y
aWdodDogYXV0bzsiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4K
KyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRv
cDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAg
PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBo
cmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8
L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJh
Ij50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgor
ICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0
PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgorICA8L3Ri
b2R5PgorPC90YWJsZT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij48YnI+CisgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8
aDI+VmVydGljYWwgU2luZSBUZXN0PC9oMj48YnI+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij48YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
PC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBw
eDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAg
PGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogODBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAg
PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKyAgPC9kaXY+CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPiZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OworICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKworICA8aDI+SW5jcmVhc2luZyBzZW50ZW5j
ZSBsZW5ndGg8L2gyPgorICA8YSBocmVmPSJhIj5IPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88
YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3c8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgPGJy
PjwvYT4KKyAgPGEgaHJlZj0icCI+SG93IE48L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm88
L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93
IE5vdyA8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+PGJyPgorICA8YSBocmVm
PSJwIj5Ib3cgTm93IEJyPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJyb3duPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biA8L2E+PGJyPgor
ICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJyb3duIENvPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDb3c8L2E+
PGJyPgorICA8YnI+CisgIDxoMj5TcGxpdCBzZW50ZW5jZTxicj48L2gyPgorICA8YnI+CisgIDxh
IGhyZWY9InAiPkg8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOzxhIGhyZWY9InAiPm93IE5vdyBCcm93biBDb3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5IbzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3c8
L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+Tm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBObzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53IEJyb3duIENvdzwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdyBOb3cgPC9hPiZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+QnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnJvd24gQ293PC9h
Pjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3duIENvdzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53biBDb3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9
InAiPm4gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj5Db3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8
L2E+ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsgPGEgaHJlZj0icCI+b3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3du
IENvPC9hPiAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7IDxhIGhyZWY9InAiPnc8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duIENvdzwvYT48YnI+PGJyPgorICA8aDI+TGluZSBXcmFwIFRlc3Q8L2gyPjxicj4KKyAgPHRh
YmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMzkzcHg7IGhlaWdodDogNzJweDsi
IGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICA8dGJvZHk+
CisgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgor
ICAgICAgICAgIDxzcGFuIGNsYXNzPSJodWdlIj4KKyAgICAgICAgICAgIDxhIGhyZWY9ImEiPldo
aWNoIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnN0IGRvIHlvdSBsaWtlIHRoZSBtb3N0LCBvbmUg
aXMgZywgb25lIGlzIHBpLCBhbmQgdGhlIG90aGVyIGlzIGUuIDwvYT48YnI+CisgICAgICAgICAg
PC9zcGFuPjwvdGQ+CisgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgor
ICAgICAgICAgIDxhIGhyZWY9ImEiPjMuMTQ8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEi
PjIuNzE8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEiPjYuNjc8L2E+PGJyPgorICAgICAg
ICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorICA8L3RhYmxlPjxicj4KKyAgPGgy
PkphdmFzY3JpcHQgRm9jdXMvQmx1ciBUZXN0PC9oMj4KKyAgICBXaGVuIGdvaW5nIHRvIGFueSBs
aW5rIGZyb20gdGhlIGZvbGxvd2luZyBsaW5rLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZy48YnI+
PGJyPgorICA8YSBocmVmPSJhIiBvbmJsdXI9J2FsZXJ0KCJvbkJsdXJ0IiknPlRlc3Q8L2E+PGJy
Pjxicj4KKworICA8aDI+RnJhbWVTZXRzPC9oMj4gPGJyPgorICA8ZnJhbWVzZXQgY29scz0iMjUl
LDI1JSwqIj4KKyAgICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0i
bGlua3MuaHRtbCIvPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgPC9mcmFtZXNl
dD4KKyAgPGJyPjxicj4KKworICA8aDI+SUZyYW1lczwvaDI+PGJyPgorICA8aWZyYW1lIHNyYz0i
bGlua3MuaHRtbCI+PC9pZnJhbWU+PGJyPjxicj48YnI+CisgIDxoMj5ESVZzPC9oMj48YnI+Cisg
IDxkaXYgaWQ9dj4KKyAgICA8YSBocmVmPSJhIj5hPC9hPgorICAgIDxkaXYgaWQ9IkRpdjEiPgor
ICAgICAgICA8YSBocmVmPSJhIj5hPC9hPgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9ImEiPmE8
L2E+CisgIDwvZGl2Pjxicj48YnI+CisgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGEgaHJlZj0ibGFz
dCI+bGFzdDwvYT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDlk
ZjFkNC4uODIyMmQyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIxNTYsNiArMjE1Niw4IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChldmVudC0+a2V5
SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAgICAgICAgICAgZGVmYXVsdFRhYkV2ZW50SGFu
ZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgaWYgKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IGlzQXJyb3dLZXkoZXZlbnQtPmtleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBkZWZhdWx0
QXJyb3dFdmVudEhhbmRsZXIoZGlyZWN0aW9uLCBldmVudCk7CiAKICAgICAgICAvLyBwcm92aWRl
cyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkg
dXNlcnMKICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWQoKSkKQEAgLTIxNzAsNiArMjE3MiwyMiBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ICAgIH0KIH0KIAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjppc0Fycm93S2V5KGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllcikKK3sKKyAgICBGb2N1c0RpcmVjdGlvbiByZXRWYWwgPSAo
Rm9jdXNEaXJlY3Rpb24pIDAKKworICAgIGlmIChrZXlJZGVudGlmaWVyID09ICJEb3duIikKKyAg
ICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Eb3duOworICAgIGVsc2UgaWYgKGtleUlkZW50
aWZpZXIgPT0gIlVwIikKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25VcDsKKyAgICBl
bHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJMZWZ0IikKKyAgICAgICAgcmV0VmFsID0gRm9jdXNE
aXJlY3Rpb25MZWZ0OworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gIlJpZ2h0IikKKyAg
ICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25SaWdodDsKKworICAgIHJldHVybiByZXRWYWw7
Cit9CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdI
eXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2Nh
dGlvbikgY29uc3QKIHsKQEAgLTI0NjIsNiArMjQ4MCwyNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
ZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAjZW5kaWYK
IAordm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVj
dGlvbiBmb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2
ZW50LT5jdHJsS2V5KCkgfHwgZXZlbnQtPm1ldGFLZXkoKSB8fCBldmVudC0+YWx0R3JhcGhLZXko
KSB8fCBldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFn
ZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKSB8fCAhcGFnZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQXJyb3dzIGFu
ZCBvdGhlciBwb3NzaWJsZSBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGtleXMgY2FuIGJlIHVzZWQg
aW4gZGVzaWduCisgICAgLy8gbW9kZSBlZGl0aW5nLgorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5pbkRlc2lnbk1vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5hZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAg
ICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVy
OjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIC8v
IFdlIHNob3VsZCBvbmx5IGFkdmFuY2UgZm9jdXMgb24gdGFicyBpZiBubyBzcGVjaWFsIG1vZGlm
aWVyIGtleXMgYXJlIGhlbGQgZG93bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA2YTEyZTcwLi5mN2Iz
ZDI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEV2ZW50SGFu
ZGxlcl9oCiAKICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgorI2luY2x1ZGUgIkZvY3VzRGlyZWN0
aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xs
VHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzAxLDYgKzMwMiw3IEBAIHByaXZhdGU6
CiAKICAgICB2b2lkIGRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CiAg
ICAgdm9pZCBkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lk
IGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCop
OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGFsbG93REhUTUxEcmFnKGJv
b2wmIGZsYWdESFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKQEAgLTMyMyw2ICszMjUsOCBAQCBw
cml2YXRlOgogICAgIAogICAgIHZvaWQgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogCisg
ICAgRm9jdXNEaXJlY3Rpb24gaXNBcnJvd0tleShjb25zdCBTdHJpbmcmKTsKKwogICAgIGJvb2wg
Y2FwdHVyZXNEcmFnZ2luZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FwdHVyZXNEcmFnZ2luZzsgfQog
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fT0JKQ19fKSAmJiAhRU5BQkxFKEVYUEVS
SU1FTlRBTF9TSU5HTEVfVklFV19NT0RFKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA1
ZTc4YzdkLi5jMzljYzAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtNTUsNiArNTUs
NDEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
K3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK2VudW0gUHJlY2VkZW5jZU1vZGUgeworICAgIE5vbmUg
PSAtMSwKKyAgICBMb3csCisgICAgUHJlY2VkZW50LAorICAgIFN1cGVyUHJlY2VkZW50Cit9Owor
CitzdHJ1Y3QgQmVzdENhbmRpZGF0ZSB7CisgICAgQmVzdENhbmRpZGF0ZSgpCisgICAgICAgIDog
bm9kZSgwKQorICAgICAgICAsIGRpc3RhbmNlKG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1h
eCgpKQorICAgICAgICAsIHBhcmVudERpc3RhbmNlKG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46
Om1heCgpKQorICAgICAgICAsIG1vZGUoTm9uZSkKKyAgICAgICAgLCBwYXJlbnRNb2RlKE5vbmUp
CisgICAgeworICAgIH0KKyAgICBOb2RlKiBub2RlOworICAgIGxvbmcgbG9uZyBkaXN0YW5jZTsK
KyAgICBsb25nIGxvbmcgcGFyZW50RGlzdGFuY2U7CisgICAgUHJlY2VkZW5jZU1vZGUgbW9kZTsK
KyAgICBQcmVjZWRlbmNlTW9kZSBwYXJlbnRNb2RlOworfTsKKworc3RhdGljIGJvb2wgdGFrZXNT
dXBlclByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRSZWN0Jik7CitzdGF0
aWMgYm9vbCB0YWtlc1ByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRSZWN0
Jik7CitzdGF0aWMgbG9uZyBsb25nIHByZWNlZGVuY2VEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiwg
SW50UmVjdCYsIEludFJlY3QmKTsKK3N0YXRpYyBsb25nIGxvbmcgZGlzdGFuY2VJbkRpcmVjdGlv
bihOb2RlKiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBCZXN0Q2FuZGlkYXRlJik7CitzdGF0aWMg
dm9pZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEtl
eWJvYXJkRXZlbnQqLCBCZXN0Q2FuZGlkYXRlJik7CitzdGF0aWMgYm9vbCBpc1JlY3RJbkRpcmVj
dGlvbihGb2N1c0RpcmVjdGlvbiwgSW50UmVjdCwgSW50UmVjdCk7CitzdGF0aWMgaW5saW5lIElu
dFJlY3QgcmVuZGVyUmVjdChSZW5kZXJPYmplY3QqLCBib29sIHVzZVNjcm9sbE9mZnNldCA9IHRy
dWUpOworc3RhdGljIGxvbmcgbG9uZyBzcGF0aWFsRGlzdGFuY2UoRm9jdXNEaXJlY3Rpb24sIElu
dFJlY3QmLCBJbnRSZWN0Jik7CitzdGF0aWMgYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSos
IEZvY3VzRGlyZWN0aW9uKTsKK3N0YXRpYyBib29sIGlzT2Zmc2NyZWVuUmVjdChOb2RlKik7CiAK
IHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGZvY3VzZWQpCiB7CkBAIC0xNDgsNiArMTgzLDI0IEBA
IGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRJbml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBlCiAKIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNl
Rm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9v
bCBpbml0aWFsRm9jdXMpCiB7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZv
Y3VzRGlyZWN0aW9uRm9yd2FyZDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6Cisg
ICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBldmVu
dCwgaW5pdGlhbEZvY3VzKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNl
IEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgIGNh
c2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzRGlyZWN0
aW9uYWxseShkaXJlY3Rpb24sIGV2ZW50KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRm9j
dXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCit7CiAg
ICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJUKGZyYW1l
KTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTI1Miw2
ICszMDUsNzAgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW4KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBGcmFtZSog
ZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworICAgIERv
Y3VtZW50KiBmb2N1c2VkRG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWZv
Y3VzZWREb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZSogZm9jdXNl
ZE5vZGUgPSBmb2N1c2VkRG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2Vk
Tm9kZSkgeworICAgICAgICAvLyBKdXN0IG1vdmUgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBub2Rl
LgorICAgICAgICBGb2N1c0RpcmVjdGlvbiB0YWJEaXJlY3Rpb24gPSAoRm9jdXNEaXJlY3Rpb25V
cCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSA/CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGb2N1c0RpcmVjdGlvbkZvcndhcmQgOiBGb2N1c0RpcmVj
dGlvbkJhY2t3YXJkOworICAgICAgICAvLyAnaW5pdGlhbEZvY3VzJyBpcyBzZXQgdG8gdHJ1ZSBz
byB0aGUgY2hyb21lIGlzIG5vdCBmb2N1c2VkLgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3Vz
SW5Eb2N1bWVudE9yZGVyKHRhYkRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOworICAgIH0KKworICAg
IC8vIE1vdmUgdXAgaW4gdGhlIGNoYWluIG9mIG5lc3RlZCBmcmFtZXMuCisgICAgd2hpbGUgKHRy
dWUpIHsKKyAgICAgICAgRnJhbWUqIHBhcmVudEZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50
KCk7CisgICAgICAgIGlmICghcGFyZW50RnJhbWUgfHwgIXBhcmVudEZyYW1lLT5kb2N1bWVudCgp
KQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZnJhbWUgPSBwYXJlbnRGcmFtZTsKKyAg
ICB9CisKKyAgICBCZXN0Q2FuZGlkYXRlIGJlc3RDYW5kaWRhdGU7CisgICAgbmV4dEluRGlyZWN0
aW9uKGZyYW1lLT5kb2N1bWVudCgpLCBmb2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgYmVz
dENhbmRpZGF0ZSk7CisKKyAgICBOb2RlKiBub2RlID0gYmVzdENhbmRpZGF0ZS5ub2RlOworICAg
IGlmIChub2RlKSB7CisgICAgICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGNyYXp5IGp1bXAgYmV0
d2VlbiBsaW5rcyB0aGF0IGFyZSBlaXRoZXIgZmFyIGF3YXkgZnJvbSBlYWNoIG90aGVyLAorICAg
ICAgICAvLyBvciBqdXN0IG5vdCBjdXJyZW50bHkgdmlzaWJsZSwgbGV0cyBiYWlsIG91dCBpZiB0
aGUgZGVzdGluYXRpb24gZm9jdXNhYmxlIGVsZW1lbnQgaXMKKyAgICAgICAgLy8gbm90IGluIHRo
ZSB2aWV3cG9ydC4KKyAgICAgICAgaWYgKGlzT2Zmc2NyZWVuUmVjdChub2RlKSkgeworICAgICAg
ICAgICAgRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS0+dmlldygpLT5mcmFtZSgpOwor
ICAgICAgICAgICAgc2Nyb2xsSW5EaXJlY3Rpb24oZnJhbWUsIGRpcmVjdGlvbik7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEZyYW1l
KiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOworICAgICAgICBzY3JvbGxJbkRpcmVjdGlv
bihmcmFtZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVl
ZCBhIHdheSB0byBmb2N1cyBhIGRvY3VtZW50IGhlcmUuCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpOwor
CisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGZvY3VzZWREb2N1bWVudCkgeworICAgICAgICAvLyBG
b2N1cyBpcyBnb2luZyBhd2F5IGZyb20gdGhlIG9yaWdpbmFsbHkgZm9jdXNlZCBkb2N1bWVudCwg
c28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KKyAgICAgICAgZm9jdXNlZERvY3VtZW50LT5zZXRG
b2N1c2VkTm9kZSgwKTsKKyAgICB9CisKKyAgICBpZiAobmV3RG9jdW1lbnQpCisgICAgICAgIHNl
dEZvY3VzZWRGcmFtZShuZXdEb2N1bWVudC0+ZnJhbWUoKSk7CisKKyAgICBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4obm9kZSktPmZvY3VzKGZhbHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3Rh
dGljIGJvb2wgcmVsaW5xdWlzaGVzRWRpdGluZ0ZvY3VzKE5vZGUgKm5vZGUpCiB7CiAgICAgQVNT
RVJUKG5vZGUpOwpAQCAtMzU5LDQgKzQ3Niw1MTEgQEAgdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNl
dEFjdGl2ZShib29sIGFjdGl2ZSkKICAgICAgICAgZGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZv
Y3VzZWROb2RlKG1fZm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpLCBhY3RpdmUpOwogfQogCisvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vIEhFTFBFUiBTUEFUSUFMIE5B
VklHQVRJT04gTUVUSE9EUyAvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCisKK3N0YXRpYyB2b2lkIG5leHRJbkRpcmVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIE5v
ZGUqIHN0YXJ0LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50
LCBCZXN0Q2FuZGlkYXRlJiBiZXN0Q2FuZGlkYXRlKQoreworICAgIEFTU0VSVChkb2N1bWVudCk7
CisKKyAgICAvLyBXYWxrIGFsbCB0aGUgY2hpbGQgbm9kZXMgYW5kIHVwZGF0ZSBiZXN0Q2FuZGlk
YXRlIGlmIHdlIGZpbmQgYSBuZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9
IGRvY3VtZW50LT5maXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRl
LT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKworICAgICAgICAvLyBJbm5lciBkb2N1bWVudHMgY2Fz
ZS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAg
ICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRNTEZy
YW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlmICghb3duZXItPmNv
bnRlbnRGcmFtZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBE
b2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQo
KTsKKyAgICAgICAgICAgIGlmICghaW5uZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgaWYgKGlubmVyRG9jdW1lbnQgPT0gc3RhcnQtPmRvY3VtZW50
KCkpCisgICAgICAgICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlubmVyRG9jdW1lbnQsIHN0YXJ0
LCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGlmcmFtZSAob3IgZnJhbWUp
IGVsZW1lbnQgaXRzZWxmIGlzIGEgZ29vZCBjYW5kaWRhdGUgdG8gbW92ZSBmb2N1cyB0by4KKyAg
ICAgICAgICAgICAgICAvLyBJZiBpdCBpcywgdGhlbiB3ZSB0cmF2ZXJzZSBpdHMgaW5uZXIgbm9k
ZXMuCisgICAgICAgICAgICAgICAgLy8gcHM6IGxldHMgcGFzcyBhIGNvcHkgb2YgdGhlIGJlc3Qg
Y2FuZGlkYXRlLCB0byBub3QgZ2V0IGZvb2xlZCBieSBhIGZyYW1lIHcvb3V0CisgICAgICAgICAg
ICAgICAgLy8gZm9jdXNhYmxlIGVsZW1lbnRzLgorICAgICAgICAgICAgICAgIEJlc3RDYW5kaWRh
dGUgYmVzdENhbmRpZGF0ZUNvcHkgPSBiZXN0Q2FuZGlkYXRlOworICAgICAgICAgICAgICAgIGxv
bmcgbG9uZyBkaXN0YW5jZSA9IGRpc3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwg
ZGlyZWN0aW9uLCBiZXN0Q2FuZGlkYXRlQ29weSk7CisgICAgICAgICAgICAgICAgaWYgKGRpc3Rh
bmNlIDwgYmVzdENhbmRpZGF0ZUNvcHkuZGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
YmVzdENhbmRpZGF0ZUNvcHkucGFyZW50TW9kZSA9IGJlc3RDYW5kaWRhdGVDb3B5Lm1vZGU7Cisg
ICAgICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGVDb3B5LnBhcmVudERpc3RhbmNlID0gZGlz
dGFuY2U7CisKKyAgICAgICAgICAgICAgICAgICAgbmV4dEluRGlyZWN0aW9uKGlubmVyRG9jdW1l
bnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBiZXN0Q2FuZGlkYXRlQ29weSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVhbGx5IGhhdmUgYSBpbm5lciBiZXN0IG5vZGUgY2Fu
ZGlkYXRlLCB0YWtlIGl0LgorICAgICAgICAgICAgICAgICAgICBpZiAoYmVzdENhbmRpZGF0ZS5u
b2RlICE9IGJlc3RDYW5kaWRhdGVDb3B5Lm5vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICBi
ZXN0Q2FuZGlkYXRlID0gYmVzdENhbmRpZGF0ZUNvcHk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNhbmRpZGF0ZSAhPSBzdGFydCAmJiBjYW5k
aWRhdGUtPmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpKSB7CisgICAgICAgICAgICBsb25nIGxv
bmcgZGlzdGFuY2UgPSBkaXN0YW5jZUluRGlyZWN0aW9uKHN0YXJ0LCBjYW5kaWRhdGUsIGRpcmVj
dGlvbiwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBiZXN0Q2Fu
ZGlkYXRlLmRpc3RhbmNlKQorICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8IGJlc3RDYW5k
aWRhdGUucGFyZW50RGlzdGFuY2UgfHwgc3RhcnQtPmRvY3VtZW50KCkgIT0gY2FuZGlkYXRlLT5k
b2N1bWVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUubm9kZSA9IGNh
bmRpZGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0ZS5kaXN0YW5jZSA9IGRp
c3RhbmNlOworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQtPmRvY3VtZW50KCkgPT0gY2Fu
ZGlkYXRlLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0
ZS5wYXJlbnREaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIGxvbmcgbG9uZyBk
aXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqIHN0YXJ0LCBOb2RlKiBkZXN0LCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEJlc3RDYW5kaWRhdGUmIGNhbmRpZGF0ZSkKK3sKKyAgICBsb25nIGxvbmcg
ZGlzdGFuY2UgPSBjYW5kaWRhdGUuZGlzdGFuY2U7CisKKyAgICAvLyBJdCBpcyBpbXBvcnRhbnQg
dG8ga25vdyBpZiB3ZSBhcmUgbW92aW5nIGZvY3VzIGZyb20gb25lIGZyYW1lIHRvIGFub3RoZXIu
CisgICAgYm9vbCBpc0Nyb3NzRnJhbWVGb2N1c0NoYW5nZSA9IHN0YXJ0LT5kb2N1bWVudCgpICE9
IGRlc3QtPmRvY3VtZW50KCk7CisKKyAgICBJbnRSZWN0IHN0YXJ0UmVjdCA9IEludFJlY3QoKTsK
KyAgICBJbnRSZWN0IGRlc3RSZWN0ID0gSW50UmVjdCgpOworICAgIFJlbmRlck9iamVjdCogc3Rh
cnRSZW5kZXIgPSAwOworICAgIFJlbmRlck9iamVjdCogZGVzdFJlbmRlciA9IDA7CisKKyAgICBi
b29sIHVzZVNjcm9sbE9mZnNldCA9ICEoaXNPZmZzY3JlZW5SZWN0KHN0YXJ0KSAmJiBpc0Nyb3Nz
RnJhbWVGb2N1c0NoYW5nZSk7CisKKyAgICBzdGFydFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJlcigp
OworICAgIGlmICghc3RhcnRSZW5kZXIpCisgICAgICAgIGdvdG8gZXhpdFBvaW50OworCisgICAg
ZGVzdFJlbmRlciA9IGRlc3QtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFkZXN0UmVuZGVyKQorICAg
ICAgICBnb3RvIGV4aXRQb2ludDsKKworICAgIHN0YXJ0UmVjdCA9IHJlbmRlclJlY3Qoc3RhcnRS
ZW5kZXIsIHVzZVNjcm9sbE9mZnNldCk7CisgICAgZGVzdFJlY3QgID0gcmVuZGVyUmVjdChkZXN0
UmVuZGVyKTsKKworICAgIC8vIFRoZSBib3VuZGluZyByZWN0YW5nbGUgb2YgdHdvIGNvbnNlY3V0
aXZlIGxpbmtzIGNvdWxkIG92ZXJsYXAsIHNvIHdlIGRlY3JlYXNlIHRoZSBzaXplCisgICAgLy8g
b2YgYm90aCByZWN0YW5nbGVzLgorICAgIHN0YXJ0UmVjdC5pbmZsYXRlKC00KTsKKyAgICBkZXN0
UmVjdC5pbmZsYXRlKC00KTsKKworICAgIGlmICghaXNSZWN0SW5EaXJlY3Rpb24oZGlyZWN0aW9u
LCBzdGFydFJlY3QsIGRlc3RSZWN0KSkKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICAv
LyBJZiB0YXJnZXQgdGFrZXMgcHJlY2VkZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5v
dCBhbHdheXMgdGhlIHNob3J0ZXN0CisgICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldAorICAg
IGlmICh0YWtlc1N1cGVyUHJlY2VkZW5jZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3Qp
IHx8IGNhbmRpZGF0ZS5wYXJlbnRNb2RlID09IFN1cGVyUHJlY2VkZW50KSB7CisgICAgICAgIC8v
IHJlc2V0IGRpc3RhbmNlIGFzIHdlIGFyZSBub3cgaW4gc3VwZXIgcHJlY2VkZW5jZSBtb2RlCisg
ICAgICAgIGlmIChjYW5kaWRhdGUubW9kZSAhPSBTdXBlclByZWNlZGVudCkKKyAgICAgICAgICAg
IGRpc3RhbmNlID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CisKKyAgICAgICAg
bG9uZyBsb25nIHByZWNlZGVudERpc3RhbmNlID0gcHJlY2VkZW5jZURpc3RhbmNlKGRpcmVjdGlv
biwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisgICAgICAgIGlmIChkaXN0YW5jZSA+IHByZWNlZGVu
dERpc3RhbmNlKSB7CisgICAgICAgICAgICBjYW5kaWRhdGUubW9kZSA9IFN1cGVyUHJlY2VkZW50
OworICAgICAgICAgICAgcmV0dXJuIHByZWNlZGVudERpc3RhbmNlOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKGNhbmRpZGF0ZS5tb2RlID09IFN1cGVyUHJlY2VkZW50KQorICAgICAgICBn
b3RvIGV4aXRQb2ludDsKKworICAgIC8vIElmIHRhcmdldCB0YWtlcyBwcmVjZWRlbmNlIHRoZW4g
dXNlIGl0IC0gZGlzdGFuY2UgaXMgbm90IGFsd2F5cyB0aGUgc2hvcnRlc3QKKyAgICAvLyBmb3Ig
YSBwcmVjZWRlbnQgdGFyZ2V0CisgICAgaWYgKHRha2VzUHJlY2VkZW5jZShkaXJlY3Rpb24sIHN0
YXJ0UmVjdCwgZGVzdFJlY3QpIHx8IGNhbmRpZGF0ZS5wYXJlbnRNb2RlID09IFByZWNlZGVudCkg
eworICAgICAgICBsb25nIGxvbmcgcHJlY2VkZW50RGlzdGFuY2UgPSBwcmVjZWRlbmNlRGlzdGFu
Y2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKworICAgICAgICBpZiAoZGlzdGFu
Y2UgPiBwcmVjZWRlbnREaXN0YW5jZSkgeworICAgICAgICAgICAgY2FuZGlkYXRlLm1vZGUgPSBQ
cmVjZWRlbnQ7CisgICAgICAgICAgICByZXR1cm4gcHJlY2VkZW50RGlzdGFuY2U7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoY2FuZGlkYXRlLm1vZGUgPT0gUHJlY2VkZW50KQorICAgICAg
ICBnb3RvIGV4aXRQb2ludDsKKworICAgIHJldHVybiBzcGF0aWFsRGlzdGFuY2UoZGlyZWN0aW9u
LCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKworZXhpdFBvaW50OgorICAgIHJldHVybiBudW1lcmlj
X2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKK30KKworLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24g
aXMgZmxhd2VkIGJlY2F1c2UgaXQgZG9lc24ndCBjb25zaWRlciB0aGUgZWZmZWN0cyBvZiBDU1Mg
b3IgU1ZHIHRyYW5zZm9ybXMuCitzdGF0aWMgaW5saW5lIEludFJlY3QgcmVuZGVyUmVjdChSZW5k
ZXJPYmplY3QqIHJlbmRlciwgYm9vbCB1c2VTY3JvbGxPZmZzZXQpCit7CisgICAgQVNTRVJUKHJl
bmRlcik7CisKKyAgICBGbG9hdFBvaW50IHBvaW50KHJlbmRlci0+bG9jYWxUb0Fic29sdXRlKCkp
OworCisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0
KCkpOworCisgICAgLy8gVGhlcmUgYXJlIGNhc2VzLCBtb3N0bHkgd2hlbiB8cmVuZGVyfCdzIGFz
c29jaWF0ZWQgbm9kZSBpcyBvZmZzY3JlZW4sCisgICAgLy8gaXQgaXMgc2FmaWVyIHRvIGdldCBp
dHMgcG9zaXRpb24gcmVnYXJkbGVzcyB0aGUgY29udGFpbmVyIHNjcm9sbCBvZmZzZXQuCisgICAg
aWYgKHVzZVNjcm9sbE9mZnNldCkKKyAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
cmVuZGVyLT5ub2RlKCktPmRvY3VtZW50KCktPnZpZXcoKSkKKyAgICAgICAgICAgIHJlY3QubW92
ZSgtZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKSk7CisKKyAgICAvLyBoYW5kbGUgbmVzdGVkIGZy
YW1lcy4KKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHJlbmRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCisgICAgICAgIGlmIChI
VE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1lbnQo
KSkKKyAgICAgICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPm9mZnNldExlZnQoKSwgb3du
ZXJFbGVtZW50LT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVjdDsKK30KKworLy8gLS0g
Z3JhYmJlZCBmcm9tIE1JQ1JPQiBleGNlcHRlZCBieSBVUHxET1dOIGxvZ2ljLgorc3RhdGljIGJv
b2wgaXNSZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbnRSZWN0IHN0
YXJ0UmVjdCwgSW50UmVjdCBkZXN0UmVjdCkKK3sKKyAgICBpbnQgbWlkZGxlID0gMDsKKworICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAg
ICAgIG1pZGRsZSA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7Cisg
ICAgICAgIHJldHVybiAobWlkZGxlIDwgc3RhcnRSZWN0LngoKSk7CisgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvblJpZ2h0OgorICAgICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJl
Y3Qud2lkdGgoKSkgLyAyOworICAgICAgICByZXR1cm4gKG1pZGRsZSAgPiBzdGFydFJlY3QueCgp
ICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKSk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwIDoK
KyAgICAgICAgcmV0dXJuIChkZXN0UmVjdC55KCkgPCBzdGFydFJlY3QueSgpKTsKKyAgICBjYXNl
IEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIChkZXN0UmVjdC55KCkgKyBhYnMo
ZGVzdFJlY3QuaGVpZ2h0KCkpID4gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0
KCkpKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIENoZWNrcyBpZiB8bm9kZXwgaXMgaW4gdGhl
IHZpc2libGUgYXJlYSAodmlld3BvcnQpIG9mIGl0cyBjb250YWluZXIgZG9jdW1lbnQuCitzdGF0
aWMgYm9vbCBpc09mZnNjcmVlblJlY3QoTm9kZSogbm9kZSkKK3sKKyAgICAvLyBHZXQgdGhlIGN1
cnJlbnQgdmlld3BvcnQgcmVjdCBzbyB3ZSBjYW4gY2hlY2sgaWYgYmVzdENhbmRpZGF0ZSdzIHJl
Y3QKKyAgICAvLyBpcyB2aXNpYmxlIGJlZm9yZSBhY3R1YWxseSBtb3ZpbmcgdGhlIGZvY3VzIHRv
IGl0LiBJbiBjYXNlIGl0IGlzIG5vdCB2aXNpYmxlLAorICAgIC8vIHdlIHNjcm9sbCBpbiBkaXJl
Y3Rpb24gbGF0ZXIgb24gaW5zdGVhZC4KKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG5vZGUt
PmRvY3VtZW50KCktPnZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICBJbnRSZWN0IGNvbnRhaW5lclZpZXdwb3J0UmVjdCA9IGZyYW1lVmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlciA9IG5vZGUt
PnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXIpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgSW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOwor
CisgICAgcmV0dXJuICFjb250YWluZXJWaWV3cG9ydFJlY3QuaW50ZXJzZWN0cyhyZWN0KTsKK30K
KworLy8gSW4gYSBib3R0b20tdXAgd2F5LCB0aGlzIG1ldGhvZCB0cmllcyB0byBzY3JvbGwgfGZy
YW1lfCBpbiBhIGdpdmVuIGRpcmVjdGlvbgorLy8gfGRpcmVjdGlvbnwsIGdvaW5nIHVwIGluIHRo
ZSBmcmFtZSB0cmVlIGhpZXJhcmNoeSBpbiBjYXNlIGl0IGRvZXMgbm90IHN1Y2NlZWQuCitzdGF0
aWMgYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbikKK3sKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvLyBMZWF2ZSB0aGUgZm9jdXMgb24gdGhlIHNhbWUgbm9kZSBidXQgc2Nyb2xsLgorICAgIFNj
cm9sbERpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb247CisKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikg
eworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24g
PSBTY3JvbGxMZWZ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmln
aHQ6CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbFJpZ2h0OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9
IFNjcm9sbFVwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoK
KyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsRG93bjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zY3Jv
bGxSZWN1cnNpdmVseShzY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEJ5TGluZSk7Cit9CisKKy8vIFRo
aXMgbWV0aG9kIGNoZWNrcyBmb3IgdmVyeSBwcmVmZXJhYmxlIHJlY3QgdG8gbW92ZSBmb2N1cyB0
by4gSW4gZXNzZW5jZSB0YXJnZXRzCisvLyB3aG9zZSBtaWRkbGUgZmFsbHMgYmV0d2VlbiB0aGUg
dG9wIG9yIGJvdHRvbSBvZiB0aGUgY3VycmVudCByZWN0Lgorc3RhdGljIGJvb2wgdGFrZXNTdXBl
clByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBJbnRSZWN0JiBzdGFydFJlY3Qs
IEludFJlY3QmIGRlc3RSZWN0KQoreworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rp
b25MZWZ0IHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0KSB7CisgICAgICAgIGlu
dCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSAvIDI7
CisgICAgICAgIGludCBkZXN0Qm90dG9tID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0Lmhl
aWdodCgpKTsKKyAgICAgICAgaW50IGRlc3RFbmQgICAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVz
dFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaW50IHN0YXJ0Qm90dG9tID0gc3RhcnRSZWN0Lnko
KSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpOworICAgICAgICBpbnQgc3RhcnRFbmQgICAgPSBz
dGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKTsKKworICAgICAgICBpZiAoZGly
ZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCAmJiBkZXN0RW5kID4gc3RhcnRSZWN0LngoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoZGlyZWN0aW9uID09IEZv
Y3VzRGlyZWN0aW9uUmlnaHQgJiYgZGVzdFJlY3QueCgpIDwgc3RhcnRFbmQpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICgoZGVzdFJlY3QueSgpID49IHN0YXJ0
UmVjdC55KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwg
IChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRv
bSkKKyAgICAgICAgICAgIHx8ICAoZGVzdEJvdHRvbSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RC
b3R0b20gPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICB8fCAgKGRlc3RSZWN0LnkoKSA9PSBz
dGFydFJlY3QueSgpKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID09IHN0YXJ0Qm90dG9t
KQorICAgICAgICAgICAgfHwgIChkZXN0UmVjdC55KCkgPD0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0
Qm90dG9tID49IHN0YXJ0Qm90dG9tKSk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvblVwIHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsKKyAg
ICAgICAgaW50IHN0YXJ0RW5kICAgPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0
aCgpKTsKKyAgICAgICAgaW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJl
Y3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgZGVzdEVuZCAgICA9IGRlc3RSZWN0LngoKSAr
IGFicyhkZXN0UmVjdC53aWR0aCgpKTsKKworICAgICAgICBpZiAoZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uVXAgJiYgZGVzdFJlY3QueSgpID4gc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9u
RG93biAmJiBkZXN0UmVjdC55KCkgPCBzdGFydFJlY3QueSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgICAgIHJldHVybiAoKGRlc3RNaWRkbGUgPj0gc3RhcnRSZWN0LngoKSAm
JiBkZXN0TWlkZGxlIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAgfHwgIChkZXN0UmVjdC54KCkg
Pj0gc3RhcnRSZWN0LngoKSAmJiBkZXN0UmVjdC54KCkgPD0gc3RhcnRFbmQpCisgICAgICAgICAg
ICB8fCAgKHN0YXJ0UmVjdC54KCkgPT0gZGVzdFJlY3QueCgpKQorICAgICAgICAgICAgfHwgIChz
dGFydEVuZCA9PSBkZXN0RW5kKQorICAgICAgICAgICAgfHwgIChkZXN0RW5kID49IHN0YXJ0UmVj
dC54KCkgJiYgZGVzdEVuZCA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3Qu
eCgpIDw9IHN0YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA+PSBzdGFydEVuZCkpOworICAgIH0KKwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgdGFrZXNQcmVjZWRlbmNlKEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVj
dCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rp
b24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBpbnQgbWluWSA9IHN0YXJ0UmVj
dC55KCkgLyogLSBoYWxmICovOworICAgICAgICBpbnQgbWF4WSA9IHN0YXJ0UmVjdC55KCkgKyBh
YnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvKiArIGhhbGYgKi87CisgICAgICAgIGludCBzdGFydEJv
dHRvbSA9IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKworICAgICAg
ICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkg
LyAyOworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVj
dC5oZWlnaHQoKSk7CisKKyAgICAgICAgcmV0dXJuICgoZGVzdFJlY3QueSgpID49IG1pblkgJiYg
ZGVzdFJlY3QueSgpIDw9IG1heFkpCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPj0gbWlu
WSAmJiBkZXN0Qm90dG9tIDw9IG1heFkpCisgICAgICAgICAgICB8fCAgKGRlc3RNaWRkbGUgPj0g
c3RhcnRSZWN0LnkoKSAmJiBkZXN0TWlkZGxlIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAg
fHwgIChkZXN0UmVjdC55KCkgPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0UmVjdC55KCkgPD0gc3Rh
cnRCb3R0b20pCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0LnkoKSAm
JiBkZXN0Qm90dG9tIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0UmVjdC55
KCkgPD0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9tID49IHN0YXJ0Qm90dG9tKSk7CisgICAg
fQorCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwIHx8IGRpcmVjdGlvbiA9
PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsKKyAgICAgICAgaW50IG1pblggPSBzdGFydFJlY3QueCgp
IC8qIC0gaGFsZiAqLzsKKyAgICAgICAgaW50IG1heFggPSBzdGFydFJlY3QueCgpICsgYWJzKHN0
YXJ0UmVjdC53aWR0aCgpKSAvKiArIGhhbGYgKi87CisKKyAgICAgICAgaW50IGRlc3RFbmQgPSBk
ZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgcmV0dXJuICgo
ZGVzdFJlY3QueCgpID49IG1pblggJiYgZGVzdFJlY3QueCgpIDw9IG1heFgpCisgICAgICAgICAg
ICAgfHwgKGRlc3RFbmQgPj0gbWluWCAmJiBkZXN0RW5kIDw9IG1heFgpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIHNxcnQoKCh4MSAtIHgyKSBeIDIpICsgKCh5MSAtIHky
KSBeIDIpKQorc3RhdGljIGxvbmcgbG9uZyBwcmVjZWRlbmNlRGlzdGFuY2UoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBJbnRSZWN0JiBzdGFydFJlY3QsIEludFJlY3QmIGRlc3RSZWN0KQorewor
ICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgp
OworICAgIGxvbmcgbG9uZyBzZWMgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsK
KworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7CisgICAgICAgIGlu
dCBzdGFydFggPSBzdGFydFJlY3QueCgpOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0
LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9
IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKTsKKyAgICAgICAgaW50IGRlc3RZ
ICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworCisgICAgICAg
IGxvbmcgbG9uZyBwID0gKChzdGFydFggLSBkZXN0WCkgKiAoc3RhcnRYIC0gZGVzdFgpKSArICgo
c3RhcnRZIC0gZGVzdFkpICogKGRlc3RZIC0gZGVzdFkpKTsKKyAgICAgICAgc2VjID0gc3FydChw
KTsKKworICAgICAgICBwID0gKChzdGFydFJlY3QueCgpIC0gZGVzdFJlY3QueCgpKSAqIChzdGFy
dFJlY3QueCgpIC0gZGVzdFJlY3QueCgpKSkgKyAoKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55
KCkpICogKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpKTsKKyAgICAgICAgZGlzdGFuY2Ug
PSBzcXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueSgp
ID09IGRlc3RSZWN0LnkoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKwor
ICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBpbnQg
c3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisgICAgICAg
IGludCBzdGFydFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyAy
OworICAgICAgICBpbnQgZGVzdFggID0gZGVzdFJlY3QueCgpOworICAgICAgICBpbnQgZGVzdFkg
ID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSAvIDI7CisKKyAgICAgICAg
bG9uZyBsb25nIHAgPSAoKGRlc3RYIC0gc3RhcnRYKSAqIChkZXN0WCAtIHN0YXJ0WCkpICsgKChk
ZXN0WSAtIHN0YXJ0WSkgKiAoZGVzdFkgLSBzdGFydFkpKTsKKyAgICAgICAgc2VjID0gc3FydChw
KTsKKworICAgICAgICBwID0gKChkZXN0UmVjdC54KCkgLSBzdGFydFJlY3QueCgpKSAqIChkZXN0
UmVjdC54KCkgLSBzdGFydFJlY3QueCgpKSkgKyAoKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55
KCkpICogKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkpKTsKKyAgICAgICAgZGlzdGFuY2Ug
PSBzcXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueSgp
ID09IGRlc3RSZWN0LnkoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKwor
ICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCkgeworICAgICAgICBpbnQgc3Rh
cnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAg
ICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKTsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RS
ZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSA9
IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAgbG9uZyBs
b25nIHAgPSAoKHN0YXJ0WCAtIGRlc3RYKSAqIChzdGFydFggLSBkZXN0WCkpICsgKChzdGFydFkg
LSBkZXN0WSkgKiAoc3RhcnRZIC0gZGVzdFkpKTsKKyAgICAgICAgc2VjID0gc3FydChwKTsKKwor
ICAgICAgICBwID0gKChzdGFydFJlY3QueCgpIC0gZGVzdFJlY3QueCgpKSAqIChzdGFydFJlY3Qu
eCgpIC0gZGVzdFJlY3QueCgpKSkgKyAoKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpICog
KHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpKTsKKworICAgICAgICBkaXN0YW5jZSA9IHNx
cnQocCk7CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC54KCkgPT0g
ZGVzdFJlY3QueCgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisKKyAgICAgICAgc2Vj
ID0gKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpOworCisgICAgICAgIGlmIChzZWMgPCBk
aXN0YW5jZSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKworICAgIGlmIChk
aXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIC8vIGdldCBtaWRkbGUg
WCBmb3IgY3VycmVudCBhbmQgdGFyZ2V0IHJlY3RzCisgICAgICAgIGludCBzdGFydFggPSBzdGFy
dFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBzdGFy
dFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAg
ICBpbnQgZGVzdFggID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsK
KyAgICAgICAgaW50IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQo
KSkgLyAyOworCisgICAgICAgIGxvbmcgbG9uZyBwID0gKChkZXN0WCAtIHN0YXJ0WCkgKiAoZGVz
dFggLSBzdGFydFgpKSArICgoZGVzdFkgLSBzdGFydFkpICogKGRlc3RZIC0gc3RhcnRZKSk7Cisg
ICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoZGVzdFJlY3QueCgpIC0gc3Rh
cnRSZWN0LngoKSkgKiAoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkpICsgKChkZXN0UmVj
dC55KCkgLSBzdGFydFJlY3QueSgpKSAqIChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKSk7
CisgICAgICAgIGRpc3RhbmNlID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFu
Y2UgJiYgc3RhcnRSZWN0LngoKSA9PSBkZXN0UmVjdC54KCkpCisgICAgICAgICAgICBkaXN0YW5j
ZSA9IHNlYzsKKworICAgICAgICBzZWMgPSAoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSk7
CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBz
ZWM7CisgICAgfQorCisgICAgcmV0dXJuIGFicyhkaXN0YW5jZSk7Cit9CisKK3N0YXRpYyBsb25n
IGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYg
YSwgSW50UmVjdCYgYikKK3sKKyAgICBpbnQgeDEgPSAwLCB5MSA9IDAsIHgyID0gMCwgeTIgPSAw
OworCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpIHsKKyAgICAgICAg
Ly8gIHwtLS18CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAgfC0t
LXwgIHwtLS18CisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAg
Ly8gIHwtLS18CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLworICAgICAgICBpZiAoYS55
KCkgPiBiLnkoKSArIGIuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMg
YWJvdmUgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgICAgICB5MSA9IGEueSgp
OworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0g
Yi55KCkgKyBiLmhlaWdodCgpOworICAgICAgICB9IGVsc2UgaWYgKGEueSgpICsgYS5oZWlnaHQo
KSA8IGIueSgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGJlbG93IGEuCisgICAg
ICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKSArIGEuaGVpZ2h0KCk7
CisgICAgICAgICAgICB4MiA9IGIueCgpICsgYi53aWR0aCgpOworICAgICAgICAgICAgeTIgPSBi
LnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAg
ICAgICB5MSA9IDA7CisgICAgICAgICAgICB4MiA9IGIueCgpICsgYi53aWR0aCgpOworICAgICAg
ICAgICAgeTIgPSAwOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9j
dXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8v
ICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAg
ICAgICAvLyAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgfC0t
LXwKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLworICAgICAgICBpZiAoYS55
KCkgPiBiLnkoKSArIGIuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMg
YWJvdmUgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCkgKyBhLndpZHRoKCk7CisgICAgICAgICAg
ICB5MSA9IGEueSgpOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0g
Yi55KCkgKyBiLmhlaWdodCgpOworICAgICAgICB9IGVsc2UgaWYgKGEueSgpICsgYS5oZWlnaHQo
KSA8IGIueSgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGJlbG93IGEuCisgICAg
ICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKSAr
IGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpOworICAgICAgICAgICAgeTIgPSBi
LnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHgxID0gYS54KCkgKyBhLndpZHRo
KCk7CisgICAgICAgICAgICB5MSA9IDA7CisgICAgICAgICAgICB4MiA9IGIueCgpOworICAgICAg
ICAgICAgeTIgPSAwOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9j
dXNEaXJlY3Rpb25VcCkgeworICAgICAgICAvLyAgfC0tLXwgIHwtLS18ICB8LS0tfAorICAgICAg
ICAvLyAgfC0tLXwgIHwtLS18ICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAg
IHwtLS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYg
KGEueCgpID4gYi54KCkgKyBiLndpZHRoKCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3Qg
aXMgdG8gdGhlIGxlZnQgb2YgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgICAg
ICB5MSA9IGEueSgpOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAg
ICAgICAgIHkyID0gYi55KCkgKyBiLmhlaWdodCgpOworICAgICAgICB9IGVsc2UgaWYgKGEueCgp
ICsgYS53aWR0aCgpIDwgYi54KCkpIHsKKyAgICAgICAgICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8g
dGhlIHJpZ2h0IG9mIGEKKyAgICAgICAgICAgIHgxID0gYS54KCkgKyBhLndpZHRoKCk7CisgICAg
ICAgICAgICB5MSA9IGEueSgpOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAg
IHkyID0gYi55KCkgKyBiLmhlaWdodCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
Ly8gYm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHgncy4KKyAgICAgICAgICAgIHgxID0g
MDsKKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAgICAgICB4MiA9IDA7CisgICAgICAg
ICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAo
ZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAgICAvLyAgICAgICAgIHwt
LS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwt
LS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAg
ICAgLy8KKyAgICAgICAgaWYgKGEueCgpID4gYi54KCkgKyBiLndpZHRoKCkpIHsKKyAgICAgICAg
ICAgIC8vIHRoZSBiIHJlY3QgaXMgdG8gdGhlIGxlZnQgb2YgYS4KKyAgICAgICAgICAgIHgxID0g
YS54KCk7CisgICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAg
IHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAg
ICB9IGVsc2UgaWYgKGEueCgpICsgYS53aWR0aCgpIDwgYi54KCkpIHsKKyAgICAgICAgICAgIC8v
IHRoZSBiIHJlY3QgaXMgdG8gdGhlIHJpZ2h0IG9mIGEKKyAgICAgICAgICAgIHgxID0gYS54KCkg
KyBhLndpZHRoKCk7CisgICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAg
ICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgLy8gYm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHgncy4K
KyAgICAgICAgICAgIHgxID0gMDsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgp
OworICAgICAgICAgICAgeDIgPSAwOworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGxvbmcgbG9uZyBkID0gKCh4MSAtIHgyKSAqICh4MSAtIHgyKSkgKyAo
KHkxIC0geTIpICogKHkxIC0geTIpKTsKKyAgICBpZiAoZCA8IDApCisgICAgICAgIGQgKj0gKC0x
KTsKKworICAgIHJldHVybiBkOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmgKaW5kZXggZDg2NDA4YS4uMzhjMDhjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
aApAQCAtNTgsNiArNTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgaXNG
b2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KIAogICAgIHByaXZhdGU6Cisg
ICAgICAgIGJvb2wgYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCopOworICAgICAgICBib29sIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihG
b2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsKKwogICAg
ICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbV9mb2N1c2VkRnJhbWU7
CiAgICAgICAgIGJvb2wgbV9pc0FjdGl2ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1
c0RpcmVjdGlvbi5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKaW5kZXggMjYxYzc0
NS4uNTUxYzcyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKKysr
IGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgKQEAgLTI5LDcgKzI5LDExIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVjdGlvbiB7CiAgICAgICAgIEZvY3Vz
RGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25VcCwK
KyAgICAgICAgRm9jdXNEaXJlY3Rpb25Eb3duLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkxlZnQs
CisgICAgICAgIEZvY3VzRGlyZWN0aW9uUmlnaHQKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRl
eCAzODczYzg5Li41YjlkNmM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTY0LDYgKzY0LDcgQEAgU2V0dGlu
Z3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXpl
KG51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90
YSg1ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCiAgICAg
LCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkp
CisgICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0ph
dmFFbmFibGVkKGZhbHNlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2Up
CiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCkBAIC0yMzcsNiArMjM4LDEx
IEBAIHZvaWQgU2V0dGluZ3M6OnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJv
b2wgYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tCiAgICAgbV9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMcyA9IGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOwogfQogCit2b2lk
IFNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBpc1NwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCkKK3sKKyAgICBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkID0gaXNT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldEphdmFFbmFi
bGVkKGJvb2wgaXNKYXZhRW5hYmxlZCkKIHsKICAgICBtX2lzSmF2YUVuYWJsZWQgPSBpc0phdmFF
bmFibGVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCA5ZjAwYjBkLi4zZmIzOWJkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMTEzLDYg
KzExMyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwogICAgICAgICBib29sIGphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7IHJldHVybiBtX2phdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7IH0KIAorICAgICAgICB2b2lkIHNldFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKKyAgICAgICAgYm9vbCBpc1NwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZCgpIHsgcmV0dXJuIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7IH0KKwog
ICAgICAgICB2b2lkIHNldEphdmFFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGlzSmF2YUVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSmF2YUVuYWJsZWQ7IH0KIApAQCAtMjk4LDYgKzMw
MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc2l6ZV90IG1fbWF4aW11bURlY29k
ZWRJbWFnZVNpemU7CiAgICAgICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7CisgICAgICAgIGJvb2wgbV9pc1Nw
YXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVk
IDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA6IDE7CiAgICAg
ICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkIDogMTsKLS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47592</attachid>
            <date>2010-01-27 22:29:55 -0800</date>
            <delta_ts>2010-01-28 11:59:59 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v10++)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>91709</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAxYzU5MDA5N2ZhY2E2YTlmNDhjNjQ4YTIyMTEzYjljMGY0ZDZhYThlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBKYW4gMjAxMCAxMToyNDoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpXZWJDb3JlOgoKVGhpcyBwYXRjaCBpbXBs
ZW1lbnRzIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJl
IFsxXS4KSXQgaW1wcm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5
IGV4dGVuZGluZyB0aGUgYmFzaWMga2V5Ym9hcmQKbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxh
YmxlIChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCmFkZGl0aW9u
IG9mIGEgZGlyZWN0aW9uYWwgYmFzZWQgbmF2aWdhdGlvbiwgd2hlcmUgZm9jdXNhYmxlIGVsZW1l
bnRzIGFyZSBhY2Nlc3NpYmxlCmJhc2VkIG9uIHRoZWlyIHNwYXRpYWwgbG9jYXRpb24gaW4gYSBX
ZWIgUGFnZSwgbm90IG9uIGl0cyBUYWIgaW5kZXggdmFsdWUuCgpIaWdobGlnaHRzOgoqIEZlYXR1
cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluICdTZXR0aW5ncycuIFBvcnQgc3BlY2lmaWMg
QVBJcyBuZWVkIHRvIGJlIGFkZGVkCiAgZm9yIHRvZ2dsZSBpdCBvbiBhbmQgb2ZmLgoqIE9ubHkg
ZWxlbWVudHMgdmlld2VkIGluIHRoZSBjdXJyZW50IHZpZXdwb3J0IGNhbiBoYXZlIGZvY3VzIG1v
dmUgdG8gaXQuIElmIHRoZXJlIGlzCiAgbm90IGFueSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBh
Y3Rpb24gaXMgcGVyZm9ybWVkLgoqIFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9uIFF0J3Mg
RFJUIG9ubHkgZm9yIG5vdyAoc2tpcHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCgpLbm93biBp
c3N1ZXMgKHRvIGJlIGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgoqIEFkZCBwb3J0IHNwZWNp
ZmljIGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRp
b24uCiogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgoqIElmcmFtZXMgd2l0
aCBzY3JvbGxhYmxlIGNvbnRlbnQgbmVlZHMgYmV0dGVyIHN1cHBvcnQuCiogTWFrZSBuYXZpZ2F0
aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkgd29ya3Mgd2l0aCBhcnJvd3Mga2V5
cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCkuCiogTWFrZSBpdCBzdXBwb3J0IG1v
ZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0gaHR0cDovL2VuLndpa2lwZWRpYS5v
cmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KClRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbAogICAgICAgZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbAogICAgICAgZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKICAgICAgIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0
bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAg
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBB
ZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlv
bi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1
bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIuaDoKKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CihXZWJDb3JlOjopOgooV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVz
dENhbmRpZGF0ZSk6CihXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKFdl
YkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6cmVuZGVyUmVjdCk6CihXZWJD
b3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CihXZWJDb3JlOjp0YWtlc1ByZWNlZGVuY2UpOgoo
V2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6
CihXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CihXZWJDb3JlOjppc09mZnNjcmVlblJlY3Qp
OgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CiogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2Vi
Q29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoKKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5n
cyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBw
YWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQpOgoKTGF5b3V0VGVzdHM6CgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0
bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13
aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiog
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwu
aHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDog
QWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCiogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRl
ZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwg
ICAgICAgfCAgIDEwICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbCAgICAgIHwgICAgNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUzLmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lNC5odG1sICAgICAgfCAgICA4ICsKIC4uLi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKwogLi4uL3NuYXYtaWZyYW1lLW5v
LWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCAgfCAgICA3ICsKIC4uLi9zbmF2LWlmcmFt
ZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sICAgICAgICAgIHwgICA1OCArKwogLi4uL3NuYXYt
aWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQgfCAgIDE3ICsKIC4uLi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwgICA2OSArKysK
IC4uLmUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IHwgICAx
NCArCiAuLi5hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbCB8
ICAgNjYgKysKIC4uLi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgICAgICAgICAg
ICAgIHwgICAxNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
Lmh0bWwgICB8ICAgODggKysrCiAuLi4vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3Rl
ZC50eHQgICAgICAgICB8ICAgMjAgKwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRt
bCAgICAgICAgICAgICAgICAgfCAgIDkzICsrKwogLi4udC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQgfCAgICA2ICsKIC4uLnNuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIHwgICA5NiArKysKIC4uLi9zbmF2LXZlcnRpY2Fs
LXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgICAgIHwgICAxOSArCiAuLi4vc25hdi12ZXJ0
aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgICB8ICAgODEgKysrCiAuLi4vc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAg
ICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgMyArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNzIgKysrCiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24v
bGlua3MuaHRtbCB8ICAgIDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0
bWwgICAgICAgICAgICAgfCAgMTM1ICsrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICA2MjQgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDYgKy0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKwogMzUgZmlsZXMgY2hhbmdlZCwgMTgyNiBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291
cmNlcy9pZnJhbWU0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Ny
b2xsYWJsZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9j
dXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2Ny
ZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZl
cnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXRlc3QtY2FzZXMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNzZhNDZhLi5mZDBhNzA0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTAtMDEtMjUgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRl
bmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZv
Y3VzYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1l
LXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWw6IEFkZGVkLgor
CiAyMDEwLTAxLTI3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1ZjE3MTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorICA8Ym9keT4KKyAg
ICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT48YnI+CisgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmM8
L2E+PGJyPgorICAgIDxhIGlkPSIzIiBocmVmPSJhIj5kPC9hPjxicj4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW4tbGVmdDo4MHB4IiA+CisgICAgICA8YSBpZD0iNyIgaHJlZj0iYSI+ZTwvYT4KKyAg
ICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTk3YzAyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jl
c291cmNlcy9pZnJhbWUyLmh0bWwKQEAgLTAsMCArMSw3IEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGEgaWQ9IjQiIGhyZWY9ImEiPmc8L2E+CisgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPmg8L2E+
CisgICAgPGEgaWQ9IjYiIGhyZWY9ImEiPmk8L2E+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDFhZDlmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCkBAIC0wLDAgKzEsOCBA
QAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSIxIiBocmVmPSJhIj5iPC9hPgorICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmQ8
L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWU0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmNDhmZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+CisgIDxi
b2R5PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPHA+VGhpcyBm
cmFtZSBoYXMgc29tZSB0ZXh0IGFuZCBubyBmb2N1c2FibGUgZWxlbWVudCAuLi48L2E+CisgICAg
PC9kaXY+CisgICAgPHA+Li4uIGFuZCBzb21lIG1vcmUgdGV4dCAuLi48L2E+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwt
c3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wMzcwMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK3Rlc3QKK0jCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgb3cgTm93IEJyb3duIENvdwor
SG/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqAg
dyBOb3cgQnJvd24gQ293CitIb3cgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqDCoMKgwqDCoCBOb3cgQnJvd24gQ293CitIb3cgTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqAgwqAgwqDCoCBvdyBCcm93biBDb3cKK0hvdyBObyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqDCoCB3IEJyb3duIENvdworSG93IE5v
dyDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoMKgIEJyb3du
IENvdworSG93IE5vdyBCIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDC
oCDCoMKgIHJvd24gQ293CitIb3cgTm93IEJyIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgwqAgb3duIENvdworSG93IE5vdyBCcm8gwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCB3biBDb3cKK0hvdyBOb3cgQnJvd8KgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG4g
Q293CitIb3cgTm93IEJyb3duIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoMKgwqAgQ293CitIb3cgTm93IEJyb3duIEMgwqAgwqDCoMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgb3cKK0hvdyBOb3cgQnJvd24gQ28gwqDCoMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgdworSG93IE5vdyBCcm93biBDb3cK
KwordGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTAiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMiIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjExIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTMiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNCIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE2IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTUiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNyIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE4IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjAiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjUiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2Vk
ZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5iN2ZhMjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVu
Y2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgor
ICAgIChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4g
dGhlIHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5
IHRvIG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBz
dXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBz
OgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRp
Y2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1
cCBvciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVu
IHRoZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBh
bGlnbmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2
YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiUmlnaHQiLCAi
MiJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiTGVmdCIsICIzIl0sCisgICAgICBb
IkRvd24iLCAiNSJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIkRvd24iLCAiOCJd
LAorICAgICAgWyJMZWZ0IiwgIjciXSwKKyAgICAgIFsiRG93biIsICI5Il0sCisgICAgICBbIlJp
Z2h0IiwgIjEwIl0sCisgICAgICBbIkRvd24iLCAiMTIiXSwKKyAgICAgIFsiTGVmdCIsICIxMSJd
LAorICAgICAgWyJEb3duIiwgIjEzIl0sCisgICAgICBbIlJpZ2h0IiwgIjE0Il0sCisgICAgICBb
IkRvd24iLCAiMTYiXSwKKyAgICAgIFsiTGVmdCIsICIxNSJdLAorICAgICAgWyJEb3duIiwgIjE3
Il0sCisgICAgICBbIlJpZ2h0IiwgIjE4Il0sCisgICAgICBbIkRvd24iLCAiMjAiXSwKKyAgICAg
IFsiTGVmdCIsICIxOSJdLAorICAgICAgWyJEb3duIiwgIjIxIl0sCisgICAgICBbIlJpZ2h0Iiwg
IjIyIl0sCisgICAgICBbIkRvd24iLCAiMjQiXSwKKyAgICAgIFsiTGVmdCIsICIyMyJdLAorICAg
ICAgWyJEb3duIiwgIjI1Il0sCisgICAgICBbIlJpZ2h0IiwgIjI2Il0sCisgICAgICBbIkRvd24i
LCAiMjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0K
KyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5n
IHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRh
YmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93
Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxhIGlkPSIxIiBo
cmVmPSJhIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBpZD0iMiIgaHJlZj0icCI+b3cgTm93IEJyb3duIENv
dzwvYT48YnI+CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI0IiBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJy
PgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5Ib3c8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjYiIGhyZWY9
InAiPk5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSI3IiBocmVmPSJhIj5Ib3cgTjwv
YT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyA8YSBpZD0iOCIgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0i
OSIgaHJlZj0iYSI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxMCIgaHJlZj0icCI+dyBCcm93biBDb3c8
L2E+PGJyPgorICAgIDxhIGlkPSIxMSIgaHJlZj0iYSI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBp
ZD0iMTIiIGhyZWY9InAiPkJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjEzIiBocmVmPSJh
Ij5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjE0IiBocmVmPSJwIj5yb3duIENvdzwvYT48YnI+Cisg
ICAgPGEgaWQ9IjE1IiBocmVmPSJhIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTYiIGhyZWY9InAiPm93
biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxNyIgaHJlZj0iYSI+SG93IE5vdyBCcm88L2E+ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlk
PSIxOCIgaHJlZj0icCI+d24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTkiIGhyZWY9ImEiPkhv
dyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjIwIiBocmVmPSJwIj5uIENvdzwv
YT48YnI+CisgICAgPGEgaWQ9IjIxIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duPC9hPiAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
IDxhIGlkPSIyMiIgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgICA8YSBpZD0iMjMiIGhyZWY9ImEi
PkhvdyBOb3cgQnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMjQiIGhyZWY9InAiPm93PC9hPjxicj4KKyAg
ICA8YSBpZD0iMjUiIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjI2IiBo
cmVmPSJwIj53PC9hPjxicj4KKyAgICA8YSBpZD0iMjciIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24g
Q293PC9hPjxicj48YnI+CisgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+dGVzdDxicj48L2E+Cisg
ICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZy
YW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU2NjRh
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACithCisKKworZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
aWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTNjYjUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVu
c3VyZXMgdGhlIGJhc2ljIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2
aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBpZnJhbWVzIHdpdGhvdXQKKyAgICBhbnkgZm9jdXNh
YmxlIGNvbnRlbnQgc2hvdWxkIGJlIGlnbm9yZWQuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgZnJvbSAic3RhcnQiIHRvICJl
bmQiIGJ5cGFzc2luZyB0aGUgdHdvIGlmcmFtZXMKKyAgICAgICBpbiBiZXR3ZWVuIHRoZW0sIG9u
Y2UgYm90aCBoYXZlIG5vIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUuCisgIC0tPgorICA8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisg
ICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAi
ICAsICJzdGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBn
ZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsK
KyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0
YXJ0IiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZy
YW1lNC5odG1sIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJh
bWU+PGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lNC5odG1sIiBzY3JvbGxp
bmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmU8
L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9s
bGFibGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2Y5MjhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK2EKKworCithCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQQVNTIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDA4MWNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbApA
QCAtMCwwICsxLDY5IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRo
ZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZp
Z2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlm
cmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAg
IDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0
aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQi
IGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGlu
IHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2lu
ZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0
aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVU
YWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAorICAg
ICAgWyJEb3duIiwgIjMiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAi
ZW5kIl0sCisgICAgICBbIlVwIiwgIjQiXSwKKyAgICAgIFsiUmlnaHQiLCAiNSJdLAorICAgICAg
WyJSaWdodCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgIjciXSwKKyAgICAgIFsiVXAiLCAiMyJd
LAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAgICAgIFsiRE9ORSIs
ICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtz
UHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8v
IHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92
ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisg
ICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAg
ICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1sIj48L2lmcmFtZT48YnI+CisgICAg
PGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUyLmh0bWwiPjwvaWZyYW1lPgorICAgIDxkaXY+
PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3Vz
YWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMzYWEx
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorYQorCitlCitQQVNTIGRvY3VtZW50LmRlZmF1bHRW
aWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0
Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRo
LW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJs
ZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNjOTkz
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1s
CkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMg
dGhlIGJhc2ljIGlmcmFtZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5h
dmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGluIGEKKyAgICA8
aWZyYW1lPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6Cisg
ICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmln
YXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFy
dCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUgZWxlbWVudHMg
aW4gdGhlIHR3byBpZnJhbWVzIGluIHRoZQorICAgICAgIFdlYiBwYWdlLCBldmVudHVhbGx5IGdv
aW5nIHRvIG91dGVyIGFuIHNvdXRod2FyZCBsaW5rLCBidXQKKyAgICAgICBnb2luZyBiYWNrIHRv
IHRoZSBpZnJhbWUgb24gdGhlIHRvcCBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92
ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICIxIl0sCisg
ICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAgIFsiRG93biIs
ICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBb
IlVwIiwgIjIiXSwKKyAgICAgIFsiVXAiLCAiMSJdLAorICAgICAgWyJVcCIsICJzdGFydCJdLAor
ICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
dHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisg
ICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBw
bGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisK
KyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5h
PC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lMy5odG1sIiB3aWR0
aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJhbWU+PGJyPgorICAgIDxk
aXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+ZTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOWIwNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdCB0YWJsZSB0cmF2ZXJzYWwKK2EJYQlhCithCWEJYQorYQlhCWEK
K0VuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgxOGRkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJh
dmVyc2FsLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRl
c3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFibGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAg
U3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBp
biBhCisgICAgPHRhYmxlPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRp
dGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAg
ICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2Vz
IHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aHJv
dWdoIHRoZSBzcGFyc2VseSBwb3NpdGlvbmVkIGVsZW1lbnRzCisgICAgICAgaW4gdGhlIHRhYmxl
LCBldmVudHVhbGx5IGdvaW5nIHRvIGFuIG91dGVyIHNvdXRod2FyZCBsaW5rLAorICAgICAgIGJ1
dCBnb2luZyBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAg
dmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAi
NCJdLAorICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAg
IFsiVXAiLCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjki
XSwKKyAgICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQi
LCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkg
aWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgor
ICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+VGVzdCB0YWJsZSB0cmF2ZXJzYWw8YT4KKyAgICA8
dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDog
YXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2Vs
bHNwYWNpbmc9IjEiPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRk
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0i
MSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90
ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246
IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+Cisg
ICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHls
ZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjciIGhy
ZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+Cisg
ICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50
ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6MTAwcHgn
PgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kIG9mIHRhYmxlIHRyYXZlcnNhbCB0ZXN0
PGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVy
c2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWUw
OGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjAgQEAKK2EKK2EJYQlhCithCWEJYQorYQlhCWEKK2EKK2EKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRy
YXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMGQwMzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzxo
dG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRhYmxlIHRyYXZl
cnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3Jp
dGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxkIGJlIGFjY2Vz
c2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBT
TmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExv
YWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAg
MikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwgZXZlbnR1YWxs
eQorICAgICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBhbmQgZWFzdHdhcmQgbGlua3MsIGJ1
dCBnb2luZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBsYXRlciBvbi4KKyAgLS0+Cisg
IDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+
CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsi
RG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAgICAgWyJEb3duIiwgImVuZCJd
LAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0IiwgIjgiXSwKKyAgICAgIFsiUmln
aHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgInJpZ2h0Il0s
CisgICAgICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAgICBbIkxlZnQi
LCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkg
aWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgor
ICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+CisgICAgPHRhYmxlPgorICAgICAg
PHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNt
YWxsOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9
ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI1IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjYi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI3IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9Ijgi
IGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21h
bGw7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10b3A6OHB4Jz4K
KyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBweCI+CisgICAgICA8YSBpZD0i
cmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1z
Y3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4xMmE1MzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitTdGFydAorRW5kCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BB
U1MgdHJ1ZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjM3NDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzxodG1sPgorICA8
IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGNvcnJlY3RuZXNzIHRoZSBmb2xsb3dpbmcg
U3BhdGlhbCBOYXZpZ2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobSBmZWF0dXJlcy4KKworICAg
IDEpIFRoZXJlIGlzIG5vIHVuaXQgb3ZlcmZsb3cgaW4gdGhlIFNOYXYgYWxnb3JpdGhtIHdoaWxl
IGNhbGN1bGF0aW5nCisgICAgICAgdGhlIGJlc3Qgbm9kZSBjYW5kaWRhdGUgdG8gbW92ZSBmb2N1
cyB0by4gVG8gdGVzdCB0aGF0IHRoaXMgcGFnZQorICAgICAgIHBvc2l0aW9ucyBzb21lIGVsZW1l
bnRzIDEwMDAwMDAwIHBpeGVscyBmYXIgZnJvbSBlYWNoIG90aGVyIChkaXN0YW5jZQorICAgICAg
IHRoYXQgY2FuIGNvbnNpZGVyZWQgbGFyZ2UgZW5vdWdoIGZvciBtb3N0IG9mIHRoZSBXZWIgUGFn
ZXMgb24gdGhlCisgICAgICAgSW50ZXJuZXQpLgorCisgICAgMikgTWFrZSBzdXJlIHRoYXQgYSBi
ZXN0IGZvY3VzYWJsZSBjYW5kaWRhdGUgb25seSBnZXRzIGZvY3VzZWQKKyAgICAgICBpZiBpdCBp
cyB2aXNpYmxlIGluIHRoZSBjdXJyZW50bCBWaWV3cG9ydC4gU2Nyb2xsLWluLWRpcmVjdGlvbgor
ICAgICAgIGlzIHBlcmZvcm1lZCBvdGhlcndpc2UuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgQXR0ZW1wdCB0byBtb3ZlIGZvY3VzIGRvd24gdG8g
ImVuZC4gQXMgaXQgaXMgdG9vIGZhciBhbmQgb3V0IG9mCisgICAgICAgdmlld3BvcnQsIGZvY3Vz
IGNoYW5nZSB3aWxsIG5vdCBoYXBwZW4gYW5kIHBhZ2Ugd2lsbCBiZSBzY3JvbGxlZAorICAgICAg
IGEgc3RlcCBkb3duLgorICAgIDMpIEJ5IHNlbmRpbmcgYW4gIkVuZCIga2V5cHJlc3MsIHBhZ2Ug
Z2V0cyBzY3JvbGxlZCBkb3duIHRvIGEgcGxhY2UKKyAgICAgICB3aGVyZSB0aGUgImVuZCIgbm9k
ZSBnZXRzIHZpc2libGUgaW4gdGhlIHZpZXdwb3J0LgorICAgIDQpIFN0ZXAgXzFfIGlzIHJhbiBh
Z2FpbiwgYW5kICJlbmQiIGdldHMgZm9jdXNlZC4gLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxl
MSA9IFsKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyIiLCAiIl0KKyAgICBdOwor
CisgICAgdmFyIG1vdmVUYWJsZTIgPSBbCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBb
IkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFi
VG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7Cisg
ICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAg
c2V0VGltZW91dChzdGVwMSAsIDApOworICAgICAgc2V0VGltZW91dChzdGVwMiAsIDUwMCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgIC8vIEFjdGlvbnMgaW4g
J21vdmVUYWJsZTEnIHNob3VsZCBrZWVwIHRoZSBmb2N1cyBpbiB0aGUgY3VycmVudGx5CisgICAg
ICAvLyBmb2N1c2VkIGVsZW1lbnQgKCdzdGFydCcpIG9uY2UgdGhlIGJlc3QgY2FuZGlkYXRlICgn
ZW5kJykgaXMgbm90CisgICAgICAvLyB2aXNpYmxlIGluIGN1cnJlbnQgdmlld3BvcnQuCisgICAg
ICB0ZXN0TW92ZXMobW92ZVRhYmxlMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDIoKQor
ICAgIHsKKyAgICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3Ag
IT0gMCkpOworCisgICAgICAvLyBUaGVuIGl0IHNjcm9sbHMgZG93biB0byB0aGUgZW5kIG9mIHRo
ZSBwYWdlIC4uLgorICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigiZW5kIik7CisKKyAgICAgIC8vIEFuZCAnbW92ZVRhYmxlMicgcmUtdHJp
ZXMgdG8gbW92ZSBmb2N1cyBkb3duLgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTIsIHRlc3RD
b21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsK
KyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29t
ZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEg
aWQ9InN0YXJ0IiBocmVmPSJhIj5TdGFydDwvYT4KKyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9w
OjEwMDAwMDAwMHB4Jz4KKyAgICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kPC9hPgorICAg
IDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWIw
ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE5IEBACit0ZXN0Cit0ZXN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0ZXN0Cit0
ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0CisKKworCisKK3Rlc3QKK3Rlc3QKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjUwZTY4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2Uu
aHRtbApAQCAtMCwwICsxLDgxIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1
cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgorICAg
IChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhl
IHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5IHRv
IG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBw
b3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgor
ICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2Fs
bHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1cCBv
ciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVuIHRo
ZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBhbGln
bmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIg
bW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI2Il0s
CisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJV
cCIsICI3Il0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlk
PSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1hbGlnbjogbGVmdDsiPgorICAg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9InN0YXJ0
IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjIiIGhy
ZWY9ImEiPnRlc3Q8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaWQ9IjMiIGhyZWY9ImEiPnRl
c3Q8L2E+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAg
ICAgPGEgaWQ9IjQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgICAgICA8YSBpZD0iNSIgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI2IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
ICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAg
PGJyPjxicj48YnI+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4K
KyAgICAgICAgPGEgaWQ9IjgiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+Cisg
ICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MDExOWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpAQCAt
MCwwICsxLDY5IEBACisvKgorICogT3JpZ2luYWwgYXV0aG9yOiBEb3VnIFR1cm5lciA8ZG91Zy50
dXJuZXJAZ21haWwuY29tPgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgICAqIEFudG9uaW8g
R29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorICoqLworCit2YXIgX21vdmVUYWJsZTsKK3Zh
ciBfbW92ZVRhYmxlSW5kZXggPSAwOwordmFyIF9jb21wbGV0ZWRDYWxsYmFjayA9IG51bGw7CisK
K2Z1bmN0aW9uIHRlc3RNb3Zlcyh0YWJsZSwgY29tcGxldGVkQ2IpIHsKKyAgIC8vIGRvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgX3ZlcmlmeUFuZEFkdmFuY2UsIHRydWUpOworCisg
IF9tb3ZlVGFibGUgPSB0YWJsZTsKKyAgX21vdmVUYWJsZUluZGV4ID0gMDsKKyAgX2NvbXBsZXRl
ZENhbGxiYWNrID0gY29tcGxldGVkQ2I7CisgIF9tb3ZlKCk7Cit9CisKK2Z1bmN0aW9uIF9uZXh0
TW92ZSgpCit7CisgIF9tb3ZlVGFibGVJbmRleCsrOworCisgIC8vIFdoZW4gYSB0YWJsZSBlbmRz
IHdpdGggIkRPTkUiLCBjYWxsIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgorICBpZiAoX21vdmVU
YWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICJET05FIikKKyAgICBpZiAoX2NvbXBsZXRlZENh
bGxiYWNrKSB7CisgICAgICBfY29tcGxldGVkQ2FsbGJhY2soKTsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgLy8gd2hlbiBhIHRhYmxlIGhhcyBhbiBlbXB0eSBlbGVtZW50LCBlbmQgdGhlIG1v
dmVzLgorICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICIiKQorICAgIHJl
dHVybjsKKworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbW92ZSgpCit7CisgIHZhciBldmVu
dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50cycpOworICBldmVudC5pbml0
S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3
LCBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0sIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSk7CisgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgIHNl
dFRpbWVvdXQoIF92ZXJpZnlBbmRBZHZhbmNlICwgMTAwKTsKK30KKworZnVuY3Rpb24gX3Zlcmlm
eUFuZEFkdmFuY2UoKQoreworICB2YXIgZGlyZWN0aW9uID0gX21vdmVUYWJsZVtfbW92ZVRhYmxl
SW5kZXhdWzBdOworICB2YXIgZXhwZWN0ZWRJRCA9IF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4
XVsxXTsKKworICB2YXIgaSA9IDA7CisgIHZhciBtYWluRnJhbWVIYXNGb2N1cyA9IHRydWU7Cisg
IGZvcig7IGkgPCBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXMubGVuZ3RoOyBpKyspCisgICAg
aWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1tpXS5kb2N1bWVudC5oYXNGb2N1cygpKSB7
CisgICAgICBtYWluRnJhbWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAgYnJlYWs7CisgICAgfQor
CisgIC8vIHRoaXMgc3VwcG9ydCBmcmFtZXMgbmVzdGVkIGluIG9uZSBsZXZlbCBkZWVwIG9ubHku
CisgIGlmIChtYWluRnJhbWVIYXNGb2N1cykKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsK
KyAgZWxzZQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVmYXVsdFZpZXcu
ZnJhbWVzWyIgKyBpICsgIl0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJp
ZFwiKSIsIGV4cGVjdGVkSUQpOworCisgIF9uZXh0TW92ZSgpOworfQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IDFlZjRmZDkuLjI0ZTYwYmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC01NzgxLDMgKzU3ODEsNiBAQCBzdmcvY3VzdG9tL3VzZS1pbnN0YW5jZVJvb3QtZXZl
bnQtYnViYmxpbmcueGh0bWwKIAogIyBOZXcgZmFpbHVyZSBhZnRlciBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC81Mzc1OAogc2Nyb2xsYmFycy9zY3JvbGxiYXItbWlkZGxlY2xpY2st
bm9wYXN0ZS5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVy
VHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggYmQy
MGIxZi4uMTdmZTdhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTEwMSwzICsxMDEs
NiBAQCBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jaGFuZ2Utbm90aWZpY2F0aW9uLW9uLXNj
cm9sbC5odG1sCiAKICMgU2tpcCBHZW9sb2NhdGlvbiB1bnRpbCBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwMjUgaXMgbGFuZGVkCiBmYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZ2VvbG9jYXRpb24uaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9u
YWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwg
TmF2aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCmluZGV4IDZjMDEzNTAuLmRjMDliNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCkBAIC03MzQsMyArNzM0LDYgQEAgZmFzdC9jc3Mvbm9uLXN0YW5kYXJkLWNoZWNrYm94LXNp
emUuaHRtbAogCiAjIFNraXAgR2VvbG9jYXRpb24gdW50aWwgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0MDI1IGlzIGxhbmRlZAogZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9uLmh0bWwKKworIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFs
aXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhhbmRsZSBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5h
dmlnYXRpb24KK2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OGZjMjY4Li5iZmNiNmI4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDc1IEBACisyMDEwLTAxLTI1ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IFBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQuY29tPgorICAgICAgICBC
YXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFyY28uYmFyaXNp
b25lQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBFeHRlbmQga2V5Ym9hcmQgbmF2aWdhdGlv
biB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyB0aGUgY29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVy
ZSBbMV0uCisgICAgICAgIEl0IGltcHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2Yg
V2ViQ29yZSBieSBleHRlbmRpbmcgdGhlIGJhc2ljIGtleWJvYXJkCisgICAgICAgIG5hdmlnYXRp
b24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQgb24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJk
KSB3aXRoIHRoZQorICAgICAgICBhZGRpdGlvbiBvZiBhIGRpcmVjdGlvbmFsIGJhc2VkIG5hdmln
YXRpb24sIHdoZXJlIGZvY3VzYWJsZSBlbGVtZW50cyBhcmUgYWNjZXNzaWJsZQorICAgICAgICBi
YXNlZCBvbiB0aGVpciBzcGF0aWFsIGxvY2F0aW9uIGluIGEgV2ViIFBhZ2UsIG5vdCBvbiBpdHMg
VGFiIGluZGV4IHZhbHVlLgorCisgICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVy
ZSBpcyB0dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gJ1NldHRpbmdzJy4gUG9ydCBzcGVjaWZpYyBB
UElzIG5lZWQgdG8gYmUgYWRkZWQKKyAgICAgICAgICBmb3IgdG9nZ2xlIGl0IG9uIGFuZCBvZmYu
CisgICAgICAgICogT25seSBlbGVtZW50cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQg
Y2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4gSWYgdGhlcmUgaXMKKyAgICAgICAgICBub3QgYW55
LCBhbiBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcyBwZXJmb3JtZWQuCisgICAgICAgICog
VGhlIGxheW91dCB0ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lw
cGVkIGZvciBNYWMsIFdpbiBhbmQgR3RrKS4KKworICAgICAgICBLbm93biBpc3N1ZXMgKHRvIGJl
IGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgorICAgICAgICAqIEFkZCBwb3J0IHNwZWNpZmlj
IGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24u
CisgICAgICAgICogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorICAgICAg
ICAqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtz
IHdpdGggYXJyb3dzIGtleXMgb25seQorICAgICAgICAgICh1cCwgZG93biwgcmlnaHQgYW5kIGxl
ZnQpLgorICAgICAgICAqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQg
U2hpZnQpLgorCisgICAgICAgIFsxXSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYXRp
YWxfbmF2aWdhdGlvbgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8t
c2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQt
c2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbAorCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2
aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVzdENhbmRpZGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3RhbmNl
SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjp0YWtlc1By
ZWNlZGVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxJ
bkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc09mZnNjcmVlblJlY3QpOgorICAgICAg
ICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQpOgorCiAyMDEwLTAxLTI3IEFudG9uIE11aGluIDxhbnRvbm1AZ29vZ2xlLmNv
bT4KICAgICAgICAgUmV2aWV3IGJ5IEFkYW0gQmFydGguCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sIGIvV2ViQ29yZS9tYW51
YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMC4uMGQ2ZWQ3YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFu
dWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCkBAIC0wLDAgKzEsOSBAQAor
PGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8Ym9keT4KKzxwPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxh
IGhyZWY9ImEiPmE8L2E+Cis8YSBocmVmPSJhIj5hPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwt
bmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFs
LW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMjgzNDZkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10
ZXN0LWNhc2VzLmh0bWwKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KyAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9SVNPLTg4NTktMSI+CisgIDx0aXRsZT5TcGF0aWFsIE5hdmlnYXRpb24gVGVzdCBDYXNl
czwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKyAgPGgxIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+
U3BhdGlhbCBOYXZpZ2F0aW9uIEZ1bjwvaDE+CisgIDxoMiBzdHlsZT0idGV4dC1hbGlnbjogbGVm
dDsiPjN4MyBDZW50ZXJlZCBUYWJsZSBUZXN0PC9oMj4KKzwvZGl2PgorPHRhYmxlIHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1y
aWdodDogYXV0bzsiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4K
KyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRv
cDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAg
PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBo
cmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8
L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJh
Ij50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgor
ICAgIDx0cj4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0
PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgorICA8L3Ri
b2R5PgorPC90YWJsZT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij48YnI+CisgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8
aDI+VmVydGljYWwgU2luZSBUZXN0PC9oMj48YnI+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJ0
ZXh0LWFsaWduOiBsZWZ0OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPGRp
diBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij48YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
PC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBw
eDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAg
PGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogODBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAg
PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKyAgPC9kaXY+CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPiZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OworICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKworICA8aDI+SW5jcmVhc2luZyBzZW50ZW5j
ZSBsZW5ndGg8L2gyPgorICA8YSBocmVmPSJhIj5IPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88
YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3c8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgPGJy
PjwvYT4KKyAgPGEgaHJlZj0icCI+SG93IE48L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm88
L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93
IE5vdyA8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+PGJyPgorICA8YSBocmVm
PSJwIj5Ib3cgTm93IEJyPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJyb3duPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biA8L2E+PGJyPgor
ICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cg
Tm93IEJyb3duIENvPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDb3c8L2E+
PGJyPgorICA8YnI+CisgIDxoMj5TcGxpdCBzZW50ZW5jZTxicj48L2gyPgorICA8YnI+CisgIDxh
IGhyZWY9InAiPkg8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOzxhIGhyZWY9InAiPm93IE5vdyBCcm93biBDb3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5IbzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3c8
L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+Tm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBOPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBObzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53IEJyb3duIENvdzwvYT48YnI+CisgIDxh
IGhyZWY9InAiPkhvdyBOb3cgPC9hPiZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+QnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnJvd24gQ293PC9h
Pjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3duIENvdzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53biBDb3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9
InAiPm4gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj5Db3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8
L2E+ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsgPGEgaHJlZj0icCI+b3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3du
IENvPC9hPiAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7IDxhIGhyZWY9InAiPnc8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duIENvdzwvYT48YnI+PGJyPgorICA8aDI+TGluZSBXcmFwIFRlc3Q8L2gyPjxicj4KKyAgPHRh
YmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMzkzcHg7IGhlaWdodDogNzJweDsi
IGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICA8dGJvZHk+
CisgICAgICA8dHI+CisgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgor
ICAgICAgICAgIDxzcGFuIGNsYXNzPSJodWdlIj4KKyAgICAgICAgICAgIDxhIGhyZWY9ImEiPldo
aWNoIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnN0IGRvIHlvdSBsaWtlIHRoZSBtb3N0LCBvbmUg
aXMgZywgb25lIGlzIHBpLCBhbmQgdGhlIG90aGVyIGlzIGUuIDwvYT48YnI+CisgICAgICAgICAg
PC9zcGFuPjwvdGQ+CisgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgor
ICAgICAgICAgIDxhIGhyZWY9ImEiPjMuMTQ8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEi
PjIuNzE8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEiPjYuNjc8L2E+PGJyPgorICAgICAg
ICA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3Rib2R5PgorICA8L3RhYmxlPjxicj4KKyAgPGgy
PkphdmFzY3JpcHQgRm9jdXMvQmx1ciBUZXN0PC9oMj4KKyAgICBXaGVuIGdvaW5nIHRvIGFueSBs
aW5rIGZyb20gdGhlIGZvbGxvd2luZyBsaW5rLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZy48YnI+
PGJyPgorICA8YSBocmVmPSJhIiBvbmJsdXI9J2FsZXJ0KCJvbkJsdXJ0IiknPlRlc3Q8L2E+PGJy
Pjxicj4KKworICA8aDI+RnJhbWVTZXRzPC9oMj4gPGJyPgorICA8ZnJhbWVzZXQgY29scz0iMjUl
LDI1JSwqIj4KKyAgICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0i
bGlua3MuaHRtbCIvPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgPC9mcmFtZXNl
dD4KKyAgPGJyPjxicj4KKworICA8aDI+SUZyYW1lczwvaDI+PGJyPgorICA8aWZyYW1lIHNyYz0i
bGlua3MuaHRtbCI+PC9pZnJhbWU+PGJyPjxicj48YnI+CisgIDxoMj5ESVZzPC9oMj48YnI+Cisg
IDxkaXYgaWQ9dj4KKyAgICA8YSBocmVmPSJhIj5hPC9hPgorICAgIDxkaXYgaWQ9IkRpdjEiPgor
ICAgICAgICA8YSBocmVmPSJhIj5hPC9hPgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9ImEiPmE8
L2E+CisgIDwvZGl2Pjxicj48YnI+CisgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGEgaHJlZj0ibGFz
dCI+bGFzdDwvYT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDlk
ZjFkNC4uMGU5NGVhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIxNTYsNiArMjE1Niw4IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChldmVudC0+a2V5
SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAgICAgICAgICAgZGVmYXVsdFRhYkV2ZW50SGFu
ZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgaWYgKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiA9
IGlzQXJyb3dLZXkoZXZlbnQtPmtleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBkZWZhdWx0
QXJyb3dFdmVudEhhbmRsZXIoZGlyZWN0aW9uLCBldmVudCk7CiAKICAgICAgICAvLyBwcm92aWRl
cyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkg
dXNlcnMKICAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWQoKSkKQEAgLTIxNzAsNiArMjE3MiwyMiBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ICAgIH0KIH0KIAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjppc0Fycm93S2V5KGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllcikKK3sKKyAgICBGb2N1c0RpcmVjdGlvbiByZXRWYWwgPSAo
Rm9jdXNEaXJlY3Rpb24pIDA7CisKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9PSAiRG93biIpCisg
ICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uRG93bjsKKyAgICBlbHNlIGlmIChrZXlJZGVu
dGlmaWVyID09ICJVcCIpCisgICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uVXA7CisgICAg
ZWxzZSBpZiAoa2V5SWRlbnRpZmllciA9PSAiTGVmdCIpCisgICAgICAgIHJldFZhbCA9IEZvY3Vz
RGlyZWN0aW9uTGVmdDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJSaWdodCIpCisg
ICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uUmlnaHQ7CisKKyAgICByZXR1cm4gcmV0VmFs
OworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIGJvb2wgRXZlbnRIYW5kbGVyOjpkcmFn
SHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmIGZsb2F0RHJhZ1ZpZXdwb3J0TG9j
YXRpb24pIGNvbnN0CiB7CkBAIC0yNDYyLDYgKzI0ODAsMjcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKIAogI2VuZGlm
CiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJl
Y3Rpb24gZm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChl
dmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5tZXRhS2V5KCkgfHwgZXZlbnQtPmFsdEdyYXBoS2V5
KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgIXBhZ2UtPnNldHRpbmdzKCktPmlzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFycm93cyBh
bmQgb3RoZXIgcG9zc2libGUgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBrZXlzIGNhbiBiZSB1c2Vk
IGluIGRlc2lnbgorICAgIC8vIG1vZGUgZWRpdGluZy4KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1l
bnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChwYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZvY3VzKGZvY3VzRGlyZWN0aW9uLCBldmVudCkpCisg
ICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCiB2b2lkIEV2ZW50SGFuZGxl
cjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICAv
LyBXZSBzaG91bGQgb25seSBhZHZhbmNlIGZvY3VzIG9uIHRhYnMgaWYgbm8gc3BlY2lhbCBtb2Rp
ZmllciBrZXlzIGFyZSBoZWxkIGRvd24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNmExMmU3MC4uZjdi
M2QyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBFdmVudEhh
bmRsZXJfaAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKKyNpbmNsdWRlICJGb2N1c0RpcmVj
dGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9s
bFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTMwMSw2ICszMDIsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCopOwog
ICAgIHZvaWQgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAgdm9p
ZCBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQq
KTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBhbGxvd0RIVE1MRHJhZyhi
b29sJiBmbGFnREhUTUwsIGJvb2wmIGZsYWdVQSkgY29uc3Q7CkBAIC0zMjMsNiArMzI1LDggQEAg
cHJpdmF0ZToKICAgICAKICAgICB2b2lkIHNldEZyYW1lV2FzU2Nyb2xsZWRCeVVzZXIoKTsKIAor
ICAgIEZvY3VzRGlyZWN0aW9uIGlzQXJyb3dLZXkoY29uc3QgU3RyaW5nJik7CisKICAgICBib29s
IGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVzRHJhZ2dpbmc7IH0K
IAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNfXykgJiYgIUVOQUJMRShFWFBF
UklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXgg
NWU3OGM3ZC4uYzM5Y2MwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTU1LDYgKzU1
LDQxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7
Cit1c2luZyBuYW1lc3BhY2Ugc3RkOworCitlbnVtIFByZWNlZGVuY2VNb2RlIHsKKyAgICBOb25l
ID0gLTEsCisgICAgTG93LAorICAgIFByZWNlZGVudCwKKyAgICBTdXBlclByZWNlZGVudAorfTsK
Kworc3RydWN0IEJlc3RDYW5kaWRhdGUgeworICAgIEJlc3RDYW5kaWRhdGUoKQorICAgICAgICA6
IG5vZGUoMCkKKyAgICAgICAgLCBkaXN0YW5jZShudW1lcmljX2xpbWl0czxsb25nIGxvbmc+Ojpt
YXgoKSkKKyAgICAgICAgLCBwYXJlbnREaXN0YW5jZShudW1lcmljX2xpbWl0czxsb25nIGxvbmc+
OjptYXgoKSkKKyAgICAgICAgLCBtb2RlKE5vbmUpCisgICAgICAgICwgcGFyZW50TW9kZShOb25l
KQorICAgIHsKKyAgICB9CisgICAgTm9kZSogbm9kZTsKKyAgICBsb25nIGxvbmcgZGlzdGFuY2U7
CisgICAgbG9uZyBsb25nIHBhcmVudERpc3RhbmNlOworICAgIFByZWNlZGVuY2VNb2RlIG1vZGU7
CisgICAgUHJlY2VkZW5jZU1vZGUgcGFyZW50TW9kZTsKK307CisKK3N0YXRpYyBib29sIHRha2Vz
U3VwZXJQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uLCBJbnRSZWN0JiwgSW50UmVjdCYpOworc3Rh
dGljIGJvb2wgdGFrZXNQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uLCBJbnRSZWN0JiwgSW50UmVj
dCYpOworc3RhdGljIGxvbmcgbG9uZyBwcmVjZWRlbmNlRGlzdGFuY2UoRm9jdXNEaXJlY3Rpb24s
IEludFJlY3QmLCBJbnRSZWN0Jik7CitzdGF0aWMgbG9uZyBsb25nIGRpc3RhbmNlSW5EaXJlY3Rp
b24oTm9kZSosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgQmVzdENhbmRpZGF0ZSYpOworc3RhdGlj
IHZvaWQgbmV4dEluRGlyZWN0aW9uKERvY3VtZW50KiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBL
ZXlib2FyZEV2ZW50KiwgQmVzdENhbmRpZGF0ZSYpOworc3RhdGljIGJvb2wgaXNSZWN0SW5EaXJl
Y3Rpb24oRm9jdXNEaXJlY3Rpb24sIEludFJlY3QsIEludFJlY3QpOworc3RhdGljIGlubGluZSBJ
bnRSZWN0IHJlbmRlclJlY3QoUmVuZGVyT2JqZWN0KiwgYm9vbCB1c2VTY3JvbGxPZmZzZXQgPSB0
cnVlKTsKK3N0YXRpYyBsb25nIGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0aW9uLCBJ
bnRSZWN0JiwgSW50UmVjdCYpOworc3RhdGljIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUq
LCBGb2N1c0RpcmVjdGlvbik7CitzdGF0aWMgYm9vbCBpc09mZnNjcmVlblJlY3QoTm9kZSopOwog
CiBzdGF0aWMgaW5saW5lIHZvaWQgZGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2Rl
KERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBmb2N1c2VkKQogewpAQCAtMTQ4LDYgKzE4MywyNCBA
QCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZQogCiBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5j
ZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJv
b2wgaW5pdGlhbEZvY3VzKQogeworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBG
b2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOgor
ICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKGRpcmVjdGlvbiwgZXZl
bnQsIGluaXRpYWxGb2N1cyk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0RpcmVj
dGlvbmFsbHkoZGlyZWN0aW9uLCBldmVudCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEZv
Y3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQorewog
ICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIEFTU0VSVChmcmFt
ZSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CkBAIC0yNTIs
NiArMzA1LDcwIEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVuCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgRnJhbWUq
IGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBE
b2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFm
b2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5vZGUqIGZvY3Vz
ZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNl
ZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9k
ZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rpb24gdGFiRGlyZWN0aW9uID0gKEZvY3VzRGlyZWN0aW9u
VXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgPworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkIDogRm9jdXNEaXJl
Y3Rpb25CYWNrd2FyZDsKKyAgICAgICAgLy8gJ2luaXRpYWxGb2N1cycgaXMgc2V0IHRvIHRydWUg
c28gdGhlIGNocm9tZSBpcyBub3QgZm9jdXNlZC4KKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1
c0luRG9jdW1lbnRPcmRlcih0YWJEaXJlY3Rpb24sIGV2ZW50LCB0cnVlKTsKKyAgICB9CisKKyAg
ICAvLyBNb3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0
cnVlKSB7CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVu
dCgpOworICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQo
KSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZyYW1lID0gcGFyZW50RnJhbWU7Cisg
ICAgfQorCisgICAgQmVzdENhbmRpZGF0ZSBiZXN0Q2FuZGlkYXRlOworICAgIG5leHRJbkRpcmVj
dGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGJl
c3RDYW5kaWRhdGUpOworCisgICAgTm9kZSogbm9kZSA9IGJlc3RDYW5kaWRhdGUubm9kZTsKKyAg
ICBpZiAobm9kZSkgeworICAgICAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBjcmF6eSBqdW1wIGJl
dHdlZW4gbGlua3MgdGhhdCBhcmUgZWl0aGVyIGZhciBhd2F5IGZyb20gZWFjaCBvdGhlciwKKyAg
ICAgICAgLy8gb3IganVzdCBub3QgY3VycmVudGx5IHZpc2libGUsIGxldHMgYmFpbCBvdXQgaWYg
dGhlIGRlc3RpbmF0aW9uIGZvY3VzYWJsZSBlbGVtZW50IGlzCisgICAgICAgIC8vIG5vdCBpbiB0
aGUgdmlld3BvcnQuCisgICAgICAgIGlmIChpc09mZnNjcmVlblJlY3Qobm9kZSkpIHsKKyAgICAg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKS0+ZnJhbWUoKTsK
KyAgICAgICAgICAgIHNjcm9sbEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24pOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBGcmFt
ZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICAgICAgc2Nyb2xsSW5EaXJlY3Rp
b24oZnJhbWUsIGRpcmVjdGlvbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICAvLyBGSVhNRTogTWF5IG5l
ZWQgYSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsK
KworICAgIGlmIChuZXdEb2N1bWVudCAhPSBmb2N1c2VkRG9jdW1lbnQpIHsKKyAgICAgICAgLy8g
Rm9jdXMgaXMgZ29pbmcgYXdheSBmcm9tIHRoZSBvcmlnaW5hbGx5IGZvY3VzZWQgZG9jdW1lbnQs
IHNvIGNsZWFyIHRoZSBmb2N1c2VkIG5vZGUuCisgICAgICAgIGZvY3VzZWREb2N1bWVudC0+c2V0
Rm9jdXNlZE5vZGUoMCk7CisgICAgfQorCisgICAgaWYgKG5ld0RvY3VtZW50KQorICAgICAgICBz
ZXRGb2N1c2VkRnJhbWUobmV3RG9jdW1lbnQtPmZyYW1lKCkpOworCisgICAgc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG5vZGUpLT5mb2N1cyhmYWxzZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0
YXRpYyBib29sIHJlbGlucXVpc2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQogewogICAgIEFT
U0VSVChub2RlKTsKQEAgLTM1OSw0ICs0NzYsNTExIEBAIHZvaWQgRm9jdXNDb250cm9sbGVyOjpz
ZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRG
b2N1c2VkTm9kZShtX2ZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSwgYWN0aXZlKTsKIH0KIAorLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLyBIRUxQRVIgU1BBVElBTCBO
QVZJR0FUSU9OIE1FVEhPRFMgLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLworCitzdGF0aWMgdm9pZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBO
b2RlKiBzdGFydCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVu
dCwgQmVzdENhbmRpZGF0ZSYgYmVzdENhbmRpZGF0ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQp
OworCisgICAgLy8gV2FsayBhbGwgdGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgYmVzdENhbmRp
ZGF0ZSBpZiB3ZSBmaW5kIGEgbmVhcmVyIG5vZGUuCisgICAgZm9yIChOb2RlKiBjYW5kaWRhdGUg
PSBkb2N1bWVudC0+Zmlyc3RDaGlsZCgpOyBjYW5kaWRhdGU7IGNhbmRpZGF0ZSA9IGNhbmRpZGF0
ZS0+dHJhdmVyc2VOZXh0Tm9kZSgpKSB7CisKKyAgICAgICAgLy8gSW5uZXIgZG9jdW1lbnRzIGNh
c2UuCisgICAgICAgIGlmIChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgeworICAg
ICAgICAgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxG
cmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAoIW93bmVyLT5j
b250ZW50RnJhbWUoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAg
RG9jdW1lbnQqIGlubmVyRG9jdW1lbnQgPSBvd25lci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50
KCk7CisgICAgICAgICAgICBpZiAoIWlubmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgICAgIGlmIChpbm5lckRvY3VtZW50ID09IHN0YXJ0LT5kb2N1bWVu
dCgpKQorICAgICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFy
dCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBpZnJhbWUgKG9yIGZyYW1l
KSBlbGVtZW50IGl0c2VsZiBpcyBhIGdvb2QgY2FuZGlkYXRlIHRvIG1vdmUgZm9jdXMgdG8uCisg
ICAgICAgICAgICAgICAgLy8gSWYgaXQgaXMsIHRoZW4gd2UgdHJhdmVyc2UgaXRzIGlubmVyIG5v
ZGVzLgorICAgICAgICAgICAgICAgIC8vIHBzOiBsZXRzIHBhc3MgYSBjb3B5IG9mIHRoZSBiZXN0
IGNhbmRpZGF0ZSwgdG8gbm90IGdldCBmb29sZWQgYnkgYSBmcmFtZSB3L291dAorICAgICAgICAg
ICAgICAgIC8vIGZvY3VzYWJsZSBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICBCZXN0Q2FuZGlk
YXRlIGJlc3RDYW5kaWRhdGVDb3B5ID0gYmVzdENhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBs
b25nIGxvbmcgZGlzdGFuY2UgPSBkaXN0YW5jZUluRGlyZWN0aW9uKHN0YXJ0LCBjYW5kaWRhdGUs
IGRpcmVjdGlvbiwgYmVzdENhbmRpZGF0ZUNvcHkpOworICAgICAgICAgICAgICAgIGlmIChkaXN0
YW5jZSA8IGJlc3RDYW5kaWRhdGVDb3B5LmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgICAg
IGJlc3RDYW5kaWRhdGVDb3B5LnBhcmVudE1vZGUgPSBiZXN0Q2FuZGlkYXRlQ29weS5tb2RlOwor
ICAgICAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRlQ29weS5wYXJlbnREaXN0YW5jZSA9IGRp
c3RhbmNlOworCisgICAgICAgICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlvbihpbm5lckRvY3Vt
ZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZUNvcHkpOworCisgICAg
ICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlYWxseSBoYXZlIGEgaW5uZXIgYmVzdCBub2RlIGNh
bmRpZGF0ZSwgdGFrZSBpdC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJlc3RDYW5kaWRhdGUu
bm9kZSAhPSBiZXN0Q2FuZGlkYXRlQ29weS5ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAg
YmVzdENhbmRpZGF0ZSA9IGJlc3RDYW5kaWRhdGVDb3B5OworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2Fu
ZGlkYXRlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkgeworICAgICAgICAgICAgbG9uZyBs
b25nIGRpc3RhbmNlID0gZGlzdGFuY2VJbkRpcmVjdGlvbihzdGFydCwgY2FuZGlkYXRlLCBkaXJl
Y3Rpb24sIGJlc3RDYW5kaWRhdGUpOworICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgYmVzdENh
bmRpZGF0ZS5kaXN0YW5jZSkKKyAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBiZXN0Q2Fu
ZGlkYXRlLnBhcmVudERpc3RhbmNlIHx8IHN0YXJ0LT5kb2N1bWVudCgpICE9IGNhbmRpZGF0ZS0+
ZG9jdW1lbnQoKSkgeworICAgICAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRlLm5vZGUgPSBj
YW5kaWRhdGU7CisgICAgICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UgPSBk
aXN0YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0LT5kb2N1bWVudCgpID09IGNh
bmRpZGF0ZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRh
dGUucGFyZW50RGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBsb25nIGxvbmcg
ZGlzdGFuY2VJbkRpcmVjdGlvbihOb2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBCZXN0Q2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAgbG9uZyBsb25n
IGRpc3RhbmNlID0gY2FuZGlkYXRlLmRpc3RhbmNlOworCisgICAgLy8gSXQgaXMgaW1wb3J0YW50
IHRvIGtub3cgaWYgd2UgYXJlIG1vdmluZyBmb2N1cyBmcm9tIG9uZSBmcmFtZSB0byBhbm90aGVy
LgorICAgIGJvb2wgaXNDcm9zc0ZyYW1lRm9jdXNDaGFuZ2UgPSBzdGFydC0+ZG9jdW1lbnQoKSAh
PSBkZXN0LT5kb2N1bWVudCgpOworCisgICAgSW50UmVjdCBzdGFydFJlY3QgPSBJbnRSZWN0KCk7
CisgICAgSW50UmVjdCBkZXN0UmVjdCA9IEludFJlY3QoKTsKKyAgICBSZW5kZXJPYmplY3QqIHN0
YXJ0UmVuZGVyID0gMDsKKyAgICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSAwOworCisgICAg
Ym9vbCB1c2VTY3JvbGxPZmZzZXQgPSAhKGlzT2Zmc2NyZWVuUmVjdChzdGFydCkgJiYgaXNDcm9z
c0ZyYW1lRm9jdXNDaGFuZ2UpOworCisgICAgc3RhcnRSZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIo
KTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVyKQorICAgICAgICBnb3RvIGV4aXRQb2ludDsKKworICAg
IGRlc3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOworICAgIGlmICghZGVzdFJlbmRlcikKKyAg
ICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICBzdGFydFJlY3QgPSByZW5kZXJSZWN0KHN0YXJ0
UmVuZGVyLCB1c2VTY3JvbGxPZmZzZXQpOworICAgIGRlc3RSZWN0ICA9IHJlbmRlclJlY3QoZGVz
dFJlbmRlcik7CisKKyAgICAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHR3byBjb25zZWN1
dGl2ZSBsaW5rcyBjb3VsZCBvdmVybGFwLCBzbyB3ZSBkZWNyZWFzZSB0aGUgc2l6ZQorICAgIC8v
IG9mIGJvdGggcmVjdGFuZ2xlcy4KKyAgICBzdGFydFJlY3QuaW5mbGF0ZSgtNCk7CisgICAgZGVz
dFJlY3QuaW5mbGF0ZSgtNCk7CisKKyAgICBpZiAoIWlzUmVjdEluRGlyZWN0aW9uKGRpcmVjdGlv
biwgc3RhcnRSZWN0LCBkZXN0UmVjdCkpCisgICAgICAgIGdvdG8gZXhpdFBvaW50OworCisgICAg
Ly8gSWYgdGFyZ2V0IHRha2VzIHByZWNlZGVuY2UgdGhlbiB1c2UgaXQgLSBkaXN0YW5jZSBpcyBu
b3QgYWx3YXlzIHRoZSBzaG9ydGVzdAorICAgIC8vIGZvciBhIHByZWNlZGVudCB0YXJnZXQKKyAg
ICBpZiAodGFrZXNTdXBlclByZWNlZGVuY2UoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0
KSB8fCBjYW5kaWRhdGUucGFyZW50TW9kZSA9PSBTdXBlclByZWNlZGVudCkgeworICAgICAgICAv
LyByZXNldCBkaXN0YW5jZSBhcyB3ZSBhcmUgbm93IGluIHN1cGVyIHByZWNlZGVuY2UgbW9kZQor
ICAgICAgICBpZiAoY2FuZGlkYXRlLm1vZGUgIT0gU3VwZXJQcmVjZWRlbnQpCisgICAgICAgICAg
ICBkaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpOworCisgICAgICAg
IGxvbmcgbG9uZyBwcmVjZWRlbnREaXN0YW5jZSA9IHByZWNlZGVuY2VEaXN0YW5jZShkaXJlY3Rp
b24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworICAgICAgICBpZiAoZGlzdGFuY2UgPiBwcmVjZWRl
bnREaXN0YW5jZSkgeworICAgICAgICAgICAgY2FuZGlkYXRlLm1vZGUgPSBTdXBlclByZWNlZGVu
dDsKKyAgICAgICAgICAgIHJldHVybiBwcmVjZWRlbnREaXN0YW5jZTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGlmIChjYW5kaWRhdGUubW9kZSA9PSBTdXBlclByZWNlZGVudCkKKyAgICAgICAg
Z290byBleGl0UG9pbnQ7CisKKyAgICAvLyBJZiB0YXJnZXQgdGFrZXMgcHJlY2VkZW5jZSB0aGVu
IHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5vdCBhbHdheXMgdGhlIHNob3J0ZXN0CisgICAgLy8gZm9y
IGEgcHJlY2VkZW50IHRhcmdldAorICAgIGlmICh0YWtlc1ByZWNlZGVuY2UoZGlyZWN0aW9uLCBz
dGFydFJlY3QsIGRlc3RSZWN0KSB8fCBjYW5kaWRhdGUucGFyZW50TW9kZSA9PSBQcmVjZWRlbnQp
IHsKKyAgICAgICAgbG9uZyBsb25nIHByZWNlZGVudERpc3RhbmNlID0gcHJlY2VkZW5jZURpc3Rh
bmNlKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisKKyAgICAgICAgaWYgKGRpc3Rh
bmNlID4gcHJlY2VkZW50RGlzdGFuY2UpIHsKKyAgICAgICAgICAgIGNhbmRpZGF0ZS5tb2RlID0g
UHJlY2VkZW50OworICAgICAgICAgICAgcmV0dXJuIHByZWNlZGVudERpc3RhbmNlOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGNhbmRpZGF0ZS5tb2RlID09IFByZWNlZGVudCkKKyAgICAg
ICAgZ290byBleGl0UG9pbnQ7CisKKyAgICByZXR1cm4gc3BhdGlhbERpc3RhbmNlKGRpcmVjdGlv
biwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisKK2V4aXRQb2ludDoKKyAgICByZXR1cm4gbnVtZXJp
Y19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9u
IGlzIGZsYXdlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgY29uc2lkZXIgdGhlIGVmZmVjdHMgb2YgQ1NT
IG9yIFNWRyB0cmFuc2Zvcm1zLgorc3RhdGljIGlubGluZSBJbnRSZWN0IHJlbmRlclJlY3QoUmVu
ZGVyT2JqZWN0KiByZW5kZXIsIGJvb2wgdXNlU2Nyb2xsT2Zmc2V0KQoreworICAgIEFTU0VSVChy
ZW5kZXIpOworCisgICAgRmxvYXRQb2ludCBwb2ludChyZW5kZXItPmxvY2FsVG9BYnNvbHV0ZSgp
KTsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVj
dCgpKTsKKworICAgIC8vIFRoZXJlIGFyZSBjYXNlcywgbW9zdGx5IHdoZW4gfHJlbmRlcnwncyBh
c3NvY2lhdGVkIG5vZGUgaXMgb2Zmc2NyZWVuLAorICAgIC8vIGl0IGlzIHNhZmllciB0byBnZXQg
aXRzIHBvc2l0aW9uIHJlZ2FyZGxlc3MgdGhlIGNvbnRhaW5lciBzY3JvbGwgb2Zmc2V0LgorICAg
IGlmICh1c2VTY3JvbGxPZmZzZXQpCisgICAgICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IHJlbmRlci0+bm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCkpCisgICAgICAgICAgICByZWN0Lm1v
dmUoLWZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOworCisgICAgLy8gaGFuZGxlIG5lc3RlZCBm
cmFtZXMuCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSByZW5kZXItPmRvY3VtZW50KCktPmZyYW1l
KCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpKQorICAgICAgICBpZiAo
SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQgPSBmcmFtZS0+b3duZXJFbGVtZW50
KCkpCisgICAgICAgICAgICByZWN0Lm1vdmUob3duZXJFbGVtZW50LT5vZmZzZXRMZWZ0KCksIG93
bmVyRWxlbWVudC0+b2Zmc2V0VG9wKCkpOworCisgICAgcmV0dXJuIHJlY3Q7Cit9CisKKy8vIC0t
IGdyYWJiZWQgZnJvbSBNSUNST0IgZXhjZXB0ZWQgYnkgVVB8RE9XTiBsb2dpYy4KK3N0YXRpYyBi
b29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCBz
dGFydFJlY3QsIEludFJlY3QgZGVzdFJlY3QpCit7CisgICAgaW50IG1pZGRsZSA9IDA7CisKKyAg
ICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAg
ICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOwor
ICAgICAgICByZXR1cm4gKG1pZGRsZSA8IHN0YXJ0UmVjdC54KCkpOworICAgIGNhc2UgRm9jdXNE
aXJlY3Rpb25SaWdodDoKKyAgICAgICAgbWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RS
ZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgcmV0dXJuIChtaWRkbGUgID4gc3RhcnRSZWN0Lngo
KSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcCA6
CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSk7CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpICsgYWJz
KGRlc3RSZWN0LmhlaWdodCgpKSA+IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdo
dCgpKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBDaGVja3MgaWYgfG5vZGV8IGlzIGluIHRo
ZSB2aXNpYmxlIGFyZWEgKHZpZXdwb3J0KSBvZiBpdHMgY29udGFpbmVyIGRvY3VtZW50Lgorc3Rh
dGljIGJvb2wgaXNPZmZzY3JlZW5SZWN0KE5vZGUqIG5vZGUpCit7CisgICAgLy8gR2V0IHRoZSBj
dXJyZW50IHZpZXdwb3J0IHJlY3Qgc28gd2UgY2FuIGNoZWNrIGlmIGJlc3RDYW5kaWRhdGUncyBy
ZWN0CisgICAgLy8gaXMgdmlzaWJsZSBiZWZvcmUgYWN0dWFsbHkgbW92aW5nIHRoZSBmb2N1cyB0
byBpdC4gSW4gY2FzZSBpdCBpcyBub3QgdmlzaWJsZSwKKyAgICAvLyB3ZSBzY3JvbGwgaW4gZGly
ZWN0aW9uIGxhdGVyIG9uIGluc3RlYWQuCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBub2Rl
LT5kb2N1bWVudCgpLT52aWV3KCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgSW50UmVjdCBjb250YWluZXJWaWV3cG9ydFJlY3QgPSBmcmFtZVZpZXct
PnZpc2libGVDb250ZW50UmVjdCgpOworCisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXIgPSBub2Rl
LT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKTsK
KworICAgIHJldHVybiAhY29udGFpbmVyVmlld3BvcnRSZWN0LmludGVyc2VjdHMocmVjdCk7Cit9
CisKKy8vIEluIGEgYm90dG9tLXVwIHdheSwgdGhpcyBtZXRob2QgdHJpZXMgdG8gc2Nyb2xsIHxm
cmFtZXwgaW4gYSBnaXZlbiBkaXJlY3Rpb24KKy8vIHxkaXJlY3Rpb258LCBnb2luZyB1cCBpbiB0
aGUgZnJhbWUgdHJlZSBoaWVyYXJjaHkgaW4gY2FzZSBpdCBkb2VzIG5vdCBzdWNjZWVkLgorc3Rh
dGljIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqIGZyYW1lLCBGb2N1c0RpcmVjdGlvbiBk
aXJlY3Rpb24pCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgLy8gTGVhdmUgdGhlIGZvY3VzIG9uIHRoZSBzYW1lIG5vZGUgYnV0IHNjcm9sbC4KKyAgICBT
Y3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uOworCisgICAgc3dpdGNoIChkaXJlY3Rpb24p
IHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgc2Nyb2xsRGlyZWN0aW9u
ID0gU2Nyb2xsTGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJp
Z2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxSaWdodDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24g
PSBTY3JvbGxVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246
CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbERvd247CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Ny
b2xsUmVjdXJzaXZlbHkoc2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxCeUxpbmUpOworfQorCisvLyBU
aGlzIG1ldGhvZCBjaGVja3MgZm9yIHZlcnkgcHJlZmVyYWJsZSByZWN0IHRvIG1vdmUgZm9jdXMg
dG8uIEluIGVzc2VuY2UgdGFyZ2V0cworLy8gd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhl
IHRvcCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVjdC4KK3N0YXRpYyBib29sIHRha2VzU3Vw
ZXJQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0
LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0
aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBp
bnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAy
OworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5o
ZWlnaHQoKSk7CisgICAgICAgIGludCBkZXN0RW5kICAgID0gZGVzdFJlY3QueCgpICsgYWJzKGRl
c3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIGludCBzdGFydEJvdHRvbSA9IHN0YXJ0UmVjdC55
KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgaW50IHN0YXJ0RW5kICAgID0g
c3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRp
cmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgJiYgZGVzdEVuZCA+IHN0YXJ0UmVjdC54KCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvblJpZ2h0ICYmIGRlc3RSZWN0LngoKSA8IHN0YXJ0RW5kKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LnkoKSA+PSBzdGFy
dFJlY3QueSgpICYmIGRlc3RSZWN0LnkoKSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8
ICAoZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RNaWRkbGUgPD0gc3RhcnRCb3R0
b20pCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0
Qm90dG9tIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0UmVjdC55KCkgPT0g
c3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHx8ICAoZGVzdEJvdHRvbSA9PSBzdGFydEJvdHRv
bSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVz
dEJvdHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7Cisg
ICAgICAgIGludCBzdGFydEVuZCAgID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lk
dGgoKSk7CisgICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RS
ZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RFbmQgICAgPSBkZXN0UmVjdC54KCkg
KyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1
c0RpcmVjdGlvblVwICYmIGRlc3RSZWN0LnkoKSA+IHN0YXJ0UmVjdC55KCkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlv
bkRvd24gJiYgZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC54KCkg
JiYgZGVzdE1pZGRsZSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueCgp
ID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQorICAgICAgICAg
ICAgfHwgIChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIHx8ICAo
c3RhcnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAgIHx8ICAoZGVzdEVuZCA+PSBzdGFydFJl
Y3QueCgpICYmIGRlc3RFbmQgPD0gc3RhcnRFbmQpCisgICAgICAgICAgICB8fCAgKGRlc3RSZWN0
LngoKSA8PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPj0gc3RhcnRFbmQpKTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIHRha2VzUHJlY2VkZW5jZShGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0YXJ0UmVjdCwgSW50UmVjdCYgZGVzdFJl
Y3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgfHwgZGlyZWN0
aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IG1pblkgPSBzdGFydFJl
Y3QueSgpIC8qIC0gaGFsZiAqLzsKKyAgICAgICAgaW50IG1heFkgPSBzdGFydFJlY3QueSgpICsg
YWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyogKyBoYWxmICovOworICAgICAgICBpbnQgc3RhcnRC
b3R0b20gPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisKKyAgICAg
ICAgaW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkp
IC8gMjsKKyAgICAgICAgaW50IGRlc3RCb3R0b20gPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJl
Y3QuaGVpZ2h0KCkpOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LnkoKSA+PSBtaW5ZICYm
IGRlc3RSZWN0LnkoKSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IG1p
blkgJiYgZGVzdEJvdHRvbSA8PSBtYXhZKQorICAgICAgICAgICAgfHwgIChkZXN0TWlkZGxlID49
IHN0YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAg
IHx8ICAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0
YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0Qm90dG9tID49IHN0YXJ0UmVjdC55KCkg
JiYgZGVzdEJvdHRvbSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3Qu
eSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAg
IH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIGludCBtaW5YID0gc3RhcnRSZWN0Lngo
KSAvKiAtIGhhbGYgKi87CisgICAgICAgIGludCBtYXhYID0gc3RhcnRSZWN0LngoKSArIGFicyhz
dGFydFJlY3Qud2lkdGgoKSkgLyogKyBoYWxmICovOworCisgICAgICAgIGludCBkZXN0RW5kID0g
ZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIHJldHVybiAo
KGRlc3RSZWN0LngoKSA+PSBtaW5YICYmIGRlc3RSZWN0LngoKSA8PSBtYXhYKQorICAgICAgICAg
ICAgIHx8IChkZXN0RW5kID49IG1pblggJiYgZGVzdEVuZCA8PSBtYXhYKSk7CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBzcXJ0KCgoeDEgLSB4MikgXiAyKSArICgoeTEgLSB5
MikgXiAyKSkKK3N0YXRpYyBsb25nIGxvbmcgcHJlY2VkZW5jZURpc3RhbmNlKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sK
KyAgICBsb25nIGxvbmcgZGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgo
KTsKKyAgICBsb25nIGxvbmcgc2VjID0gbnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7
CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgeworICAgICAgICBp
bnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKTsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVj
dC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WCAg
PSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0
WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAg
ICBsb25nIGxvbmcgcCA9ICgoc3RhcnRYIC0gZGVzdFgpICogKHN0YXJ0WCAtIGRlc3RYKSkgKyAo
KHN0YXJ0WSAtIGRlc3RZKSAqIChkZXN0WSAtIGRlc3RZKSk7CisgICAgICAgIHNlYyA9IHNxcnQo
cCk7CisKKyAgICAgICAgcCA9ICgoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkgKiAoc3Rh
cnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkpICsgKChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3Qu
eSgpKSAqIChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSk7CisgICAgICAgIGRpc3RhbmNl
ID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0Lnko
KSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisK
KyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50
IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpOworICAgICAg
ICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8g
MjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKTsKKyAgICAgICAgaW50IGRlc3RZ
ICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworCisgICAgICAg
IGxvbmcgbG9uZyBwID0gKChkZXN0WCAtIHN0YXJ0WCkgKiAoZGVzdFggLSBzdGFydFgpKSArICgo
ZGVzdFkgLSBzdGFydFkpICogKGRlc3RZIC0gc3RhcnRZKSk7CisgICAgICAgIHNlYyA9IHNxcnQo
cCk7CisKKyAgICAgICAgcCA9ICgoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkgKiAoZGVz
dFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkpICsgKChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3Qu
eSgpKSAqIChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKSk7CisgICAgICAgIGRpc3RhbmNl
ID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0Lnko
KSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisK
KyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAgICAgaW50IHN0
YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAg
ICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCk7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0
UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgZGVzdFkg
PSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpOworCisgICAgICAgIGxvbmcg
bG9uZyBwID0gKChzdGFydFggLSBkZXN0WCkgKiAoc3RhcnRYIC0gZGVzdFgpKSArICgoc3RhcnRZ
IC0gZGVzdFkpICogKHN0YXJ0WSAtIGRlc3RZKSk7CisgICAgICAgIHNlYyA9IHNxcnQocCk7CisK
KyAgICAgICAgcCA9ICgoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkgKiAoc3RhcnRSZWN0
LngoKSAtIGRlc3RSZWN0LngoKSkpICsgKChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSAq
IChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSk7CisKKyAgICAgICAgZGlzdGFuY2UgPSBz
cXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3QueCgpID09
IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworCisgICAgICAgIHNl
YyA9IChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKTsKKworICAgICAgICBpZiAoc2VjIDwg
ZGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBpZiAo
ZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAgICAvLyBnZXQgbWlkZGxl
IFggZm9yIGN1cnJlbnQgYW5kIHRhcmdldCByZWN0cworICAgICAgICBpbnQgc3RhcnRYID0gc3Rh
cnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgc3Rh
cnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAg
ICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7
CisgICAgICAgIGludCBkZXN0WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0
KCkpIC8gMjsKKworICAgICAgICBsb25nIGxvbmcgcCA9ICgoZGVzdFggLSBzdGFydFgpICogKGRl
c3RYIC0gc3RhcnRYKSkgKyAoKGRlc3RZIC0gc3RhcnRZKSAqIChkZXN0WSAtIHN0YXJ0WSkpOwor
ICAgICAgICBzZWMgPSBzcXJ0KHApOworCisgICAgICAgIHAgPSAoKGRlc3RSZWN0LngoKSAtIHN0
YXJ0UmVjdC54KCkpICogKGRlc3RSZWN0LngoKSAtIHN0YXJ0UmVjdC54KCkpKSArICgoZGVzdFJl
Y3QueSgpIC0gc3RhcnRSZWN0LnkoKSkgKiAoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkp
OworICAgICAgICBkaXN0YW5jZSA9IHNxcnQocCk7CisKKyAgICAgICAgaWYgKHNlYyA8IGRpc3Rh
bmNlICYmIHN0YXJ0UmVjdC54KCkgPT0gZGVzdFJlY3QueCgpKQorICAgICAgICAgICAgZGlzdGFu
Y2UgPSBzZWM7CisKKyAgICAgICAgc2VjID0gKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkp
OworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0g
c2VjOworICAgIH0KKworICAgIHJldHVybiBhYnMoZGlzdGFuY2UpOworfQorCitzdGF0aWMgbG9u
ZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3Qm
IGEsIEludFJlY3QmIGIpCit7CisgICAgaW50IHgxID0gMCwgeTEgPSAwLCB4MiA9IDAsIHkyID0g
MDsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7CisgICAgICAg
IC8vICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwt
LS18ICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAg
IC8vICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEu
eSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlz
IGFib3ZlIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnko
KTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9
IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0
KCkgPCBiLnkoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAg
ICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgp
OworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0g
Yi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAg
ICAgICAgeTEgPSAwOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAg
ICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZv
Y3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAv
LyAgICAgICAgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwKKyAg
ICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgIHwt
LS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEu
eSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlz
IGFib3ZlIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAg
ICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9
IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0
KCkgPCBiLnkoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAg
ICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCkg
KyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0g
Yi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0
aCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAg
ICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZv
Y3VzRGlyZWN0aW9uVXApIHsKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAg
ICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAg
ICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlm
IChhLngoKSA+IGIueCgpICsgYi53aWR0aCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0
IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAg
ICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAg
ICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngo
KSArIGEud2lkdGgoKSA8IGIueCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRv
IHRoZSByaWdodCBvZiBhCisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAg
ICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAg
ICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IC8vIGJvdGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9
IDA7CisgICAgICAgICAgICB5MSA9IGEueSgpOworICAgICAgICAgICAgeDIgPSAwOworICAgICAg
ICAgICAgeTIgPSBiLnkoKSArIGIuaGVpZ2h0KCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsKKyAgICAgICAgLy8gICAgICAgICB8
LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8
LS0tfCAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAg
ICAgIC8vCisgICAgICAgIGlmIChhLngoKSA+IGIueCgpICsgYi53aWR0aCgpKSB7CisgICAgICAg
ICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisgICAgICAgICAgICB4MSA9
IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAg
ICB4MiA9IGIueCgpICsgYi53aWR0aCgpOworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAg
ICAgfSBlbHNlIGlmIChhLngoKSArIGEud2lkdGgoKSA8IGIueCgpKSB7CisgICAgICAgICAgICAv
LyB0aGUgYiByZWN0IGlzIHRvIHRoZSByaWdodCBvZiBhCisgICAgICAgICAgICB4MSA9IGEueCgp
ICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAg
ICAgICAgICB4MiA9IGIueCgpOworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8vIGJvdGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB4J3Mu
CisgICAgICAgICAgICB4MSA9IDA7CisgICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQo
KTsKKyAgICAgICAgICAgIHgyID0gMDsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBsb25nIGxvbmcgZCA9ICgoeDEgLSB4MikgKiAoeDEgLSB4MikpICsg
KCh5MSAtIHkyKSAqICh5MSAtIHkyKSk7CisgICAgaWYgKGQgPCAwKQorICAgICAgICBkICo9ICgt
MSk7CisKKyAgICByZXR1cm4gZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5oCmluZGV4IGQ4NjQwOGEuLjM4YzA4YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmgKQEAgLTU4LDYgKzU4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGlz
Rm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9CiAKICAgICBwcml2YXRlOgor
ICAgICAgICBib29sIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24sIEtl
eWJvYXJkRXZlbnQqKTsKKyAgICAgICAgYm9vbCBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIo
Rm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1cyk7CisKICAg
ICAgICAgUGFnZSogbV9wYWdlOwogICAgICAgICBSZWZQdHI8RnJhbWU+IG1fZm9jdXNlZEZyYW1l
OwogICAgICAgICBib29sIG1faXNBY3RpdmU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9j
dXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCmluZGV4IDI2MWM3
NDUuLjU1MWM3MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCisr
KyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0yOSw3ICsyOSwxMSBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRm9jdXNEaXJlY3Rpb24gewogICAgICAgICBGb2N1
c0RpcmVjdGlvbkZvcndhcmQgPSAwLAotICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkCisg
ICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uVXAs
CisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25MZWZ0
LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5k
ZXggMzg3M2M4OS4uNWI5ZDZjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02NCw2ICs2NCw3IEBAIFNldHRp
bmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6
ZShudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKICAgICAsIG1fbG9jYWxTdG9yYWdlUXVv
dGEoNSAqIDEwMjQgKiAxMDI0KSAgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBzcGVjLgogICAg
ICwgbV9wbHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgp
KQorICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNK
YXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNl
KQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMjM3LDYgKzIzOCwx
MSBAQCB2b2lkIFNldHRpbmdzOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbQogICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKIH0KIAordm9p
ZCBTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQpCit7CisgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlz
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZhRW5h
YmxlZChib29sIGlzSmF2YUVuYWJsZWQpCiB7CiAgICAgbV9pc0phdmFFbmFibGVkID0gaXNKYXZh
RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKaW5kZXggOWYwMGIwZC4uM2ZiMzliZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTExMyw2
ICsxMTMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0SmF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBqYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9CisK
ICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBpc0phdmFF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFFbmFibGVkOyB9CiAKQEAgLTI5OCw2ICsz
MDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1EZWNv
ZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOwogICAg
ICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOworICAgICAgICBib29sIG1faXNT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgOiAxOwogICAg
ICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7Ci0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47640</attachid>
            <date>2010-01-28 11:57:35 -0800</date>
            <delta_ts>2010-02-01 11:12:36 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v11)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>91562</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBkNDNkZjM3ZTViZDg4MjQ0MTY2ZDQzZjAyNTcyNmZmYzIyN2IzODVjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNyBKYW4gMjAxMCAxMToyNDoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpXZWJDb3JlOgoKVGhpcyBwYXRjaCBpbXBs
ZW1lbnRzIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJl
IFsxXS4KSXQgaW1wcm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5
IGV4dGVuZGluZyB0aGUgYmFzaWMga2V5Ym9hcmQKbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxh
YmxlIChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCmFkZGl0aW9u
IG9mIGEgZGlyZWN0aW9uYWwgYmFzZWQgbmF2aWdhdGlvbiwgd2hlcmUgZm9jdXNhYmxlIGVsZW1l
bnRzIGFyZSBhY2Nlc3NpYmxlCmJhc2VkIG9uIHRoZWlyIHNwYXRpYWwgbG9jYXRpb24gaW4gYSBX
ZWIgUGFnZSwgbm90IG9uIGl0cyBUYWIgaW5kZXggdmFsdWUuCgpIaWdobGlnaHRzOgoqIEZlYXR1
cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluICdTZXR0aW5ncycuIFBvcnQgc3BlY2lmaWMg
QVBJcyBuZWVkIHRvIGJlIGFkZGVkCiAgZm9yIHRvZ2dsZSBpdCBvbiBhbmQgb2ZmLgoqIE9ubHkg
ZWxlbWVudHMgdmlld2VkIGluIHRoZSBjdXJyZW50IHZpZXdwb3J0IGNhbiBoYXZlIGZvY3VzIG1v
dmUgdG8gaXQuIElmIHRoZXJlIGlzCiAgbm90IGFueSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBh
Y3Rpb24gaXMgcGVyZm9ybWVkLgoqIFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9uIFF0J3Mg
RFJUIG9ubHkgZm9yIG5vdyAoc2tpcHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCgpLbm93biBp
c3N1ZXMgKHRvIGJlIGNvdmVyZWQgaW4gZm9sbG93IHVwIGJ1Z3MpOgoqIEFkZCBwb3J0IHNwZWNp
ZmljIGhvb2tzIHRvIGVhY2ggRFJUcyB0byBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRp
b24uCiogRm9ybSBuYXZpZ2F0aW9uIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgoqIElmcmFtZXMgd2l0
aCBzY3JvbGxhYmxlIGNvbnRlbnQgbmVlZHMgYmV0dGVyIHN1cHBvcnQuCiogTWFrZSBuYXZpZ2F0
aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkgd29ya3Mgd2l0aCBhcnJvd3Mga2V5
cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCkuCiogTWFrZSBpdCBzdXBwb3J0IG1v
ZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0gaHR0cDovL2VuLndpa2lwZWRpYS5v
cmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KClRlc3RzOiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbAogICAgICAgZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbAogICAgICAgZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKICAgICAgIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0
bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAg
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sOiBB
ZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlv
bi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVkLgoqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKToKKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aXNBcnJvd0tleSk6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1
bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIuaDoKKiBwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHA6CihXZWJDb3JlOjopOgooV2ViQ29yZTo6QmVzdENhbmRpZGF0ZTo6QmVz
dENhbmRpZGF0ZSk6CihXZWJDb3JlOjpuZXh0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXMpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgooV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKFdl
YkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6cmVuZGVyUmVjdCk6CihXZWJD
b3JlOjp0YWtlc1N1cGVyUHJlY2VkZW5jZSk6CihXZWJDb3JlOjp0YWtlc1ByZWNlZGVuY2UpOgoo
V2ViQ29yZTo6cHJlY2VkZW5jZURpc3RhbmNlKToKKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6
CihXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CihXZWJDb3JlOjppc09mZnNjcmVlblJlY3Qp
OgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CiogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2Vi
Q29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoKKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5n
cyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBw
YWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQpOgoKTGF5b3V0VGVzdHM6CgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0
bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13
aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiog
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwu
aHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDog
QWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCiogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRl
ZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwg
ICAgICAgfCAgIDEwICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIu
aHRtbCAgICAgIHwgICAgNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUzLmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lNC5odG1sICAgICAgfCAgICA4ICsKIC4uLi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKwogLi4uL3NuYXYtaWZyYW1lLW5v
LWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCAgfCAgICA3ICsKIC4uLi9zbmF2LWlmcmFt
ZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sICAgICAgICAgIHwgICA1OCArKwogLi4uL3NuYXYt
aWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQgfCAgIDE3ICsKIC4uLi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwgICA2OSArKysK
IC4uLmUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IHwgICAx
NCArCiAuLi5hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbCB8
ICAgNjYgKysKIC4uLi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgICAgICAgICAg
ICAgIHwgICAxNyArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
Lmh0bWwgICB8ICAgODggKysrCiAuLi4vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3Rl
ZC50eHQgICAgICAgICB8ICAgMjAgKwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRt
bCAgICAgICAgICAgICAgICAgfCAgIDkzICsrKwogLi4udC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi1leHBlY3RlZC50eHQgfCAgICA2ICsKIC4uLnNuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIHwgICA5NiArKysKIC4uLi9zbmF2LXZlcnRpY2Fs
LXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgICAgIHwgICAxOSArCiAuLi4vc25hdi12ZXJ0
aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgICB8ICAgODEgKysrCiAuLi4vc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAgICAgICAgfCAg
ICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAgICAgICAgICAg
IHwgICAgMyArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgNzIgKysrCiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24v
bGlua3MuaHRtbCB8ICAgIDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0
bWwgICAgICAgICAgICAgfCAgMTM1ICsrKysrCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkgKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcCAgICAgICAgICAgICAgICAgICB8ICA2MjEgKysrKysrKysrKysrKysrKysr
KysKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMyArCiBXZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDYgKy0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKwogMzUgZmlsZXMgY2hhbmdlZCwgMTgyMyBpbnNlcnRpb25zKCsp
LCAxIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTIuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291
cmNlcy9pZnJhbWU0Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1l
eHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Ny
b2xsYWJsZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9j
dXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2Ny
ZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZl
cnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGly
ZWN0aW9uLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBX
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXRlc3QtY2FzZXMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZjM4N2RmLi44YThmYzMzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTAtMDEtMjUgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHRl
bmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZv
Y3VzYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1l
LXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWw6IEFkZGVkLgor
CiAyMDEwLTAxLTI3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNWYxNzEyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jl
c291cmNlcy9pZnJhbWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGEgaWQ9IjEiIGhyZWY9ImEiPmI8L2E+PGJyPgorICAgIDxhIGlkPSIyIiBocmVmPSJhIj5j
PC9hPjxicj4KKyAgICA8YSBpZD0iMyIgaHJlZj0iYSI+ZDwvYT48YnI+CisgICAgPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6ODBweCIgPgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPmU8L2E+Cisg
ICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWE5N2MwMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvaWZyYW1lMi5odG1sCkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+CisgIDxib2R5Pgor
ICAgIDxhIGlkPSI0IiBocmVmPSJhIj5nPC9hPgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5oPC9h
PgorICAgIDxhIGlkPSI2IiBocmVmPSJhIj5pPC9hPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjAxYWQ5ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbApAQCAtMCwwICsxLDgg
QEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT4KKyAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEyMHB4Ij4KKyAgICAgIDxhIGlkPSIyIiBocmVmPSJhIj5k
PC9hPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZjQ4ZmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorICA8
Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEyMHB4Ij4KKyAgICAgIDxwPlRoaXMg
ZnJhbWUgaGFzIHNvbWUgdGV4dCBhbmQgbm8gZm9jdXNhYmxlIGVsZW1lbnQgLi4uPC9hPgorICAg
IDwvZGl2PgorICAgIDxwPi4uLiBhbmQgc29tZSBtb3JlIHRleHQgLi4uPC9hPgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFs
LXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMDM3MDI5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ2IEBACit0ZXN0CitIwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoG93IE5vdyBCcm93biBDb3cK
K0hvwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKg
IHcgTm93IEJyb3duIENvdworSG93IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgwqDCoMKgwqAgTm93IEJyb3duIENvdworSG93IE4gwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqDCoMKgIMKgIMKgwqAgb3cgQnJvd24gQ293CitIb3cgTm8gwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIMKgIMKgIMKgwqAgdyBCcm93biBDb3cKK0hvdyBO
b3cgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqAgwqAgwqDCoCBCcm93
biBDb3cKK0hvdyBOb3cgQiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqAgwqAg
wqAgwqDCoCByb3duIENvdworSG93IE5vdyBCciDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoMKgIG93biBDb3cKK0hvdyBOb3cgQnJvIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgd24gQ293CitIb3cgTm93IEJyb3fCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBu
IENvdworSG93IE5vdyBCcm93biDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqDCoMKgIENvdworSG93IE5vdyBCcm93biBDIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIG93CitIb3cgTm93IEJyb3duIENvIMKgwqDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIHcKK0hvdyBOb3cgQnJvd24gQ293
CisKK3Rlc3QKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
NCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMi
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI1Igor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEwIgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTIiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMSIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEzIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTQiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNiIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE1IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTciCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxOCIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIwIgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTkiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYjdmYTI1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKQEAgLTAsMCArMSw5OCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3Qg
ZW5zdXJlcyB0aGUgc3VwZXIgcHJlY2VkZW5jZSBsb2dpYyBvZiBTcGF0aWFsIE5hdmlnYXRpb24K
KyAgICAoU05hdikgYWxnb3JpdGhtOiB0YXJnZXRzIHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVu
IHRoZSB0b3Agb3IgYm90dG9tCisgICAgb2YgdGhlIGN1cnJlbnQgcmVjdCBhcmUgcHJlZmVyYWJs
eSB0byBtb3ZlIGZvY3VzIHRvLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQg
c3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVw
czoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0
aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIHByZWZlcmFibHkgdG8gZWxlbWVudHMgcmlnaHQg
dXAgb3IgYWJvdmUgdGhlCisgICAgICAgY3VycmVudCBmb2N1c2VkIGVsZW1lbnQsIGV2ZW4gd2hl
biB0aGVyZSBhcmUgc29tZSBvdGhlciBjbG9zZXIKKyAgICAgICBidXQgbm90IHZlcnRpY2FsbHkg
YWxpZ25lZCBlbGVtZW50cyBpbiB0aGUgc2FtZSBkaXJlY3Rpb24uCisgIC0tPgorICA8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAg
dmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIlJpZ2h0Iiwg
IjIiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkxlZnQiLCAiMyJdLAorICAgICAg
WyJEb3duIiwgIjUiXSwKKyAgICAgIFsiUmlnaHQiLCAiNiJdLAorICAgICAgWyJEb3duIiwgIjgi
XSwKKyAgICAgIFsiTGVmdCIsICI3Il0sCisgICAgICBbIkRvd24iLCAiOSJdLAorICAgICAgWyJS
aWdodCIsICIxMCJdLAorICAgICAgWyJEb3duIiwgIjEyIl0sCisgICAgICBbIkxlZnQiLCAiMTEi
XSwKKyAgICAgIFsiRG93biIsICIxMyJdLAorICAgICAgWyJSaWdodCIsICIxNCJdLAorICAgICAg
WyJEb3duIiwgIjE2Il0sCisgICAgICBbIkxlZnQiLCAiMTUiXSwKKyAgICAgIFsiRG93biIsICIx
NyJdLAorICAgICAgWyJSaWdodCIsICIxOCJdLAorICAgICAgWyJEb3duIiwgIjIwIl0sCisgICAg
ICBbIkxlZnQiLCAiMTkiXSwKKyAgICAgIFsiRG93biIsICIyMSJdLAorICAgICAgWyJSaWdodCIs
ICIyMiJdLAorICAgICAgWyJEb3duIiwgIjI0Il0sCisgICAgICBbIkxlZnQiLCAiMjMiXSwKKyAg
ICAgIFsiRG93biIsICIyNSJdLAorICAgICAgWyJSaWdodCIsICIyNiJdLAorICAgICAgWyJEb3du
IiwgIjI3Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJd
CisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVu
Y2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGlu
ZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVU
YWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRl
ZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRv
dy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9k
eSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8YSBpZD0iMSIg
aHJlZj0iYSI+SDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEgaWQ9IjIiIGhyZWY9InAiPm93IE5vdyBCcm93biBD
b3c8L2E+PGJyPgorICAgIDxhIGlkPSIzIiBocmVmPSJhIj5IbzwvYT4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0iNCIgaHJlZj0icCI+dyBOb3cgQnJvd24gQ293PC9hPjxi
cj4KKyAgICA8YSBpZD0iNSIgaHJlZj0iYSI+SG93PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI2IiBocmVm
PSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iNyIgaHJlZj0iYSI+SG93IE48
L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsgPGEgaWQ9IjgiIGhyZWY9InAiPm93IEJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9
IjkiIGhyZWY9ImEiPkhvdyBObzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTAiIGhyZWY9InAiPncgQnJvd24gQ293
PC9hPjxicj4KKyAgICA8YSBpZD0iMTEiIGhyZWY9ImEiPkhvdyBOb3cgPC9hPiZuYnNwOyZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEg
aWQ9IjEyIiBocmVmPSJwIj5Ccm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxMyIgaHJlZj0i
YSI+SG93IE5vdyBCPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxNCIgaHJlZj0icCI+cm93biBDb3c8L2E+PGJyPgor
ICAgIDxhIGlkPSIxNSIgaHJlZj0iYSI+SG93IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjE2IiBocmVmPSJwIj5v
d24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTciIGhyZWY9ImEiPkhvdyBOb3cgQnJvPC9hPiAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBp
ZD0iMTgiIGhyZWY9InAiPnduIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjE5IiBocmVmPSJhIj5I
b3cgTm93IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSIyMCIgaHJlZj0icCI+biBDb3c8
L2E+PGJyPgorICAgIDxhIGlkPSIyMSIgaHJlZj0iYSI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBpZD0iMjIiIGhyZWY9InAiPkNvdzwvYT48YnI+CisgICAgPGEgaWQ9IjIzIiBocmVmPSJh
Ij5Ib3cgTm93IEJyb3duIEM8L2E+ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjI0IiBocmVmPSJwIj5vdzwvYT48YnI+Cisg
ICAgPGEgaWQ9IjI1IiBocmVmPSJhIj5Ib3cgTm93IEJyb3duIENvPC9hPiAmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIyNiIg
aHJlZj0icCI+dzwvYT48YnI+CisgICAgPGEgaWQ9IjI3IiBocmVmPSJhIj5Ib3cgTm93IEJyb3du
IENvdzwvYT48YnI+PGJyPgorICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgor
ICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlm
cmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRl
bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NjY0
YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorYQorCisKK2UKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmUzY2I1MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRl
bnQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBiYXNpYyB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5h
dmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogaWZyYW1lcyB3aXRob3V0CisgICAgYW55IGZvY3Vz
YWJsZSBjb250ZW50IHNob3VsZCBiZSBpZ25vcmVkLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoK
KyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2
aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0
YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGZyb20gInN0YXJ0IiB0byAi
ZW5kIiBieXBhc3NpbmcgdGhlIHR3byBpZnJhbWVzCisgICAgICAgaW4gYmV0d2VlbiB0aGVtLCBv
bmNlIGJvdGggaGF2ZSBubyBmb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlLgorICAtLT4KKyAgPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKwor
ICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVw
IiAgLCAic3RhcnQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJp
ZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjog
Z2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Rh
cnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVk
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7
CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQi
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJz
dGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lm
cmFtZTQuaHRtbCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBzY3JvbGxpbmc9ImF1dG8iPjwvaWZy
YW1lPjxicj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZTQuaHRtbCIgc2Nyb2xs
aW5nPSJhdXRvIj48L2lmcmFtZT48YnI+CisgICAgPGRpdj48YSBpZD0iZW5kIiBocmVmPSJhIj5l
PC9hPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3Jv
bGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNmOTI4YjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACithCisKKworYQorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI1IgorUEFTUyBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQwODFjYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwK
QEAgLTAsMCArMSw2OSBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0
aGUgYmFzaWMgaWZyYW1lIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2
aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDxp
ZnJhbWU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAg
ICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdh
dGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0
IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFsb25nIHRoZSBlbGVtZW50cyBp
biB0aGUgdHdvIGlmcmFtZXMgaW4gdGhlCisgICAgICAgV2ViIHBhZ2UsIGV2ZW50dWFsbHkgZ29p
bmcgdG8gb3V0ZXIgYW4gc291dGh3YXJkIGxpbmssIGJ1dAorICAgICAgIGdvaW5nIGJhY2sgdG8g
dGhlIGlmcmFtZSBvbiB0aGUgdG9wIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3Zl
VGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAg
ICAgIFsiRG93biIsICIzIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwg
ImVuZCJdLAorICAgICAgWyJVcCIsICI0Il0sCisgICAgICBbIlJpZ2h0IiwgIjUiXSwKKyAgICAg
IFsiUmlnaHQiLCAiNiJdLAorICAgICAgWyJSaWdodCIsICI3Il0sCisgICAgICBbIlVwIiwgIjMi
XSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIxIl0sCisgICAgICBbIkRPTkUi
LCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5r
c1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAv
LyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1v
dmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVz
dENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKwor
ICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFk
PgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+CisgICAgPGRpdj48YSBpZD0ic3RhcnQiIGhyZWY9ImEiPmE8L2E+PC9kaXY+Cisg
ICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUuaHRtbCI+PC9pZnJhbWU+PGJyPgorICAg
IDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lMi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZGl2
PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1
c2FibGUtZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1l
bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzM2Fh
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK2EKKworZQorUEFTUyBkb2N1bWVudC5kZWZhdWx0
Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0
aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2Fi
bGUtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYzk5
MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRt
bApAQCAtMCwwICsxLDY2IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVz
IHRoZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBO
YXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAg
PGlmcmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgor
ICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZp
Z2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3Rh
cnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRz
IGluIHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBn
b2luZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0
byB0aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1v
dmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMSJdLAor
ICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICIyIl0sCisgICAgICBbIkRvd24i
LCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAg
WyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAgICAgIFsiVXAiLCAic3RhcnQiXSwK
KyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
KHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQor
ICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24g
cGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOwor
CisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+
YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZTMuaHRtbCIgd2lk
dGg9IjgwIiBoZWlnaHQ9IjgwIiBzY3JvbGxpbmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8
ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmU8L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjliMDcwNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTcgQEAKK1Rlc3QgdGFibGUgdHJhdmVyc2FsCithCWEJYQorYQlhCWEKK2EJYQlh
CitFbmQgb2YgdGFibGUgdHJhdmVyc2FsIHRlc3QKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI4MThkZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRy
YXZlcnNhbC5odG1sCkBAIC0wLDAgKzEsODggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0
ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRhYmxlIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAg
IFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMg
aW4gYQorICAgIDx0YWJsZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25k
aXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisg
ICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29l
cyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhy
b3VnaCB0aGUgc3BhcnNlbHkgcG9zaXRpb25lZCBlbGVtZW50cworICAgICAgIGluIHRoZSB0YWJs
ZSwgZXZlbnR1YWxseSBnb2luZyB0byBhbiBvdXRlciBzb3V0aHdhcmQgbGluaywKKyAgICAgICBi
dXQgZ29pbmcgYmFjayBpbnNpZGUgdGhlIHRhYmxlIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAg
IHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwg
IjQiXSwKKyAgICAgIFsiRG93biIsICI3Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAg
ICBbIlVwIiwgIjciXSwKKyAgICAgIFsiUmlnaHQiLCAiOCJdLAorICAgICAgWyJSaWdodCIsICI5
Il0sCisgICAgICBbIlVwIiwgIjYiXSwKKyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0
IiwgIjIiXSwKKyAgICAgIFsiTGVmdCIsICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisg
ICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VL
ZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0
aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJs
ZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgp
CisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5v
bmxvYWQgPSBydW5UZXN0OworCisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPlRlc3QgdGFibGUgdHJhdmVyc2FsPGE+CisgICAg
PHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLWxlZnQ6
IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNl
bGxzcGFjaW5nPSIxIj4KKyAgICAgIDx0Ym9keT4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0
ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9
IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFs
aWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPjwv
dGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWdu
OiBjZW50ZXI7Ij48YSBpZD0iMyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgor
ICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAg
ICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+
PGEgaWQ9IjUiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRp
Y2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI2IiBocmVmPSJhIj5h
PC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5
bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI3IiBo
cmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iOCIgaHJlZj0iYSI+YTwvYT48L3RkPgor
ICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaWQ9IjkiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAg
IDwvdGJvZHk+CisgICAgPC90YWJsZT4KKyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjEwMHB4
Jz4KKyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPkVuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVz
dDxhPgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZl
cnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Fl
MDhiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACithCithCWEJYQorYQlhCWEKK2EJYQlhCithCithCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjkiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAicmlnaHQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10
cmF2ZXJzYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzBkMDM2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbApAQCAtMCwwICsxLDkzIEBACis8
aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyB0YWJsZSB0cmF2
ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29y
aXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGluIGEKKyAgICA8dGFibGU+IHNob3VsZCBiZSBhY2Nl
c3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3Ig
U05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBM
b2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAg
IDIpIEZvY3VzIG1vdmVzIGFsb25nIHRoZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIGV2ZW50dWFs
bHkKKyAgICAgICBnb2luZyB0byBvdXRlciBzb3V0aHdhcmQgYW5kIGVhc3R3YXJkIGxpbmtzLCBi
dXQgZ29pbmcKKyAgICAgICBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgor
ICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
PgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBb
IkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQi
XSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJp
Z2h0IiwgIjkiXSwKKyAgICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJSaWdodCIsICJyaWdodCJd
LAorICAgICAgWyJMZWZ0IiwgIjYiXSwKKyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0
IiwgIjIiXSwKKyAgICAgIFsiTGVmdCIsICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisg
ICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VL
ZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0
aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJs
ZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgp
CisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5v
bmxvYWQgPSBydW5UZXN0OworCisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPmE8L2E+PGJyPgorICAgIDx0YWJsZT4KKyAgICAg
IDx0Ym9keT4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBz
bWFsbDsiPjxhIGlkPSIxIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxl
PSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAg
ICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMyIgaHJlZj0iYSI+YTwv
YT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxl
PSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjQiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAg
ICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNSIgaHJlZj0iYSI+YTwv
YT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI2
IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAg
ICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNyIgaHJlZj0iYSI+YTwv
YT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI4
IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNt
YWxsOyI+PGEgaWQ9IjkiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAg
IDwvdGJvZHk+CisgICAgPC90YWJsZT4KKyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjhweCc+
CisgICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj5hPGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBz
dHlsZT0ibWFyZ2luLWxlZnQ6IDUwcHg7IG1hcmdpbi10b3A6LTcwcHgiPgorICAgICAgPGEgaWQ9
InJpZ2h0IiBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20iPmE8L2E+CisgICAgPC9kaXY+Cisg
ICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQt
b3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQt
c2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMTJhNTMxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1p
bi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorU3RhcnQKK0VuZAorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQ
QVNTIHRydWUgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YzNzQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ct
YW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbApAQCAtMCwwICsxLDk2IEBACis8aHRtbD4KKyAg
PCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBjb3JyZWN0bmVzcyB0aGUgZm9sbG93aW5n
IFNwYXRpYWwgTmF2aWdhdGlvbgorICAgIChTTmF2KSBhbGdvcml0aG0gZmVhdHVyZXMuCisKKyAg
ICAxKSBUaGVyZSBpcyBubyB1bml0IG92ZXJmbG93IGluIHRoZSBTTmF2IGFsZ29yaXRobSB3aGls
ZSBjYWxjdWxhdGluZworICAgICAgIHRoZSBiZXN0IG5vZGUgY2FuZGlkYXRlIHRvIG1vdmUgZm9j
dXMgdG8uIFRvIHRlc3QgdGhhdCB0aGlzIHBhZ2UKKyAgICAgICBwb3NpdGlvbnMgc29tZSBlbGVt
ZW50cyAxMDAwMDAwMCBwaXhlbHMgZmFyIGZyb20gZWFjaCBvdGhlciAoZGlzdGFuY2UKKyAgICAg
ICB0aGF0IGNhbiBjb25zaWRlcmVkIGxhcmdlIGVub3VnaCBmb3IgbW9zdCBvZiB0aGUgV2ViIFBh
Z2VzIG9uIHRoZQorICAgICAgIEludGVybmV0KS4KKworICAgIDIpIE1ha2Ugc3VyZSB0aGF0IGEg
YmVzdCBmb2N1c2FibGUgY2FuZGlkYXRlIG9ubHkgZ2V0cyBmb2N1c2VkCisgICAgICAgaWYgaXQg
aXMgdmlzaWJsZSBpbiB0aGUgY3VycmVudGwgVmlld3BvcnQuIFNjcm9sbC1pbi1kaXJlY3Rpb24K
KyAgICAgICBpcyBwZXJmb3JtZWQgb3RoZXJ3aXNlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoK
KyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2
aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0
YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEF0dGVtcHQgdG8gbW92ZSBmb2N1cyBkb3duIHRv
ICJlbmQuIEFzIGl0IGlzIHRvbyBmYXIgYW5kIG91dCBvZgorICAgICAgIHZpZXdwb3J0LCBmb2N1
cyBjaGFuZ2Ugd2lsbCBub3QgaGFwcGVuIGFuZCBwYWdlIHdpbGwgYmUgc2Nyb2xsZWQKKyAgICAg
ICBhIHN0ZXAgZG93bi4KKyAgICAzKSBCeSBzZW5kaW5nIGFuICJFbmQiIGtleXByZXNzLCBwYWdl
IGdldHMgc2Nyb2xsZWQgZG93biB0byBhIHBsYWNlCisgICAgICAgd2hlcmUgdGhlICJlbmQiIG5v
ZGUgZ2V0cyB2aXNpYmxlIGluIHRoZSB2aWV3cG9ydC4KKyAgICA0KSBTdGVwIF8xXyBpcyByYW4g
YWdhaW4sIGFuZCAiZW5kIiBnZXRzIGZvY3VzZWQuIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJs
ZTEgPSBbCisgICAgICBbIkRvd24iLCAic3RhcnQiXSwKKyAgICAgIFsiIiwgIiJdCisgICAgXTsK
KworICAgIHZhciBtb3ZlVGFibGUyID0gWworICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAg
WyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgewor
ICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4K
KyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAg
IHNldFRpbWVvdXQoc3RlcDEgLCAwKTsKKyAgICAgIHNldFRpbWVvdXQoc3RlcDIgLCA1MDApOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAxKCkKKyAgICB7CisgICAgICAvLyBBY3Rpb25zIGlu
ICdtb3ZlVGFibGUxJyBzaG91bGQga2VlcCB0aGUgZm9jdXMgaW4gdGhlIGN1cnJlbnRseQorICAg
ICAgLy8gZm9jdXNlZCBlbGVtZW50ICgnc3RhcnQnKSBvbmNlIHRoZSBiZXN0IGNhbmRpZGF0ZSAo
J2VuZCcpIGlzIG5vdAorICAgICAgLy8gdmlzaWJsZSBpbiBjdXJyZW50IHZpZXdwb3J0LgorICAg
ICAgdGVzdE1vdmVzKG1vdmVUYWJsZTEpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyKCkK
KyAgICB7CisgICAgICBzaG91bGRCZVRydWUoU3RyaW5nKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9w
ICE9IDApKTsKKworICAgICAgLy8gVGhlbiBpdCBzY3JvbGxzIGRvd24gdG8gdGhlIGVuZCBvZiB0
aGUgcGFnZSAuLi4KKyAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oImVuZCIpOworCisgICAgICAvLyBBbmQgJ21vdmVUYWJsZTInIHJlLXRy
aWVzIHRvIG1vdmUgZm9jdXMgZG93bi4KKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUyLCB0ZXN0
Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9
IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNv
bWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxh
IGlkPSJzdGFydCIgaHJlZj0iYSI+U3RhcnQ8L2E+CisgICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRv
cDoxMDAwMDAwMDBweCc+CisgICAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPkVuZDwvYT4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2Vk
ZW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVi
MGQzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxOSBAQAordGVzdAordGVzdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdAor
dGVzdAordGVzdAordGVzdAordGVzdAorCisKKworCit0ZXN0Cit0ZXN0CitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVj
ZWRlbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41MGU2ODBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNl
Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5z
dXJlcyB0aGUgc3VwZXIgcHJlY2VkZW5jZSBsb2dpYyBvZiBTcGF0aWFsIE5hdmlnYXRpb24KKyAg
ICAoU05hdikgYWxnb3JpdGhtOiB0YXJnZXRzIHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVuIHRo
ZSB0b3Agb3IgYm90dG9tCisgICAgb2YgdGhlIGN1cnJlbnQgcmVjdCBhcmUgcHJlZmVyYWJseSB0
byBtb3ZlIGZvY3VzIHRvLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3Vw
cG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoK
KyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNh
bGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIHByZWZlcmFibHkgdG8gZWxlbWVudHMgcmlnaHQgdXAg
b3IgYWJvdmUgdGhlCisgICAgICAgY3VycmVudCBmb2N1c2VkIGVsZW1lbnQsIGV2ZW4gd2hlbiB0
aGVyZSBhcmUgc29tZSBvdGhlciBjbG9zZXIKKyAgICAgICBidXQgbm90IHZlcnRpY2FsbHkgYWxp
Z25lZCBlbGVtZW50cyBpbiB0aGUgc2FtZSBkaXJlY3Rpb24uCisgIC0tPgorICA8aGVhZD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFy
IG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNiJd
LAorICAgICAgWyJEb3duIiwgIjgiXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsi
VXAiLCAiNyJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisg
ICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VL
ZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0
aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJs
ZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgp
CisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5v
bmxvYWQgPSBydW5UZXN0OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBp
ZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cisg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7IHRleHQtYWxpZ246IGxlZnQ7Ij4KKyAg
ICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSJzdGFy
dCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxhIGlkPSIyIiBo
cmVmPSJhIj50ZXN0PC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxhIGlkPSIzIiBocmVmPSJhIj50
ZXN0PC9hPjxicj4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAg
ICAgIDxhIGlkPSI0IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAg
PGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjUiIGhyZWY9
ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogNDBweDsiPgorICAgICAgICA8YSBpZD0iNiIgaHJlZj0iYSI+dGVzdDxicj48L2E+Cisg
ICAgICA8L2Rpdj4KKyAgICAgIDxhIGlkPSI3IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAg
IDxicj48YnI+PGJyPjxicj4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+
CisgICAgICAgIDxhIGlkPSI4IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2Pgor
ICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPC9kaXY+CisgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2
aWdhdGlvbi11dGlscy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uODAxMTllYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIE9yaWdpbmFsIGF1dGhvcjogRG91ZyBUdXJuZXIgPGRvdWcu
dHVybmVyQGdtYWlsLmNvbT4KKyAqCisgKiBDb250cmlidXRvcnM6CisgKiAgICAgKiBBbnRvbmlv
IEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKyAqKi8KKwordmFyIF9tb3ZlVGFibGU7Cit2
YXIgX21vdmVUYWJsZUluZGV4ID0gMDsKK3ZhciBfY29tcGxldGVkQ2FsbGJhY2sgPSBudWxsOwor
CitmdW5jdGlvbiB0ZXN0TW92ZXModGFibGUsIGNvbXBsZXRlZENiKSB7CisgICAvLyBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIF92ZXJpZnlBbmRBZHZhbmNlLCB0cnVlKTsKKwor
ICBfbW92ZVRhYmxlID0gdGFibGU7CisgIF9tb3ZlVGFibGVJbmRleCA9IDA7CisgIF9jb21wbGV0
ZWRDYWxsYmFjayA9IGNvbXBsZXRlZENiOworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbmV4
dE1vdmUoKQoreworICBfbW92ZVRhYmxlSW5kZXgrKzsKKworICAvLyBXaGVuIGEgdGFibGUgZW5k
cyB3aXRoICJET05FIiwgY2FsbCB0aGUgY29tcGxldGlvbiBjYWxsYmFjay4KKyAgaWYgKF9tb3Zl
VGFibGVbX21vdmVUYWJsZUluZGV4XVswXSA9PSAiRE9ORSIpCisgICAgaWYgKF9jb21wbGV0ZWRD
YWxsYmFjaykgeworICAgICAgX2NvbXBsZXRlZENhbGxiYWNrKCk7CisgICAgICByZXR1cm47Cisg
ICAgfQorCisgIC8vIHdoZW4gYSB0YWJsZSBoYXMgYW4gZW1wdHkgZWxlbWVudCwgZW5kIHRoZSBt
b3Zlcy4KKyAgaWYgKF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXSA9PSAiIikKKyAgICBy
ZXR1cm47CisKKyAgX21vdmUoKTsKK30KKworZnVuY3Rpb24gX21vdmUoKQoreworICB2YXIgZXZl
bnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9hcmRFdmVudHMnKTsKKyAgZXZlbnQuaW5p
dEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0Vmll
dywgX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UpOworICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICBz
ZXRUaW1lb3V0KCBfdmVyaWZ5QW5kQWR2YW5jZSAsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIF92ZXJp
ZnlBbmRBZHZhbmNlKCkKK3sKKyAgdmFyIGRpcmVjdGlvbiA9IF9tb3ZlVGFibGVbX21vdmVUYWJs
ZUluZGV4XVswXTsKKyAgdmFyIGV4cGVjdGVkSUQgPSBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRl
eF1bMV07CisKKyAgdmFyIGkgPSAwOworICB2YXIgbWFpbkZyYW1lSGFzRm9jdXMgPSB0cnVlOwor
ICBmb3IoOyBpIDwgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzLmxlbmd0aDsgaSsrKQorICAg
IGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbaV0uZG9jdW1lbnQuaGFzRm9jdXMoKSkg
eworICAgICAgbWFpbkZyYW1lSGFzRm9jdXMgPSBmYWxzZTsKKyAgICAgIGJyZWFrOworICAgIH0K
KworICAvLyB0aGlzIHN1cHBvcnQgZnJhbWVzIG5lc3RlZCBpbiBvbmUgbGV2ZWwgZGVlcCBvbmx5
LgorICBpZiAobWFpbkZyYW1lSGFzRm9jdXMpCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcImlkXCIpIiwgZXhwZWN0ZWRJRCk7
CisgIGVsc2UKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3
LmZyYW1lc1siICsgaSArICJdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwi
aWRcIikiLCBleHBlY3RlZElEKTsKKworICBfbmV4dE1vdmUoKTsKK30KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAppbmRleCAwMzMzYjkwLi5mMjg5MzlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZApAQCAtNTc4MiwzICs1NzgyLDYgQEAgc3ZnL2N1c3RvbS91c2UtaW5zdGFuY2VSb290LWV2
ZW50LWJ1YmJsaW5nLnhodG1sCiAKICMgTmV3IGZhaWx1cmUgYWZ0ZXIgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvNTM3NTgKIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLW1pZGRsZWNsaWNr
LW5vcGFzdGUuaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRl
clRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbgorZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDhm
NmQwM2MuLmU4NWQ2NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xMDIsMyArMTAy
LDYgQEAgcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2hhbmdlLW5vdGlmaWNhdGlvbi1vbi1z
Y3JvbGwuaHRtbAogCiAjIFNraXAgR2VvbG9jYXRpb24gdW50aWwgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MDI1IGlzIGxhbmRlZAogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWdlb2xvY2F0aW9uLmh0bWwKKworIyBOZWVkIHRvIGFkZCBmdW5jdGlv
bmFsaXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhhbmRsZSBlbmFibGUvZGlzYWJsZSBTcGF0aWFs
IE5hdmlnYXRpb24KK2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAppbmRleCAyOWRiZDg0Li41NjdjMmRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZApAQCAtNzM1LDMgKzczNSw2IEBAIGZhc3QvY3NzL25vbi1zdGFuZGFyZC1jaGVja2JveC1z
aXplLmh0bWwKIAogIyBTa2lwIEdlb2xvY2F0aW9uIHVudGlsIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDAyNSBpcyBsYW5kZWQKIGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcHJvcGVydGllcy1nZW9sb2NhdGlvbi5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25h
bGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBO
YXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIwNWI4Yi4uMjVmYTRj
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3NSBAQAorMjAxMC0wMS0yNSAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICBQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0LmNvbT4KKyAgICAgICAg
QmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1hcmNvLmJhcmlz
aW9uZUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgRXh0ZW5kIGtleWJvYXJkIG5hdmlnYXRp
b24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgdGhlIGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZlYXR1
cmUgWzFdLgorICAgICAgICBJdCBpbXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IG9m
IFdlYkNvcmUgYnkgZXh0ZW5kaW5nIHRoZSBiYXNpYyBrZXlib2FyZAorICAgICAgICBuYXZpZ2F0
aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgKGJhc2VkIG9uIFRhYiBmb3J3YXJkIGFuZCBiYWNrd2Fy
ZCkgd2l0aCB0aGUKKyAgICAgICAgYWRkaXRpb24gb2YgYSBkaXJlY3Rpb25hbCBiYXNlZCBuYXZp
Z2F0aW9uLCB3aGVyZSBmb2N1c2FibGUgZWxlbWVudHMgYXJlIGFjY2Vzc2libGUKKyAgICAgICAg
YmFzZWQgb24gdGhlaXIgc3BhdGlhbCBsb2NhdGlvbiBpbiBhIFdlYiBQYWdlLCBub3Qgb24gaXRz
IFRhYiBpbmRleCB2YWx1ZS4KKworICAgICAgICBIaWdobGlnaHRzOgorICAgICAgICAqIEZlYXR1
cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluICdTZXR0aW5ncycuIFBvcnQgc3BlY2lmaWMg
QVBJcyBuZWVkIHRvIGJlIGFkZGVkCisgICAgICAgICAgZm9yIHRvZ2dsZSBpdCBvbiBhbmQgb2Zm
LgorICAgICAgICAqIE9ubHkgZWxlbWVudHMgdmlld2VkIGluIHRoZSBjdXJyZW50IHZpZXdwb3J0
IGNhbiBoYXZlIGZvY3VzIG1vdmUgdG8gaXQuIElmIHRoZXJlIGlzCisgICAgICAgICAgbm90IGFu
eSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBhY3Rpb24gaXMgcGVyZm9ybWVkLgorICAgICAgICAq
IFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9uIFF0J3MgRFJUIG9ubHkgZm9yIG5vdyAoc2tp
cHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCisKKyAgICAgICAgS25vd24gaXNzdWVzICh0byBi
ZSBjb3ZlcmVkIGluIGZvbGxvdyB1cCBidWdzKToKKyAgICAgICAgKiBBZGQgcG9ydCBzcGVjaWZp
YyBob29rcyB0byBlYWNoIERSVHMgdG8gZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9u
LgorICAgICAgICAqIEZvcm0gbmF2aWdhdGlvbiBpcyBub3QgeWV0IHN1cHBvcnRlZC4KKyAgICAg
ICAgKiBNYWtlIG5hdmlnYXRpb24ga2V5cyBjdXN0b21pemFibGUuIEl0IGN1cnJlbnRseSB3b3Jr
cyB3aXRoIGFycm93cyBrZXlzIG9ubHkKKyAgICAgICAgICAodXAsIGRvd24sIHJpZ2h0IGFuZCBs
ZWZ0KS4KKyAgICAgICAgKiBNYWtlIGl0IHN1cHBvcnQgbW9kaWZpZXJzIChBbHQsIEN0cmwgYW5k
IFNoaWZ0KS4KKworICAgICAgICBbMV0gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGF0
aWFsX25hdmlnYXRpb24KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LXNjcm9sbGFibGUtY29udGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1l
bnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5k
LXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwt
c3VwZXJwcmVjZWRlbmNlLmh0bWwKKworICAgICAgICAqIG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5h
dmlnYXRpb24vbGlua3MuaHRtbDogQWRkZWQuCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmlzQXJyb3dLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmg6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkJlc3RDYW5kaWRhdGU6OkJlc3RDYW5kaWRhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6bmV4dEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3Vz
Q29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CisgICAgICAg
IChXZWJDb3JlOjppc1JlY3RJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpkaXN0YW5j
ZUluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclJlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6dGFrZXNTdXBlclByZWNlZGVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6dGFrZXNQ
cmVjZWRlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OnByZWNlZGVuY2VEaXN0YW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xs
SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aXNPZmZzY3JlZW5SZWN0KToKKyAgICAg
ICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNEaXJlY3Rp
b24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3M6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFn
ZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKToKKwogMjAxMC0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwgYi9X
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZDZlZDdjCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKQEAgLTAs
MCArMSw5IEBACis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+Cis8YSBocmVmPSJh
Ij5hPC9hPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxhIGhyZWY9ImEiPmE8L2E+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRp
b24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRl
c3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyODM0NmQKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1u
YXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPCFET0NUWVBFIGh0
bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRl
eHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlNwYXRpYWwgTmF2aWdhdGlv
biBUZXN0IENhc2VzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgorICA8aDEgc3R5bGU9InRleHQtYWxp
Z246IGxlZnQ7Ij5TcGF0aWFsIE5hdmlnYXRpb24gRnVuPC9oMT4KKyAgPGgyIHN0eWxlPSJ0ZXh0
LWFsaWduOiBsZWZ0OyI+M3gzIENlbnRlcmVkIFRhYmxlIFRlc3Q8L2gyPgorPC9kaXY+Cis8dGFi
bGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0
bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNw
YWNpbmc9IjIiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwv
dGQ+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48
L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+Cisg
ICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsi
PjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgor
ICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9w
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8
dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhy
ZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRv
cDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwv
dHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7
IHRleHQtYWxpZ246IGNlbnRlcjsiPjxicj4KKyAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVm
dDsiPgorICAgIDxoMj5WZXJ0aWNhbCBTaW5lIFRlc3Q8L2gyPjxicj4KKyAgPC9kaXY+CisgIDxk
aXYgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwv
YT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPjxhIGhyZWY9ImEiPnRlc3Q8
YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAg
ICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0OiA0MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2Pgor
ICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQw
cHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+Cisg
IDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhyZWY9
ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+Jm5i
c3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorCisgIDxoMj5JbmNyZWFz
aW5nIHNlbnRlbmNlIGxlbmd0aDwvaDI+CisgIDxhIGhyZWY9ImEiPkg8L2E+PGJyPgorICA8YSBo
cmVmPSJwIj5Ibzxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdzxicj48L2E+CisgIDxhIGhyZWY9
InAiPkhvdyA8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgTjwvYT48YnI+CisgIDxhIGhyZWY9
InAiPkhvdyBObzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3c8L2E+PGJyPgorICA8YSBo
cmVmPSJwIj5Ib3cgTm93IDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT48YnI+
CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnI8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93
IEJybzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBOb3cgQnJvd248L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3du
IDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBOb3cgQnJvd24gQ288L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duIENvdzwvYT48YnI+CisgIDxicj4KKyAgPGgyPlNwbGl0IHNlbnRlbmNlPGJyPjwvaDI+Cisg
IDxicj4KKyAgPGEgaHJlZj0icCI+SDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEgaHJlZj0icCI+b3cgTm93IEJy
b3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgTm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxi
cj4KKyAgPGEgaHJlZj0icCI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgQnJvd24gQ293PC9h
Pjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ccm93
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+
cm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5v
d24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPndu
IENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsgPGEgaHJlZj0icCI+biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3du
PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPkNvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBO
b3cgQnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dzwvYT48YnI+CisgIDxhIGhyZWY9InAi
PkhvdyBOb3cgQnJvd24gQ293PC9hPjxicj48YnI+CisgIDxoMj5MaW5lIFdyYXAgVGVzdDwvaDI+
PGJyPgorICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAzOTNweDsgaGVp
Z2h0OiA3MnB4OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgor
ICAgIDx0Ym9keT4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyI+CisgICAgICAgICAgPHNwYW4gY2xhc3M9Imh1Z2UiPgorICAgICAgICAgICAgPGEg
aHJlZj0iYSI+V2hpY2ggb2YgdGhlIGZvbGxvd2luZyBjb25zdGFuc3QgZG8geW91IGxpa2UgdGhl
IG1vc3QsIG9uZSBpcyBnLCBvbmUgaXMgcGksIGFuZCB0aGUgb3RoZXIgaXMgZS4gPC9hPjxicj4K
KyAgICAgICAgICA8L3NwYW4+PC90ZD4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+My4xNDwvYT48YnI+CisgICAgICAgICAg
PGEgaHJlZj0iYSI+Mi43MTwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Ni42NzwvYT48
YnI+CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFibGU+
PGJyPgorICA8aDI+SmF2YXNjcmlwdCBGb2N1cy9CbHVyIFRlc3Q8L2gyPgorICAgIFdoZW4gZ29p
bmcgdG8gYW55IGxpbmsgZnJvbSB0aGUgZm9sbG93aW5nIGxpbmssIHlvdSBzaG91bGQgc2VlIGEg
ZGlhbG9nLjxicj48YnI+CisgIDxhIGhyZWY9ImEiIG9uYmx1cj0nYWxlcnQoIm9uQmx1cnQiKSc+
VGVzdDwvYT48YnI+PGJyPgorCisgIDxoMj5GcmFtZVNldHM8L2gyPiA8YnI+CisgIDxmcmFtZXNl
dCBjb2xzPSIyNSUsMjUlLCoiPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8
ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgor
ICA8L2ZyYW1lc2V0PgorICA8YnI+PGJyPgorCisgIDxoMj5JRnJhbWVzPC9oMj48YnI+CisgIDxp
ZnJhbWUgc3JjPSJsaW5rcy5odG1sIj48L2lmcmFtZT48YnI+PGJyPjxicj4KKyAgPGgyPkRJVnM8
L2gyPjxicj4KKyAgPGRpdiBpZD12PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPGRpdiBp
ZD0iRGl2MSI+CisgICAgICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGEg
aHJlZj0iYSI+YTwvYT4KKyAgPC9kaXY+PGJyPjxicj4KKyAgPC9kaXY+CisgIDwvZGl2PgorICA8
YSBocmVmPSJsYXN0Ij5sYXN0PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCA0OWRmMWQ0Li4wZTk0ZWE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjE1Niw2
ICsyMTU2LDggQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxl
cihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYg
KGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSIpCiAgICAgICAgICAgICBkZWZhdWx0
VGFiRXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAgICAgICAgZWxzZSBpZiAoRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uID0gaXNBcnJvd0tleShldmVudC0+a2V5SWRlbnRpZmllcigpKSkKKyAgICAgICAg
ICAgIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKIAogICAgICAg
IC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNj
ZXNzaWJpbGl0eSB1c2VycwogICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZCgpKQpAQCAtMjE3MCw2ICsyMTcyLDIyIEBAIHZv
aWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCiAgICAgfQogfQogCitGb2N1c0RpcmVjdGlvbiBFdmVudEhhbmRsZXI6OmlzQXJy
b3dLZXkoY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyKQoreworICAgIEZvY3VzRGlyZWN0aW9u
IHJldFZhbCA9IChGb2N1c0RpcmVjdGlvbikgMDsKKworICAgIGlmIChrZXlJZGVudGlmaWVyID09
ICJEb3duIikKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Eb3duOworICAgIGVsc2Ug
aWYgKGtleUlkZW50aWZpZXIgPT0gIlVwIikKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rp
b25VcDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09ICJMZWZ0IikKKyAgICAgICAgcmV0
VmFsID0gRm9jdXNEaXJlY3Rpb25MZWZ0OworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0g
IlJpZ2h0IikKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25SaWdodDsKKworICAgIHJl
dHVybiByZXRWYWw7Cit9CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogYm9vbCBFdmVudEhh
bmRsZXI6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgZmxvYXREcmFn
Vmlld3BvcnRMb2NhdGlvbikgY29uc3QKIHsKQEAgLTI0NjIsNiArMjQ4MCwyNyBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6ZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50
KQogCiAjZW5kaWYKIAordm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxl
cihGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7
CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5KCkgfHwgZXZlbnQtPm1ldGFLZXkoKSB8fCBldmVudC0+
YWx0R3JhcGhLZXkoKSB8fCBldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKSB8fCAhcGFnZS0+c2V0dGluZ3Mo
KS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gQXJyb3dzIGFuZCBvdGhlciBwb3NzaWJsZSBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGtleXMg
Y2FuIGJlIHVzZWQgaW4gZGVzaWduCisgICAgLy8gbW9kZSBlZGl0aW5nLgorICAgIGlmIChtX2Zy
YW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5hZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24s
IGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQg
RXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50
KQogewogICAgIC8vIFdlIHNob3VsZCBvbmx5IGFkdmFuY2UgZm9jdXMgb24gdGFicyBpZiBubyBz
cGVjaWFsIG1vZGlmaWVyIGtleXMgYXJlIGhlbGQgZG93bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA2
YTEyZTcwLi5mN2IzZDI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
KysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVm
aW5lIEV2ZW50SGFuZGxlcl9oCiAKICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgorI2luY2x1ZGUg
IkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzAxLDYgKzMwMiw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50Kik7CiAgICAgdm9pZCBkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQq
KTsKKyAgICB2b2lkIGRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCopOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGFsbG93
REhUTUxEcmFnKGJvb2wmIGZsYWdESFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKQEAgLTMyMyw2
ICszMjUsOCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5
VXNlcigpOwogCisgICAgRm9jdXNEaXJlY3Rpb24gaXNBcnJvd0tleShjb25zdCBTdHJpbmcmKTsK
KwogICAgIGJvb2wgY2FwdHVyZXNEcmFnZ2luZygpIGNvbnN0IHsgcmV0dXJuIG1fY2FwdHVyZXNE
cmFnZ2luZzsgfQogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fT0JKQ19fKSAmJiAh
RU5BQkxFKEVYUEVSSU1FTlRBTF9TSU5HTEVfVklFV19NT0RFKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcAppbmRleCA1ZTc4YzdkLi4wYjg5NWZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApA
QCAtNTUsNiArNTUsNDEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK2VudW0gUHJlY2VkZW5jZU1vZGUg
eworICAgIE5vbmUgPSAtMSwKKyAgICBMb3csCisgICAgUHJlY2VkZW50LAorICAgIFN1cGVyUHJl
Y2VkZW50Cit9OworCitzdHJ1Y3QgQmVzdENhbmRpZGF0ZSB7CisgICAgQmVzdENhbmRpZGF0ZSgp
CisgICAgICAgIDogbm9kZSgwKQorICAgICAgICAsIGRpc3RhbmNlKG51bWVyaWNfbGltaXRzPGxv
bmcgbG9uZz46Om1heCgpKQorICAgICAgICAsIHBhcmVudERpc3RhbmNlKG51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1heCgpKQorICAgICAgICAsIG1vZGUoTm9uZSkKKyAgICAgICAgLCBwYXJl
bnRNb2RlKE5vbmUpCisgICAgeworICAgIH0KKyAgICBOb2RlKiBub2RlOworICAgIGxvbmcgbG9u
ZyBkaXN0YW5jZTsKKyAgICBsb25nIGxvbmcgcGFyZW50RGlzdGFuY2U7CisgICAgUHJlY2VkZW5j
ZU1vZGUgbW9kZTsKKyAgICBQcmVjZWRlbmNlTW9kZSBwYXJlbnRNb2RlOworfTsKKworc3RhdGlj
IGJvb2wgdGFrZXNTdXBlclByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJlY3QmLCBJbnRS
ZWN0Jik7CitzdGF0aWMgYm9vbCB0YWtlc1ByZWNlZGVuY2UoRm9jdXNEaXJlY3Rpb24sIEludFJl
Y3QmLCBJbnRSZWN0Jik7CitzdGF0aWMgbG9uZyBsb25nIHByZWNlZGVuY2VEaXN0YW5jZShGb2N1
c0RpcmVjdGlvbiwgSW50UmVjdCYsIEludFJlY3QmKTsKK3N0YXRpYyBsb25nIGxvbmcgZGlzdGFu
Y2VJbkRpcmVjdGlvbihOb2RlKiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBCZXN0Q2FuZGlkYXRl
Jik7CitzdGF0aWMgdm9pZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqLCBOb2RlKiwgRm9jdXNE
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBCZXN0Q2FuZGlkYXRlJik7CitzdGF0aWMgYm9vbCBp
c1JlY3RJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiwgSW50UmVjdCwgSW50UmVjdCk7CitzdGF0
aWMgaW5saW5lIEludFJlY3QgcmVuZGVyUmVjdChSZW5kZXJPYmplY3QqKTsKK3N0YXRpYyBsb25n
IGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0aW9uLCBJbnRSZWN0JiwgSW50UmVjdCYp
Oworc3RhdGljIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqLCBGb2N1c0RpcmVjdGlvbik7
CitzdGF0aWMgYm9vbCBpc09mZnNjcmVlblJlY3QoTm9kZSopOwogCiBzdGF0aWMgaW5saW5lIHZv
aWQgZGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCBmb2N1c2VkKQogewpAQCAtMTQ4LDYgKzE4MywyNCBAQCBib29sIEZvY3VzQ29udHJv
bGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRF
dmVudCogZQogCiBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQog
eworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndh
cmQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2
YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7
CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJp
Z2h0OgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
RG93bjoKKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoZGlyZWN0aW9u
LCBldmVudCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2
YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9h
cmRFdmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQorewogICAgIEZyYW1lKiBmcmFtZSA9
IGZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CkBAIC0yNTIsNiArMzA1LDcwIEBAIGJvb2wg
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBL
ZXlib2FyZEV2ZW50KiBldmVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250
cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9y
TWFpbkZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERv
Y3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERv
Y3VtZW50LT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAg
Ly8gSnVzdCBtb3ZlIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNE
aXJlY3Rpb24gdGFiRGlyZWN0aW9uID0gKEZvY3VzRGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09
IEZvY3VzRGlyZWN0aW9uTGVmdCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDsKKyAg
ICAgICAgLy8gJ2luaXRpYWxGb2N1cycgaXMgc2V0IHRvIHRydWUgc28gdGhlIGNocm9tZSBpcyBu
b3QgZm9jdXNlZC4KKyAgICAgICAgcmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcih0
YWJEaXJlY3Rpb24sIGV2ZW50LCB0cnVlKTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGluIHRo
ZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVzLgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIEZy
YW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBpZiAo
IXBhcmVudEZyYW1lIHx8ICFwYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIGZyYW1lID0gcGFyZW50RnJhbWU7CisgICAgfQorCisgICAgQmVzdENh
bmRpZGF0ZSBiZXN0Q2FuZGlkYXRlOworICAgIG5leHRJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1l
bnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGJlc3RDYW5kaWRhdGUpOworCisg
ICAgTm9kZSogbm9kZSA9IGJlc3RDYW5kaWRhdGUubm9kZTsKKyAgICBpZiAobm9kZSkgeworICAg
ICAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBjcmF6eSBqdW1wIGJldHdlZW4gbGlua3MgdGhhdCBh
cmUgZWl0aGVyIGZhciBhd2F5IGZyb20gZWFjaCBvdGhlciwKKyAgICAgICAgLy8gb3IganVzdCBu
b3QgY3VycmVudGx5IHZpc2libGUsIGxldHMgYmFpbCBvdXQgaWYgdGhlIGRlc3RpbmF0aW9uIGZv
Y3VzYWJsZSBlbGVtZW50IGlzCisgICAgICAgIC8vIG5vdCBpbiB0aGUgdmlld3BvcnQuCisgICAg
ICAgIGlmIChpc09mZnNjcmVlblJlY3Qobm9kZSkpIHsKKyAgICAgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKS0+ZnJhbWUoKTsKKyAgICAgICAgICAgIHNjcm9s
bEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24pOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2Vk
T3JNYWluRnJhbWUoKTsKKyAgICAgICAgc2Nyb2xsSW5EaXJlY3Rpb24oZnJhbWUsIGRpcmVjdGlv
bik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW5vZGUtPmlzRWxl
bWVudE5vZGUoKSkgeworICAgICAgICAvLyBGSVhNRTogTWF5IG5lZWQgYSB3YXkgdG8gZm9jdXMg
YSBkb2N1bWVudCBoZXJlLgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRG9j
dW1lbnQqIG5ld0RvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsKKworICAgIGlmIChuZXdEb2N1
bWVudCAhPSBmb2N1c2VkRG9jdW1lbnQpIHsKKyAgICAgICAgLy8gRm9jdXMgaXMgZ29pbmcgYXdh
eSBmcm9tIHRoZSBvcmlnaW5hbGx5IGZvY3VzZWQgZG9jdW1lbnQsIHNvIGNsZWFyIHRoZSBmb2N1
c2VkIG5vZGUuCisgICAgICAgIGZvY3VzZWREb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUoMCk7Cisg
ICAgfQorCisgICAgaWYgKG5ld0RvY3VtZW50KQorICAgICAgICBzZXRGb2N1c2VkRnJhbWUobmV3
RG9jdW1lbnQtPmZyYW1lKCkpOworCisgICAgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5m
b2N1cyhmYWxzZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBib29sIHJlbGlucXVp
c2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKQEAgLTM1
OSw0ICs0NzYsNTA4IEBAIHZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRBY3RpdmUoYm9vbCBhY3Rp
dmUpCiAgICAgICAgIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZShtX2ZvY3Vz
ZWRGcmFtZS0+ZG9jdW1lbnQoKSwgYWN0aXZlKTsKIH0KIAorLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCisvLyBIRUxQRVIgU1BBVElBTCBOQVZJR0FUSU9OIE1FVEhPRFMg
Ly8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitzdGF0aWMgdm9p
ZCBuZXh0SW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBOb2RlKiBzdGFydCwgRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgQmVzdENhbmRpZGF0ZSYg
YmVzdENhbmRpZGF0ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgLy8gV2FsayBh
bGwgdGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgYmVzdENhbmRpZGF0ZSBpZiB3ZSBmaW5kIGEg
bmVhcmVyIG5vZGUuCisgICAgZm9yIChOb2RlKiBjYW5kaWRhdGUgPSBkb2N1bWVudC0+Zmlyc3RD
aGlsZCgpOyBjYW5kaWRhdGU7IGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS0+dHJhdmVyc2VOZXh0Tm9k
ZSgpKSB7CisKKyAgICAgICAgLy8gSW5uZXIgZG9jdW1lbnRzIGNhc2UuCisgICAgICAgIGlmIChj
YW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkgeworICAgICAgICAgICAgSFRNTEZyYW1l
T3duZXJFbGVtZW50KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+
KGNhbmRpZGF0ZSk7CisgICAgICAgICAgICBpZiAoIW93bmVyLT5jb250ZW50RnJhbWUoKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgRG9jdW1lbnQqIGlubmVyRG9j
dW1lbnQgPSBvd25lci0+Y29udGVudEZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAgICBp
ZiAoIWlubmVyRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
ICAgIGlmIChpbm5lckRvY3VtZW50ID09IHN0YXJ0LT5kb2N1bWVudCgpKQorICAgICAgICAgICAg
ICAgIG5leHRJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVu
dCwgYmVzdENhbmRpZGF0ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBDaGVjayBpZiB0aGUgY3VycmVudCBpZnJhbWUgKG9yIGZyYW1lKSBlbGVtZW50IGl0c2VsZiBp
cyBhIGdvb2QgY2FuZGlkYXRlIHRvIG1vdmUgZm9jdXMgdG8uCisgICAgICAgICAgICAgICAgLy8g
SWYgaXQgaXMsIHRoZW4gd2UgdHJhdmVyc2UgaXRzIGlubmVyIG5vZGVzLgorICAgICAgICAgICAg
ICAgIC8vIHBzOiBsZXRzIHBhc3MgYSBjb3B5IG9mIHRoZSBiZXN0IGNhbmRpZGF0ZSwgdG8gbm90
IGdldCBmb29sZWQgYnkgYSBmcmFtZSB3L291dAorICAgICAgICAgICAgICAgIC8vIGZvY3VzYWJs
ZSBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICBCZXN0Q2FuZGlkYXRlIGJlc3RDYW5kaWRhdGVD
b3B5ID0gYmVzdENhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGlzdGFuY2Ug
PSBkaXN0YW5jZUluRGlyZWN0aW9uKHN0YXJ0LCBjYW5kaWRhdGUsIGRpcmVjdGlvbiwgYmVzdENh
bmRpZGF0ZUNvcHkpOworICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8IGJlc3RDYW5kaWRh
dGVDb3B5LmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGVDb3B5
LnBhcmVudE1vZGUgPSBiZXN0Q2FuZGlkYXRlQ29weS5tb2RlOworICAgICAgICAgICAgICAgICAg
ICBiZXN0Q2FuZGlkYXRlQ29weS5wYXJlbnREaXN0YW5jZSA9IGRpc3RhbmNlOworCisgICAgICAg
ICAgICAgICAgICAgIG5leHRJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0
aW9uLCBldmVudCwgYmVzdENhbmRpZGF0ZUNvcHkpOworCisgICAgICAgICAgICAgICAgICAgIC8v
IElmIHdlIHJlYWxseSBoYXZlIGEgaW5uZXIgYmVzdCBub2RlIGNhbmRpZGF0ZSwgdGFrZSBpdC4K
KyAgICAgICAgICAgICAgICAgICAgaWYgKGJlc3RDYW5kaWRhdGUubm9kZSAhPSBiZXN0Q2FuZGlk
YXRlQ29weS5ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgYmVzdENhbmRpZGF0ZSA9IGJl
c3RDYW5kaWRhdGVDb3B5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2FuZGlkYXRlLT5pc0tleWJvYXJk
Rm9jdXNhYmxlKGV2ZW50KSkgeworICAgICAgICAgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gZGlz
dGFuY2VJbkRpcmVjdGlvbihzdGFydCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIGJlc3RDYW5kaWRh
dGUpOworICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgYmVzdENhbmRpZGF0ZS5kaXN0YW5jZSkK
KyAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBiZXN0Q2FuZGlkYXRlLnBhcmVudERpc3Rh
bmNlIHx8IHN0YXJ0LT5kb2N1bWVudCgpICE9IGNhbmRpZGF0ZS0+ZG9jdW1lbnQoKSkgeworICAg
ICAgICAgICAgICAgICAgICBiZXN0Q2FuZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAg
ICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHN0YXJ0LT5kb2N1bWVudCgpID09IGNhbmRpZGF0ZS0+ZG9jdW1lbnQo
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RDYW5kaWRhdGUucGFyZW50RGlzdGFuY2Ug
PSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyBsb25nIGxvbmcgZGlzdGFuY2VJbkRpcmVjdGlv
bihOb2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBCZXN0
Q2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gY2FuZGlk
YXRlLmRpc3RhbmNlOworCisgICAgSW50UmVjdCBzdGFydFJlY3QgPSBJbnRSZWN0KCk7CisgICAg
SW50UmVjdCBkZXN0UmVjdCA9IEludFJlY3QoKTsKKyAgICBSZW5kZXJPYmplY3QqIHN0YXJ0UmVu
ZGVyID0gMDsKKyAgICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSAwOworCisgICAgc3RhcnRS
ZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVyKQorICAgICAg
ICBnb3RvIGV4aXRQb2ludDsKKworICAgIGRlc3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOwor
ICAgIGlmICghZGVzdFJlbmRlcikKKyAgICAgICAgZ290byBleGl0UG9pbnQ7CisKKyAgICBzdGFy
dFJlY3QgPSByZW5kZXJSZWN0KHN0YXJ0UmVuZGVyKTsKKyAgICBkZXN0UmVjdCAgPSByZW5kZXJS
ZWN0KGRlc3RSZW5kZXIpOworCisgICAgLy8gVGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBvZiB0d28g
Y29uc2VjdXRpdmUgbGlua3MgY291bGQgb3ZlcmxhcCwgc28gd2UgZGVjcmVhc2UgdGhlIHNpemUK
KyAgICAvLyBvZiBib3RoIHJlY3RhbmdsZXMuCisgICAgc3RhcnRSZWN0LmluZmxhdGUoLTQpOwor
ICAgIGRlc3RSZWN0LmluZmxhdGUoLTQpOworCisgICAgaWYgKCFpc1JlY3RJbkRpcmVjdGlvbihk
aXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpKQorICAgICAgICBnb3RvIGV4aXRQb2ludDsK
KworICAgIC8vIElmIHRhcmdldCB0YWtlcyBwcmVjZWRlbmNlIHRoZW4gdXNlIGl0IC0gZGlzdGFu
Y2UgaXMgbm90IGFsd2F5cyB0aGUgc2hvcnRlc3QKKyAgICAvLyBmb3IgYSBwcmVjZWRlbnQgdGFy
Z2V0CisgICAgaWYgKHRha2VzU3VwZXJQcmVjZWRlbmNlKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBk
ZXN0UmVjdCkgfHwgY2FuZGlkYXRlLnBhcmVudE1vZGUgPT0gU3VwZXJQcmVjZWRlbnQpIHsKKyAg
ICAgICAgLy8gcmVzZXQgZGlzdGFuY2UgYXMgd2UgYXJlIG5vdyBpbiBzdXBlciBwcmVjZWRlbmNl
IG1vZGUKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5tb2RlICE9IFN1cGVyUHJlY2VkZW50KQorICAg
ICAgICAgICAgZGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKwor
ICAgICAgICBsb25nIGxvbmcgcHJlY2VkZW50RGlzdGFuY2UgPSBwcmVjZWRlbmNlRGlzdGFuY2Uo
ZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKyAgICAgICAgaWYgKGRpc3RhbmNlID4g
cHJlY2VkZW50RGlzdGFuY2UpIHsKKyAgICAgICAgICAgIGNhbmRpZGF0ZS5tb2RlID0gU3VwZXJQ
cmVjZWRlbnQ7CisgICAgICAgICAgICByZXR1cm4gcHJlY2VkZW50RGlzdGFuY2U7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoY2FuZGlkYXRlLm1vZGUgPT0gU3VwZXJQcmVjZWRlbnQpCisg
ICAgICAgIGdvdG8gZXhpdFBvaW50OworCisgICAgLy8gSWYgdGFyZ2V0IHRha2VzIHByZWNlZGVu
Y2UgdGhlbiB1c2UgaXQgLSBkaXN0YW5jZSBpcyBub3QgYWx3YXlzIHRoZSBzaG9ydGVzdAorICAg
IC8vIGZvciBhIHByZWNlZGVudCB0YXJnZXQKKyAgICBpZiAodGFrZXNQcmVjZWRlbmNlKGRpcmVj
dGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCkgfHwgY2FuZGlkYXRlLnBhcmVudE1vZGUgPT0gUHJl
Y2VkZW50KSB7CisgICAgICAgIGxvbmcgbG9uZyBwcmVjZWRlbnREaXN0YW5jZSA9IHByZWNlZGVu
Y2VEaXN0YW5jZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworCisgICAgICAgIGlm
IChkaXN0YW5jZSA+IHByZWNlZGVudERpc3RhbmNlKSB7CisgICAgICAgICAgICBjYW5kaWRhdGUu
bW9kZSA9IFByZWNlZGVudDsKKyAgICAgICAgICAgIHJldHVybiBwcmVjZWRlbnREaXN0YW5jZTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChjYW5kaWRhdGUubW9kZSA9PSBQcmVjZWRlbnQp
CisgICAgICAgIGdvdG8gZXhpdFBvaW50OworCisgICAgcmV0dXJuIHNwYXRpYWxEaXN0YW5jZShk
aXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworCitleGl0UG9pbnQ6CisgICAgcmV0dXJu
IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpOworfQorCisvLyBGSVhNRTogVGhpcyBm
dW5jdGlvbiBpcyBmbGF3ZWQgYmVjYXVzZSBpdCBkb2Vzbid0IGNvbnNpZGVyIHRoZSBlZmZlY3Rz
IG9mIENTUyBvciBTVkcgdHJhbnNmb3Jtcy4KK3N0YXRpYyBpbmxpbmUgSW50UmVjdCByZW5kZXJS
ZWN0KFJlbmRlck9iamVjdCogcmVuZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAg
Tm9kZSogbm9kZSA9IHJlbmRlci0+bm9kZSgpOworICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQg
PSBub2RlLT5kb2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAg
IGJvb2wgdXNlU2Nyb2xsT2Zmc2V0ID0gIWlzT2Zmc2NyZWVuUmVjdChub2RlKSAmJiBub2RlLT5k
b2N1bWVudCgpICE9IG1haW5Eb2N1bWVudDsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFi
c29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKworICAgIC8vIFRoZXJlIGFyZSBjYXNlcywg
bW9zdGx5IHdoZW4gfHJlbmRlcnwncyBhc3NvY2lhdGVkIG5vZGUgaXMgb2Zmc2NyZWVuLAorICAg
IC8vIGl0IGlzIHNhZmllciB0byBnZXQgaXRzIHBvc2l0aW9uIHJlZ2FyZGxlc3MgdGhlIGNvbnRh
aW5lciBzY3JvbGwgb2Zmc2V0LgorICAgIGlmICh1c2VTY3JvbGxPZmZzZXQpCisgICAgICAgIGlm
IChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHJlbmRlci0+bm9kZSgpLT5kb2N1bWVudCgpLT52aWV3
KCkpCisgICAgICAgICAgICByZWN0Lm1vdmUoLWZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwor
CisgICAgLy8gaGFuZGxlIG5lc3RlZCBmcmFtZXMuCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBy
ZW5kZXItPmRvY3VtZW50KCktPmZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkt
PnBhcmVudCgpKQorICAgICAgICBpZiAoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1l
bnQgPSBmcmFtZS0+b3duZXJFbGVtZW50KCkpCisgICAgICAgICAgICByZWN0Lm1vdmUob3duZXJF
bGVtZW50LT5vZmZzZXRMZWZ0KCksIG93bmVyRWxlbWVudC0+b2Zmc2V0VG9wKCkpOworCisgICAg
cmV0dXJuIHJlY3Q7Cit9CisKKy8vIC0tIGdyYWJiZWQgZnJvbSBNSUNST0IgZXhjZXB0ZWQgYnkg
VVB8RE9XTiBsb2dpYy4KK3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgSW50UmVjdCBzdGFydFJlY3QsIEludFJlY3QgZGVzdFJlY3QpCit7Cisg
ICAgaW50IG1pZGRsZSA9IDA7CisKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBtaWRkbGUgPSBkZXN0UmVjdC54KCkgKyBhYnMo
ZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICByZXR1cm4gKG1pZGRsZSA8IHN0YXJ0UmVj
dC54KCkpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgbWlkZGxlID0g
ZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgcmV0dXJu
IChtaWRkbGUgID4gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkpOworICAg
IGNhc2UgRm9jdXNEaXJlY3Rpb25VcCA6CisgICAgICAgIHJldHVybiAoZGVzdFJlY3QueSgpIDwg
c3RhcnRSZWN0LnkoKSk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJl
dHVybiAoZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSA+IHN0YXJ0UmVjdC55
KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBD
aGVja3MgaWYgfG5vZGV8IGlzIGluIHRoZSB2aXNpYmxlIGFyZWEgKHZpZXdwb3J0KSBvZiBpdHMg
Y29udGFpbmVyIGRvY3VtZW50Lgorc3RhdGljIGJvb2wgaXNPZmZzY3JlZW5SZWN0KE5vZGUqIG5v
ZGUpCit7CisgICAgLy8gR2V0IHRoZSBjdXJyZW50IHZpZXdwb3J0IHJlY3Qgc28gd2UgY2FuIGNo
ZWNrIGlmIGJlc3RDYW5kaWRhdGUncyByZWN0CisgICAgLy8gaXMgdmlzaWJsZSBiZWZvcmUgYWN0
dWFsbHkgbW92aW5nIHRoZSBmb2N1cyB0byBpdC4gSW4gY2FzZSBpdCBpcyBub3QgdmlzaWJsZSwK
KyAgICAvLyB3ZSBzY3JvbGwgaW4gZGlyZWN0aW9uIGxhdGVyIG9uIGluc3RlYWQuCisgICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCk7CisgICAgaWYgKCFm
cmFtZVZpZXcpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSW50UmVjdCBjb250YWluZXJW
aWV3cG9ydFJlY3QgPSBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOworCisgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXIgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRl
Q2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKworICAgIHJldHVybiAhY29udGFpbmVyVmlld3BvcnRS
ZWN0LmludGVyc2VjdHMocmVjdCk7Cit9CisKKy8vIEluIGEgYm90dG9tLXVwIHdheSwgdGhpcyBt
ZXRob2QgdHJpZXMgdG8gc2Nyb2xsIHxmcmFtZXwgaW4gYSBnaXZlbiBkaXJlY3Rpb24KKy8vIHxk
aXJlY3Rpb258LCBnb2luZyB1cCBpbiB0aGUgZnJhbWUgdHJlZSBoaWVyYXJjaHkgaW4gY2FzZSBp
dCBkb2VzIG5vdCBzdWNjZWVkLgorc3RhdGljIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUq
IGZyYW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFmcmFtZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gTGVhdmUgdGhlIGZvY3VzIG9uIHRoZSBzYW1l
IG5vZGUgYnV0IHNjcm9sbC4KKyAgICBTY3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uOwor
CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoK
KyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsTGVmdDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBT
Y3JvbGxSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgor
ICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxVcDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9s
bERvd247CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGZy
YW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsUmVjdXJzaXZlbHkoc2Nyb2xsRGlyZWN0aW9uLCBT
Y3JvbGxCeUxpbmUpOworfQorCisvLyBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIHZlcnkgcHJlZmVy
YWJsZSByZWN0IHRvIG1vdmUgZm9jdXMgdG8uIEluIGVzc2VuY2UgdGFyZ2V0cworLy8gd2hvc2Ug
bWlkZGxlIGZhbGxzIGJldHdlZW4gdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVj
dC4KK3N0YXRpYyBib29sIHRha2VzU3VwZXJQcmVjZWRlbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAo
ZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJl
Y3Rpb25SaWdodCkgeworICAgICAgICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFi
cyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RS
ZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGludCBkZXN0RW5kICAg
ID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIGludCBz
dGFydEJvdHRvbSA9IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKTsKKyAg
ICAgICAgaW50IHN0YXJ0RW5kICAgID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lk
dGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQgJiYg
ZGVzdEVuZCA+IHN0YXJ0UmVjdC54KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0ICYmIGRlc3RSZWN0Lngo
KSA8IHN0YXJ0RW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVy
biAoKGRlc3RSZWN0LnkoKSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RSZWN0LnkoKSA8PSBzdGFy
dEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYm
IGRlc3RNaWRkbGUgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICB8fCAgKGRlc3RCb3R0b20g
Pj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9tIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAg
ICAgfHwgIChkZXN0UmVjdC55KCkgPT0gc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHx8ICAo
ZGVzdEJvdHRvbSA9PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgp
IDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0K
KworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIGludCBzdGFydEVuZCAgID0gc3RhcnRSZWN0
LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0TWlkZGxlID0g
ZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRl
c3RFbmQgICAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAg
ICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwICYmIGRlc3RSZWN0LnkoKSA+IHN0
YXJ0UmVjdC55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRp
cmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24gJiYgZGVzdFJlY3QueSgpIDwgc3RhcnRSZWN0
LnkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0
TWlkZGxlID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEVuZCkKKyAgICAg
ICAgICAgIHx8ICAoZGVzdFJlY3QueCgpID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdFJlY3QueCgp
IDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAgfHwgIChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0
LngoKSkKKyAgICAgICAgICAgIHx8ICAoc3RhcnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAg
IHx8ICAoZGVzdEVuZCA+PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPD0gc3RhcnRFbmQpCisg
ICAgICAgICAgICB8fCAgKGRlc3RSZWN0LngoKSA8PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQg
Pj0gc3RhcnRFbmQpKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBi
b29sIHRha2VzUHJlY2VkZW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIHN0
YXJ0UmVjdCwgSW50UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1
c0RpcmVjdGlvbkxlZnQgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAg
ICAgICAgaW50IG1pblkgPSBzdGFydFJlY3QueSgpIC8qIC0gaGFsZiAqLzsKKyAgICAgICAgaW50
IG1heFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyogKyBoYWxm
ICovOworICAgICAgICBpbnQgc3RhcnRCb3R0b20gPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0
UmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAgaW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC55KCkg
KyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RCb3R0b20gPSBk
ZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpOworCisgICAgICAgIHJldHVybiAo
KGRlc3RSZWN0LnkoKSA+PSBtaW5ZICYmIGRlc3RSZWN0LnkoKSA8PSBtYXhZKQorICAgICAgICAg
ICAgfHwgIChkZXN0Qm90dG9tID49IG1pblkgJiYgZGVzdEJvdHRvbSA8PSBtYXhZKQorICAgICAg
ICAgICAgfHwgIChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBz
dGFydEJvdHRvbSkKKyAgICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpID49IHN0YXJ0UmVjdC55
KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgfHwgIChkZXN0
Qm90dG9tID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA8PSBzdGFydEJvdHRvbSkKKyAg
ICAgICAgICAgIHx8ICAoZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRv
bSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAg
IGludCBtaW5YID0gc3RhcnRSZWN0LngoKSAvKiAtIGhhbGYgKi87CisgICAgICAgIGludCBtYXhY
ID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkgLyogKyBoYWxmICovOwor
CisgICAgICAgIGludCBkZXN0RW5kID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRo
KCkpOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LngoKSA+PSBtaW5YICYmIGRlc3RSZWN0
LngoKSA8PSBtYXhYKQorICAgICAgICAgICAgIHx8IChkZXN0RW5kID49IG1pblggJiYgZGVzdEVu
ZCA8PSBtYXhYKSk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBzcXJ0KCgo
eDEgLSB4MikgXiAyKSArICgoeTEgLSB5MikgXiAyKSkKK3N0YXRpYyBsb25nIGxvbmcgcHJlY2Vk
ZW5jZURpc3RhbmNlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgSW50UmVjdCYgc3RhcnRSZWN0
LCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBsb25nIGxvbmcgZGlzdGFuY2UgPSBudW1lcmlj
X2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKyAgICBsb25nIGxvbmcgc2VjID0gbnVtZXJpY19s
aW1pdHM8bG9uZyBsb25nPjo6bWF4KCk7CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGly
ZWN0aW9uTGVmdCkgeworICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKTsKKyAgICAg
ICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAv
IDI7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lk
dGgoKSk7CisgICAgICAgIGludCBkZXN0WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3Qu
aGVpZ2h0KCkpIC8gMjsKKworICAgICAgICBsb25nIGxvbmcgcCA9ICgoc3RhcnRYIC0gZGVzdFgp
ICogKHN0YXJ0WCAtIGRlc3RYKSkgKyAoKHN0YXJ0WSAtIGRlc3RZKSAqIChkZXN0WSAtIGRlc3RZ
KSk7CisgICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoc3RhcnRSZWN0Lngo
KSAtIGRlc3RSZWN0LngoKSkgKiAoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkpICsgKChz
dGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSAqIChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3Qu
eSgpKSk7CisgICAgICAgIGRpc3RhbmNlID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwg
ZGlzdGFuY2UgJiYgc3RhcnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBk
aXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0
aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3Rh
cnRSZWN0LndpZHRoKCkpOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFi
cyhzdGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0
LngoKTsKKyAgICAgICAgaW50IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5o
ZWlnaHQoKSkgLyAyOworCisgICAgICAgIGxvbmcgbG9uZyBwID0gKChkZXN0WCAtIHN0YXJ0WCkg
KiAoZGVzdFggLSBzdGFydFgpKSArICgoZGVzdFkgLSBzdGFydFkpICogKGRlc3RZIC0gc3RhcnRZ
KSk7CisgICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoZGVzdFJlY3QueCgp
IC0gc3RhcnRSZWN0LngoKSkgKiAoZGVzdFJlY3QueCgpIC0gc3RhcnRSZWN0LngoKSkpICsgKChk
ZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgpKSAqIChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3Qu
eSgpKSk7CisgICAgICAgIGRpc3RhbmNlID0gc3FydChwKTsKKworICAgICAgICBpZiAoc2VjIDwg
ZGlzdGFuY2UgJiYgc3RhcnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBk
aXN0YW5jZSA9IHNlYzsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0
aW9uVXApIHsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRS
ZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCk7Cisg
ICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkg
LyAyOworICAgICAgICBpbnQgZGVzdFkgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVp
Z2h0KCkpOworCisgICAgICAgIGxvbmcgbG9uZyBwID0gKChzdGFydFggLSBkZXN0WCkgKiAoc3Rh
cnRYIC0gZGVzdFgpKSArICgoc3RhcnRZIC0gZGVzdFkpICogKHN0YXJ0WSAtIGRlc3RZKSk7Cisg
ICAgICAgIHNlYyA9IHNxcnQocCk7CisKKyAgICAgICAgcCA9ICgoc3RhcnRSZWN0LngoKSAtIGRl
c3RSZWN0LngoKSkgKiAoc3RhcnRSZWN0LngoKSAtIGRlc3RSZWN0LngoKSkpICsgKChzdGFydFJl
Y3QueSgpIC0gZGVzdFJlY3QueSgpKSAqIChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgpKSk7
CisKKyAgICAgICAgZGlzdGFuY2UgPSBzcXJ0KHApOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0
YW5jZSAmJiBzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIGRpc3Rh
bmNlID0gc2VjOworCisgICAgICAgIHNlYyA9IChzdGFydFJlY3QueSgpIC0gZGVzdFJlY3QueSgp
KTsKKworICAgICAgICBpZiAoc2VjIDwgZGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9
IHNlYzsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikg
eworICAgICAgICAvLyBnZXQgbWlkZGxlIFggZm9yIGN1cnJlbnQgYW5kIHRhcmdldCByZWN0cwor
ICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgo
KSkgLyAyOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJl
Y3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKSArIGFi
cyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSAgPSBkZXN0UmVjdC55
KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAgICBsb25nIGxvbmcgcCA9
ICgoZGVzdFggLSBzdGFydFgpICogKGRlc3RYIC0gc3RhcnRYKSkgKyAoKGRlc3RZIC0gc3RhcnRZ
KSAqIChkZXN0WSAtIHN0YXJ0WSkpOworICAgICAgICBzZWMgPSBzcXJ0KHApOworCisgICAgICAg
IHAgPSAoKGRlc3RSZWN0LngoKSAtIHN0YXJ0UmVjdC54KCkpICogKGRlc3RSZWN0LngoKSAtIHN0
YXJ0UmVjdC54KCkpKSArICgoZGVzdFJlY3QueSgpIC0gc3RhcnRSZWN0LnkoKSkgKiAoZGVzdFJl
Y3QueSgpIC0gc3RhcnRSZWN0LnkoKSkpOworICAgICAgICBkaXN0YW5jZSA9IHNxcnQocCk7CisK
KyAgICAgICAgaWYgKHNlYyA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC54KCkgPT0gZGVzdFJlY3Qu
eCgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBzZWM7CisKKyAgICAgICAgc2VjID0gKGRlc3RS
ZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkpOworCisgICAgICAgIGlmIChzZWMgPCBkaXN0YW5jZSkK
KyAgICAgICAgICAgIGRpc3RhbmNlID0gc2VjOworICAgIH0KKworICAgIHJldHVybiBhYnMoZGlz
dGFuY2UpOworfQorCitzdGF0aWMgbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEludFJlY3QmIGEsIEludFJlY3QmIGIpCit7CisgICAgaW50IHgxID0g
MCwgeTEgPSAwLCB4MiA9IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25MZWZ0KSB7CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwKKyAg
ICAgICAgLy8KKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwgIHwt
LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAgfC0tLXwKKyAg
ICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAg
ICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4MSA9IGEueCgp
OworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBiLndp
ZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBl
bHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAgICAgLy8gdGhl
IGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAg
IHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lk
dGgoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAgICAgeDIgPSBi
LngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgLy8g
ICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vCisgICAg
ICAgIC8vICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAv
LworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAg
ICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAg
ICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4MSA9IGEueCgp
ICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0g
Yi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAgICAgfSBl
bHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAgICAgLy8gdGhl
IGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsK
KyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBi
LngoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAg
ICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAgICAgLy8gIHwt
LS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAg
ICAgLy8KKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18
CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLngoKSA+IGIueCgpICsgYi53aWR0aCgpKSB7Cisg
ICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisgICAgICAgICAg
ICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0g
Yi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsK
KyAgICAgICAgfSBlbHNlIGlmIChhLngoKSArIGEud2lkdGgoKSA8IGIueCgpKSB7CisgICAgICAg
ICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSByaWdodCBvZiBhCisgICAgICAgICAgICB4MSA9
IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAg
IHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGJvdGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1v
biB4J3MuCisgICAgICAgICAgICB4MSA9IDA7CisgICAgICAgICAgICB5MSA9IGEueSgpOworICAg
ICAgICAgICAgeDIgPSAwOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVpZ2h0KCk7Cisg
ICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24p
IHsKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18Cisg
ICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vICB8
LS0tfCAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLngoKSA+IGIueCgp
ICsgYi53aWR0aCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0
IG9mIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKSAr
IGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpICsgYi53aWR0aCgpOworICAgICAg
ICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngoKSArIGEud2lkdGgoKSA8
IGIueCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSByaWdodCBvZiBh
CisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBh
LnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpOworICAgICAgICAgICAg
eTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGJvdGggYiBhbmQg
YSBzaGFyZSBzb21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9IDA7CisgICAgICAgICAg
ICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gMDsKKyAgICAgICAg
ICAgIHkyID0gYi55KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIGxvbmcgZCA9ICgo
eDEgLSB4MikgKiAoeDEgLSB4MikpICsgKCh5MSAtIHkyKSAqICh5MSAtIHkyKSk7CisgICAgaWYg
KGQgPCAwKQorICAgICAgICBkICo9ICgtMSk7CisKKyAgICByZXR1cm4gZDsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IGQ4NjQwOGEuLjM4YzA4
YzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTU4LDYgKzU4LDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIGlzRm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1
c2VkOyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBib29sIGFkdmFuY2VGb2N1c0RpcmVjdGlv
bmFsbHkoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKKyAgICAgICAgYm9vbCBhZHZh
bmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBi
b29sIGluaXRpYWxGb2N1cyk7CisKICAgICAgICAgUGFnZSogbV9wYWdlOwogICAgICAgICBSZWZQ
dHI8RnJhbWU+IG1fZm9jdXNlZEZyYW1lOwogICAgICAgICBib29sIG1faXNBY3RpdmU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1
c0RpcmVjdGlvbi5oCmluZGV4IDI2MWM3NDUuLjU1MWM3MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9Gb2N1c0RpcmVjdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5o
CkBAIC0yOSw3ICsyOSwxMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGVudW0gRm9jdXNE
aXJlY3Rpb24gewogICAgICAgICBGb2N1c0RpcmVjdGlvbkZvcndhcmQgPSAwLAotICAgICAgICBG
b2N1c0RpcmVjdGlvbkJhY2t3YXJkCisgICAgICAgIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsCisg
ICAgICAgIEZvY3VzRGlyZWN0aW9uVXAsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25MZWZ0LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAg
ICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggMzg3M2M4OS4uNWI5ZDZjNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CkBAIC02NCw2ICs2NCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwg
bV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkK
ICAgICAsIG1fbG9jYWxTdG9yYWdlUXVvdGEoNSAqIDEwMjQgKiAxMDI0KSAgLy8gU3VnZ2VzdGVk
IGJ5IHRoZSBIVE1MNSBzcGVjLgogICAgICwgbV9wbHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmlj
X2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQorICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVk
KGZhbHNlKQpAQCAtMjM3LDYgKzIzOCwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbQogICAg
IG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vz
c0Zyb21GaWxlVVJMczsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpCit7CisgICAgbV9pc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOworfQorCiB2
b2lkIFNldHRpbmdzOjpzZXRKYXZhRW5hYmxlZChib29sIGlzSmF2YUVuYWJsZWQpCiB7CiAgICAg
bV9pc0phdmFFbmFibGVkID0gaXNKYXZhRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggOWYwMGIwZC4uM2Zi
MzliZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKQEAgLTExMyw2ICsxMTMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29s
KTsKICAgICAgICAgYm9vbCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkg
Y29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9
CiAKKyAgICAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAg
ICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSB7IHJldHVybiBtX2lzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkOyB9CisKICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29s
KTsKICAgICAgICAgYm9vbCBpc0phdmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFF
bmFibGVkOyB9CiAKQEAgLTI5OCw2ICszMDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHNpemVfdCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBt
X2xvY2FsU3RvcmFnZVF1b3RhOwogICAgICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5U
aW1lOworICAgICAgICBib29sIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAg
ICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkgOiAxOwogICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCA6IDE7Ci0tIAoxLjYuMC40Cgo=
</data>
<flag name="review"
          id="30143"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="30144"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47855</attachid>
            <date>2010-02-01 11:12:36 -0800</date>
            <delta_ts>2010-02-04 07:34:43 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v12)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>106189</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBmYmEzOTBiNDk0MTU1NzgxZjZlOThhYWZlMDQwYTBkY2M3ZjU4NmU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogTW9uLCAxIEZlYiAyMDEwIDE0OjMyOjMzIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gRXh0
ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJr
aXQuY29tPgpCYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFy
Y28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUg
Y29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVyZSBbMV0uCkl0IGlt
cHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2YgV2ViQ29yZSBieSBleHRlbmRpbmcg
dGhlIGJhc2ljIGtleWJvYXJkCm5hdmlnYXRpb24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQg
b24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJkKSB3aXRoIHRoZQphZGRpdGlvbiBvZiBhIGRpcmVj
dGlvbmFsIGJhc2VkIG5hdmlnYXRpb24sIHdoZXJlIGZvY3VzYWJsZSBlbGVtZW50cyBhcmUgYWNj
ZXNzaWJsZQpiYXNlZCBvbiB0aGVpciBzcGF0aWFsIGxvY2F0aW9uIGluIGEgV2ViIFBhZ2UsIG5v
dCBvbiBpdHMgVGFiIGluZGV4IHZhbHVlLgoKSGlnaGxpZ2h0czoKKiBGZWF0dXJlIGlzIHR1cm5l
ZCBvZmYgYnkgZGVmYXVsdCBpbiBTZXR0aW5ncy4gUG9ydCBzcGVjaWZpYyBBUElzIG5lZWQgdG8g
YmUgYWRkZWQKICBmb3IgdG9nZ2xpbmcgaXQgb24vb2ZmLgoqIE9ubHkgZWxlbWVudHMgdmlld2Vk
IGluIHRoZSBjdXJyZW50IHZpZXdwb3J0IGNhbiBoYXZlIGZvY3VzIG1vdmUgdG8gaXQuIElmIHRo
ZXJlIGlzCiAgbm90IGFueSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBhY3Rpb24gaXMgcGVyZm9y
bWVkLgoqIFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9uIFF0J3MgRFJUIG9ubHkgZm9yIG5v
dyAoc2tpcHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCgpLbm93biBpc3N1ZXMgKHRvIGJlIGNv
dmVyZWQgaW4gZm9sbG93LXVwIGJ1Z3MpOgoqIEFkZCBwb3J0IHNwZWNpZmljIGhvb2tzIHRvIGVh
Y2ggRFJUIHRvIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbi4KKiBTdXBwb3J0IGZv
ciBzcGF0aWFsIG5hdmlnYXRpb24gdGhyb3VnaCBmb3JtIGVsZW1lbnRzICg8aW5wdXQ+LCA8c2Vs
ZWN0PiwgZXRjKQogIGlzIGJlIGFkZGVkLgoqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6
YWJsZS4gSXQgY3VycmVudGx5IHdvcmtzIHdpdGggYXJyb3dzIGtleXMgb25seQogICh1cCwgZG93
biwgcmlnaHQgYW5kIGxlZnQpLgoqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFsdCwgQ3Ry
bCBhbmQgU2hpZnQpLgoKWzFdIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3BhdGlhbF9u
YXZpZ2F0aW9uCgpUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9y
aXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKICAgICAgIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNv
bnRlbnQuaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZy
YW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKICAgICAgIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5o
dG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJm
bG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCgoqIEFuZHJv
aWQubWs6CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJvOgoq
IG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbDogQWRkZWQuCiogbWFu
dWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNl
cy5odG1sOiBBZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwt
bmF2aWdhdGlvbi10ZXN0LWNhc2VzMi5odG1sOiBBZGRlZC4KKiBwYWdlL0V2ZW50SGFuZGxlci5j
cHA6CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6
CihXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRGlyZWN0aW9uRm9yS2V5KToKKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKToKKiBwYWdlL0V2ZW50SGFu
ZGxlci5oOgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKFdlYkNvcmU6OkZvY3VzQ29udHJv
bGxlcjo6YWR2YW5jZUZvY3VzKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZv
Y3VzSW5Eb2N1bWVudE9yZGVyKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZv
Y3VzRGlyZWN0aW9uYWxseSk6CihXZWJDb3JlOjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9u
KToKKFdlYkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgoqIHBhZ2UvRm9jdXNDb250cm9sbGVy
Lmg6CiogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2ViQ29yZTo6KToKKiBwYWdlL1NldHRpbmdz
LmNwcDoKKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CihXZWJDb3JlOjpTZXR0aW5nczo6
c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBwYWdlL1NldHRpbmdzLmg6CihXZWJDb3Jl
OjpTZXR0aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoqIHBhZ2UvU3BhdGlhbE5h
dmlnYXRpb25VdGlscy5jcHA6IEFkZGVkLgooV2ViQ29yZTo6cmVuZGVyUmVjdFJlbGF0aXZlVG9S
b290RG9jdW1lbnQpOgooV2ViQ29yZTo6aXNNb3ZpbmdGcm9tT3V0dGVyVG9Jbm5lckRvY3VtZW50
KToKKFdlYkNvcmU6OmlzTW92aW5nRnJvbUlubmVyVG9PdXR0ZXJEb2N1bWVudCk6CihXZWJDb3Jl
Ojppc09mZnNjcmVlblJlY3QpOgooV2ViQ29yZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgooV2ViQ29y
ZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6YXJlUmVjdHNGdWxseUFsaWduZWQpOgoo
V2ViQ29yZTo6YXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKToKKFdlYkNvcmU6OmV1Y2xpZGllYW5E
aXN0YW5jZSk6CihXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVjdHMpOgooV2Vi
Q29yZTo6c3BhdGlhbERpc3RhbmNlKToKKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuaDog
QWRkZWQuCihXZWJDb3JlOjopOgooV2ViQ29yZTo6Rm9jdXNDYW5kaWRhdGU6OkZvY3VzQ2FuZGlk
YXRlKToKCkxheW91dFRlc3RzOgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuClBhdGNoIGJ5
IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQuY29tPgoKRXh0ZW5kIGtleWJvYXJkIG5h
dmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgpodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRlZC4KKiBmYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbDogQWRkZWQu
CiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU1Lmh0bWw6
IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwt
c3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQu
CiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJs
ZS1jb250ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNv
bnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgoqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1
c2FibGUtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5o
dG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10
cmF2ZXJzYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRy
YXZlcnNhbC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1h
bmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCih0ZXN0TW92ZXMpOgooX25leHRN
b3ZlKToKKF9tb3ZlKToKKF92ZXJpZnlBbmRBZHZhbmNlKToKKiBwbGF0Zm9ybS9ndGsvU2tpcHBl
ZDoKKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKLS0tCiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzgg
KysKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sICAgICAgIHwg
ICAxMCArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwgICAg
ICB8ICAgIDcgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1s
ICAgICAgfCAgICA4ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQu
aHRtbCAgICAgIHwgICAgOCArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWU1Lmh0bWwgICAgICB8ICAgMTEgKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVu
Y2UtZXhwZWN0ZWQudHh0ICAgfCAgIDQ2ICsrKwogLi4uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnBy
ZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKysrCiAuLi4vc25hdi1pZnJhbWUtbm8t
Zm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0ICB8ICAgIDcgKwogLi4uL3NuYXYtaWZyYW1l
LW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwgICAgICAgICAgfCAgIDU4ICsrKwogLi4uL3NuYXYt
aWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQgfCAgIDE3ICsKIC4uLi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbCAgICAgICAgIHwgICA2OSArKysr
CiAuLi5lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCB8ICAg
MTYgKwogLi4uYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwg
fCAgIDY4ICsrKwogLi4uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCAgICAgICAg
ICAgICAgfCAgIDE3ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJz
YWwuaHRtbCAgIHwgICA4OCArKysrCiAuLi4vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBl
Y3RlZC50eHQgICAgICAgICB8ICAgMjAgKwogLi4uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwu
aHRtbCAgICAgICAgICAgICAgICAgfCAgIDkzICsrKysrCiAuLi50LW92ZXJmbG93LWFuZC1zY3Jv
bGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dCB8ICAgIDYgKwogLi4uc25hdi11bml0LW92ZXJm
bG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwgfCAgIDk2ICsrKysrCiAuLi4vc25hdi12
ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0ICAgICB8ICAgMTkgKwogLi4uL3Nu
YXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwgICAgICAgICAgICAgfCAgIDgxICsrKysK
IC4uLi9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIHwgICA2
OSArKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAgICAgICAg
ICB8ICAgIDMgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgICAgICAgICAgICAg
ICAgICAgfCAgICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkICAgICAgICAg
ICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL0FuZHJvaWQubWsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDgzICsrKysKIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJDb3JlL1dlYkNvcmUuZ3lwaSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvbWFudWFs
LXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sIHwgICAgOSArCiAuLi4vc3BhdGlh
bC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbCAgICAgICAgICAgICB8ICAxMzUgKysrKysrCiAu
Li4vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMyLmh0bWwgICAgICAgICAgICB8ICAgNzcg
KysrKwogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDUzICsrKy0KIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCAgICAgICAg
ICAgICAgICAgICB8ICAyMDkgKysrKysrKysrKwogV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5oICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFdlYkNvcmUvcGFnZS9Gb2N1c0RpcmVj
dGlvbi5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArLQogV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsKIFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArCiBXZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAgICAgICAgICAgICB8ICA0MjggKysrKysrKysr
KysrKysrKysrKysKIFdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0aWxzLmggICAgICAg
ICAgICAgIHwgICA4MCArKysrCiA0MyBmaWxlcyBjaGFuZ2VkLCAyMDYwIGluc2VydGlvbnMoKyks
IDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNS5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
aG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpv
bnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUt
Y29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRl
bnQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRy
YXZlcnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3Zl
cmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5p
dC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGlj
YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVy
cHJlY2VkZW5jZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwogY3JlYXRl
IG1vZGUgMTAwNzU1IFdlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5r
cy5odG1sCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDc1NSBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1u
YXZpZ2F0aW9uLXRlc3QtY2FzZXMyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3Jl
L3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIwNTU4M2EuLjRkYjhlZDcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEgKzEsMzkgQEAKKzIwMTAtMDItMDEgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0
b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5jb20+CisKKyAg
ICAgICAgRXh0ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2
aWdhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg2NjIKKworICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvaWZyYW1lNS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Ny
b2xsYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRp
cmVjdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVj
ZWRlbmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdE1v
dmVzKToKKyAgICAgICAgKF9uZXh0TW92ZSk6CisgICAgICAgIChfbW92ZSk6CisgICAgICAgIChf
dmVyaWZ5QW5kQWR2YW5jZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBw
ZWQ6CisKID09IFJvbGxlZCBvdmVyIHRvIENoYW5nZUxvZy0yMDEwLTAxLTI5ID09CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2Vz
L2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3Jlc291cmNlcy9pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
Li5jNWYxNzEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
aHRtbD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjEiIGhyZWY9ImEiPmI8L2E+PGJyPgorICAgIDxh
IGlkPSIyIiBocmVmPSJhIj5jPC9hPjxicj4KKyAgICA8YSBpZD0iMyIgaHJlZj0iYSI+ZDwvYT48
YnI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ODBweCIgPgorICAgICAgPGEgaWQ9Ijci
IGhyZWY9ImEiPmU8L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3Jlc291cmNlcy9pZnJhbWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZWE5N2MwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sCkBAIC0wLDAgKzEsNyBAQAor
PGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSI0IiBocmVmPSJhIj5nPC9hPgorICAgIDxhIGlk
PSI1IiBocmVmPSJhIj5oPC9hPgorICAgIDxhIGlkPSI2IiBocmVmPSJhIj5pPC9hPgorICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYWQ5ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMu
aHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIgaHJl
Zj0iYSI+YjwvYT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEyMHB4Ij4KKyAgICAgIDxh
IGlkPSIyIiBocmVmPSJhIj5kPC9hPgorICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZTQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjE3ZjQ4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbApAQCAtMCwwICsx
LDggQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjEyMHB4
Ij4KKyAgICAgIDxwPlRoaXMgZnJhbWUgaGFzIHNvbWUgdGV4dCBhbmQgbm8gZm9jdXNhYmxlIGVs
ZW1lbnQgLi4uPC9hPgorICAgIDwvZGl2PgorICAgIDxwPi4uLiBhbmQgc29tZSBtb3JlIHRleHQg
Li4uPC9hPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZjVkMjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZTUuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGEgaWQ9IjEiIGhyZWY9ImEiPmI8L2E+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDox
MjBweCI+CisgICAgICA8YSBpZD0iMyIgaHJlZj0iYSI+ZDwvYT4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMTIwcHg7IG1hcmdpbi10b3A6MTUwcHgiPgorICAgICAg
PGEgaWQ9IjIiIGhyZWY9ImEiPmM8L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
MzcwMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNDYgQEAKK3Rlc3QKK0jCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgb3cgTm93IEJyb3duIENvdworSG/CoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgwqAgdyBOb3cgQnJv
d24gQ293CitIb3cgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKg
wqDCoCBOb3cgQnJvd24gQ293CitIb3cgTiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoMKgwqAgwqAgwqDCoCBvdyBCcm93biBDb3cKK0hvdyBObyDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqDCoCB3IEJyb3duIENvdworSG93IE5vdyDCoMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoMKgIEJyb3duIENvdworSG93
IE5vdyBCIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIHJv
d24gQ293CitIb3cgTm93IEJyIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgwqAgb3duIENvdworSG93IE5vdyBCcm8gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqDCoCB3biBDb3cKK0hvdyBOb3cgQnJvd8KgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG4gQ293CitIb3cg
Tm93IEJyb3duIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKg
wqAgQ293CitIb3cgTm93IEJyb3duIEMgwqAgwqDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgwqAgb3cKK0hvdyBOb3cgQnJvd24gQ28gwqDCoMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgdworSG93IE5vdyBCcm93biBDb3cKKwordGVzdAor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTAiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjExIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE2IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTUiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE4IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjAiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICIxOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICIyNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgIjIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMjUiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICIyNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpv
bnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iN2ZhMjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApA
QCAtMCwwICsxLDk4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRo
ZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdhdGlvbgorICAgIChTTmF2
KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdlZW4gdGhlIHRvcCBv
ciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVmZXJhYmx5IHRvIG1vdmUg
Zm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZv
ciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEp
IExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisg
ICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyByaWdodCB1cCBvciBhYm92
ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZlbiB3aGVuIHRoZXJlIGFy
ZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGljYWxseSBhbGlnbmVkIGVs
ZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRh
YmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiUmlnaHQiLCAiMiJdLAorICAg
ICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiTGVmdCIsICIzIl0sCisgICAgICBbIkRvd24iLCAi
NSJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAg
WyJMZWZ0IiwgIjciXSwKKyAgICAgIFsiRG93biIsICI5Il0sCisgICAgICBbIlJpZ2h0IiwgIjEw
Il0sCisgICAgICBbIkRvd24iLCAiMTIiXSwKKyAgICAgIFsiTGVmdCIsICIxMSJdLAorICAgICAg
WyJEb3duIiwgIjEzIl0sCisgICAgICBbIlJpZ2h0IiwgIjE0Il0sCisgICAgICBbIkRvd24iLCAi
MTYiXSwKKyAgICAgIFsiTGVmdCIsICIxNSJdLAorICAgICAgWyJEb3duIiwgIjE3Il0sCisgICAg
ICBbIlJpZ2h0IiwgIjE4Il0sCisgICAgICBbIkRvd24iLCAiMjAiXSwKKyAgICAgIFsiTGVmdCIs
ICIxOSJdLAorICAgICAgWyJEb3duIiwgIjIxIl0sCisgICAgICBbIlJpZ2h0IiwgIjIyIl0sCisg
ICAgICBbIkRvd24iLCAiMjQiXSwKKyAgICAgIFsiTGVmdCIsICIyMyJdLAorICAgICAgWyJEb3du
IiwgIjI1Il0sCisgICAgICBbIlJpZ2h0IiwgIjI2Il0sCisgICAgICBbIkRvd24iLCAiMjciXSwK
KyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0
IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0
Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9
IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21l
LWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8YSBp
ZD0ic3RhcnQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxhIGlkPSIxIiBocmVmPSJhIj5I
PC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyAmbmJzcDs8YSBpZD0iMiIgaHJlZj0icCI+b3cgTm93IEJyb3duIENvdzwvYT48YnI+
CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IDxhIGlkPSI0IiBocmVmPSJwIj53IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxh
IGlkPSI1IiBocmVmPSJhIj5Ib3c8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjYiIGhyZWY9InAiPk5vdyBC
cm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSI3IiBocmVmPSJhIj5Ib3cgTjwvYT4gJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBp
ZD0iOCIgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iOSIgaHJlZj0i
YSI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxMCIgaHJlZj0icCI+dyBCcm93biBDb3c8L2E+PGJyPgor
ICAgIDxhIGlkPSIxMSIgaHJlZj0iYSI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTIiIGhy
ZWY9InAiPkJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjEzIiBocmVmPSJhIj5Ib3cgTm93
IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsmbmJzcDsgPGEgaWQ9IjE0IiBocmVmPSJwIj5yb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9
IjE1IiBocmVmPSJhIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTYiIGhyZWY9InAiPm93biBDb3c8L2E+
PGJyPgorICAgIDxhIGlkPSIxNyIgaHJlZj0iYSI+SG93IE5vdyBCcm88L2E+ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxOCIgaHJl
Zj0icCI+d24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTkiIGhyZWY9ImEiPkhvdyBOb3cgQnJv
dzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjIwIiBocmVmPSJwIj5uIENvdzwvYT48YnI+Cisg
ICAgPGEgaWQ9IjIxIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duPC9hPiAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSIy
MiIgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgICA8YSBpZD0iMjMiIGhyZWY9ImEiPkhvdyBOb3cg
QnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyZuYnNwOyA8YSBpZD0iMjQiIGhyZWY9InAiPm93PC9hPjxicj4KKyAgICA8YSBpZD0i
MjUiIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQ288L2E+ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjI2IiBocmVmPSJwIj53
PC9hPjxicj4KKyAgICA8YSBpZD0iMjciIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQ293PC9hPjxi
cj48YnI+CisgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZv
Y3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU2NjRhYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACithCisKKworZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5v
LWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZTNjYjUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCkBA
IC0wLDAgKzEsNTggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhl
IGJhc2ljIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAo
U05hdikgYWxnb3JpdGhtOiBpZnJhbWVzIHdpdGhvdXQKKyAgICBhbnkgZm9jdXNhYmxlIGNvbnRl
bnQgc2hvdWxkIGJlIGlnbm9yZWQuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERS
VCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0
ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9t
YXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgZnJvbSAic3RhcnQiIHRvICJlbmQiIGJ5cGFz
c2luZyB0aGUgdHdvIGlmcmFtZXMKKyAgICAgICBpbiBiZXR3ZWVuIHRoZW0sIG9uY2UgYm90aCBo
YXZlIG5vIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUuCisgIC0tPgorICA8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1v
dmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiICAsICJzdGFy
dCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVu
Y2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBr
bm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3Vz
KCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0YXJ0IiBocmVm
PSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lNC5odG1s
IiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJhbWU+PGJyPgor
ICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lNC5odG1sIiBzY3JvbGxpbmc9ImF1dG8i
PjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmU8L2E+PC9kaXY+
CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlm
cmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y5
MjhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTcgQEAKK2EKKworCithCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZy
YW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIK
K1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5m
cmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMi
CitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcu
ZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0
IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3
LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
NiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmll
dy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJs
ZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA4MWNi
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbApAQCAtMCwwICsx
LDY5IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyBp
ZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChT
TmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlmcmFtZT4gc2hv
dWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBz
dXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBz
OgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRp
Y2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0d28g
aWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2luZyB0byBvdXRl
ciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0aGUgaWZyYW1l
IG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsK
KyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAorICAgICAgWyJEb3du
IiwgIjMiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisg
ICAgICBbIlVwIiwgIjQiXSwKKyAgICAgIFsiUmlnaHQiLCAiNSJdLAorICAgICAgWyJSaWdodCIs
ICI2Il0sCisgICAgICBbIlJpZ2h0IiwgIjciXSwKKyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAg
WyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0K
KyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5n
IHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRh
YmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93
Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1l
IHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1sIj48L2lmcmFtZT48YnI+CisgICAgPGlmcmFtZSBz
cmM9InJlc291cmNlcy9pZnJhbWUyLmh0bWwiPjwvaWZyYW1lPgorICAgIDxkaXY+PGEgaWQ9ImVu
ZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVt
ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWUzNzhlYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNiBAQAorYQorCitlCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1l
c1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BB
U1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFt
ZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQ
QVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJh
bWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgor
UEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZy
YW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIK
K1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5m
cmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIi
CitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3Jl
ZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVu
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxNzkyYTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbApAQCAtMCww
ICsxLDY4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNp
YyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9u
IChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlmcmFtZT4g
c2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERS
VCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0
ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9t
YXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0
d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2luZyB0byBv
dXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0aGUgaWZy
YW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9
IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJE
b3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAor
ICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwg
IjIiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVw
IiwgIjEiXSwKKyAgICAgIFsiVXAiLCAic3RhcnQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0K
KyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5n
IHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRh
YmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVk
KCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93
Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1l
IHNyYz0icmVzb3VyY2VzL2lmcmFtZTMuaHRtbCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBzY3Jv
bGxpbmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEi
PmU8L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMDcwNzcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3QgdGFi
bGUgdHJhdmVyc2FsCithCWEJYQorYQlhCWEKK2EJYQlhCitFbmQgb2YgdGFibGUgdHJhdmVyc2Fs
IHRlc3QKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjEiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRy
YXZlcnNhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMmI4MThkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEs
ODggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRh
YmxlIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05h
dikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxk
IGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBw
b3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgor
ICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2Fs
bHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhyb3VnaCB0aGUgc3BhcnNlbHkgcG9zaXRp
b25lZCBlbGVtZW50cworICAgICAgIGluIHRoZSB0YWJsZSwgZXZlbnR1YWxseSBnb2luZyB0byBh
biBvdXRlciBzb3V0aHdhcmQgbGluaywKKyAgICAgICBidXQgZ29pbmcgYmFjayBpbnNpZGUgdGhl
IHRhYmxlIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAg
ICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI3
Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjciXSwKKyAgICAgIFsi
UmlnaHQiLCAiOCJdLAorICAgICAgWyJSaWdodCIsICI5Il0sCisgICAgICBbIlVwIiwgIjYiXSwK
KyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0IiwgIjIiXSwKKyAgICAgIFsiTGVmdCIs
ICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisgICAg
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9
ImEiPlRlc3QgdGFibGUgdHJhdmVyc2FsPGE+CisgICAgPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWdu
OiBsZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0
bzsiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIxIj4KKyAgICAgIDx0
Ym9keT4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4K
KyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxl
PSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMyIgaHJl
Zj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAg
PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBp
ZD0iNCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwt
YWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjUiIGhyZWY9ImEiPmE8L2E+
PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGlkPSI2IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+
CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7
IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI3IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAg
ICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7
Ij48YSBpZD0iOCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVy
dGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjkiIGhyZWY9ImEi
PmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGJvZHk+CisgICAgPC90YWJsZT4K
KyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjEwMHB4Jz4KKyAgICAgIDxhIGlkPSJlbmQiIGhy
ZWY9ImEiPkVuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdDxhPgorICAgIDwvZGl2PgorICAgIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxl
LXRyYXZlcnNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlMDhiYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFi
bGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACithCithCWEJYQorYQlh
CWEKK2EJYQlhCithCithCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjkiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicmln
aHQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzBkMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10
cmF2ZXJzYWwuaHRtbApAQCAtMCwwICsxLDkzIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMg
dGVzdCBlbnN1cmVzIHRoZSBiYXNpYyB0YWJsZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAg
ICBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRz
IGluIGEKKyAgICA8dGFibGU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQcmUtY29u
ZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKwor
ICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdv
ZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFsb25nIHRo
ZSBlbGVtZW50cyBpbiB0aGUgdGFibGUsIGV2ZW50dWFsbHkKKyAgICAgICBnb2luZyB0byBvdXRl
ciBzb3V0aHdhcmQgYW5kIGVhc3R3YXJkIGxpbmtzLCBidXQgZ29pbmcKKyAgICAgICBiYWNrIGlu
c2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9
IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJE
b3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNyJdLAor
ICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjkiXSwKKyAgICAgIFsiVXAi
LCAiNiJdLAorICAgICAgWyJSaWdodCIsICJyaWdodCJdLAorICAgICAgWyJMZWZ0IiwgIjYiXSwK
KyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0IiwgIjIiXSwKKyAgICAgIFsiTGVmdCIs
ICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisgICAg
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9
ImEiPmE8L2E+PGJyPgorICAgIDx0YWJsZT4KKyAgICAgIDx0Ym9keT4KKyAgICAgICAgPHRyPgor
ICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIxIiBocmVmPSJh
Ij5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEg
aWQ9IjIiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6
ZTogc21hbGw7Ij48YSBpZD0iMyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgor
ICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEg
aWQ9IjQiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6
ZTogc21hbGw7Ij48YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBz
dHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI2IiBocmVmPSJhIj5hPC9hPjwvdGQ+Cisg
ICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6
ZTogc21hbGw7Ij48YSBpZD0iNyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBz
dHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+Cisg
ICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjkiIGhyZWY9ImEi
PmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGJvZHk+CisgICAgPC90YWJsZT4K
KyAgICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjhweCc+CisgICAgICA8YSBpZD0iZW5kIiBocmVm
PSJhIj5hPGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDUwcHg7
IG1hcmdpbi10b3A6LTcwcHgiPgorICAgICAgPGEgaWQ9InJpZ2h0IiBocmVmPSJodHRwOi8vd3d3
Lmdvb2dsZS5jb20iPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1k
aXJlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhNTMxNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorU3RhcnQKK0VuZAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIHRydWUgaXMgdHJ1ZQorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11
bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3Jv
bGwtaW4tZGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Y2YzNzQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24u
aHRtbApAQCAtMCwwICsxLDk2IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1
cmVzIHRoZSBjb3JyZWN0bmVzcyB0aGUgZm9sbG93aW5nIFNwYXRpYWwgTmF2aWdhdGlvbgorICAg
IChTTmF2KSBhbGdvcml0aG0gZmVhdHVyZXMuCisKKyAgICAxKSBUaGVyZSBpcyBubyB1bml0IG92
ZXJmbG93IGluIHRoZSBTTmF2IGFsZ29yaXRobSB3aGlsZSBjYWxjdWxhdGluZworICAgICAgIHRo
ZSBiZXN0IG5vZGUgY2FuZGlkYXRlIHRvIG1vdmUgZm9jdXMgdG8uIFRvIHRlc3QgdGhhdCB0aGlz
IHBhZ2UKKyAgICAgICBwb3NpdGlvbnMgc29tZSBlbGVtZW50cyAxMDAwMDAwMCBwaXhlbHMgZmFy
IGZyb20gZWFjaCBvdGhlciAoZGlzdGFuY2UKKyAgICAgICB0aGF0IGNhbiBjb25zaWRlcmVkIGxh
cmdlIGVub3VnaCBmb3IgbW9zdCBvZiB0aGUgV2ViIFBhZ2VzIG9uIHRoZQorICAgICAgIEludGVy
bmV0KS4KKworICAgIDIpIE1ha2Ugc3VyZSB0aGF0IGEgYmVzdCBmb2N1c2FibGUgY2FuZGlkYXRl
IG9ubHkgZ2V0cyBmb2N1c2VkCisgICAgICAgaWYgaXQgaXMgdmlzaWJsZSBpbiB0aGUgY3VycmVu
dGwgVmlld3BvcnQuIFNjcm9sbC1pbi1kaXJlY3Rpb24KKyAgICAgICBpcyBwZXJmb3JtZWQgb3Ro
ZXJ3aXNlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3Ig
U05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBM
b2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAg
IDIpIEF0dGVtcHQgdG8gbW92ZSBmb2N1cyBkb3duIHRvICJlbmQuIEFzIGl0IGlzIHRvbyBmYXIg
YW5kIG91dCBvZgorICAgICAgIHZpZXdwb3J0LCBmb2N1cyBjaGFuZ2Ugd2lsbCBub3QgaGFwcGVu
IGFuZCBwYWdlIHdpbGwgYmUgc2Nyb2xsZWQKKyAgICAgICBhIHN0ZXAgZG93bi4KKyAgICAzKSBC
eSBzZW5kaW5nIGFuICJFbmQiIGtleXByZXNzLCBwYWdlIGdldHMgc2Nyb2xsZWQgZG93biB0byBh
IHBsYWNlCisgICAgICAgd2hlcmUgdGhlICJlbmQiIG5vZGUgZ2V0cyB2aXNpYmxlIGluIHRoZSB2
aWV3cG9ydC4KKyAgICA0KSBTdGVwIF8xXyBpcyByYW4gYWdhaW4sIGFuZCAiZW5kIiBnZXRzIGZv
Y3VzZWQuIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZp
Z2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZTEgPSBbCisgICAgICBbIkRvd24iLCAi
c3RhcnQiXSwKKyAgICAgIFsiIiwgIiJdCisgICAgXTsKKworICAgIHZhciBtb3ZlVGFibGUyID0g
WworICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07
CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5Iiwg
MSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRl
c3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHNldFRpbWVvdXQoc3RlcDEgLCAwKTsK
KyAgICAgIHNldFRpbWVvdXQoc3RlcDIgLCA1MDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0
ZXAxKCkKKyAgICB7CisgICAgICAvLyBBY3Rpb25zIGluICdtb3ZlVGFibGUxJyBzaG91bGQga2Vl
cCB0aGUgZm9jdXMgaW4gdGhlIGN1cnJlbnRseQorICAgICAgLy8gZm9jdXNlZCBlbGVtZW50ICgn
c3RhcnQnKSBvbmNlIHRoZSBiZXN0IGNhbmRpZGF0ZSAoJ2VuZCcpIGlzIG5vdAorICAgICAgLy8g
dmlzaWJsZSBpbiBjdXJyZW50IHZpZXdwb3J0LgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTEp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICBzaG91bGRCZVRy
dWUoU3RyaW5nKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICE9IDApKTsKKworICAgICAgLy8gVGhl
biBpdCBzY3JvbGxzIGRvd24gdG8gdGhlIGVuZCBvZiB0aGUgcGFnZSAuLi4KKyAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVuZCIpOwor
CisgICAgICAvLyBBbmQgJ21vdmVUYWJsZTInIHJlLXRyaWVzIHRvIG1vdmUgZm9jdXMgZG93bi4K
KyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUyLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+U3Rh
cnQ8L2E+CisgICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRvcDoxMDAwMDAwMDBweCc+CisgICAgICAg
IDxhIGlkPSJlbmQiIGhyZWY9ImEiPkVuZDwvYT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGViMGQzMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2Fs
LXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAordGVzdAordGVz
dMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdAordGVzdAordGVzdAordGVzdAordGVzdAor
CisKKworCit0ZXN0Cit0ZXN0CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNl
ZGVuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGU2ODBhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKQEAgLTAsMCArMSw4MSBAQAor
PGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgc3VwZXIgcHJlY2VkZW5j
ZSBsb2dpYyBvZiBTcGF0aWFsIE5hdmlnYXRpb24KKyAgICAoU05hdikgYWxnb3JpdGhtOiB0YXJn
ZXRzIHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVuIHRoZSB0b3Agb3IgYm90dG9tCisgICAgb2Yg
dGhlIGN1cnJlbnQgcmVjdCBhcmUgcHJlZmVyYWJseSB0byBtb3ZlIGZvY3VzIHRvLgorCisgICAg
KiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlz
YWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2Us
IGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVz
IHByZWZlcmFibHkgdG8gZWxlbWVudHMgcmlnaHQgdXAgb3IgYWJvdmUgdGhlCisgICAgICAgY3Vy
cmVudCBmb2N1c2VkIGVsZW1lbnQsIGV2ZW4gd2hlbiB0aGVyZSBhcmUgc29tZSBvdGhlciBjbG9z
ZXIKKyAgICAgICBidXQgbm90IHZlcnRpY2FsbHkgYWxpZ25lZCBlbGVtZW50cyBpbiB0aGUgc2Ft
ZSBkaXJlY3Rpb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3Bh
dGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsi
RG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNiJdLAorICAgICAgWyJEb3duIiwgIjgiXSwK
KyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAgICAgWyJVcCIs
ICIyIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6IDQwcHg7IHRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1s
ZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+dGVzdDxicj48L2E+
CisgICAgICA8L2Rpdj4KKyAgICAgIDxhIGlkPSIyIiBocmVmPSJhIj50ZXN0PC9hPiZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOzxhIGlkPSIzIiBocmVmPSJhIj50ZXN0PC9hPjxicj4KKyAgICAgIDxkaXYg
c3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI0IiBocmVmPSJhIj50
ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
IDgwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAg
PC9kaXY+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgICAgICA8
YSBpZD0iNiIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxhIGlk
PSI3IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDxicj48YnI+PGJyPjxicj4KKyAgICAg
IDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI4IiBocmVm
PSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgIDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24t
dXRpbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAxMTllYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIE9y
aWdpbmFsIGF1dGhvcjogRG91ZyBUdXJuZXIgPGRvdWcudHVybmVyQGdtYWlsLmNvbT4KKyAqCisg
KiBDb250cmlidXRvcnM6CisgKiAgICAgKiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0
Lm9yZz4KKyAqKi8KKwordmFyIF9tb3ZlVGFibGU7Cit2YXIgX21vdmVUYWJsZUluZGV4ID0gMDsK
K3ZhciBfY29tcGxldGVkQ2FsbGJhY2sgPSBudWxsOworCitmdW5jdGlvbiB0ZXN0TW92ZXModGFi
bGUsIGNvbXBsZXRlZENiKSB7CisgICAvLyBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1
cyIsIF92ZXJpZnlBbmRBZHZhbmNlLCB0cnVlKTsKKworICBfbW92ZVRhYmxlID0gdGFibGU7Cisg
IF9tb3ZlVGFibGVJbmRleCA9IDA7CisgIF9jb21wbGV0ZWRDYWxsYmFjayA9IGNvbXBsZXRlZENi
OworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbmV4dE1vdmUoKQoreworICBfbW92ZVRhYmxl
SW5kZXgrKzsKKworICAvLyBXaGVuIGEgdGFibGUgZW5kcyB3aXRoICJET05FIiwgY2FsbCB0aGUg
Y29tcGxldGlvbiBjYWxsYmFjay4KKyAgaWYgKF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVsw
XSA9PSAiRE9ORSIpCisgICAgaWYgKF9jb21wbGV0ZWRDYWxsYmFjaykgeworICAgICAgX2NvbXBs
ZXRlZENhbGxiYWNrKCk7CisgICAgICByZXR1cm47CisgICAgfQorCisgIC8vIHdoZW4gYSB0YWJs
ZSBoYXMgYW4gZW1wdHkgZWxlbWVudCwgZW5kIHRoZSBtb3Zlcy4KKyAgaWYgKF9tb3ZlVGFibGVb
X21vdmVUYWJsZUluZGV4XVswXSA9PSAiIikKKyAgICByZXR1cm47CisKKyAgX21vdmUoKTsKK30K
KworZnVuY3Rpb24gX21vdmUoKQoreworICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVu
dCgnS2V5Ym9hcmRFdmVudHMnKTsKKyAgZXZlbnQuaW5pdEtleWJvYXJkRXZlbnQoJ2tleWRvd24n
LCB0cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgX21vdmVUYWJsZVtfbW92ZVRhYmxl
SW5kZXhdWzBdLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICBkb2N1
bWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICBzZXRUaW1lb3V0KCBfdmVyaWZ5QW5kQWR2
YW5jZSAsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIF92ZXJpZnlBbmRBZHZhbmNlKCkKK3sKKyAgdmFy
IGRpcmVjdGlvbiA9IF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXTsKKyAgdmFyIGV4cGVj
dGVkSUQgPSBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMV07CisKKyAgdmFyIGkgPSAwOwor
ICB2YXIgbWFpbkZyYW1lSGFzRm9jdXMgPSB0cnVlOworICBmb3IoOyBpIDwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzLmxlbmd0aDsgaSsrKQorICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmll
dy5mcmFtZXNbaV0uZG9jdW1lbnQuaGFzRm9jdXMoKSkgeworICAgICAgbWFpbkZyYW1lSGFzRm9j
dXMgPSBmYWxzZTsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAvLyB0aGlzIHN1cHBvcnQgZnJh
bWVzIG5lc3RlZCBpbiBvbmUgbGV2ZWwgZGVlcCBvbmx5LgorICBpZiAobWFpbkZyYW1lSGFzRm9j
dXMpCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZShcImlkXCIpIiwgZXhwZWN0ZWRJRCk7CisgIGVsc2UKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1siICsgaSArICJdLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsKKwor
ICBfbmV4dE1vdmUoKTsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA4NTg5ZDhm
Li45NzAzNWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTc4NSwzICs1Nzg1LDYg
QEAgc2Nyb2xsYmFycy9zY3JvbGxiYXItbWlkZGxlY2xpY2stbm9wYXN0ZS5odG1sCiAKICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjQ2CiBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXBvc3RtZXNzYWdlLWNsb25lLWZyYW1lcy5odG1sCisKKyMgTmVlZCB0byBhZGQg
ZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUg
U3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKaW5kZXggODhiMGU0Yi4uMGExOTU3YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKQEAgLTExMCwzICsxMTAsNiBAQCBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNv
b2tpZS5odG1sCiAjIEZhaWxzIG9uIE1hYwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQzMzEKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVmZXJlci5odG1sCisK
KyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUg
ZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggMjFiNzdhZi4uNDdjNTkyZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTczOSwzICs3MzksNiBAQCBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZ2VvbG9jYXRpb24uaHRtbAogIyBOZWVkcyB0byBwYXNz
IGNvb2tpZXMgdG8gdGhlIG1lZGlhIHBsYXllcgogIyBTZWUgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzM5NTQKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tY29va2llLmh0
bWwKKworIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFsaXR5IHRvIER1bXBSZW5kZXJUcmVlIHRvIGhh
bmRsZSBlbmFibGUvZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24KK2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9B
bmRyb2lkLm1rCmluZGV4IGJiYjhiMjUuLjc5NGQ0ZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5k
cm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTM1MCw2ICszNTAsNyBAQCBMT0NB
TF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlwYWdlL1NjcmVlbi5jcHAgXAog
CXBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKIAlwYWdlL1NldHRpbmdzLmNwcCBcCisJcGFnZS9T
cGF0aWFsTmF2aWdhdGlvblV0aWxzLmNwcCBcCiAJcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4u
Y3BwIFwKIAlwYWdlL1dpbmRvd0ZlYXR1cmVzLmNwcCBcCiAJcGFnZS9Xb3JrZXJOYXZpZ2F0b3Iu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNmJlMDU2MC4uODBjOGNmOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NiBAQAorMjAxMC0wMi0wMSAgQW50b25p
byBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICBQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29A
d2Via2l0LmNvbT4KKyAgICAgICAgQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBC
YXJpc2lvbmUgPG1hcmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgRXh0
ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKwor
ICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGNvcmUgbG9naWMgb2YgdGhlICdTcGF0
aWFsIE5hdmlnYXRpb24nIGZlYXR1cmUgWzFdLgorICAgICAgICBJdCBpbXByb3ZlcyB0aGUgYWNj
ZXNzaWJpbGl0eSBzdXBwb3J0IG9mIFdlYkNvcmUgYnkgZXh0ZW5kaW5nIHRoZSBiYXNpYyBrZXli
b2FyZAorICAgICAgICBuYXZpZ2F0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgKGJhc2VkIG9uIFRh
YiBmb3J3YXJkIGFuZCBiYWNrd2FyZCkgd2l0aCB0aGUKKyAgICAgICAgYWRkaXRpb24gb2YgYSBk
aXJlY3Rpb25hbCBiYXNlZCBuYXZpZ2F0aW9uLCB3aGVyZSBmb2N1c2FibGUgZWxlbWVudHMgYXJl
IGFjY2Vzc2libGUKKyAgICAgICAgYmFzZWQgb24gdGhlaXIgc3BhdGlhbCBsb2NhdGlvbiBpbiBh
IFdlYiBQYWdlLCBub3Qgb24gaXRzIFRhYiBpbmRleCB2YWx1ZS4KKworICAgICAgICBIaWdobGln
aHRzOgorICAgICAgICAqIEZlYXR1cmUgaXMgdHVybmVkIG9mZiBieSBkZWZhdWx0IGluIFNldHRp
bmdzLiBQb3J0IHNwZWNpZmljIEFQSXMgbmVlZCB0byBiZSBhZGRlZAorICAgICAgICAgIGZvciB0
b2dnbGluZyBpdCBvbi9vZmYuCisgICAgICAgICogT25seSBlbGVtZW50cyB2aWV3ZWQgaW4gdGhl
IGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4gSWYgdGhlcmUgaXMK
KyAgICAgICAgICBub3QgYW55LCBhbiBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcyBwZXJm
b3JtZWQuCisgICAgICAgICogVGhlIGxheW91dCB0ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQg
b25seSBmb3Igbm93IChza2lwcGVkIGZvciBNYWMsIFdpbiBhbmQgR3RrKS4KKworICAgICAgICBL
bm93biBpc3N1ZXMgKHRvIGJlIGNvdmVyZWQgaW4gZm9sbG93LXVwIGJ1Z3MpOgorICAgICAgICAq
IEFkZCBwb3J0IHNwZWNpZmljIGhvb2tzIHRvIGVhY2ggRFJUIHRvIGVuYWJsZS9kaXNhYmxlIFNw
YXRpYWwgTmF2aWdhdGlvbi4KKyAgICAgICAgKiBTdXBwb3J0IGZvciBzcGF0aWFsIG5hdmlnYXRp
b24gdGhyb3VnaCBmb3JtIGVsZW1lbnRzICg8aW5wdXQ+LCA8c2VsZWN0PiwgZXRjKQorICAgICAg
ICAgIGlzIGJlIGFkZGVkLgorICAgICAgICAqIE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6
YWJsZS4gSXQgY3VycmVudGx5IHdvcmtzIHdpdGggYXJyb3dzIGtleXMgb25seQorICAgICAgICAg
ICh1cCwgZG93biwgcmlnaHQgYW5kIGxlZnQpLgorICAgICAgICAqIE1ha2UgaXQgc3VwcG9ydCBt
b2RpZmllcnMgKEFsdCwgQ3RybCBhbmQgU2hpZnQpLgorCisgICAgICAgIFsxXSBodHRwOi8vZW4u
d2lraXBlZGlhLm9yZy93aWtpL1NwYXRpYWxfbmF2aWdhdGlvbgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2Vk
ZW5jZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVy
c2FsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJl
Y3Rpb24uaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQu
bWs6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5h
dmlnYXRpb24vbGlua3MuaHRtbDogQWRkZWQuCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi10ZXN0LWNhc2VzMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2
ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRGlyZWN0
aW9uRm9yS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93
RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAq
IHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJv
bGxlcjo6YWR2YW5jZUZvY3VzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6
YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29u
dHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpm
aW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmRpc3RhbmNl
SW5EaXJlY3Rpb24pOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6CisgICAgICAg
ICogcGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvU3BhdGlh
bE5hdmlnYXRpb25VdGlscy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cmVuZGVyUmVj
dFJlbGF0aXZlVG9Sb290RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNNb3ZpbmdGcm9t
T3V0dGVyVG9Jbm5lckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzTW92aW5nRnJvbUlu
bmVyVG9PdXR0ZXJEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc09mZnNjcmVlblJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6YXJlUmVjdHNGdWxseUFs
aWduZWQpOgorICAgICAgICAoV2ViQ29yZTo6YXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OmV1Y2xpZGllYW5EaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpz
cGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6c3BhdGlh
bERpc3RhbmNlKToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDYW5kaWRh
dGU6OkZvY3VzQ2FuZGlkYXRlKToKKwogMjAxMC0wMS0yOSAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIFN0b3AgY29weWluZyBhbiBJREwgZmlsZSBpbiB0byB0aGUgZnJh
bWV3b3JrIHdyYXBwZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBhODMwYmNkLi5lNzYyZGQwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE0
MDQsNiArMTQwNCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luSGFzaC5oIFwKIAlXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIFwKIAlXZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaCBcCisJV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMu
Y3BwIFwKKwlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oIFwKIAlXZWJDb3Jl
L3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1VzZXJDb250
ZW50VVJMUGF0dGVybi5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5oIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggM2I3
NTdjNC4uZjczY2ZjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NTcsNiArMTg1Nyw4IEBACiAgICAgICAgICAgICAncGFn
ZS9TZWN1cml0eU9yaWdpbkhhc2guaCcsCiAgICAgICAgICAgICAncGFnZS9TZXR0aW5ncy5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGluZ3MuaCcsCisgICAgICAgICAgICAncGFnZS9TcGF0
aWFsTmF2aWdhdGlvblV0aWxzLmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRp
b25VdGlscy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNw
cCcsCiAgICAgICAgICAgICAncGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaCcsCiAgICAgICAg
ICAgICAncGFnZS9Vc2VyU2NyaXB0LmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMGJkYTQwNy4uZWM1NmE2NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC03NDgs
NiArNzQ4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgXAog
ICAgIHBhZ2UvU2NyZWVuLmNwcCBcCiAgICAgcGFnZS9TZXR0aW5ncy5jcHAgXAorICAgIHBhZ2Uv
U3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAgXAogICAgIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcCBcCiAgICAgcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgXAogICAgIHBhZ2UvWFNTQXVk
aXRvci5jcHAgXApAQCAtMTQ1MCw2ICsxNDUxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9T
Y3JlZW4uaCBcCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbi5oIFwKICAgICBwYWdlL1NldHRpbmdz
LmggXAorICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oIFwKICAgICBwYWdlL1dpbmRv
d0ZlYXR1cmVzLmggXAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmggXAogICAgIHBhZ2UvWFNT
QXVkaXRvci5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2
aWdhdGlvbi9saW5rcy5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL2xpbmtzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQ2ZWQ3
YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdh
dGlvbi9saW5rcy5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD48L2hlYWQ+Cis8
Ym9keT4KKzxwPgorPGEgaHJlZj0iYSI+YTwvYT4KKzxhIGhyZWY9ImEiPmE8L2E+Cis8YSBocmVm
PSJhIj5hPC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwt
dGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0
bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXRlc3QtY2FzZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
Li4zMjgzNDZkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwKQEAgLTAsMCAr
MSwxMzUgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRy
YW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iY29u
dGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CisgIDx0
aXRsZT5TcGF0aWFsIE5hdmlnYXRpb24gVGVzdCBDYXNlczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4K
KyAgPGgxIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+U3BhdGlhbCBOYXZpZ2F0aW9uIEZ1bjwv
aDE+CisgIDxoMiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPjN4MyBDZW50ZXJlZCBUYWJsZSBU
ZXN0PC9oMj4KKzwvZGl2PgorPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDog
MTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsiIGJvcmRlcj0iMSIg
Y2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgPHRib2R5PgorICAgIDx0cj4KKyAg
ICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+
PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+Cisg
ICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsi
PjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0
ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJl
Zj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9w
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8
dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhy
ZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZCBzdHls
ZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+
dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5
bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEi
PnRlc3Q8L2E+PC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YnI+CisgIDxkaXYg
c3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8aDI+VmVydGljYWwgU2luZSBUZXN0PC9o
Mj48YnI+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+CisgICAg
PGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQw
cHg7Ij48YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1h
cmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2
PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRl
c3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDxkaXYg
c3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+
CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgIDxhIGhy
ZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxhIGhy
ZWY9ImEiPnRlc3Q8YnI+PC9hPiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsg
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOworICA8YSBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKworICA8aDI+SW5jcmVhc2luZyBzZW50ZW5jZSBsZW5ndGg8L2gyPgorICA8YSBocmVm
PSJhIj5IPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88YnI+PC9hPgorICA8YSBocmVmPSJwIj5I
b3c8YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgPGJyPjwvYT4KKyAgPGEgaHJlZj0icCI+SG93
IE48L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm88L2E+PGJyPgorICA8YSBocmVmPSJwIj5I
b3cgTm93PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyA8L2E+PGJyPgorICA8YSBocmVm
PSJwIj5Ib3cgTm93IEI8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyPC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93
IEJyb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duPC9hPjxicj4KKyAgPGEg
aHJlZj0icCI+SG93IE5vdyBCcm93biA8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJy
b3duIEM8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIENvPC9hPjxicj4KKyAg
PGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICA8YnI+CisgIDxoMj5TcGxp
dCBzZW50ZW5jZTxicj48L2gyPgorICA8YnI+CisgIDxhIGhyZWY9InAiPkg8L2E+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNw
OzxhIGhyZWY9InAiPm93IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ibzwv
YT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53IE5vdyBCcm93
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3c8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+
Tm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOPC9hPiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9
InAiPm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBObzwvYT4gJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBo
cmVmPSJwIj53IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgPC9hPiZu
YnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsgPGEgaHJlZj0icCI+QnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5v
dyBCPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7IDxhIGhyZWY9InAiPnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93
IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsmbmJzcDsgPGEgaHJlZj0icCI+b3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBO
b3cgQnJvPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyZuYnNwOyA8YSBocmVmPSJwIj53biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93
IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm4gQ293PC9hPjxicj4KKyAgPGEg
aHJlZj0icCI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Db3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIEM8L2E+ICZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIENvPC9hPiAmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnc8
L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIENvdzwvYT48YnI+PGJyPgorICA8
aDI+TGluZSBXcmFwIFRlc3Q8L2gyPjxicj4KKyAgPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBs
ZWZ0OyB3aWR0aDogMzkzcHg7IGhlaWdodDogNzJweDsiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9
IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICA8dGJvZHk+CisgICAgICA8dHI+CisgICAgICAgIDx0
ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgorICAgICAgICAgIDxzcGFuIGNsYXNzPSJo
dWdlIj4KKyAgICAgICAgICAgIDxhIGhyZWY9ImEiPldoaWNoIG9mIHRoZSBmb2xsb3dpbmcgY29u
c3RhbnN0IGRvIHlvdSBsaWtlIHRoZSBtb3N0LCBvbmUgaXMgZywgb25lIGlzIHBpLCBhbmQgdGhl
IG90aGVyIGlzIGUuIDwvYT48YnI+CisgICAgICAgICAgPC9zcGFuPjwvdGQ+CisgICAgICAgIDx0
ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgorICAgICAgICAgIDxhIGhyZWY9ImEiPjMu
MTQ8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEiPjIuNzE8L2E+PGJyPgorICAgICAgICAg
IDxhIGhyZWY9ImEiPjYuNjc8L2E+PGJyPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAg
ICA8L3Rib2R5PgorICA8L3RhYmxlPjxicj4KKyAgPGgyPkphdmFzY3JpcHQgRm9jdXMvQmx1ciBU
ZXN0PC9oMj4KKyAgICBXaGVuIGdvaW5nIHRvIGFueSBsaW5rIGZyb20gdGhlIGZvbGxvd2luZyBs
aW5rLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZy48YnI+PGJyPgorICA8YSBocmVmPSJhIiBvbmJs
dXI9J2FsZXJ0KCJvbkJsdXJ0IiknPlRlc3Q8L2E+PGJyPjxicj4KKworICA8aDI+RnJhbWVTZXRz
PC9oMj4gPGJyPgorICA8ZnJhbWVzZXQgY29scz0iMjUlLDI1JSwqIj4KKyAgICA8ZnJhbWUgc3Jj
PSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICAgIDxmcmFt
ZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgPC9mcmFtZXNldD4KKyAgPGJyPjxicj4KKworICA8aDI+
SUZyYW1lczwvaDI+PGJyPgorICA8aWZyYW1lIHNyYz0ibGlua3MuaHRtbCI+PC9pZnJhbWU+PGJy
Pjxicj48YnI+CisgIDxoMj5ESVZzPC9oMj48YnI+CisgIDxkaXYgaWQ9dj4KKyAgICA8YSBocmVm
PSJhIj5hPC9hPgorICAgIDxkaXYgaWQ9IkRpdjEiPgorICAgICAgICA8YSBocmVmPSJhIj5hPC9h
PgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgIDwvZGl2Pjxicj48YnI+Cisg
IDwvZGl2PgorICA8L2Rpdj4KKyAgPGEgaHJlZj0ibGFzdCI+bGFzdDwvYT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlczIuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRl
c3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlczIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iODdhMzRkCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwt
bmF2aWdhdGlvbi10ZXN0LWNhc2VzMi5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBo
dG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0
ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CisgIDx0aXRsZT5TcGF0aWFsIE5hdmlnYXRp
b24gVGVzdCBDYXNlczwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGJyPjxicj4KKyAgPGJy
Pjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAg
PGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4K
KyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxi
cj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJy
Pjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAg
PGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPGJyPjxicj4KKyAgPHRhYmxlIHN0eWxlPSJ0ZXh0LWFs
aWduOiBsZWZ0OyB3aWR0aDogMzkzcHg7IGhlaWdodDogNzJweDsiIGJvcmRlcj0iMSIgY2VsbHBh
ZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIyIj4KKyAgICA8dGJvZHk+CisgICAgICA8dHI+CisgICAg
ICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgorICAgICAgICAgIDxzcGFuIGNs
YXNzPSJodWdlIj4KKyAgICAgICAgICAgIDxhIGhyZWY9ImEiPldoaWNoIG9mIHRoZSBmb2xsb3dp
bmcgY29uc3RhbnN0IGRvIHlvdSBsaWtlIHRoZSBtb3N0LCBvbmUgaXMgZywgb25lIGlzIHBpLCBh
bmQgdGhlIG90aGVyIGlzIGUuIDwvYT48YnI+CisgICAgICAgICAgPC9zcGFuPjwvdGQ+CisgICAg
ICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsiPgorICAgICAgICAgIDxhIGhyZWY9
ImEiPjMuMTQ8L2E+PGJyPgorICAgICAgICAgIDxhIGhyZWY9ImEiPjIuNzE8L2E+PGJyPgorICAg
ICAgICAgIDxhIGhyZWY9ImEiPjYuNjc8L2E+PGJyPgorICAgICAgICA8L3RkPgorICAgICAgPC90
cj4KKyAgICA8L3Rib2R5PgorICA8L3RhYmxlPjxicj4KKyAgPGgyPkphdmFzY3JpcHQgRm9jdXMv
Qmx1ciBUZXN0PC9oMj4KKyAgICBXaGVuIGdvaW5nIHRvIGFueSBsaW5rIGZyb20gdGhlIGZvbGxv
d2luZyBsaW5rLCB5b3Ugc2hvdWxkIHNlZSBhIGRpYWxvZy48YnI+PGJyPgorICA8YSBocmVmPSJh
IiBvbmJsdXI9J2FsZXJ0KCJvbkJsdXJ0IiknPlRlc3Q8L2E+PGJyPjxicj4KKworICA8aDI+RnJh
bWVTZXRzPC9oMj4gPGJyPgorICA8ZnJhbWVzZXQgY29scz0iMjUlLDI1JSwqIj4KKyAgICA8ZnJh
bWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICAg
IDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgPC9mcmFtZXNldD4KKyAgPGJyPjxicj4KKwor
ICA8aDI+SUZyYW1lczwvaDI+PGJyPgorICA8aWZyYW1lIHNyYz0ibGlua3MuaHRtbCI+PC9pZnJh
bWU+PGJyPjxicj48YnI+CisgIDxoMj5ESVZzPC9oMj48YnI+CisgIDxkaXYgaWQ9dj4KKyAgICA8
YSBocmVmPSJhIj5hPC9hPgorICAgIDxkaXYgaWQ9IkRpdjEiPgorICAgICAgICA8YSBocmVmPSJh
Ij5hPC9hPgorICAgIDwvZGl2PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgIDwvZGl2Pjxicj48
YnI+CisgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGEgaHJlZj0ibGFzdCI+bGFzdDwvYT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGE3Nzg2Ny4uNDcyMTk5NCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTIxNTYsMTAgKzIxNTYsMTUgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGV2ZW50LT5rZXlJZGVudGlmaWVyKCkgPT0g
IlUrMDAwOSIpCiAgICAgICAgICAgICBkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKGV2ZW50KTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24gPSBmb2N1
c0RpcmVjdGlvbkZvcktleShldmVudC0+a2V5SWRlbnRpZmllcigpKTsKKyAgICAgICAgICAgIGlm
IChkaXJlY3Rpb24gIT0gRm9jdXNEaXJlY3Rpb25Ob25lKQorICAgICAgICAgICAgICAgIGRlZmF1
bHRBcnJvd0V2ZW50SGFuZGxlcihkaXJlY3Rpb24sIGV2ZW50KTsKKyAgICAgICAgfQogCi0gICAg
ICAgLy8gcHJvdmlkZXMgS0IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBlbmhhbmNlZCBh
Y2Nlc3NpYmlsaXR5IHVzZXJzCi0gICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCi0gICAgICAgICAgIGhhbmRsZUtleWJv
YXJkU2VsZWN0aW9uTW92ZW1lbnQoZXZlbnQpOyAgICAgICAKKyAgICAgICAgLy8gcHJvdmlkZXMg
S0IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBlbmhhbmNlZCBhY2Nlc3NpYmlsaXR5IHVz
ZXJzCisgICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2Vy
SW50ZXJmYWNlRW5hYmxlZCgpKQorICAgICAgICAgICAgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25N
b3ZlbWVudChldmVudCk7CiAgICAgfQogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5rZXlwcmVzc0V2ZW50KSB7CiAgICAgICAgIG1fZnJhbWUtPmVkaXRvcigpLT5oYW5kbGVL
ZXlib2FyZEV2ZW50KGV2ZW50KTsKQEAgLTIxNzAsNiArMjE3NSwyNyBAQCB2b2lkIEV2ZW50SGFu
ZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ICAgIH0KIH0KIAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjpmb2N1c0RpcmVjdGlvbkZv
cktleShjb25zdCBBdG9taWNTdHJpbmcmIGtleUlkZW50aWZpZXIpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIERvd24sICgiRG93biIpKTsKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEF0b21pY1N0cmluZywgVXAsICgiVXAiKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIExlZnQsICgiTGVmdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgUmlnaHQsICgiUmlnaHQiKSk7CisKKyAgICBGb2N1c0RpcmVjdGlv
biByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbk5vbmU7CisKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9
PSBEb3duKQorICAgICAgICByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBp
ZiAoa2V5SWRlbnRpZmllciA9PSBVcCkKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25V
cDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09IExlZnQpCisgICAgICAgIHJldFZhbCA9
IEZvY3VzRGlyZWN0aW9uTGVmdDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09IFJpZ2h0
KQorICAgICAgICByZXRWYWwgPSBGb2N1c0RpcmVjdGlvblJpZ2h0OworCisgICAgcmV0dXJuIHJl
dFZhbDsKK30KKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBib29sIEV2ZW50SGFuZGxlcjo6
ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBGbG9hdFBvaW50JiBmbG9hdERyYWdWaWV3cG9y
dExvY2F0aW9uKSBjb25zdAogewpAQCAtMjQ2NCw2ICsyNDkwLDI3IEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjpkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKICNl
bmRpZgogCit2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKEZvY3Vz
RGlyZWN0aW9uIGZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBp
ZiAoZXZlbnQtPmN0cmxLZXkoKSB8fCBldmVudC0+bWV0YUtleSgpIHx8IGV2ZW50LT5hbHRHcmFw
aEtleSgpIHx8IGV2ZW50LT5zaGlmdEtleSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpIHx8ICFwYWdlLT5zZXR0aW5ncygpLT5pc1Nw
YXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBcnJv
d3MgYW5kIG90aGVyIHBvc3NpYmxlIGRpcmVjdGlvbmFsIG5hdmlnYXRpb24ga2V5cyBjYW4gYmUg
dXNlZCBpbiBkZXNpZ24KKyAgICAvLyBtb2RlIGVkaXRpbmcuCisgICAgaWYgKG1fZnJhbWUtPmRv
Y3VtZW50KCktPmluRGVzaWduTW9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAocGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCktPmFkdmFuY2VGb2N1cyhmb2N1c0RpcmVjdGlvbiwgZXZlbnQp
KQorICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwogdm9pZCBFdmVudEhh
bmRsZXI6OmRlZmF1bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAg
ICAgLy8gV2Ugc2hvdWxkIG9ubHkgYWR2YW5jZSBmb2N1cyBvbiB0YWJzIGlmIG5vIHNwZWNpYWwg
bW9kaWZpZXIga2V5cyBhcmUgaGVsZCBkb3duLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDZhMTJlNzAu
LjAwODkwOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgRXZl
bnRIYW5kbGVyX2gKIAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCisjaW5jbHVkZSAiRm9jdXNE
aXJlY3Rpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJT
Y3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zMDEsNiArMzAyLDcgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgZGVmYXVsdFNwYWNlRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQq
KTsKICAgICB2b2lkIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCopOworICAg
IHZvaWQgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2
ZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgYWxsb3dESFRNTERy
YWcoYm9vbCYgZmxhZ0RIVE1MLCBib29sJiBmbGFnVUEpIGNvbnN0OwpAQCAtMzIzLDYgKzMyNSw4
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzZXRGcmFtZVdhc1Njcm9sbGVkQnlVc2VyKCk7
CiAKKyAgICBGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbkZvcktleShjb25zdCBBdG9taWNT
dHJpbmcmKTsKKwogICAgIGJvb2wgY2FwdHVyZXNEcmFnZ2luZygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FwdHVyZXNEcmFnZ2luZzsgfQogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fT0JK
Q19fKSAmJiAhRU5BQkxFKEVYUEVSSU1FTlRBTF9TSU5HTEVfVklFV19NT0RFKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmNwcAppbmRleCBiZGQzMTUxLi5iODZjNDljIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcApAQCAtNDksMTIgKzQ5LDE3IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAj
aW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisj
aW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oIgogI2luY2x1ZGUgIldpZGdldC5oIgog
I2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7Cit1c2luZyBuYW1lc3BhY2Ugc3RkOworCitzdGF0aWMgdm9p
ZCBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKERvY3VtZW50KiwgTm9kZSosIEZvY3VzRGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgRm9jdXNDYW5kaWRhdGUmKTsKK3N0YXRpYyBsb25nIGxv
bmcgZGlzdGFuY2VJbkRpcmVjdGlvbihOb2RlKiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBGb2N1
c0NhbmRpZGF0ZSYpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlzcGF0Y2hFdmVudHNPbldpbmRv
d0FuZEZvY3VzZWROb2RlKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBmb2N1c2VkKQogewpAQCAt
MTUzLDYgKzE1OCwyNCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0SW5pdGlhbEZvY3VzKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZQogCiBib29sIEZvY3VzQ29u
dHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRF
dmVudCogZXZlbnQsIGJvb2wgaW5pdGlhbEZvY3VzKQogeworICAgIHN3aXRjaCAoZGlyZWN0aW9u
KSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkZvcndhcmQ6CisgICAgY2FzZSBGb2N1c0RpcmVj
dGlvbkJhY2t3YXJkOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVy
KGRpcmVjdGlvbiwgZXZlbnQsIGluaXRpYWxGb2N1cyk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlv
bkxlZnQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgIGNhc2UgRm9jdXNEaXJl
Y3Rpb25VcDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIGFk
dmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoZGlyZWN0aW9uLCBldmVudCk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVy
KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIGJvb2wgaW5p
dGlhbEZvY3VzKQorewogICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwog
ICAgIEFTU0VSVChmcmFtZSk7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3Vt
ZW50KCk7CkBAIC0yNTcsNiArMjgwLDcwIEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNl
Rm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVuCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJl
Y3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQp
Cit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgQVNTRVJU
KGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50
KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50LT5mb2N1c2VkTm9kZSgpOwor
ICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVzdCBtb3ZlIHRvIHRoZSBmaXJz
dCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rpb24gdGFiRGlyZWN0aW9uID0g
KEZvY3VzRGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgPwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJlY3Rpb25Gb3J3
YXJkIDogRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDsKKyAgICAgICAgLy8gJ2luaXRpYWxGb2N1cycg
aXMgc2V0IHRvIHRydWUgc28gdGhlIGNocm9tZSBpcyBub3QgZm9jdXNlZC4KKyAgICAgICAgcmV0
dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcih0YWJEaXJlY3Rpb24sIGV2ZW50LCB0cnVl
KTsKKyAgICB9CisKKyAgICAvLyBNb3ZlIHVwIGluIHRoZSBjaGFpbiBvZiBuZXN0ZWQgZnJhbWVz
LgorICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1l
LT50cmVlKCktPnBhcmVudCgpOworICAgICAgICBpZiAoIXBhcmVudEZyYW1lIHx8ICFwYXJlbnRG
cmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGZyYW1lID0g
cGFyZW50RnJhbWU7CisgICAgfQorCisgICAgRm9jdXNDYW5kaWRhdGUgZm9jdXNDYW5kaWRhdGU7
CisgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9j
dXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGZvY3VzQ2FuZGlkYXRlKTsKKworICAgIE5vZGUq
IG5vZGUgPSBmb2N1c0NhbmRpZGF0ZS5ub2RlOworICAgIGlmIChub2RlKSB7CisgICAgICAgIC8v
IEluIG9yZGVyIHRvIGF2b2lkIGNyYXp5IGp1bXAgYmV0d2VlbiBsaW5rcyB0aGF0IGFyZSBlaXRo
ZXIgZmFyIGF3YXkgZnJvbSBlYWNoIG90aGVyLAorICAgICAgICAvLyBvciBqdXN0IG5vdCBjdXJy
ZW50bHkgdmlzaWJsZSwgbGV0cyBiYWlsIG91dCBpZiB0aGUgZGVzdGluYXRpb24gZm9jdXNhYmxl
IGVsZW1lbnQgaXMKKyAgICAgICAgLy8gbm90IGluIHRoZSB2aWV3cG9ydC4KKyAgICAgICAgaWYg
KGlzT2Zmc2NyZWVuUmVjdChub2RlKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gbm9k
ZS0+ZG9jdW1lbnQoKS0+dmlldygpLT5mcmFtZSgpOworICAgICAgICAgICAgc2Nyb2xsSW5EaXJl
Y3Rpb24oZnJhbWUsIGRpcmVjdGlvbik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5G
cmFtZSgpOworICAgICAgICBzY3JvbGxJbkRpcmVjdGlvbihmcmFtZSwgZGlyZWN0aW9uKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3Vt
ZW50IGhlcmUuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBEb2N1bWVudCog
bmV3RG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpOworCisgICAgaWYgKG5ld0RvY3VtZW50ICE9
IGZvY3VzZWREb2N1bWVudCkgeworICAgICAgICAvLyBGb2N1cyBpcyBnb2luZyBhd2F5IGZyb20g
dGhlIG9yaWdpbmFsbHkgZm9jdXNlZCBkb2N1bWVudCwgc28gY2xlYXIgdGhlIGZvY3VzZWQgbm9k
ZS4KKyAgICAgICAgZm9jdXNlZERvY3VtZW50LT5zZXRGb2N1c2VkTm9kZSgwKTsKKyAgICB9CisK
KyAgICBpZiAobmV3RG9jdW1lbnQpCisgICAgICAgIHNldEZvY3VzZWRGcmFtZShuZXdEb2N1bWVu
dC0+ZnJhbWUoKSk7CisKKyAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmZvY3VzKGZh
bHNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGljIGJvb2wgcmVsaW5xdWlzaGVzRWRp
dGluZ0ZvY3VzKE5vZGUgKm5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwpAQCAtMzY0LDQgKzQ1
MSwxMjYgQEAgdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEFjdGl2ZShib29sIGFjdGl2ZSkKICAg
ICAgICAgZGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKG1fZm9jdXNlZEZyYW1l
LT5kb2N1bWVudCgpLCBhY3RpdmUpOwogfQogCitzdGF0aWMgdm9pZCBmaW5kRm9jdXNhYmxlTm9k
ZUluRGlyZWN0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgTm9kZSogc3RhcnQsIEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQsIEZvY3VzQ2FuZGlkYXRlJiBmb2N1
c0NhbmRpZGF0ZSkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworCisgICAgLy8gV2FsayBhbGwg
dGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRhdGUgZm9jdXNDYW5kaWRhdGUgaWYgd2UgZmluZCBhIG5l
YXJlciBub2RlLgorICAgIGZvciAoTm9kZSogY2FuZGlkYXRlID0gZG9jdW1lbnQtPmZpcnN0Q2hp
bGQoKTsgY2FuZGlkYXRlOyBjYW5kaWRhdGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5vZGUo
KSkgeworICAgICAgICAvLyBJbm5lciBkb2N1bWVudHMgY2FzZS4KKyAgICAgICAgaWYgKGNhbmRp
ZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKSB7CisgICAgICAgICAgICBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY2Fu
ZGlkYXRlKTsKKyAgICAgICAgICAgIGlmICghb3duZXItPmNvbnRlbnRGcmFtZSgpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVu
dCA9IG93bmVyLT5jb250ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgIGlmICgh
aW5uZXJEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAg
aWYgKGlubmVyRG9jdW1lbnQgPT0gc3RhcnQtPmRvY3VtZW50KCkpCisgICAgICAgICAgICAgICAg
ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0
aW9uLCBldmVudCwgZm9jdXNDYW5kaWRhdGUpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQge2l9ZnJhbWUgZWxlbWVudCBpdHNlbGYg
aXMgYSBnb29kIGNhbmRpZGF0ZQorICAgICAgICAgICAgICAgIC8vIHRvIG1vdmUgZm9jdXMgdG8u
IElmIGl0IGlzLCB0aGVuIHdlIHRyYXZlcnNlIGl0cyBpbm5lciBub2Rlcy4KKyAgICAgICAgICAg
ICAgICAvLyBMZXRzIHBhc3MgYSBjb3B5IG9mIHRoZSBiZXN0IGNhbmRpZGF0ZSwgdG8gbm90IGdl
dCBmb29sZWQgYnkgYQorICAgICAgICAgICAgICAgIC8vIGZyYW1lIHdpdGhvdXQgZm9jdXNhYmxl
IGVsZW1lbnRzLgorICAgICAgICAgICAgICAgIEZvY3VzQ2FuZGlkYXRlIGZvY3VzQ2FuZGlkYXRl
Q29weSA9IGZvY3VzQ2FuZGlkYXRlOworICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkaXN0YW5j
ZSA9IGRpc3RhbmNlSW5EaXJlY3Rpb24oc3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uLCBmb2N1
c0NhbmRpZGF0ZUNvcHkpOworICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8IGZvY3VzQ2Fu
ZGlkYXRlQ29weS5kaXN0YW5jZSkgeworICAgICAgICAgICAgICAgICAgICBmb2N1c0NhbmRpZGF0
ZUNvcHkucGFyZW50QWxpZ25tZW50ID0gZm9jdXNDYW5kaWRhdGVDb3B5LmFsaWdubWVudDsKKyAg
ICAgICAgICAgICAgICAgICAgZm9jdXNDYW5kaWRhdGVDb3B5LnBhcmVudERpc3RhbmNlID0gZGlz
dGFuY2U7CisKKyAgICAgICAgICAgICAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlv
bihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVudCwgZm9jdXNDYW5kaWRhdGVD
b3B5KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZWFsbHkgaGF2ZSBhbiBpbm5l
ciBiZXN0IG5vZGUgY2FuZGlkYXRlLCB0YWtlIGl0LgorICAgICAgICAgICAgICAgICAgICBpZiAo
Zm9jdXNDYW5kaWRhdGUubm9kZSAhPSBmb2N1c0NhbmRpZGF0ZUNvcHkubm9kZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlID0gZm9jdXNDYW5kaWRhdGVDb3B5OworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRh
dGUgIT0gc3RhcnQgJiYgY2FuZGlkYXRlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkgewor
ICAgICAgICAgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gZGlzdGFuY2VJbkRpcmVjdGlvbihzdGFy
dCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIGZvY3VzQ2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlm
IChkaXN0YW5jZSA8IGZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAg
aWYgKGRpc3RhbmNlIDwgZm9jdXNDYW5kaWRhdGUucGFyZW50RGlzdGFuY2UKKyAgICAgICAgICAg
ICAgICAgICAgJiYgc3RhcnQtPmRvY3VtZW50KCkgPT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpKSB7
CisgICAgICAgICAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7Cisg
ICAgICAgICAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlID0gZGlzdGFuY2U7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGFydC0+ZG9jdW1lbnQoKSA9PSBjYW5kaWRhdGUtPmRv
Y3VtZW50KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0NhbmRpZGF0ZS5wYXJlbnRE
aXN0YW5jZSA9IGNNYXhEaXN0YW5jZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYoc3RhcnQt
PmRvY3VtZW50KCkgIT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIC8vIElmIHRoZSB8c3RhcnR8IChjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50KSBpcyBpbnNp
ZGUgYW4gaW5uZXIKKyAgICAgICAgICAgICAgICAgICAgLy8gZG9jdW1lbnQgYW5kIHRoZSB8Y2Fu
ZGlkYXRlfCBpcyBvbiBhIGRpZmZlcmVudCBkb2N1bWVudCwgd2Ugb25seQorICAgICAgICAgICAg
ICAgICAgICAvLyBjb25zaWRlciB0byBtb3ZlIGlmIHRoZXJlIGlzIG5vdCBhbm90aGVyIGFscmVh
ZHkgZ29vZCBmb2N1c2FibGUKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FuZGlkYXRlIGluIHRo
ZSBzYW1lIGRvY3VtZW50IGFzIHxzdGFydHwuCisgICAgICAgICAgICAgICAgICAgIGlmICghKGlz
TW92aW5nRnJvbUlubmVyVG9PdXR0ZXJEb2N1bWVudChzdGFydCwgY2FuZGlkYXRlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgJiYgKGZvY3VzQ2FuZGlkYXRlLm5vZGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICYmIChzdGFydC0+ZG9jdW1lbnQoKSA9PSBmb2N1c0NhbmRpZGF0ZS5ub2RlLT5k
b2N1bWVudCgpKSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBmb2N1c0NhbmRpZGF0ZS5u
b2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNDYW5kaWRhdGUu
ZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworc3RhdGljIGxvbmcg
bG9uZyBkaXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqIHN0YXJ0LCBOb2RlKiBkZXN0LCBGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRhdGUpCit7CisgICAgbG9u
ZyBsb25nJiBkaXN0YW5jZSA9IGNhbmRpZGF0ZS5kaXN0YW5jZTsKKworICAgIFJlbmRlck9iamVj
dCogc3RhcnRSZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVy
KQorICAgICAgICByZXR1cm4gY01heERpc3RhbmNlOworCisgICAgUmVuZGVyT2JqZWN0KiBkZXN0
UmVuZGVyID0gZGVzdC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIWRlc3RSZW5kZXIpCisgICAgICAg
IHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICBJbnRSZWN0IHN0YXJ0UmVjdCA9IHJlbmRlclJl
Y3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KHN0YXJ0UmVuZGVyKTsKKyAgICBJbnRSZWN0IGRlc3RS
ZWN0ICA9IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KGRlc3RSZW5kZXIpOworCisg
ICAgLy8gVGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBvZiB0d28gY29uc2VjdXRpdmUgbGlua3MgY291
bGQgb3ZlcmxhcCwgc28gd2UgZGVjcmVhc2UgdGhlIHNpemUKKyAgICAvLyBvZiBib3RoIHJlY3Rh
bmdsZXMuCisgICAgc3RhdGljIGNvbnN0IGludCByZWN0RnVkZ2UgPSAtMjsKKyAgICBpZiAoc3Rh
cnRSZWN0LmludGVyc2VjdHMoZGVzdFJlY3QpKSB7CisgICAgICAgIHN0YXJ0UmVjdC5pbmZsYXRl
KHJlY3RGdWRnZSk7CisgICAgICAgIGRlc3RSZWN0LmluZmxhdGUocmVjdEZ1ZGdlKTsKKyAgICB9
CisKKyAgICBpZiAoIWlzUmVjdEluRGlyZWN0aW9uKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0
UmVjdCkpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICAvLyBJZiB0YXJnZXQg
dGFrZXMgcHJlY2VkZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5vdCBhbHdheXMgdGhl
IHNob3J0ZXN0CisgICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldC4KKyAgICBpZiAoYXJlUmVj
dHNGdWxseUFsaWduZWQoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KSB8fCBjYW5kaWRh
dGUucGFyZW50QWxpZ25tZW50ID09IEZ1bGwpIHsKKyAgICAgICAgLy8gUmVzZXQgZGlzdGFuY2Ug
YXMgd2UgYXJlIG5vdyBpbiBzdXBlciBwcmVjZWRlbmNlIG1vZGUuCisgICAgICAgIGlmIChjYW5k
aWRhdGUuYWxpZ25tZW50ICE9IEZ1bGwpCisgICAgICAgICAgICBkaXN0YW5jZSA9IGNNYXhEaXN0
YW5jZTsKKworICAgICAgICBsb25nIGxvbmcgcHJlY2VkZW50RGlzdGFuY2UgPSBzcGF0aWFsRGlz
dGFuY2VGb3JBbGlnbmVkUmVjdHMoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKyAg
ICAgICAgaWYgKGRpc3RhbmNlID4gcHJlY2VkZW50RGlzdGFuY2UpIHsKKyAgICAgICAgICAgIGNh
bmRpZGF0ZS5hbGlnbm1lbnQgPSBGdWxsOworICAgICAgICAgICAgcmV0dXJuIHByZWNlZGVudERp
c3RhbmNlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGNhbmRpZGF0ZS5hbGlnbm1lbnQg
PT0gRnVsbCkKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0YW5jZTsKKworICAgIC8vIElmIHRhcmdl
dCB0YWtlcyBwcmVjZWRlbmNlIHRoZW4gdXNlIGl0IC0gZGlzdGFuY2UgaXMgbm90IGFsd2F5cyB0
aGUgc2hvcnRlc3QKKyAgICAvLyBmb3IgYSBwcmVjZWRlbnQgdGFyZ2V0CisgICAgaWYgKGFyZVJl
Y3RzUGFydGlhbGx5QWxpZ25lZChkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpIHx8IGNh
bmRpZGF0ZS5wYXJlbnRBbGlnbm1lbnQgPT0gUGFydGlhbCkgeworICAgICAgICBsb25nIGxvbmcg
cHJlY2VkZW50RGlzdGFuY2UgPSBzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVjdHMoZGlyZWN0
aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKworICAgICAgICBpZiAoZGlzdGFuY2UgPiBwcmVj
ZWRlbnREaXN0YW5jZSkgeworICAgICAgICAgICAgY2FuZGlkYXRlLmFsaWdubWVudCA9IFBhcnRp
YWw7CisgICAgICAgICAgICByZXR1cm4gcHJlY2VkZW50RGlzdGFuY2U7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoY2FuZGlkYXRlLmFsaWdubWVudCA9PSBQYXJ0aWFsKQorICAgICAgICBy
ZXR1cm4gY01heERpc3RhbmNlOworCisgICAgcmV0dXJuIHNwYXRpYWxEaXN0YW5jZShkaXJlY3Rp
b24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmgKaW5kZXggMzJkNDA2MC4uYjhlYWJhNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuaApAQCAtNTgsNiArNTgsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogCiBwcml2YXRlOgorICAgIGJvb2wgYWR2YW5j
ZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOworICAg
IGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9uLCBLZXlib2Fy
ZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOworCiAgICAgUGFnZSogbV9wYWdlOwogICAgIFJl
ZlB0cjxGcmFtZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgYm9vbCBtX2lzQWN0aXZlOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNE
aXJlY3Rpb24uaAppbmRleCAyNjFjNzQ1Li41NmRlNTg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bh
Z2UvRm9jdXNEaXJlY3Rpb24uaAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaApA
QCAtMjksNyArMjksMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVtIEZvY3VzRGly
ZWN0aW9uIHsKICAgICAgICAgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkID0gMCwKLSAgICAgICAgRm9j
dXNEaXJlY3Rpb25CYWNrd2FyZAorICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLAorICAg
ICAgICBGb2N1c0RpcmVjdGlvbk5vbmUsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uVXAsCisgICAg
ICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25MZWZ0LAorICAg
ICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggODc3
MzdlZS4uMDJhY2M2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysg
Yi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02NCw2ICs2NCw3IEBAIFNldHRpbmdzOjpT
ZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdlU2l6ZShudW1l
cmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKICAgICAsIG1fbG9jYWxTdG9yYWdlUXVvdGEoNSAq
IDEwMjQgKiAxMDI0KSAgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBzcGVjLgogICAgICwgbV9w
bHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQorICAg
ICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNKYXZhRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZhbHNlKQogICAg
ICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMjM5LDYgKzI0MCwxMSBAQCB2
b2lkIFNldHRpbmdzOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFs
bG93VW5pdmVyc2FsQWNjZXNzRnJvbQogICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKIH0KIAordm9pZCBTZXR0
aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQpCit7CisgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZhRW5hYmxlZChi
b29sIGlzSmF2YUVuYWJsZWQpCiB7CiAgICAgbV9pc0phdmFFbmFibGVkID0gaXNKYXZhRW5hYmxl
ZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKaW5kZXggNzNjNTQ3ZS4uNmQ1ODRiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTExNSw2ICsxMTUs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBqYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOyB9CisK
ICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBpc0phdmFF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFFbmFibGVkOyB9CiAKQEAgLTMwNiw2ICsz
MDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX21heGltdW1EZWNv
ZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1b3RhOwogICAg
ICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOworICAgICAgICBib29sIG1faXNT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgOiAxOwogICAg
ICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAgYi9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb25VdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZThjNjFjMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlv
blV0aWxzLmNwcApAQCAtMCwwICsxLDQyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKyAqCisgKiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGF0aWFsTmF2aWdhdGlvblV0aWxzLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lVHJlZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxG
cmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEZJWE1F
OiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGJlaGF2ZSBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1l
ZCBmcmFtZXMuCitJbnRSZWN0IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KFJlbmRl
ck9iamVjdCogcmVuZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAgTm9kZSogbm9k
ZSA9IHJlbmRlci0+bm9kZSgpOworICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQgPSBub2RlLT5k
b2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAgIGJvb2wgdXNl
U2Nyb2xsT2Zmc2V0ID0gIWlzT2Zmc2NyZWVuUmVjdChub2RlKSAmJiBub2RlLT5kb2N1bWVudCgp
ICE9IG1haW5Eb2N1bWVudDsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xp
cHBlZE92ZXJmbG93UmVjdCgpKTsKKworICAgIC8vIFRoZXJlIGFyZSBjYXNlcywgbW9zdGx5IHdo
ZW4gfHJlbmRlcnwncyBhc3NvY2lhdGVkIG5vZGUgaXMgb2Zmc2NyZWVuLAorICAgIC8vIGl0IGlz
IHNhZmVyIHRvIGdldCBpdHMgcG9zaXRpb24gcmVnYXJkbGVzcyB0aGUgY29udGFpbmVyIHNjcm9s
bCBvZmZzZXQuCisgICAgaWYgKHVzZVNjcm9sbE9mZnNldCkKKyAgICAgICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gcmVuZGVyLT5ub2RlKCktPmRvY3VtZW50KCktPnZpZXcoKSkKKyAgICAg
ICAgICAgIHJlY3QubW92ZSgtZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKSk7CisKKyAgICAvLyBo
YW5kbGUgbmVzdGVkIGZyYW1lcy4KKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHJlbmRlci0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkp
CisgICAgICAgIGlmIChIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1l
LT5vd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPm9m
ZnNldExlZnQoKSwgb3duZXJFbGVtZW50LT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVj
dDsKK30KKworYm9vbCBpc01vdmluZ0Zyb21PdXR0ZXJUb0lubmVyRG9jdW1lbnQoTm9kZSogZnJv
bSwgTm9kZSogdG8pCit7CisgICAgaWYgKCFmcm9tIHx8ICF0bykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgRG9jdW1lbnQqIG1haW5Eb2N1bWVudCA9IHRvLT5kb2N1bWVudCgpLT5wYWdl
KCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAgIHJldHVybiAoZnJvbS0+ZG9jdW1lbnQo
KSA9PSBtYWluRG9jdW1lbnQgJiYgZnJvbS0+ZG9jdW1lbnQoKSAhPSB0by0+ZG9jdW1lbnQoKSk7
Cit9CisKK2Jvb2wgaXNNb3ZpbmdGcm9tSW5uZXJUb091dHRlckRvY3VtZW50KE5vZGUqIGZyb20s
IE5vZGUqIHRvKQoreworICAgIGlmICghZnJvbSB8fCAhdG8pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQgPSB0by0+ZG9jdW1lbnQoKS0+cGFnZSgp
LT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gKHRvLT5kb2N1bWVudCgpID09
IG1haW5Eb2N1bWVudCAmJiBmcm9tLT5kb2N1bWVudCgpICE9IHRvLT5kb2N1bWVudCgpKTsKK30K
KworLy8gQ2hlY2tzIGlmIHxub2RlfCBpcyBvZmZzY3JlZW4gdGhlIHZpc2libGUgYXJlYSAodmll
d3BvcnQpIG9mIGl0cyBjb250YWluZXIgZG9jdW1lbnQuCitib29sIGlzT2Zmc2NyZWVuUmVjdChO
b2RlKiBub2RlKQoreworICAgIC8vIEdldCB0aGUgY3VycmVudCB2aWV3cG9ydCByZWN0IHNvIHdl
IGNhbiBjaGVjayBpZiBmb2N1c0NhbmRpZGF0ZSdzIHJlY3QKKyAgICAvLyBpcyB2aXNpYmxlIGJl
Zm9yZSBhY3R1YWxseSBtb3ZpbmcgdGhlIGZvY3VzIHRvIGl0LiBJbiBjYXNlIGl0IGlzIG5vdCB2
aXNpYmxlLAorICAgIC8vIHdlIHNjcm9sbCBpbiBkaXJlY3Rpb24gbGF0ZXIgb24gaW5zdGVhZC4K
KyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKTsKKyAg
ICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBJbnRSZWN0IGNv
bnRhaW5lclZpZXdwb3J0UmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisK
KyAgICBSZW5kZXJPYmplY3QqIHJlbmRlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFy
ZW5kZXIpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+
YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworICAgIHJldHVybiAhY29udGFpbmVyVmll
d3BvcnRSZWN0LmNvbnRhaW5zKHJlY3QpOworfQorCisvLyBJbiBhIGJvdHRvbS11cCB3YXksIHRo
aXMgbWV0aG9kIHRyaWVzIHRvIHNjcm9sbCB8ZnJhbWV8IGluIGEgZ2l2ZW4gZGlyZWN0aW9uCisv
LyB8ZGlyZWN0aW9ufCwgZ29pbmcgdXAgaW4gdGhlIGZyYW1lIHRyZWUgaGllcmFyY2h5IGluIGNh
c2UgaXQgZG9lcyBub3Qgc3VjY2VlZC4KK2Jvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqIGZy
YW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgU2Nyb2xsRGlyZWN0aW9uIHNjcm9sbERpcmVjdGlvbjsK
KworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6
CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbExlZnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0g
U2Nyb2xsUmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoK
KyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsVXA7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3Jv
bGxEb3duOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsUmVj
dXJzaXZlbHkoc2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxCeUxpbmUpOworfQorCitib29sIGlzUmVj
dEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgc3Rh
cnRSZWN0LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBzd2l0Y2ggKGRpcmVjdGlv
bikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OiB7CisgICAgICAgIGludCBtaWRkbGUg
PSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICByZXR1
cm4gKG1pZGRsZSA8IHN0YXJ0UmVjdC54KCkpOworICAgIH0KKyAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uUmlnaHQ6IHsKKyAgICAgICAgaW50IG1pZGRsZSA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0
UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIHJldHVybiAobWlkZGxlICA+IHN0YXJ0UmVjdC54
KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpKTsKKyAgICB9CisgICAgY2FzZSBGb2N1c0RpcmVj
dGlvblVwIDoKKyAgICAgICAgcmV0dXJuIChkZXN0UmVjdC55KCkgPCBzdGFydFJlY3QueSgpKTsK
KyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIChkZXN0UmVjdC55
KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpID4gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJl
Y3QuaGVpZ2h0KCkpKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEJhc2VkIG9uIHRoZSBNSUNS
T0IgU05hdiBsb2dpYyAoTVBML0dMUC9MR1BHKSwgZXhjZXB0ZWQgYnkgVXAgYW5kIERvd24gbG9n
aWMuCisvLyBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIHByZWZlcmFibGUgcmVjdCB0byBtb3ZlIGZv
Y3VzIHRvLiBJbiBlc3NlbmNlLCB0YXJnZXRzCisvLyB3aG9zZSBtaWRkbGUgZmFsbHMgYmV0d2Vl
biB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgY3VycmVudCByZWN0LgorYm9vbCBhcmVSZWN0c0Z1
bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHN0YXJ0
UmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvbkxlZnQgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsK
KyAgICAgICAgaW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVp
Z2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RCb3R0b20gPSBkZXN0UmVjdC55KCkgKyBhYnMo
ZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgICAgICBpbnQgZGVzdEVuZCA9IGRlc3RSZWN0LngoKSAr
IGFicyhkZXN0UmVjdC53aWR0aCgpKTsKKworICAgICAgICBpbnQgc3RhcnRCb3R0b20gPSBzdGFy
dFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGludCBzdGFydEVu
ZCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpOworCisgICAgICAgIGlm
IChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0ICYmIGRlc3RFbmQgPiBzdGFydFJlY3Qu
eCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25SaWdodCAmJiBkZXN0UmVjdC54KCkgPCBzdGFydEVuZCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0
YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgICAg
ICB8fCAoZGVzdEJvdHRvbSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RCb3R0b20gPD0gc3RhcnRC
b3R0b20pCisgICAgICAgICAgICAgICAgfHwgKGRlc3RSZWN0LnkoKSA9PSBzdGFydFJlY3QueSgp
KQorICAgICAgICAgICAgICAgIHx8IChkZXN0Qm90dG9tID09IHN0YXJ0Qm90dG9tKQorICAgICAg
ICAgICAgICAgIHx8IChkZXN0UmVjdC55KCkgPD0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9t
ID49IHN0YXJ0Qm90dG9tKSk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0Rp
cmVjdGlvblVwIHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsKKyAgICAgICAg
aW50IHN0YXJ0RW5kID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7Cisg
ICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRo
KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RFbmQgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJl
Y3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVw
ICYmIGRlc3RSZWN0LnkoKSA+IHN0YXJ0UmVjdC55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24gJiYgZGVz
dFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdE1pZGRs
ZSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdFJlY3QueCgpID49IHN0YXJ0
UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAgICAgIHx8
IChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgICAgICB8fCAoc3Rh
cnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdFJlY3QueCgpIDw9IHN0
YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA+PSBzdGFydEVuZCkpOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworLy8gVGhpcyBtZXRob2QgY2hlY2tzIGlmIHxzdGFydFJlY3R8IGFuZCB8
ZGVzdFJlY3R8IGhhdmUgYSBwYXJ0aWFsIGludGVyc2VjdGlvbiwgZWl0aGVyCisvLyBob3Jpem9u
dGFsbHkgb3IgdmVydGljYWxseS4KK2Jvb2wgYXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgc3RhcnRSZWN0LCBjb25zdCBJbnRS
ZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVm
dCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBpbnQgc3Rh
cnRCb3R0b20gPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgp
KSAvIDI7CisgICAgICAgIGludCBkZXN0Qm90dG9tID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RS
ZWN0LmhlaWdodCgpKTsKKworICAgICAgICByZXR1cm4gKChkZXN0UmVjdC55KCkgPj0gc3RhcnRS
ZWN0LnkoKSAmJiBkZXN0UmVjdC55KCkgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICAgICAg
fHwgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9tIDw9IHN0YXJ0Qm90
dG9tKQorICAgICAgICAgICAgICAgIHx8IChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC55KCkgJiYg
ZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdFJlY3Qu
eSgpID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0YXJ0Qm90dG9tKQorICAg
ICAgICAgICAgICAgIHx8IChkZXN0Qm90dG9tID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRv
bSA8PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAg
IGludCBzdGFydEVuZCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpIC8q
ICsgaGFsZiAqLzsKKyAgICAgICAgaW50IGRlc3RFbmQgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVz
dFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgcmV0dXJuICgoZGVzdFJlY3QueCgpID49IHN0YXJ0
UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAgICAgIHx8
IChkZXN0RW5kID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA8PSBzdGFydEVuZCkpOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gc3FydCgoKHgxIC0geDIpIF4gMikgKyAo
KHkxIC0geTIpIF4gMikpCitsb25nIGxvbmcgZXVjbGlkaWVhbkRpc3RhbmNlKGNvbnN0IGludCB4
MSwgY29uc3QgaW50IHkxLCBjb25zdCBpbnQgeDIsIGNvbnN0IGludCB5MikKK3sKKyAgICBsb25n
IGxvbmcgcCA9IHBvdygoeDEgLSB4MiksIDIpICsgcG93KCh5MSAtIHkyKSwgMik7CisgICAgcmV0
dXJuIHNxcnQocCk7Cit9CisKK2xvbmcgbG9uZyBzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVj
dHMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBzdGFydFJlY3QsIGNv
bnN0IEludFJlY3QmIGRlc3RSZWN0KQoreworICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IGNNYXhE
aXN0YW5jZTsKKyAgICBsb25nIGxvbmcgYWx0ZXJuYXRlRGlzdGFuY2UgPSBjTWF4RGlzdGFuY2U7
CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgeworICAgICAgICBp
bnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKTsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVj
dC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WCAg
PSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0
WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAg
ICBhbHRlcm5hdGVEaXN0YW5jZSA9IGV1Y2xpZGllYW5EaXN0YW5jZShzdGFydFgsIHN0YXJ0WSwg
ZGVzdFgsIGRlc3RZKTsKKyAgICAgICAgZGlzdGFuY2UgPSBldWNsaWRpZWFuRGlzdGFuY2Uoc3Rh
cnRSZWN0LngoKSwgc3RhcnRSZWN0LnkoKSwgZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCkpOwor
CisgICAgICAgIGlmIChhbHRlcm5hdGVEaXN0YW5jZSA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC55
KCkgPT0gZGVzdFJlY3QueSgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBhbHRlcm5hdGVEaXN0
YW5jZTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQp
IHsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0Lndp
ZHRoKCkpOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJl
Y3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKTsKKyAg
ICAgICAgaW50IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkg
LyAyOworCisgICAgICAgIGFsdGVybmF0ZURpc3RhbmNlID0gZXVjbGlkaWVhbkRpc3RhbmNlKGRl
c3RYLCBkZXN0WSwgc3RhcnRYLCBzdGFydFkpOworICAgICAgICBkaXN0YW5jZSA9IGV1Y2xpZGll
YW5EaXN0YW5jZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgc3RhcnRSZWN0LngoKSwgc3Rh
cnRSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKGFsdGVybmF0ZURpc3RhbmNlIDwgZGlzdGFuY2Ug
JiYgc3RhcnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9
IGFsdGVybmF0ZURpc3RhbmNlOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25VcCkgeworICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhz
dGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0Lnko
KTsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0
aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVj
dC5oZWlnaHQoKSk7CisKKyAgICAgICAgYWx0ZXJuYXRlRGlzdGFuY2UgPSBldWNsaWRpZWFuRGlz
dGFuY2Uoc3RhcnRYLCBzdGFydFksIGRlc3RYLCBkZXN0WSk7CisgICAgICAgIGRpc3RhbmNlID0g
ZXVjbGlkaWVhbkRpc3RhbmNlKGRlc3RSZWN0LngoKSwgZGVzdFJlY3QueSgpLCBzdGFydFJlY3Qu
eCgpLCBzdGFydFJlY3QueSgpKTsKKworICAgICAgICBpZiAoYWx0ZXJuYXRlRGlzdGFuY2UgPCBk
aXN0YW5jZSAmJiBzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIGRp
c3RhbmNlID0gYWx0ZXJuYXRlRGlzdGFuY2U7CisKKyAgICAgICAgYWx0ZXJuYXRlRGlzdGFuY2Ug
PSAoc3RhcnRSZWN0LnkoKSAtIGRlc3RSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKGFsdGVybmF0
ZURpc3RhbmNlIDwgZGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IGFsdGVybmF0ZURp
c3RhbmNlOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3du
KSB7CisgICAgICAgIGludCBzdGFydFggPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53
aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBzdGFydFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0
YXJ0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAgICBpbnQgZGVzdFggID0gZGVzdFJlY3QueCgp
ICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RZICA9IGRlc3RS
ZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworCisgICAgICAgIGFsdGVybmF0
ZURpc3RhbmNlID0gZXVjbGlkaWVhbkRpc3RhbmNlKGRlc3RYLCBkZXN0WSwgc3RhcnRYLCBzdGFy
dFkpOworICAgICAgICBkaXN0YW5jZSA9IGV1Y2xpZGllYW5EaXN0YW5jZShkZXN0UmVjdC54KCks
IGRlc3RSZWN0LnkoKSwgc3RhcnRSZWN0LngoKSwgc3RhcnRSZWN0LnkoKSk7CisKKyAgICAgICAg
aWYgKGFsdGVybmF0ZURpc3RhbmNlIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0LngoKSA9PSBkZXN0
UmVjdC54KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IGFsdGVybmF0ZURpc3RhbmNlOworCisg
ICAgICAgIGFsdGVybmF0ZURpc3RhbmNlID0gKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkp
OworCisgICAgICAgIGlmIChhbHRlcm5hdGVEaXN0YW5jZSA8IGRpc3RhbmNlKQorICAgICAgICAg
ICAgZGlzdGFuY2UgPSBhbHRlcm5hdGVEaXN0YW5jZTsKKyAgICB9CisKKyAgICByZXR1cm4gYWJz
KGRpc3RhbmNlKTsKK30KKworbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAg
aW50IHgxID0gMCwgeTEgPSAwLCB4MiA9IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgp
KSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4
MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54
KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAg
ICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngo
KSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAg
ICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAg
ICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAg
IC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAor
ICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgp
KSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4
MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAg
ICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEu
d2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAg
ICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSAw
OworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAg
ICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0t
LXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAg
ICAgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLngoKSA+IGIueCgpICsgYi53aWR0
aCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisg
ICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAg
ICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5o
ZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngoKSArIGEud2lkdGgoKSA8IGIueCgpKSB7
CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSByaWdodCBvZiBhCisgICAgICAg
ICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAg
ICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQo
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGJvdGggYiBhbmQgYSBzaGFyZSBz
b21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9IDA7CisgICAgICAgICAgICB5MSA9IGEu
eSgpOworICAgICAgICAgICAgeDIgPSAwOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVp
Z2h0KCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVj
dGlvbkRvd24pIHsKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAg
IHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAg
ICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLngo
KSA+IGIueCgpICsgYi53aWR0aCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRv
IHRoZSBsZWZ0IG9mIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEg
PSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpICsgYi53aWR0aCgp
OworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngoKSArIGEu
d2lkdGgoKSA8IGIueCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBy
aWdodCBvZiBhCisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAg
ICAgeTEgPSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpOworICAg
ICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGJv
dGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9IDA7Cisg
ICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gMDsK
KyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIGxv
bmcgZCA9IHBvdygoeDEgLSB4MiksIDIpICsgcG93KCh5MSAtIHkyKSwgMik7CisgICAgaWYgKGQg
PCAwKQorICAgICAgICBkICo9ICgtMSk7CisKKyAgICByZXR1cm4gZDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
VXRpbHMuaCBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0aWxzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIzMjgxZAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0aWxzLmgKQEAgLTAsMCArMSw4MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0
b29Ad2Via2l0Lm9yZz4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBTcGF0aWFsTmF2aWdhdGlvblV0aWxzX2gKKyNkZWZpbmUg
U3BhdGlhbE5hdmlnYXRpb25VdGlsc19oCisKKyNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgor
CisjaW5jbHVkZSA8bGltaXRzPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
OworY2xhc3MgSW50UmVjdDsKK2NsYXNzIE5vZGU7CitjbGFzcyBSZW5kZXJPYmplY3Q7CisKK3Vz
aW5nIG5hbWVzcGFjZSBzdGQ7CisKK2NvbnN0IGxvbmcgbG9uZyBjTWF4RGlzdGFuY2UgPSBudW1l
cmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKworLy8gU3BhdGlhbGx5IHNwZWFraW5nLCBl
bGVtZW50cyBpbiBhIHdlYiBwYWdlIGNhbiBiZToKKy8vIDEpIFRvdGFsbHkgYWxpZ25lZDogVGhl
cmUgaXMgYSBmdWxsIGludGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSByZWN0cywgZWl0aGVyCisvLyAg
ICB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS4KKy8vIDIpIFBhcnRpYWxseSBhbGlnbmVkOiBU
aGVyZSBpcyBhIHBhcnRpYWwgaW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlIHJlY3RzLCBlaXRoZXIK
Ky8vICAgIHZlcnRpY2FsbHkgb3IgaG9yaXpvbnRhbGx5LgorLy8gMykgT3IsIG90aGVyd2lzZSwg
bm90IGFsaWduZWQgYXQgYWxsLgorZW51bSBGb2N1c0NhbmRpZGF0ZUFsaWdubWVudCB7CisgICAg
Tm9uZSA9IDAsCisgICAgUGFydGlhbCwKKyAgICBGdWxsCit9OworCitzdHJ1Y3QgRm9jdXNDYW5k
aWRhdGUgeworICAgIEZvY3VzQ2FuZGlkYXRlKCkKKyAgICAgICAgOiBub2RlKDApCisgICAgICAg
ICwgZGlzdGFuY2UoY01heERpc3RhbmNlKQorICAgICAgICAsIHBhcmVudERpc3RhbmNlKGNNYXhE
aXN0YW5jZSkKKyAgICAgICAgLCBhbGlnbm1lbnQoTm9uZSkKKyAgICAgICAgLCBwYXJlbnRBbGln
bm1lbnQoTm9uZSkKKyAgICB7CisgICAgfQorICAgIE5vZGUqIG5vZGU7CisgICAgbG9uZyBsb25n
IGRpc3RhbmNlOworICAgIGxvbmcgbG9uZyBwYXJlbnREaXN0YW5jZTsKKyAgICBGb2N1c0NhbmRp
ZGF0ZUFsaWdubWVudCBhbGlnbm1lbnQ7CisgICAgRm9jdXNDYW5kaWRhdGVBbGlnbm1lbnQgcGFy
ZW50QWxpZ25tZW50OworfTsKKworYm9vbCBpc01vdmluZ0Zyb21PdXR0ZXJUb0lubmVyRG9jdW1l
bnQoTm9kZSosIE5vZGUqKTsKK2Jvb2wgaXNNb3ZpbmdGcm9tSW5uZXJUb091dHRlckRvY3VtZW50
KE5vZGUqLCBOb2RlKik7Citsb25nIGxvbmcgc3BhdGlhbERpc3RhbmNlRm9yQWxpZ25lZFJlY3Rz
KEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOworbG9uZyBs
b25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYsIGNvbnN0
IEludFJlY3QmKTsKK2Jvb2wgYXJlUmVjdHNGdWxseUFsaWduZWQoRm9jdXNEaXJlY3Rpb24sIGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7Citib29sIGFyZVJlY3RzUGFydGlhbGx5QWxp
Z25lZChGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK0lu
dFJlY3QgcmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9jdW1lbnQoUmVuZGVyT2JqZWN0Kik7Citi
b29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiwgY29u
c3QgSW50UmVjdCYpOworYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSosIEZvY3VzRGlyZWN0
aW9uKTsKK2Jvb2wgaXNPZmZzY3JlZW5SZWN0KE5vZGUqKTsKKworfSAvLyBuYW1zcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBTcGF0aWFsTmF2aWdhdGlvblV0aWxzX2gKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="commit-queue"
          id="30404"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48139</attachid>
            <date>2010-02-04 07:34:43 -0800</date>
            <delta_ts>2010-02-04 07:47:24 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v13)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>108867</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBkNzcyNTkwZDI4ZDJkNzVkYmRmYTkxZDhkYjZkMjgxMjE3ZjdkMTM3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAzIEZlYiAyMDEwIDE0OjM2OjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gRXh0
ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJr
aXQuY29tPgpCYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFy
Y28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUg
Y29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVyZSBbMV0uCkl0IGlt
cHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2YgV2ViQ29yZSBieSBleHRlbmRpbmcg
dGhlIGJhc2ljIGtleWJvYXJkCm5hdmlnYXRpb24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQg
b24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJkKSB3aXRoIHRoZQphZGRpdGlvbiBvZiBhIHR3by1k
aW1lbnNpb25hbCBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGJ5IHVzaW5nIExlZnQsIFJpZ2h0LCBV
cCBhbmQKRG93biBhcnJvdyBrZXlzIHRvIG1vdmUgdG8gdGhlICJuZWFyZXN0IiBlbGVtZW50IGlu
IHRoZSBjb3JyZXNwb25kaW5nIGRpcmVjdGlvbi4KCkhpZ2hsaWdodHM6CiogRmVhdHVyZSBpcyB0
dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gU2V0dGluZ3MuIFBvcnQgc3BlY2lmaWMgQVBJcyBuZWVk
IHRvIGJlIGFkZGVkCiAgZm9yIHRvZ2dsaW5nIGl0IG9uL29mZi4KKiBPbmx5IGVsZW1lbnRzIHZp
ZXdlZCBpbiB0aGUgY3VycmVudCB2aWV3cG9ydCBjYW4gaGF2ZSBmb2N1cyBtb3ZlIHRvIGl0LiBJ
ZiB0aGUKICAibmVhcmVzdCIgaXMgbm90IGluIHZpZXdwb3J0IGRpbWVuc2lvbnMsIHRoZW4gYSBz
Y3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcwogIHBlcmZvcm1lZC4KKiBUaGUgbGF5b3V0IHRl
c3RzIGFkZGVkIHJ1biBvbiBRdCdzIERSVCBvbmx5IGZvciBub3cgKHNraXBwZWQgZm9yIE1hYywg
V2luIGFuZCBHdGspLgoKS25vd24gaXNzdWVzICh0byBiZSBjb3ZlcmVkIGluIGZvbGxvdy11cCBi
dWdzKToKKiBBZGQgcG9ydCBzcGVjaWZpYyBob29rcyB0byBlYWNoIERSVCB0byBlbmFibGUvZGlz
YWJsZSBTcGF0aWFsIE5hdmlnYXRpb24uCiogU3VwcG9ydCBmb3Igc3BhdGlhbCBuYXZpZ2F0aW9u
IHRocm91Z2ggZm9ybSBlbGVtZW50cyAoPGlucHV0PiwgPHNlbGVjdD4sIGV0YykKICBpcyBiZSBh
ZGRlZC4KKiBNYWtlIG5hdmlnYXRpb24ga2V5cyBjdXN0b21pemFibGUuIEl0IGN1cnJlbnRseSB3
b3JrcyB3aXRoIGFycm93cyBrZXlzIG9ubHkKICAodXAsIGRvd24sIHJpZ2h0IGFuZCBsZWZ0KS4K
KiBFeHRlbmQgc3VwcG9ydCBmb3IgdGhlIHVzZSBvZiBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQg
U2hpZnQpLgoKWzFdIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3BhdGlhbF9uYXZpZ2F0
aW9uCgpUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRh
bC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKICAgICAgIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQu
aHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdp
dGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAg
ICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFu
ZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCgoqIEFuZHJvaWQubWs6
CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJvOgoqIG1hbnVh
bC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbDogQWRkZWQuCiogbWFudWFsLXRl
c3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1s
OiBBZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi10ZXN0LWNhc2VzMi5odG1sOiBBZGRlZC4KKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CihX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6CihXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRGlyZWN0aW9uRm9yS2V5KToKKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKToKKiBwYWdlL0V2ZW50SGFuZGxlci5o
OgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6
YWR2YW5jZUZvY3VzKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5E
b2N1bWVudE9yZGVyKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGly
ZWN0aW9uYWxseSk6CihXZWJDb3JlOjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKToKKFdl
YkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6Ciog
cGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2ViQ29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoK
KFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBwYWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0
aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoqIHBhZ2UvU3BhdGlhbE5hdmlnYXRp
b25VdGlscy5jcHA6IEFkZGVkLgooV2ViQ29yZTo6cmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9j
dW1lbnQpOgooV2ViQ29yZTo6aXNNb3ZpbmdGcm9tT3V0dGVyVG9Jbm5lckRvY3VtZW50KToKKFdl
YkNvcmU6OmlzTW92aW5nRnJvbUlubmVyVG9PdXR0ZXJEb2N1bWVudCk6CihXZWJDb3JlOjppc09m
ZnNjcmVlblJlY3QpOgooV2ViQ29yZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6aXNS
ZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6YXJlUmVjdHNGdWxseUFsaWduZWQpOgooV2ViQ29y
ZTo6YXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKToKKFdlYkNvcmU6OmV1Y2xpZGllYW5EaXN0YW5j
ZSk6CihXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVjdHMpOgooV2ViQ29yZTo6
c3BhdGlhbERpc3RhbmNlKToKKFdlYkNvcmU6OmRlZmxhdGVJZk5lZWRlZCk6CiogcGFnZS9TcGF0
aWFsTmF2aWdhdGlvblV0aWxzLmg6IEFkZGVkLgooV2ViQ29yZTo6KToKKFdlYkNvcmU6OkZvY3Vz
Q2FuZGlkYXRlOjpGb2N1c0NhbmRpZGF0ZSk6CgpMYXlvdXRUZXN0czoKClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0LmNv
bT4KCkV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmln
YXRpb24KaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVk
LgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1s
OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFt
ZTMuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWU0Lmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvaWZyYW1lNS5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJw
cmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29u
dGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1p
ZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVu
dC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3Jl
ZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFk
ZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJh
dmVyc2FsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVj
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbDogQWRkZWQu
CiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanM6IEFkZGVk
LgoodGVzdE1vdmVzKToKKF9uZXh0TW92ZSk6CihfbW92ZSk6CihfdmVyaWZ5QW5kQWR2YW5jZSk6
CiogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZv
cm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM4ICsrCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWUuaHRtbCAgICAgICB8ICAgMTAgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNv
dXJjZXMvaWZyYW1lMi5odG1sICAgICAgfCAgICA3ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24v
cmVzb3VyY2VzL2lmcmFtZTMuaHRtbCAgICAgIHwgICAgOCArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0
aW9uL3Jlc291cmNlcy9pZnJhbWU0Lmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNS5odG1sICAgICAgfCAgIDExICsKIC4uLi9zbmF2LWhv
cml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3Nu
YXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKysr
CiAuLi4vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0ICB8ICAg
IDcgKwogLi4uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwgICAgICAgICAg
fCAgIDU4ICsrKwogLi4uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3Rl
ZC50eHQgfCAgIDE3ICsKIC4uLi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRt
bCAgICAgICAgIHwgICA2OSArKysKIC4uLmUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1l
bnQtZXhwZWN0ZWQudHh0IHwgICAxNCArCiAuLi5hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9j
dXNhYmxlLWVsZW1lbnQuaHRtbCB8ICAgNjYgKysrCiAuLi4vc25hdi10YWJsZS10cmF2ZXJzYWwt
ZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICB8ICAgMTcgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sICAgfCAgIDg4ICsrKysKIC4uLi9zbmF2LXRpbnkt
dGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgICAyMCArCiAuLi4vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sICAgICAgICAgICAgICAgICB8ICAgOTMgKysrKwogLi4u
dC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgfCAgICA2ICsK
IC4uLnNuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIHwgICA5
NiArKysrKwogLi4uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCAg
ICAgfCAgIDE5ICsKIC4uLi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sICAgICAg
ICAgICAgIHwgICA4MSArKysrCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL0FuZHJvaWQubWsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDg0ICsrKysKIFdlYkNvcmUv
R05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArCiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRt
bCB8ICAgIDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwgICAgICAg
ICAgICAgfCAgMTM1ICsrKysrKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzMi5o
dG1sICAgICAgICAgICAgfCAgIDc3ICsrKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
ICAgICAgICAgICAgICAgICAgICAgIHwgICA1MyArKystCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgICAgICAgICAgICAgICAgICAgfCAgMjEyICsrKysrKysrKysKIFdlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBX
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg
Ky0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwICAgICAg
ICAgICAgfCAgNDQ2ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5h
dmlnYXRpb25VdGlscy5oICAgICAgICAgICAgICB8ICAxMTggKysrKysKIDQ0IGZpbGVzIGNoYW5n
ZWQsIDIxMjQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDc1
NSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lm
cmFtZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lm
cmFtZTMuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWU1Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3Rl
ZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlm
cmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9s
bGFibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJs
ZS1jb250ZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxl
LWVsZW1lbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZv
Y3VzYWJsZS1lbGVtZW50Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxl
LXRyYXZlcnNhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5o
dG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBl
Y3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9u
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0CiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXV0aWxzLmpzCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29yZS9tYW51YWwtdGVzdHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBXZWJDb3Jl
L21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3Qt
Y2FzZXMuaHRtbAogY3JlYXRlIG1vZGUgMTAwNzU1IFdlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlczIuaHRtbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0aWxzLmNwcAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0aWxzLmgKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZWNkNGQ2Yi4uZDRlOWE1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEwLTAyLTAx
ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRv
bmlraXRvb0B3ZWJraXQuY29tPgorCisgICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9u
IHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWUzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1p
ZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxl
LWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFt
ZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJs
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVt
ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQt
b3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93
LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3RNb3Zlcyk6CisgICAgICAgIChfbmV4dE1vdmUpOgorICAg
ICAgICAoX21vdmUpOgorICAgICAgICAoX3ZlcmlmeUFuZEFkdmFuY2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTAyLTAzICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWRh
bSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAuLmM1ZjE3MTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sCkBA
IC0wLDAgKzEsMTAgQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+
YjwvYT48YnI+CisgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmM8L2E+PGJyPgorICAgIDxhIGlkPSIz
IiBocmVmPSJhIj5kPC9hPjxicj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDo4MHB4IiA+
CisgICAgICA8YSBpZD0iNyIgaHJlZj0iYSI+ZTwvYT4KKyAgICA8L2Rpdj4KKyAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lYTk3YzAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwK
QEAgLTAsMCArMSw3IEBACis8aHRtbD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjQiIGhyZWY9ImEi
Pmc8L2E+CisgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPmg8L2E+CisgICAgPGEgaWQ9IjYiIGhyZWY9
ImEiPmk8L2E+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFhZDlmNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvaWZyYW1lMy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+CisgIDxib2R5Pgor
ICAgIDxhIGlkPSIxIiBocmVmPSJhIj5iPC9hPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6
MTIwcHgiPgorICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmQ8L2E+CisgICAgPC9kaXY+CisgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdmNDhmZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1l
NC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+CisgIDxib2R5PgorICAgIDxkaXYgc3R5bGU9
Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPHA+VGhpcyBmcmFtZSBoYXMgc29tZSB0ZXh0IGFu
ZCBubyBmb2N1c2FibGUgZWxlbWVudCAuLi48L2E+CisgICAgPC9kaXY+CisgICAgPHA+Li4uIGFu
ZCBzb21lIG1vcmUgdGV4dCAuLi48L2E+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZy
YW1lNS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jl
c291cmNlcy9pZnJhbWU1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MmZmNWQyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxo
dG1sPgorICA8Ym9keT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT4KKyAgICA8ZGl2IHN0
eWxlPSJtYXJnaW4tdG9wOjEyMHB4Ij4KKyAgICAgIDxhIGlkPSIzIiBocmVmPSJhIj5kPC9hPgor
ICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiAxMjBweDsgbWFyZ2luLXRv
cDoxNTBweCI+CisgICAgICA8YSBpZD0iMiIgaHJlZj0iYSI+YzwvYT4KKyAgICA8L2Rpdj4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9y
aXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjAzNzAyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2Vk
ZW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAordGVzdAorSMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqBvdyBOb3cgQnJv
d24gQ293CitIb8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oMKgwqDCoCB3IE5vdyBCcm93biBDb3cKK0hvdyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqDCoMKgIE5vdyBCcm93biBDb3cKK0hvdyBOIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoMKgIG93IEJyb3duIENvdworSG93IE5vIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoMKgIHcgQnJvd24gQ293
CitIb3cgTm93IMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIMKgIMKgIMKgIMKgIMKg
wqAgQnJvd24gQ293CitIb3cgTm93IEIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIMKgIMKg
IMKgIMKgIMKgIMKgwqAgcm93biBDb3cKK0hvdyBOb3cgQnIgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCBvd24gQ293CitIb3cgTm93IEJybyDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIHduIENvdworSG93IE5vdyBCcm93
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgbiBDb3cKK0hvdyBOb3cgQnJvd24gwqAgwqAgwqAgwqDCoMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgwqDCoCBDb3cKK0hvdyBOb3cgQnJvd24gQyDCoCDCoMKgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCBvdworSG93IE5vdyBCcm93biBDbyDCoMKg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCB3CitIb3cgTm93IEJy
b3duIENvdworCit0ZXN0CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiNSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4
IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjkiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMCIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEyIgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTEiCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMyIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE0IgorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTYiCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNSIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE3IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTgiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyMCIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE5IgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjEiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyMiIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI0IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjMiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNSIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI2IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjciCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3Vw
ZXJwcmVjZWRlbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZmEyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVy
cHJlY2VkZW5jZS5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhp
cyB0ZXN0IGVuc3VyZXMgdGhlIHN1cGVyIHByZWNlZGVuY2UgbG9naWMgb2YgU3BhdGlhbCBOYXZp
Z2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobTogdGFyZ2V0cyB3aG9zZSBtaWRkbGUgZmFsbHMg
YmV0d2VlbiB0aGUgdG9wIG9yIGJvdHRvbQorICAgIG9mIHRoZSBjdXJyZW50IHJlY3QgYXJlIHBy
ZWZlcmFibHkgdG8gbW92ZSBmb2N1cyB0by4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAg
MSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRp
b24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIg
YXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBwcmVmZXJhYmx5IHRvIGVsZW1lbnRz
IHJpZ2h0IHVwIG9yIGFib3ZlIHRoZQorICAgICAgIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50LCBl
dmVuIHdoZW4gdGhlcmUgYXJlIHNvbWUgb3RoZXIgY2xvc2VyCisgICAgICAgYnV0IG5vdCB2ZXJ0
aWNhbGx5IGFsaWduZWQgZWxlbWVudHMgaW4gdGhlIHNhbWUgZGlyZWN0aW9uLgorICAtLT4KKyAg
PGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4K
KworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJS
aWdodCIsICIyIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJMZWZ0IiwgIjMiXSwK
KyAgICAgIFsiRG93biIsICI1Il0sCisgICAgICBbIlJpZ2h0IiwgIjYiXSwKKyAgICAgIFsiRG93
biIsICI4Il0sCisgICAgICBbIkxlZnQiLCAiNyJdLAorICAgICAgWyJEb3duIiwgIjkiXSwKKyAg
ICAgIFsiUmlnaHQiLCAiMTAiXSwKKyAgICAgIFsiRG93biIsICIxMiJdLAorICAgICAgWyJMZWZ0
IiwgIjExIl0sCisgICAgICBbIkRvd24iLCAiMTMiXSwKKyAgICAgIFsiUmlnaHQiLCAiMTQiXSwK
KyAgICAgIFsiRG93biIsICIxNiJdLAorICAgICAgWyJMZWZ0IiwgIjE1Il0sCisgICAgICBbIkRv
d24iLCAiMTciXSwKKyAgICAgIFsiUmlnaHQiLCAiMTgiXSwKKyAgICAgIFsiRG93biIsICIyMCJd
LAorICAgICAgWyJMZWZ0IiwgIjE5Il0sCisgICAgICBbIkRvd24iLCAiMjEiXSwKKyAgICAgIFsi
UmlnaHQiLCAiMjIiXSwKKyAgICAgIFsiRG93biIsICIyNCJdLAorICAgICAgWyJMZWZ0IiwgIjIz
Il0sCisgICAgICBbIkRvd24iLCAiMjUiXSwKKyAgICAgIFsiUmlnaHQiLCAiMjYiXSwKKyAgICAg
IFsiRG93biIsICIyNyJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJET05FIiwg
IkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQ
cmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8g
c3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zl
cyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RD
b21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAg
ICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgPGEg
aWQ9IjEiIGhyZWY9ImEiPkg8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOzxhIGlkPSIyIiBocmVmPSJwIj5vdyBOb3cg
QnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMyIgaHJlZj0iYSI+SG88L2E+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjQiIGhyZWY9InAiPncgTm93IEJyb3duIENv
dzwvYT48YnI+CisgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPkhvdzwvYT4gJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0i
NiIgaHJlZj0icCI+Tm93IEJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjciIGhyZWY9ImEi
PkhvdyBOPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsg
Jm5ic3A7Jm5ic3A7IDxhIGlkPSI4IiBocmVmPSJwIj5vdyBCcm93biBDb3c8L2E+PGJyPgorICAg
IDxhIGlkPSI5IiBocmVmPSJhIj5Ib3cgTm88L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjEwIiBocmVmPSJwIj53IEJy
b3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjExIiBocmVmPSJhIj5Ib3cgTm93IDwvYT4mbmJz
cDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7IDxhIGlkPSIxMiIgaHJlZj0icCI+QnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTMi
IGhyZWY9ImEiPkhvdyBOb3cgQjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTQiIGhyZWY9InAiPnJvd24gQ293PC9h
Pjxicj4KKyAgICA8YSBpZD0iMTUiIGhyZWY9ImEiPkhvdyBOb3cgQnI8L2E+ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxNiIgaHJl
Zj0icCI+b3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjE3IiBocmVmPSJhIj5Ib3cgTm93IEJy
bzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJz
cDsgPGEgaWQ9IjE4IiBocmVmPSJwIj53biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxOSIgaHJl
Zj0iYSI+SG93IE5vdyBCcm93PC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0iMjAiIGhyZWY9InAi
Pm4gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMjEiIGhyZWY9ImEiPkhvdyBOb3cgQnJvd248L2E+
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJz
cDsmbmJzcDsgPGEgaWQ9IjIyIiBocmVmPSJwIj5Db3c8L2E+PGJyPgorICAgIDxhIGlkPSIyMyIg
aHJlZj0iYSI+SG93IE5vdyBCcm93biBDPC9hPiAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIyNCIgaHJlZj0icCI+b3c8L2E+
PGJyPgorICAgIDxhIGlkPSIyNSIgaHJlZj0iYSI+SG93IE5vdyBCcm93biBDbzwvYT4gJm5ic3A7
Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBp
ZD0iMjYiIGhyZWY9InAiPnc8L2E+PGJyPgorICAgIDxhIGlkPSIyNyIgaHJlZj0iYSI+SG93IE5v
dyBCcm93biBDb3c8L2E+PGJyPjxicj4KKyAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJs
ZS1jb250ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yNTY2NGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK2EKKworCitlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJs
ZS1jb250ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lM2NiNTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJs
ZS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlz
IHRlc3QgZW5zdXJlcyB0aGUgYmFzaWMgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3Bh
dGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGlmcmFtZXMgd2l0aG91dAorICAgIGFu
eSBmb2N1c2FibGUgY29udGVudCBzaG91bGQgYmUgaWdub3JlZC4KKworICAgICogUHJlLWNvbmRp
dGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAg
ICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2Vz
IHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBmcm9tICJzdGFy
dCIgdG8gImVuZCIgYnlwYXNzaW5nIHRoZSB0d28gaWZyYW1lcworICAgICAgIGluIGJldHdlZW4g
dGhlbSwgb25jZSBib3RoIGhhdmUgbm8gZm9jdXNhYmxlIGVsZW1lbnRzIGluc2lkZS4KKyAgLS0+
CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRp
bHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlw
dCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgImVuZCJdLAorICAg
ICAgWyJVcCIgICwgInN0YXJ0Il0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNw
YXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBp
dHNlbGY6IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInN0YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENv
bXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgewor
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBy
dW5UZXN0OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1j
b250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdj48
YSBpZD0ic3RhcnQiIGhyZWY9ImEiPmE8L2E+PC9kaXY+CisgICAgPGlmcmFtZSBzcmM9InJlc291
cmNlcy9pZnJhbWU0Lmh0bWwiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgc2Nyb2xsaW5nPSJhdXRv
Ij48L2lmcmFtZT48YnI+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWU0Lmh0bWwi
IHNjcm9sbGluZz0iYXV0byI+PC9pZnJhbWU+PGJyPgorICAgIDxkaXY+PGEgaWQ9ImVuZCIgaHJl
Zj0iYSI+ZTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUt
bm8tc2Nyb2xsYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zZjkyOGIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29u
dGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorYQorCisKK2EKK1BBU1MgZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiMyIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzFdLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1
bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNSIKK1BBU1MgZG9j
dW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0u
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMyIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBd
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBk
b2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlm
cmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kMDgxY2JjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVu
dC5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVu
c3VyZXMgdGhlIGJhc2ljIGlmcmFtZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0
aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGluIGEK
KyAgICA8aWZyYW1lPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlv
bnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAq
IE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRv
ICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUgZWxl
bWVudHMgaW4gdGhlIHR3byBpZnJhbWVzIGluIHRoZQorICAgICAgIFdlYiBwYWdlLCBldmVudHVh
bGx5IGdvaW5nIHRvIG91dGVyIGFuIHNvdXRod2FyZCBsaW5rLCBidXQKKyAgICAgICBnb2luZyBi
YWNrIHRvIHRoZSBpZnJhbWUgb24gdGhlIHRvcCBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2
YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIsICIy
Il0sCisgICAgICBbIkRvd24iLCAiMyJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsi
RG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNCJdLAorICAgICAgWyJSaWdodCIsICI1Il0s
CisgICAgICBbIlJpZ2h0IiwgIjYiXSwKKyAgICAgIFsiUmlnaHQiLCAiNyJdLAorICAgICAgWyJV
cCIsICIzIl0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiVXAiLCAiMSJdLAorICAgICAg
WyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRh
YlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgewor
ICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4K
KyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAg
IHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5hPC9hPjwv
ZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lLmh0bWwiPjwvaWZyYW1lPjxi
cj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZTIuaHRtbCI+PC9pZnJhbWU+Cisg
ICAgPGRpdj48YSBpZD0iZW5kIiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3Jl
ZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJs
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jMzNhYTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACithCisKK2UKK1BBU1MgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZy
YW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4t
Zm9jdXNhYmxlLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41Y2M5OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVt
ZW50Lmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3Qg
ZW5zdXJlcyB0aGUgYmFzaWMgaWZyYW1lIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNw
YXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4g
YQorICAgIDxpZnJhbWU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0
aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAg
ICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMg
dG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFsb25nIHRoZSBl
bGVtZW50cyBpbiB0aGUgdHdvIGlmcmFtZXMgaW4gdGhlCisgICAgICAgV2ViIHBhZ2UsIGV2ZW50
dWFsbHkgZ29pbmcgdG8gb3V0ZXIgYW4gc291dGh3YXJkIGxpbmssIGJ1dAorICAgICAgIGdvaW5n
IGJhY2sgdG8gdGhlIGlmcmFtZSBvbiB0aGUgdG9wIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAg
IHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwg
IjEiXSwKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiMiJdLAorICAgICAg
WyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjIiXSwK
KyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIxIl0sCisgICAgICBbIlVwIiwgInN0
YXJ0Il0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdj48YSBpZD0ic3RhcnQiIGhy
ZWY9ImEiPmE8L2E+PC9kaXY+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUzLmh0
bWwiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgc2Nyb2xsaW5nPSJhdXRvIj48L2lmcmFtZT48YnI+
CisgICAgPGRpdj48YSBpZD0iZW5kIiBocmVmPSJhIj5lPC9hPjwvZGl2PgorICAgIDxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45YjA3MDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0IHRhYmxlIHRyYXZlcnNhbAorYQlhCWEKK2EJYQlh
CithCWEJYQorRW5kIG9mIHRhYmxlIHRyYXZlcnNhbCB0ZXN0CitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjkiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiODE4ZGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
YWJsZS10cmF2ZXJzYWwuaHRtbApAQCAtMCwwICsxLDg4IEBACis8aHRtbD4KKyAgPCEtLQorICAg
IFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyB0YWJsZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mg
b2YKKyAgICBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVs
ZW1lbnRzIGluIGEKKyAgICA8dGFibGU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQ
cmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJs
ZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZv
Y3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFs
b25nIHRocm91Z2ggdGhlIHNwYXJzZWx5IHBvc2l0aW9uZWQgZWxlbWVudHMKKyAgICAgICBpbiB0
aGUgdGFibGUsIGV2ZW50dWFsbHkgZ29pbmcgdG8gYW4gb3V0ZXIgc291dGh3YXJkIGxpbmssCisg
ICAgICAgYnV0IGdvaW5nIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBsYXRlciBvbi4KKyAgLS0+Cisg
IDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+
CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsi
RG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAgICAgWyJEb3duIiwgImVuZCJd
LAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0IiwgIjgiXSwKKyAgICAgIFsiUmln
aHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBbIlVwIiwgIjMiXSwKKyAgICAg
IFsiTGVmdCIsICIyIl0sCisgICAgICBbIkxlZnQiLCAiMSJdLAorICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVm
ZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3Rh
cnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyht
b3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21w
bGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3
aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5UZXN0IHRhYmxlIHRyYXZlcnNhbDxh
PgorICAgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCU7IG1hcmdp
bi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5n
PSIyIiBjZWxsc3BhY2luZz0iMSI+CisgICAgICA8dGJvZHk+CisgICAgICAgIDx0cj4KKyAgICAg
ICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsi
PjxhIGlkPSIxIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0
aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMiIgaHJlZj0iYSI+
YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4
dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjMiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAg
PC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjQiIGhyZWY9ImEiPmE8L2E+PC90ZD4K
KyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNl
bnRlcjsiPjxhIGlkPSI1IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxl
PSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNiIgaHJl
Zj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAg
PHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBp
ZD0iNyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwt
YWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjgiIGhyZWY9ImEiPmE8L2E+
PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGlkPSI5IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+
CisgICAgICA8L3Rib2R5PgorICAgIDwvdGFibGU+CisgICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRv
cDoxMDBweCc+CisgICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj5FbmQgb2YgdGFibGUgdHJhdmVy
c2FsIHRlc3Q8YT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJs
ZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjNhZTA4YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorYQorYQlhCWEKK2EJYQlhCithCWEJYQorYQorYQorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInJpZ2h0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnkt
dGFibGUtdHJhdmVyc2FsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MTMwZDAzNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0bWwKQEAgLTAsMCArMSw5
MyBAQAorPGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFi
bGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2
KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPHRhYmxlPiBzaG91bGQg
YmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBv
cnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6Cisg
ICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxs
eS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUgZWxlbWVudHMgaW4gdGhlIHRhYmxlLCBl
dmVudHVhbGx5CisgICAgICAgZ29pbmcgdG8gb3V0ZXIgc291dGh3YXJkIGFuZCBlYXN0d2FyZCBs
aW5rcywgYnV0IGdvaW5nCisgICAgICAgYmFjayBpbnNpZGUgdGhlIHRhYmxlIGxhdGVyIG9uLgor
ICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlv
bi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZh
c2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiMSJdLAor
ICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI3Il0sCisgICAgICBbIkRvd24i
LCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjciXSwKKyAgICAgIFsiUmlnaHQiLCAiOCJdLAorICAg
ICAgWyJSaWdodCIsICI5Il0sCisgICAgICBbIlVwIiwgIjYiXSwKKyAgICAgIFsiUmlnaHQiLCAi
cmlnaHQiXSwKKyAgICAgIFsiTGVmdCIsICI2Il0sCisgICAgICBbIlVwIiwgIjMiXSwKKyAgICAg
IFsiTGVmdCIsICIyIl0sCisgICAgICBbIkxlZnQiLCAiMSJdLAorICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVm
ZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3Rh
cnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyht
b3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21w
bGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3
aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5hPC9hPjxicj4KKyAgICA8dGFibGU+
CisgICAgICA8dGJvZHk+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQt
c2l6ZTogc21hbGw7Ij48YSBpZD0iMSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0
ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjMiIGhyZWY9
ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0
ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjUiIGhyZWY9
ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48
YSBpZD0iNiIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+
CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjciIGhyZWY9
ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48
YSBpZD0iOCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1z
aXplOiBzbWFsbDsiPjxhIGlkPSI5IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+
CisgICAgICA8L3Rib2R5PgorICAgIDwvdGFibGU+CisgICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRv
cDo4cHgnPgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTxhPgorICAgIDwvZGl2PgorICAg
IDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA1MHB4OyBtYXJnaW4tdG9wOi03MHB4Ij4KKyAgICAg
IDxhIGlkPSJyaWdodCIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tIj5hPC9hPgorICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25h
di11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZs
b3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjEyYTUzMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1z
Y3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1N0YXJ0CitF
bmQKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0
YXJ0IgorUEFTUyB0cnVlIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgImVuZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWlu
LWRpcmVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMzc0NDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92
ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwKQEAgLTAsMCArMSw5NiBAQAorPGh0
bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgY29ycmVjdG5lc3MgdGhlIGZv
bGxvd2luZyBTcGF0aWFsIE5hdmlnYXRpb24KKyAgICAoU05hdikgYWxnb3JpdGhtIGZlYXR1cmVz
LgorCisgICAgMSkgVGhlcmUgaXMgbm8gdW5pdCBvdmVyZmxvdyBpbiB0aGUgU05hdiBhbGdvcml0
aG0gd2hpbGUgY2FsY3VsYXRpbmcKKyAgICAgICB0aGUgYmVzdCBub2RlIGNhbmRpZGF0ZSB0byBt
b3ZlIGZvY3VzIHRvLiBUbyB0ZXN0IHRoYXQgdGhpcyBwYWdlCisgICAgICAgcG9zaXRpb25zIHNv
bWUgZWxlbWVudHMgMTAwMDAwMDAgcGl4ZWxzIGZhciBmcm9tIGVhY2ggb3RoZXIgKGRpc3RhbmNl
CisgICAgICAgdGhhdCBjYW4gY29uc2lkZXJlZCBsYXJnZSBlbm91Z2ggZm9yIG1vc3Qgb2YgdGhl
IFdlYiBQYWdlcyBvbiB0aGUKKyAgICAgICBJbnRlcm5ldCkuCisKKyAgICAyKSBNYWtlIHN1cmUg
dGhhdCBhIGJlc3QgZm9jdXNhYmxlIGNhbmRpZGF0ZSBvbmx5IGdldHMgZm9jdXNlZAorICAgICAg
IGlmIGl0IGlzIHZpc2libGUgaW4gdGhlIGN1cnJlbnRsIFZpZXdwb3J0LiBTY3JvbGwtaW4tZGly
ZWN0aW9uCisgICAgICAgaXMgcGVyZm9ybWVkIG90aGVyd2lzZS4KKworICAgICogUHJlLWNvbmRp
dGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAg
ICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2Vz
IHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBBdHRlbXB0IHRvIG1vdmUgZm9jdXMg
ZG93biB0byAiZW5kLiBBcyBpdCBpcyB0b28gZmFyIGFuZCBvdXQgb2YKKyAgICAgICB2aWV3cG9y
dCwgZm9jdXMgY2hhbmdlIHdpbGwgbm90IGhhcHBlbiBhbmQgcGFnZSB3aWxsIGJlIHNjcm9sbGVk
CisgICAgICAgYSBzdGVwIGRvd24uCisgICAgMykgQnkgc2VuZGluZyBhbiAiRW5kIiBrZXlwcmVz
cywgcGFnZSBnZXRzIHNjcm9sbGVkIGRvd24gdG8gYSBwbGFjZQorICAgICAgIHdoZXJlIHRoZSAi
ZW5kIiBub2RlIGdldHMgdmlzaWJsZSBpbiB0aGUgdmlld3BvcnQuCisgICAgNCkgU3RlcCBfMV8g
aXMgcmFuIGFnYWluLCBhbmQgImVuZCIgZ2V0cyBmb2N1c2VkLiAtLT4KKyAgPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBt
b3ZlVGFibGUxID0gWworICAgICAgWyJEb3duIiwgInN0YXJ0Il0sCisgICAgICBbIiIsICIiXQor
ICAgIF07CisKKyAgICB2YXIgbW92ZVRhYmxlMiA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwK
KyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
KHRydWUpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQor
ICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24g
cGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOwor
CisgICAgICBzZXRUaW1lb3V0KHN0ZXAxICwgMCk7CisgICAgICBzZXRUaW1lb3V0KHN0ZXAyICwg
NTAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAgLy8gQWN0
aW9ucyBpbiAnbW92ZVRhYmxlMScgc2hvdWxkIGtlZXAgdGhlIGZvY3VzIGluIHRoZSBjdXJyZW50
bHkKKyAgICAgIC8vIGZvY3VzZWQgZWxlbWVudCAoJ3N0YXJ0Jykgb25jZSB0aGUgYmVzdCBjYW5k
aWRhdGUgKCdlbmQnKSBpcyBub3QKKyAgICAgIC8vIHZpc2libGUgaW4gY3VycmVudCB2aWV3cG9y
dC4KKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUxKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
dGVwMigpCisgICAgeworICAgICAgc2hvdWxkQmVUcnVlKFN0cmluZyhkb2N1bWVudC5ib2R5LnNj
cm9sbFRvcCAhPSAwKSk7CisKKyAgICAgIC8vIFRoZW4gaXQgc2Nyb2xscyBkb3duIHRvIHRoZSBl
bmQgb2YgdGhlIHBhZ2UgLi4uCisgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJlbmQiKTsKKworICAgICAgLy8gQW5kICdtb3ZlVGFibGUy
JyByZS10cmllcyB0byBtb3ZlIGZvY3VzIGRvd24uCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
MiwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgp
CisgICAgeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5v
bmxvYWQgPSBydW5UZXN0OworCisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPlN0YXJ0PC9hPgorICAgIDxkaXYgc3R5bGU9J21h
cmdpbi10b3A6MTAwMDAwMDAwcHgnPgorICAgICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj5FbmQ8
L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBl
cnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjhlYjBkMzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTkgQEAKK3Rlc3QKK3Rlc3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oHRlc3QKK3Rlc3QKK3Rlc3QKK3Rlc3QKK3Rlc3QKKworCisKKwordGVzdAordGVzdAorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1
cGVycHJlY2VkZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNTBlNjgwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJl
Y2VkZW5jZS5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0
ZXN0IGVuc3VyZXMgdGhlIHN1cGVyIHByZWNlZGVuY2UgbG9naWMgb2YgU3BhdGlhbCBOYXZpZ2F0
aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobTogdGFyZ2V0cyB3aG9zZSBtaWRkbGUgZmFsbHMgYmV0
d2VlbiB0aGUgdG9wIG9yIGJvdHRvbQorICAgIG9mIHRoZSBjdXJyZW50IHJlY3QgYXJlIHByZWZl
cmFibHkgdG8gbW92ZSBmb2N1cyB0by4KKworICAgICogUHJlLWNvbmRpdGlvbnM6CisgICAgMSkg
RFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24g
c3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0
b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBwcmVmZXJhYmx5IHRvIGVsZW1lbnRzIHJp
Z2h0IHVwIG9yIGFib3ZlIHRoZQorICAgICAgIGN1cnJlbnQgZm9jdXNlZCBlbGVtZW50LCBldmVu
IHdoZW4gdGhlcmUgYXJlIHNvbWUgb3RoZXIgY2xvc2VyCisgICAgICAgYnV0IG5vdCB2ZXJ0aWNh
bGx5IGFsaWduZWQgZWxlbWVudHMgaW4gdGhlIHNhbWUgZGlyZWN0aW9uLgorICAtLT4KKyAgPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKwor
ICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3du
IiwgIjYiXSwKKyAgICAgIFsiRG93biIsICI4Il0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisg
ICAgICBbIlVwIiwgIjciXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJET05FIiwgIkRP
TkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVm
ZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3Rh
cnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyht
b3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21w
bGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3
aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAg
PGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiPgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyB0ZXh0LWFsaWduOiBsZWZ0
OyI+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgICAgICA8YSBp
ZD0ic3RhcnQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8YSBp
ZD0iMiIgaHJlZj0iYSI+dGVzdDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8YSBpZD0iMyIgaHJl
Zj0iYSI+dGVzdDwvYT48YnI+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsi
PgorICAgICAgICA8YSBpZD0iNCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4K
KyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA4MHB4OyI+CisgICAgICAgIDxhIGlkPSI1
IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBzdHlsZT0i
bWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjYiIGhyZWY9ImEiPnRlc3Q8YnI+
PC9hPgorICAgICAgPC9kaXY+CisgICAgICA8YSBpZD0iNyIgaHJlZj0iYSI+dGVzdDxicj48L2E+
CisgICAgICA8YnI+PGJyPjxicj48YnI+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDog
NDBweDsiPgorICAgICAgICA8YSBpZD0iOCIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8
L2Rpdj4KKyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDwvZGl2
PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0
aWFsLW5hdmlnYXRpb24tdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjgwMTE5ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxz
LmpzCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBPcmlnaW5hbCBhdXRob3I6IERvdWcgVHVybmVy
IDxkb3VnLnR1cm5lckBnbWFpbC5jb20+CisgKgorICogQ29udHJpYnV0b3JzOgorICogICAgICog
QW50b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisgKiovCisKK3ZhciBfbW92ZVRh
YmxlOwordmFyIF9tb3ZlVGFibGVJbmRleCA9IDA7Cit2YXIgX2NvbXBsZXRlZENhbGxiYWNrID0g
bnVsbDsKKworZnVuY3Rpb24gdGVzdE1vdmVzKHRhYmxlLCBjb21wbGV0ZWRDYikgeworICAgLy8g
ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBfdmVyaWZ5QW5kQWR2YW5jZSwgdHJ1
ZSk7CisKKyAgX21vdmVUYWJsZSA9IHRhYmxlOworICBfbW92ZVRhYmxlSW5kZXggPSAwOworICBf
Y29tcGxldGVkQ2FsbGJhY2sgPSBjb21wbGV0ZWRDYjsKKyAgX21vdmUoKTsKK30KKworZnVuY3Rp
b24gX25leHRNb3ZlKCkKK3sKKyAgX21vdmVUYWJsZUluZGV4Kys7CisKKyAgLy8gV2hlbiBhIHRh
YmxlIGVuZHMgd2l0aCAiRE9ORSIsIGNhbGwgdGhlIGNvbXBsZXRpb24gY2FsbGJhY2suCisgIGlm
IChfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0gPT0gIkRPTkUiKQorICAgIGlmIChfY29t
cGxldGVkQ2FsbGJhY2spIHsKKyAgICAgIF9jb21wbGV0ZWRDYWxsYmFjaygpOworICAgICAgcmV0
dXJuOworICAgIH0KKworICAvLyB3aGVuIGEgdGFibGUgaGFzIGFuIGVtcHR5IGVsZW1lbnQsIGVu
ZCB0aGUgbW92ZXMuCisgIGlmIChfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0gPT0gIiIp
CisgICAgcmV0dXJuOworCisgIF9tb3ZlKCk7Cit9CisKK2Z1bmN0aW9uIF9tb3ZlKCkKK3sKKyAg
dmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0tleWJvYXJkRXZlbnRzJyk7CisgIGV2
ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSwgZG9jdW1lbnQuZGVm
YXVsdFZpZXcsIF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXSwgMCwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlKTsKKyAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7
CisKKyAgc2V0VGltZW91dCggX3ZlcmlmeUFuZEFkdmFuY2UgLCAxMDApOworfQorCitmdW5jdGlv
biBfdmVyaWZ5QW5kQWR2YW5jZSgpCit7CisgIHZhciBkaXJlY3Rpb24gPSBfbW92ZVRhYmxlW19t
b3ZlVGFibGVJbmRleF1bMF07CisgIHZhciBleHBlY3RlZElEID0gX21vdmVUYWJsZVtfbW92ZVRh
YmxlSW5kZXhdWzFdOworCisgIHZhciBpID0gMDsKKyAgdmFyIG1haW5GcmFtZUhhc0ZvY3VzID0g
dHJ1ZTsKKyAgZm9yKDsgaSA8IGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lcy5sZW5ndGg7IGkr
KykKKyAgICBpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzW2ldLmRvY3VtZW50Lmhhc0Zv
Y3VzKCkpIHsKKyAgICAgIG1haW5GcmFtZUhhc0ZvY3VzID0gZmFsc2U7CisgICAgICBicmVhazsK
KyAgICB9CisKKyAgLy8gdGhpcyBzdXBwb3J0IGZyYW1lcyBuZXN0ZWQgaW4gb25lIGxldmVsIGRl
ZXAgb25seS4KKyAgaWYgKG1haW5GcmFtZUhhc0ZvY3VzKQorICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSIsIGV4cGVj
dGVkSUQpOworICBlbHNlCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbIiArIGkgKyAiXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZShcImlkXCIpIiwgZXhwZWN0ZWRJRCk7CisKKyAgX25leHRNb3ZlKCk7Cit9CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggODBmYjY2MS4uNWQ5ZWE0YiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKQEAgLTU3OTksMyArNTc5OSw2IEBAIHByaW50aW5nL3BhZ2VOdW1lckZvckVs
ZW1lbnRCeUlkLmh0bWwKICMgSW50ZXJtaXR0ZW50bHkgdGltaW5nIG91dCBvbiBHdGsgRGVidWcg
Qm90OgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM0NDUKIGh0
dHAvdGVzdHMvaW5jcmVtZW50YWwvc3BsaXQtaGV4LWVudGl0aWVzLnBsCisKKyMgTmVlZCB0byBh
ZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2Fi
bGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNjlkNmUwYi4uZDg2NWQwZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKQEAgLTExMSwzICsxMTEsNiBAQCBodHRwL3Rlc3RzL21lZGlhL3ZpZGVv
LWNvb2tpZS5odG1sCiAjIEZhaWxzIG9uIE1hYwogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQzMzEKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVmZXJlci5odG1s
CisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5k
bGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggMjdlMmUzYS4uZWI0ZTUw
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTc0NCwzICs3NDQsNiBAQCBwcmludGlu
Zy9wYWdlTnVtZXJGb3JFbGVtZW50QnlJZC5odG1sCiAjIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
LURFTklFRC13aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC5odG1sIHRpbWVkIG91dCBvbiBXaW5k
b3dzIERlYnVnIEJvdAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzMzNDkKIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC13aW5kb3ctb3Blbi1qYXZhc2Ny
aXB0LXVybC5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVy
VHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBi
L1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCA4Y2JjOTFkLi40NzE1YjRhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zNTAsNiArMzUw
LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGFnZS9TY3Jl
ZW4uY3BwIFwKIAlwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBcCiAJcGFnZS9TZXR0aW5ncy5jcHAg
XAorCXBhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAgXAogCXBhZ2UvVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmNwcCBcCiAJcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgXAogCXBhZ2UvV29ya2Vy
TmF2aWdhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGY2NzQ5MmYuLjJhMGQ1MDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTAtMDIt
MDEgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8
dG9uaWtpdG9vQHdlYmtpdC5jb20+CisgICAgICAgIEJhc2VkIG9uIHRoZSBpbml0aWFsIHdvcmsg
b2YgTWFyY28gQmFyaXNpb25lIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgorCisg
ICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5h
dmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NjYyCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBjb3JlIGxvZ2ljIG9m
IHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJlIFsxXS4KKyAgICAgICAgSXQgaW1wcm92
ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5IGV4dGVuZGluZyB0aGUg
YmFzaWMga2V5Ym9hcmQKKyAgICAgICAgbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxhYmxlIChi
YXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCisgICAgICAgIGFkZGl0
aW9uIG9mIGEgZGlyZWN0aW9uYWwgYmFzZWQgbmF2aWdhdGlvbiwgd2hlcmUgZm9jdXNhYmxlIGVs
ZW1lbnRzIGFyZSBhY2Nlc3NpYmxlCisgICAgICAgIGJhc2VkIG9uIHRoZWlyIHNwYXRpYWwgbG9j
YXRpb24gaW4gYSBXZWIgUGFnZSwgbm90IG9uIGl0cyBUYWIgaW5kZXggdmFsdWUuCisKKyAgICAg
ICAgSGlnaGxpZ2h0czoKKyAgICAgICAgKiBGZWF0dXJlIGlzIHR1cm5lZCBvZmYgYnkgZGVmYXVs
dCBpbiBTZXR0aW5ncy4gUG9ydCBzcGVjaWZpYyBBUElzIG5lZWQgdG8gYmUgYWRkZWQKKyAgICAg
ICAgICBmb3IgdG9nZ2xpbmcgaXQgb24vb2ZmLgorICAgICAgICAqIE9ubHkgZWxlbWVudHMgdmll
d2VkIGluIHRoZSBjdXJyZW50IHZpZXdwb3J0IGNhbiBoYXZlIGZvY3VzIG1vdmUgdG8gaXQuIElm
IHRoZXJlIGlzCisgICAgICAgICAgbm90IGFueSwgYW4gc2Nyb2xsLWluLWRpcmVjdGlvbiBhY3Rp
b24gaXMgcGVyZm9ybWVkLgorICAgICAgICAqIFRoZSBsYXlvdXQgdGVzdHMgYWRkZWQgcnVuIG9u
IFF0J3MgRFJUIG9ubHkgZm9yIG5vdyAoc2tpcHBlZCBmb3IgTWFjLCBXaW4gYW5kIEd0aykuCisK
KyAgICAgICAgS25vd24gaXNzdWVzICh0byBiZSBjb3ZlcmVkIGluIGZvbGxvdy11cCBidWdzKToK
KyAgICAgICAgKiBBZGQgcG9ydCBzcGVjaWZpYyBob29rcyB0byBlYWNoIERSVCB0byBlbmFibGUv
ZGlzYWJsZSBTcGF0aWFsIE5hdmlnYXRpb24uCisgICAgICAgICogU3VwcG9ydCBmb3Igc3BhdGlh
bCBuYXZpZ2F0aW9uIHRocm91Z2ggZm9ybSBlbGVtZW50cyAoPGlucHV0PiwgPHNlbGVjdD4sIGV0
YykKKyAgICAgICAgICBpcyBiZSBhZGRlZC4KKyAgICAgICAgKiBNYWtlIG5hdmlnYXRpb24ga2V5
cyBjdXN0b21pemFibGUuIEl0IGN1cnJlbnRseSB3b3JrcyB3aXRoIGFycm93cyBrZXlzIG9ubHkK
KyAgICAgICAgICAodXAsIGRvd24sIHJpZ2h0IGFuZCBsZWZ0KS4KKyAgICAgICAgKiBNYWtlIGl0
IHN1cHBvcnQgbW9kaWZpZXJzIChBbHQsIEN0cmwgYW5kIFNoaWZ0KS4KKworICAgICAgICBbMV0g
aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KKworICAgICAg
ICBUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3Jv
bGxhYmxlLWNvbnRlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3Jv
bGwtaW4tZGlyZWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCisKKyAgICAgICAg
KiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hbnVhbC10
ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0
aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlczIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpm
b2N1c0RpcmVjdGlvbkZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRl
ZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoK
KyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkpOgorICAgICAgICAo
V2ViQ29yZTo6ZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpkaXN0YW5jZUluRGlyZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5o
OgorICAgICAgICAqIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
czo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3M6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAgICAgKiBw
YWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OnJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omlz
TW92aW5nRnJvbU91dHRlclRvSW5uZXJEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc01v
dmluZ0Zyb21Jbm5lclRvT3V0dGVyRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNPZmZz
Y3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbEluRGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlzUmVjdEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmFyZVJl
Y3RzRnVsbHlBbGlnbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OmFyZVJlY3RzUGFydGlhbGx5QWxp
Z25lZCk6CisgICAgICAgIChXZWJDb3JlOjpldWNsaWRpZWFuRGlzdGFuY2UpOgorICAgICAgICAo
V2ViQ29yZTo6c3BhdGlhbERpc3RhbmNlRm9yQWxpZ25lZFJlY3RzKToKKyAgICAgICAgKFdlYkNv
cmU6OnNwYXRpYWxEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpkZWZsYXRlSWZOZWVkZWQp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NhbmRpZGF0ZTo6Rm9jdXND
YW5kaWRhdGUpOgorCiAyMDEwLTAyLTAzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5
Zjk3M2RhLi4wN2UyMmEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE0MDcsNiArMTQwNyw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oIFwKIAlXZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBcCisJV2ViQ29y
ZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwIFwKKwlXZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb25VdGlscy5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmNwcCBcCiAJV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5oIFwKIAlXZWJDb3Jl
L3BhZ2UvVXNlclNjcmlwdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWQ0OWU4My4uN2NlNTc5NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NzIs
NiArMTg3Miw4IEBACiAgICAgICAgICAgICAncGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCcsCiAg
ICAgICAgICAgICAncGFnZS9TZXR0aW5ncy5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGlu
Z3MuaCcsCisgICAgICAgICAgICAncGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0aWxzLmgnLAorICAg
ICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9Vc2Vy
Q29udGVudFVSTFBhdHRlcm4uaCcsCiAgICAgICAgICAgICAncGFnZS9Vc2VyU2NyaXB0LmgnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggNjFlOGMzYy4uZTAzYjRkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysg
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC03NTMsNiArNzUzLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgXAogICAgIHBhZ2UvU2NyZWVuLmNwcCBcCiAgICAg
cGFnZS9TZXR0aW5ncy5jcHAgXAorICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAg
XAogICAgIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCiAgICAgcGFnZS9XaW5kb3dG
ZWF0dXJlcy5jcHAgXAogICAgIHBhZ2UvWFNTQXVkaXRvci5jcHAgXApAQCAtMTQ1Niw2ICsxNDU3
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9TY3JlZW4uaCBcCiAgICAgcGFnZS9TZWN1cml0
eU9yaWdpbi5oIFwKICAgICBwYWdlL1NldHRpbmdzLmggXAorICAgIHBhZ2UvU3BhdGlhbE5hdmln
YXRpb25VdGlscy5oIFwKICAgICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmggXAogICAgIHBhZ2UvV29y
a2VyTmF2aWdhdG9yLmggXAogICAgIHBhZ2UvWFNTQXVkaXRvci5oIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGMzMWRlN2QuLjU2NmRlMjkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjA5NjUsNiArMjA5NjUsMTQgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxTcGF0aWFs
TmF2aWdhdGlvblV0aWxzLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BhdGlhbE5hdmlnYXRpb25VdGlsc3MuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQg
YS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbCBiL1dl
YkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBkNmVkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD4KKzxhIGhyZWY9ImEi
PmE8L2E+Cis8YSBocmVmPSJhIj5hPC9hPgorPGEgaHJlZj0iYSI+YTwvYT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVz
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzI4MzQ2ZAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5h
dmlnYXRpb24tdGVzdC1jYXNlcy5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorICA8dGl0bGU+U3BhdGlhbCBOYXZpZ2F0aW9u
IFRlc3QgQ2FzZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CisgIDxoMSBzdHlsZT0idGV4dC1hbGln
bjogbGVmdDsiPlNwYXRpYWwgTmF2aWdhdGlvbiBGdW48L2gxPgorICA8aDIgc3R5bGU9InRleHQt
YWxpZ246IGxlZnQ7Ij4zeDMgQ2VudGVyZWQgVGFibGUgVGVzdDwvaDI+Cis8L2Rpdj4KKzx0YWJs
ZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCU7IG1hcmdpbi1sZWZ0OiBhdXRv
OyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3Bh
Y2luZz0iMiI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90
ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwv
dGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAg
ICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+
PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+Cisg
ICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7
IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0
ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJl
Zj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9w
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgPC90
cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+PGJyPgorICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0
OyI+CisgICAgPGgyPlZlcnRpY2FsIFNpbmUgVGVzdDwvaDI+PGJyPgorICA8L2Rpdj4KKyAgPGRp
diBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9h
PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+PGEgaHJlZj0iYSI+dGVzdDxi
cj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAg
IDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+Cisg
IDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBw
eDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
PC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4mbmJz
cDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsKKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisKKyAgPGgyPkluY3JlYXNp
bmcgc2VudGVuY2UgbGVuZ3RoPC9oMj4KKyAgPGEgaHJlZj0iYSI+SDwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvPGJyPjwvYT4KKyAgPGEgaHJlZj0icCI+SG93PGJyPjwvYT4KKyAgPGEgaHJlZj0i
cCI+SG93IDxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdyBOPC9hPjxicj4KKyAgPGEgaHJlZj0i
cCI+SG93IE5vPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBOb3cgPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCPC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cg
QnJvPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE5vdyBCcm93bjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24g
PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDPC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE5vdyBCcm93biBDbzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJv
d24gQ293PC9hPjxicj4KKyAgPGJyPgorICA8aDI+U3BsaXQgc2VudGVuY2U8YnI+PC9oMj4KKyAg
PGJyPgorICA8YSBocmVmPSJwIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBocmVmPSJwIj5vdyBOb3cgQnJv
d24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dyBOb3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPk5vdyBCcm93biBDb3c8L2E+PGJyPgor
ICA8YSBocmVmPSJwIj5Ib3cgTjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vdyBCcm93biBDb3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm88L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dyBCcm93biBDb3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IDwvYT4mbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPkJyb3du
IENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT4gJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5y
b3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnI8L2E+ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJybzwvYT4gJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+d24g
Q293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93PC9hPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj5uIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd248
L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5v
dyBCcm93biBDPC9hPiAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93
IE5vdyBCcm93biBDbzwvYT4gJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+
SG93IE5vdyBCcm93biBDb3c8L2E+PGJyPjxicj4KKyAgPGgyPkxpbmUgV3JhcCBUZXN0PC9oMj48
YnI+CisgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDM5M3B4OyBoZWln
aHQ6IDcycHg7IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+Cisg
ICAgPHRib2R5PgorICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7Ij4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0iaHVnZSI+CisgICAgICAgICAgICA8YSBo
cmVmPSJhIj5XaGljaCBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW5zdCBkbyB5b3UgbGlrZSB0aGUg
bW9zdCwgb25lIGlzIGcsIG9uZSBpcyBwaSwgYW5kIHRoZSBvdGhlciBpcyBlLiA8L2E+PGJyPgor
ICAgICAgICAgIDwvc3Bhbj48L3RkPgorICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7Ij4KKyAgICAgICAgICA8YSBocmVmPSJhIj4zLjE0PC9hPjxicj4KKyAgICAgICAgICA8
YSBocmVmPSJhIj4yLjcxPC9hPjxicj4KKyAgICAgICAgICA8YSBocmVmPSJhIj42LjY3PC9hPjxi
cj4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKyAgPC90YWJsZT48
YnI+CisgIDxoMj5KYXZhc2NyaXB0IEZvY3VzL0JsdXIgVGVzdDwvaDI+CisgICAgV2hlbiBnb2lu
ZyB0byBhbnkgbGluayBmcm9tIHRoZSBmb2xsb3dpbmcgbGluaywgeW91IHNob3VsZCBzZWUgYSBk
aWFsb2cuPGJyPjxicj4KKyAgPGEgaHJlZj0iYSIgb25ibHVyPSdhbGVydCgib25CbHVydCIpJz5U
ZXN0PC9hPjxicj48YnI+CisKKyAgPGgyPkZyYW1lU2V0czwvaDI+IDxicj4KKyAgPGZyYW1lc2V0
IGNvbHM9IjI1JSwyNSUsKiI+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICAgIDxm
cmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+Cisg
IDwvZnJhbWVzZXQ+CisgIDxicj48YnI+CisKKyAgPGgyPklGcmFtZXM8L2gyPjxicj4KKyAgPGlm
cmFtZSBzcmM9ImxpbmtzLmh0bWwiPjwvaWZyYW1lPjxicj48YnI+PGJyPgorICA8aDI+RElWczwv
aDI+PGJyPgorICA8ZGl2IGlkPXY+CisgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8ZGl2IGlk
PSJEaXYxIj4KKyAgICAgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAgICA8YSBo
cmVmPSJhIj5hPC9hPgorICA8L2Rpdj48YnI+PGJyPgorICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxh
IGhyZWY9Imxhc3QiPmxhc3Q8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRl
c3QtY2FzZXMyLmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24v
c3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMC4uYjg3YTM0ZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFs
LXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlczIu
aHRtbApAQCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGh0
dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04
ODU5LTEiPgorICA8dGl0bGU+U3BhdGlhbCBOYXZpZ2F0aW9uIFRlc3QgQ2FzZXM8L3RpdGxlPgor
PC9oZWFkPgorPGJvZHk+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxi
cj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+Cisg
IDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+
CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48
YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxi
cj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+CisgIDxicj48YnI+Cisg
IDxicj48YnI+CisgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDM5M3B4
OyBoZWlnaHQ6IDcycHg7IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0i
MiI+CisgICAgPHRib2R5PgorICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7Ij4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0iaHVnZSI+CisgICAgICAgICAg
ICA8YSBocmVmPSJhIj5XaGljaCBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW5zdCBkbyB5b3UgbGlr
ZSB0aGUgbW9zdCwgb25lIGlzIGcsIG9uZSBpcyBwaSwgYW5kIHRoZSBvdGhlciBpcyBlLiA8L2E+
PGJyPgorICAgICAgICAgIDwvc3Bhbj48L3RkPgorICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7Ij4KKyAgICAgICAgICA8YSBocmVmPSJhIj4zLjE0PC9hPjxicj4KKyAgICAg
ICAgICA8YSBocmVmPSJhIj4yLjcxPC9hPjxicj4KKyAgICAgICAgICA8YSBocmVmPSJhIj42LjY3
PC9hPjxicj4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKyAgPC90
YWJsZT48YnI+CisgIDxoMj5KYXZhc2NyaXB0IEZvY3VzL0JsdXIgVGVzdDwvaDI+CisgICAgV2hl
biBnb2luZyB0byBhbnkgbGluayBmcm9tIHRoZSBmb2xsb3dpbmcgbGluaywgeW91IHNob3VsZCBz
ZWUgYSBkaWFsb2cuPGJyPjxicj4KKyAgPGEgaHJlZj0iYSIgb25ibHVyPSdhbGVydCgib25CbHVy
dCIpJz5UZXN0PC9hPjxicj48YnI+CisKKyAgPGgyPkZyYW1lU2V0czwvaDI+IDxicj4KKyAgPGZy
YW1lc2V0IGNvbHM9IjI1JSwyNSUsKiI+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgor
ICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1s
Ii8+CisgIDwvZnJhbWVzZXQ+CisgIDxicj48YnI+CisKKyAgPGgyPklGcmFtZXM8L2gyPjxicj4K
KyAgPGlmcmFtZSBzcmM9ImxpbmtzLmh0bWwiPjwvaWZyYW1lPjxicj48YnI+PGJyPgorICA8aDI+
RElWczwvaDI+PGJyPgorICA8ZGl2IGlkPXY+CisgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8
ZGl2IGlkPSJEaXYxIj4KKyAgICAgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAg
ICA8YSBocmVmPSJhIj5hPC9hPgorICA8L2Rpdj48YnI+PGJyPgorICA8L2Rpdj4KKyAgPC9kaXY+
CisgIDxhIGhyZWY9Imxhc3QiPmxhc3Q8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDhhNzc4NjcuLjQ3MjE5OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
MTU2LDEwICsyMTU2LDE1IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVu
dEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAgICAgICAgICAg
ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uID0gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoZXZlbnQt
PmtleUlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uICE9IEZvY3VzRGly
ZWN0aW9uTm9uZSkKKyAgICAgICAgICAgICAgICBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIoZGly
ZWN0aW9uLCBldmVudCk7CisgICAgICAgIH0KIAotICAgICAgIC8vIHByb3ZpZGVzIEtCIG5hdmln
YXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2VycwotICAg
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNl
RW5hYmxlZCgpKQotICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KGV2
ZW50KTsgICAgICAgCisgICAgICAgIC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNlbGVj
dGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2VycworICAgICAgICBpZiAoQVhPYmpl
Y3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkKKyAg
ICAgICAgICAgIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoZXZlbnQpOwogICAgIH0K
ICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkgewog
ICAgICAgICBtX2ZyYW1lLT5lZGl0b3IoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChldmVudCk7CkBA
IC0yMTcwLDYgKzIxNzUsMjcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2
ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICB9CiB9CiAKK0ZvY3VzRGlyZWN0
aW9uIEV2ZW50SGFuZGxlcjo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5n
JiBrZXlJZGVudGlmaWVyKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBEb3duLCAoIkRvd24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IFVwLCAoIlVwIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBMZWZ0
LCAoIkxlZnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIFJpZ2h0
LCAoIlJpZ2h0IikpOworCisgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9jdXNEaXJlY3Rp
b25Ob25lOworCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gRG93bikKKyAgICAgICAgcmV0VmFs
ID0gRm9jdXNEaXJlY3Rpb25Eb3duOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIgPT0gVXAp
CisgICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uVXA7CisgICAgZWxzZSBpZiAoa2V5SWRl
bnRpZmllciA9PSBMZWZ0KQorICAgICAgICByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbkxlZnQ7Cisg
ICAgZWxzZSBpZiAoa2V5SWRlbnRpZmllciA9PSBSaWdodCkKKyAgICAgICAgcmV0VmFsID0gRm9j
dXNEaXJlY3Rpb25SaWdodDsKKworICAgIHJldHVybiByZXRWYWw7Cit9CisKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQo
Y29uc3QgRmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbikgY29uc3QKIHsKQEAg
LTI0NjQsNiArMjQ5MCwyNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFNwYWNlRXZlbnRI
YW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAjZW5kaWYKIAordm9pZCBFdmVudEhhbmRs
ZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5KCkgfHwg
ZXZlbnQtPm1ldGFLZXkoKSB8fCBldmVudC0+YWx0R3JhcGhLZXkoKSB8fCBldmVudC0+c2hpZnRL
ZXkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFnZS0+c2V0
dGluZ3MoKSB8fCAhcGFnZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQXJyb3dzIGFuZCBvdGhlciBwb3NzaWJsZSBk
aXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGtleXMgY2FuIGJlIHVzZWQgaW4gZGVzaWduCisgICAgLy8g
bW9kZSBlZGl0aW5nLgorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5h
ZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRI
YW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIC8vIFdlIHNob3VsZCBvbmx5IGFk
dmFuY2UgZm9jdXMgb24gdGFicyBpZiBubyBzcGVjaWFsIG1vZGlmaWVyIGtleXMgYXJlIGhlbGQg
ZG93bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBmNDkwMDczLi40MGI1YTJkIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEV2ZW50SGFuZGxlcl9oCiAKICNpbmNsdWRl
ICJEcmFnQWN0aW9ucy5oIgorI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRl
ICJUaW1lci5oIgpAQCAtMzAxLDYgKzMwMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRlZmF1
bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CiAgICAgdm9pZCBkZWZhdWx0VGFi
RXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRBcnJvd0V2ZW50
SGFuZGxlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKICAgICB2b2lkIGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdESFRNTCwgYm9v
bCYgZmxhZ1VBKSBjb25zdDsKQEAgLTMyMyw2ICszMjUsOCBAQCBwcml2YXRlOgogICAgIAogICAg
IHZvaWQgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogCisgICAgRm9jdXNEaXJlY3Rpb24g
Zm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJik7CisKICAgICBib29sIGNh
cHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVzRHJhZ2dpbmc7IH0KIAog
I2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNfXykgJiYgIUVOQUJMRShFWFBFUklN
RU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggYmRk
MzE1MS4uNDExZmZmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTQ5LDEyICs0OSwx
NyBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0
aW9uVXRpbHMuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0u
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworc3RhdGljIHZvaWQgZmluZEZvY3VzYWJsZU5vZGVJbkRp
cmVjdGlvbihEb2N1bWVudCosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCos
IEZvY3VzQ2FuZGlkYXRlJik7CitzdGF0aWMgbG9uZyBsb25nIGRpc3RhbmNlSW5EaXJlY3Rpb24o
Tm9kZSosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgRm9jdXNDYW5kaWRhdGUmKTsKIAogc3RhdGlj
IGlubGluZSB2b2lkIGRpc3BhdGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZShEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgZm9jdXNlZCkKIHsKQEAgLTE1Myw2ICsxNTgsMjQgQEAgYm9vbCBG
b2N1c0NvbnRyb2xsZXI6OnNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqIGUKIAogYm9vbCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRp
YWxGb2N1cykKIHsKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJl
Y3Rpb25Gb3J3YXJkOgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZDoKKyAgICAgICAg
cmV0dXJuIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihkaXJlY3Rpb24sIGV2ZW50LCBpbml0
aWFsRm9jdXMpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgIGNhc2UgRm9jdXNE
aXJlY3Rpb25SaWdodDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgY2FzZSBGb2N1
c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5
KGRpcmVjdGlvbiwgZXZlbnQpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBGb2N1c0NvbnRy
b2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEtleWJvYXJkRXZlbnQqIGV2ZW50LCBib29sIGluaXRpYWxGb2N1cykKK3sKICAgICBGcmFt
ZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBBU1NFUlQoZnJhbWUpOwogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwpAQCAtMjU3LDYgKzI4MCw3
MCBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uIGRp
cmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbgogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIEZyYW1lKiBmcmFtZSA9
IGZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisgICAgRG9jdW1lbnQq
IGZvY3VzZWREb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOworICAgIGlmICghZm9jdXNlZERv
Y3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOb2RlKiBmb2N1c2VkTm9kZSA9
IGZvY3VzZWREb2N1bWVudC0+Zm9jdXNlZE5vZGUoKTsKKyAgICBpZiAoIWZvY3VzZWROb2RlKSB7
CisgICAgICAgIC8vIEp1c3QgbW92ZSB0byB0aGUgZmlyc3QgZm9jdXNhYmxlIG5vZGUuCisgICAg
ICAgIEZvY3VzRGlyZWN0aW9uIHRhYkRpcmVjdGlvbiA9IChGb2N1c0RpcmVjdGlvblVwIHx8IGRp
cmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFj
a3dhcmQ7CisgICAgICAgIC8vICdpbml0aWFsRm9jdXMnIGlzIHNldCB0byB0cnVlIHNvIHRoZSBj
aHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3Vt
ZW50T3JkZXIodGFiRGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gTW92
ZSB1cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAgICB3aGlsZSAodHJ1ZSkgewor
ICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKKyAg
ICAgICAgaWYgKCFwYXJlbnRGcmFtZSB8fCAhcGFyZW50RnJhbWUtPmRvY3VtZW50KCkpCisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBmcmFtZSA9IHBhcmVudEZyYW1lOworICAgIH0KKwor
ICAgIEZvY3VzQ2FuZGlkYXRlIGZvY3VzQ2FuZGlkYXRlOworICAgIGZpbmRGb2N1c2FibGVOb2Rl
SW5EaXJlY3Rpb24oZnJhbWUtPmRvY3VtZW50KCksIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2
ZW50LCBmb2N1c0NhbmRpZGF0ZSk7CisKKyAgICBOb2RlKiBub2RlID0gZm9jdXNDYW5kaWRhdGUu
bm9kZTsKKyAgICBpZiAobm9kZSkgeworICAgICAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBjcmF6
eSBqdW1wIGJldHdlZW4gbGlua3MgdGhhdCBhcmUgZWl0aGVyIGZhciBhd2F5IGZyb20gZWFjaCBv
dGhlciwKKyAgICAgICAgLy8gb3IganVzdCBub3QgY3VycmVudGx5IHZpc2libGUsIGxldHMgYmFp
bCBvdXQgaWYgdGhlIGRlc3RpbmF0aW9uIGZvY3VzYWJsZSBlbGVtZW50IGlzCisgICAgICAgIC8v
IG5vdCBpbiB0aGUgdmlld3BvcnQuCisgICAgICAgIGlmIChpc09mZnNjcmVlblJlY3Qobm9kZSkp
IHsKKyAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKS0+
ZnJhbWUoKTsKKyAgICAgICAgICAgIHNjcm9sbEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24p
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAg
ICAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICAgICAgc2Nyb2xs
SW5EaXJlY3Rpb24oZnJhbWUsIGRpcmVjdGlvbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAgICAvLyBGSVhN
RTogTWF5IG5lZWQgYSB3YXkgdG8gZm9jdXMgYSBkb2N1bWVudCBoZXJlLgorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0gbm9kZS0+ZG9j
dW1lbnQoKTsKKworICAgIGlmIChuZXdEb2N1bWVudCAhPSBmb2N1c2VkRG9jdW1lbnQpIHsKKyAg
ICAgICAgLy8gRm9jdXMgaXMgZ29pbmcgYXdheSBmcm9tIHRoZSBvcmlnaW5hbGx5IGZvY3VzZWQg
ZG9jdW1lbnQsIHNvIGNsZWFyIHRoZSBmb2N1c2VkIG5vZGUuCisgICAgICAgIGZvY3VzZWREb2N1
bWVudC0+c2V0Rm9jdXNlZE5vZGUoMCk7CisgICAgfQorCisgICAgaWYgKG5ld0RvY3VtZW50KQor
ICAgICAgICBzZXRGb2N1c2VkRnJhbWUobmV3RG9jdW1lbnQtPmZyYW1lKCkpOworCisgICAgc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5mb2N1cyhmYWxzZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHN0YXRpYyBib29sIHJlbGlucXVpc2hlc0VkaXRpbmdGb2N1cyhOb2RlICpub2RlKQog
ewogICAgIEFTU0VSVChub2RlKTsKQEAgLTM2NCw0ICs0NTEsMTI5IEBAIHZvaWQgRm9jdXNDb250
cm9sbGVyOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIGRpc3BhdGNoRXZlbnRzT25X
aW5kb3dBbmRGb2N1c2VkTm9kZShtX2ZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSwgYWN0aXZlKTsK
IH0KIAorc3RhdGljIHZvaWQgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihEb2N1bWVudCog
ZG9jdW1lbnQsIE5vZGUqIHN0YXJ0LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKQorewor
ICAgIEFTU0VSVChkb2N1bWVudCk7CisKKyAgICAvLyBXYWxrIGFsbCB0aGUgY2hpbGQgbm9kZXMg
YW5kIHVwZGF0ZSBmb2N1c0NhbmRpZGF0ZSBpZiB3ZSBmaW5kIGEgbmVhcmVyIG5vZGUuCisgICAg
Zm9yIChOb2RlKiBjYW5kaWRhdGUgPSBkb2N1bWVudC0+Zmlyc3RDaGlsZCgpOyBjYW5kaWRhdGU7
IGNhbmRpZGF0ZSA9IGNhbmRpZGF0ZS0+dHJhdmVyc2VOZXh0Tm9kZSgpKSB7CisgICAgICAgIC8v
IElubmVyIGRvY3VtZW50cyBjYXNlLgorICAgICAgICBpZiAoY2FuZGlkYXRlLT5pc0ZyYW1lT3du
ZXJFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIg
PSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVsZW1lbnQqPihjYW5kaWRhdGUpOworICAgICAg
ICAgICAgaWYgKCFvd25lci0+Y29udGVudEZyYW1lKCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgICAgIERvY3VtZW50KiBpbm5lckRvY3VtZW50ID0gb3duZXItPmNvbnRl
bnRGcmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICAgICAgaWYgKCFpbm5lckRvY3VtZW50KQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoaW5uZXJEb2N1bWVu
dCA9PSBzdGFydC0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgICAgICBmaW5kRm9jdXNhYmxlTm9k
ZUluRGlyZWN0aW9uKGlubmVyRG9jdW1lbnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9z
ZXN0Rm9jdXNDYW5kaWRhdGUpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
Ly8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQge2l9ZnJhbWUgZWxlbWVudCBpdHNlbGYgaXMgYSBnb29k
IGNhbmRpZGF0ZQorICAgICAgICAgICAgICAgIC8vIHRvIG1vdmUgZm9jdXMgdG8uIElmIGl0IGlz
LCB0aGVuIHdlIHRyYXZlcnNlIGl0cyBpbm5lciBub2Rlcy4KKyAgICAgICAgICAgICAgICAvLyBM
ZXRzIHBhc3MgYSBjb3B5IG9mIHRoZSBiZXN0IGNhbmRpZGF0ZSwgdG8gbm90IGdldCBmb29sZWQg
YnkgYQorICAgICAgICAgICAgICAgIC8vIGZyYW1lIHdpdGhvdXQgZm9jdXNhYmxlIGVsZW1lbnRz
LgorICAgICAgICAgICAgICAgIEZvY3VzQ2FuZGlkYXRlIGZvY3VzQ2FuZGlkYXRlQ29weSA9IGNs
b3Nlc3RGb2N1c0NhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGlzdGFuY2Ug
PSBkaXN0YW5jZUluRGlyZWN0aW9uKHN0YXJ0LCBjYW5kaWRhdGUsIGRpcmVjdGlvbiwgZm9jdXND
YW5kaWRhdGVDb3B5KTsKKyAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBmb2N1c0NhbmRp
ZGF0ZUNvcHkuZGlzdGFuY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9jdXNDYW5kaWRhdGVD
b3B5LnBhcmVudEFsaWdubWVudCA9IGZvY3VzQ2FuZGlkYXRlQ29weS5hbGlnbm1lbnQ7CisgICAg
ICAgICAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlQ29weS5wYXJlbnREaXN0YW5jZSA9IGRpc3Rh
bmNlOworCisgICAgICAgICAgICAgICAgICAgIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24o
aW5uZXJEb2N1bWVudCwgc3RhcnQsIGRpcmVjdGlvbiwgZXZlbnQsIGZvY3VzQ2FuZGlkYXRlQ29w
eSk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVhbGx5IGhhdmUgYW4gaW5uZXIg
YmVzdCBub2RlIGNhbmRpZGF0ZSwgdGFrZSBpdC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNs
b3Nlc3RGb2N1c0NhbmRpZGF0ZS5ub2RlICE9IGZvY3VzQ2FuZGlkYXRlQ29weS5ub2RlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlID0gZm9jdXNDYW5kaWRh
dGVDb3B5OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmIChjYW5kaWRhdGUgIT0gc3RhcnQgJiYgY2FuZGlkYXRlLT5pc0tleWJvYXJkRm9jdXNhYmxl
KGV2ZW50KSkgeworICAgICAgICAgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gZGlzdGFuY2VJbkRp
cmVjdGlvbihzdGFydCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIGNsb3Nlc3RGb2N1c0NhbmRpZGF0
ZSk7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUuZGlz
dGFuY2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBjbG9zZXN0Rm9jdXNDYW5k
aWRhdGUucGFyZW50RGlzdGFuY2UKKyAgICAgICAgICAgICAgICAgICAgJiYgc3RhcnQtPmRvY3Vt
ZW50KCkgPT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNs
b3Nlc3RGb2N1c0NhbmRpZGF0ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgICAgICAg
ICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHN0YXJ0LT5kb2N1bWVudCgpID09IGNhbmRpZGF0ZS0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5wYXJlbnREaXN0
YW5jZSA9IGNNYXhEaXN0YW5jZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0LT5k
b2N1bWVudCgpICE9IGNhbmRpZGF0ZS0+ZG9jdW1lbnQoKSkgeworICAgICAgICAgICAgICAgICAg
ICAvLyBJZiB0aGUgfHN0YXJ0fCAoY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCkgaXMgaW5zaWRl
IGFuIGlubmVyCisgICAgICAgICAgICAgICAgICAgIC8vIGRvY3VtZW50IGFuZCB0aGUgfGNhbmRp
ZGF0ZXwgaXMgb24gYSBkaWZmZXJlbnQgZG9jdW1lbnQsIHdlIG9ubHkKKyAgICAgICAgICAgICAg
ICAgICAgLy8gY29uc2lkZXIgdG8gbW92ZSBpZiB0aGVyZSBpcyBub3QgYW5vdGhlciBhbHJlYWR5
IGdvb2QgZm9jdXNhYmxlCisgICAgICAgICAgICAgICAgICAgIC8vIGNhbmRpZGF0ZSBpbiB0aGUg
c2FtZSBkb2N1bWVudCBhcyB8c3RhcnR8LgorICAgICAgICAgICAgICAgICAgICBpZiAoIShpc01v
dmluZ0Zyb21Jbm5lclRvT3V0dGVyRG9jdW1lbnQoc3RhcnQsIGNhbmRpZGF0ZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICYmIChjbG9zZXN0Rm9jdXNDYW5kaWRhdGUubm9kZQorICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgKHN0YXJ0LT5kb2N1bWVudCgpID09IGNsb3Nlc3RGb2N1c0NhbmRp
ZGF0ZS5ub2RlLT5kb2N1bWVudCgpKSkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjbG9z
ZXN0Rm9jdXNDYW5kaWRhdGUubm9kZSA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSA9IGRpc3RhbmNlOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorfQorCitzdGF0aWMgbG9uZyBsb25nIGRpc3RhbmNlSW5EaXJlY3Rpb24oTm9kZSog
c3RhcnQsIE5vZGUqIGRlc3QsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jdXNDYW5kaWRh
dGUmIGNhbmRpZGF0ZSkKK3sKKyAgICBsb25nIGxvbmcmIGRpc3RhbmNlID0gY2FuZGlkYXRlLmRp
c3RhbmNlOworCisgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJl
cigpOworICAgIGlmICghc3RhcnRSZW5kZXIpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7
CisKKyAgICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOworICAg
IGlmICghZGVzdFJlbmRlcikKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0YW5jZTsKKworICAgIElu
dFJlY3Qgc3RhcnRSZWN0ID0gcmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9jdW1lbnQoc3RhcnRS
ZW5kZXIpOworICAgIEludFJlY3QgZGVzdFJlY3QgID0gcmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290
RG9jdW1lbnQoZGVzdFJlbmRlcik7CisKKyAgICAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9m
IHR3byBjb25zZWN1dGl2ZSBsaW5rcyBjb3VsZCBvdmVybGFwLCBzbyB3ZSBkZWNyZWFzZSB0aGUg
c2l6ZQorICAgIC8vIG9mIGJvdGggcmVjdGFuZ2xlcy4KKyAgICBzdGF0aWMgY29uc3QgaW50IHJl
Y3RGdWRnZSA9IC0yOworICAgIGRlZmxhdGVJZk5lZWRlZChzdGFydFJlY3QsIGRlc3RSZWN0LCBy
ZWN0RnVkZ2UpOworCisgICAgaWYgKChzdGFydFJlY3QuaXNFbXB0eSgpIHx8IGRlc3RSZWN0Lmlz
RW1wdHkoKSkKKyAgICAgICAgfHwgKGRlc3RSZWN0LngoKSA8IDAgfHwgZGVzdFJlY3QueSgpIDwg
MCkpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICBpZiAoIWlzUmVjdEluRGly
ZWN0aW9uKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCkpCisgICAgICAgIHJldHVybiBj
TWF4RGlzdGFuY2U7CisKKyAgICAvLyBJZiB0YXJnZXQgdGFrZXMgcHJlY2VkZW5jZSB0aGVuIHVz
ZSBpdCAtIGRpc3RhbmNlIGlzIG5vdCBhbHdheXMgdGhlIHNob3J0ZXN0CisgICAgLy8gZm9yIGEg
cHJlY2VkZW50IHRhcmdldC4KKyAgICBpZiAoYXJlUmVjdHNGdWxseUFsaWduZWQoZGlyZWN0aW9u
LCBzdGFydFJlY3QsIGRlc3RSZWN0KQorICAgICAgICB8fCAoY2FuZGlkYXRlLm5vZGUgJiYgY2Fu
ZGlkYXRlLnBhcmVudEFsaWdubWVudCA9PSBGdWxsCisgICAgICAgICYmIChkZXN0LT5kb2N1bWVu
dCgpID09IGNhbmRpZGF0ZS5ub2RlLT5kb2N1bWVudCgpKSkpIHsKKyAgICAgICAgLy8gUmVzZXQg
ZGlzdGFuY2UgYXMgd2UgYXJlIG5vdyBpbiBzdXBlciBwcmVjZWRlbmNlIG1vZGUuCisgICAgICAg
IGlmIChjYW5kaWRhdGUuYWxpZ25tZW50ICE9IEZ1bGwpCisgICAgICAgICAgICBkaXN0YW5jZSA9
IGNNYXhEaXN0YW5jZTsKKworICAgICAgICBsb25nIGxvbmcgcHJlY2VkZW50RGlzdGFuY2UgPSBz
cGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVjdHMoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RS
ZWN0KTsKKyAgICAgICAgaWYgKGRpc3RhbmNlID4gcHJlY2VkZW50RGlzdGFuY2UpIHsKKyAgICAg
ICAgICAgIGNhbmRpZGF0ZS5hbGlnbm1lbnQgPSBGdWxsOworICAgICAgICAgICAgcmV0dXJuIHBy
ZWNlZGVudERpc3RhbmNlOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGNhbmRpZGF0ZS5h
bGlnbm1lbnQgPT0gRnVsbCkKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0YW5jZTsKKworICAgIC8v
IElmIHRhcmdldCB0YWtlcyBwcmVjZWRlbmNlIHRoZW4gdXNlIGl0IC0gZGlzdGFuY2UgaXMgbm90
IGFsd2F5cyB0aGUgc2hvcnRlc3QKKyAgICAvLyBmb3IgYSBwcmVjZWRlbnQgdGFyZ2V0CisgICAg
aWYgKGFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZChkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJl
Y3QpIHx8IGNhbmRpZGF0ZS5wYXJlbnRBbGlnbm1lbnQgPT0gUGFydGlhbCkgeworICAgICAgICBs
b25nIGxvbmcgcHJlY2VkZW50RGlzdGFuY2UgPSBzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVj
dHMoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKKworICAgICAgICBpZiAoZGlzdGFu
Y2UgPiBwcmVjZWRlbnREaXN0YW5jZSkgeworICAgICAgICAgICAgY2FuZGlkYXRlLmFsaWdubWVu
dCA9IFBhcnRpYWw7CisgICAgICAgICAgICByZXR1cm4gcHJlY2VkZW50RGlzdGFuY2U7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBpZiAoY2FuZGlkYXRlLmFsaWdubWVudCA9PSBQYXJ0aWFsKQor
ICAgICAgICByZXR1cm4gY01heERpc3RhbmNlOworCisgICAgcmV0dXJuIHNwYXRpYWxEaXN0YW5j
ZShkaXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggYi9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggMzJkNDA2MC4uYjhlYWJhNCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaApAQCAtNTgsNiArNTgsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zv
Y3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogCiBwcml2YXRlOgorICAgIGJv
b2wgYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVu
dCopOworICAgIGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3VzRGlyZWN0aW9u
LCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOworCiAgICAgUGFnZSogbV9wYWdl
OwogICAgIFJlZlB0cjxGcmFtZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgYm9vbCBtX2lzQWN0aXZl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggYi9XZWJDb3JlL3Bh
Z2UvRm9jdXNEaXJlY3Rpb24uaAppbmRleCAyNjFjNzQ1Li41NmRlNTg5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJl
Y3Rpb24uaApAQCAtMjksNyArMjksMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBlbnVt
IEZvY3VzRGlyZWN0aW9uIHsKICAgICAgICAgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkID0gMCwKLSAg
ICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZAorICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3
YXJkLAorICAgICAgICBGb2N1c0RpcmVjdGlvbk5vbmUsCisgICAgICAgIEZvY3VzRGlyZWN0aW9u
VXAsCisgICAgICAgIEZvY3VzRGlyZWN0aW9uRG93biwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25M
ZWZ0LAorICAgICAgICBGb2N1c0RpcmVjdGlvblJpZ2h0CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
aW5kZXggODc3MzdlZS4uMDJhY2M2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC02NCw2ICs2NCw3IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9tYXhpbXVtRGVjb2RlZEltYWdl
U2l6ZShudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKICAgICAsIG1fbG9jYWxTdG9yYWdl
UXVvdGEoNSAqIDEwMjQgKiAxMDI0KSAgLy8gU3VnZ2VzdGVkIGJ5IHRoZSBIVE1MNSBzcGVjLgog
ICAgICwgbV9wbHVnaW5BbGxvd2VkUnVuVGltZShudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpKQorICAgICwgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
aXNKYXZhRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGZh
bHNlKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKGZhbHNlKQpAQCAtMjM5LDYgKzI0
MCwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJM
cyhib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbQogICAgIG1fYWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHMgPSBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczsKIH0KIAor
dm9pZCBTZXR0aW5nczo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQpCit7CisgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9
IGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZh
RW5hYmxlZChib29sIGlzSmF2YUVuYWJsZWQpCiB7CiAgICAgbV9pc0phdmFFbmFibGVkID0gaXNK
YXZhRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNzNjNTQ3ZS4uNmQ1ODRiOSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEx
NSw2ICsxMTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0SmF2YVNj
cmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBqYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFi
bGVkOyB9CisKICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29sKTsKICAgICAgICAgYm9v
bCBpc0phdmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFFbmFibGVkOyB9CiAKQEAg
LTMwNiw2ICszMDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHNpemVfdCBtX21h
eGltdW1EZWNvZGVkSW1hZ2VTaXplOwogICAgICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVF1
b3RhOwogICAgICAgICB1bnNpZ25lZCBtX3BsdWdpbkFsbG93ZWRSdW5UaW1lOworICAgICAgICBi
b29sIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNK
YXZhRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkg
OiAxOwogICAgICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA6IDE7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAgYi9XZWJDb3JlL3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODY2NDY4MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGF0aWFs
TmF2aWdhdGlvblV0aWxzLmNwcApAQCAtMCwwICsxLDQ0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
IENvcHlyaWdodCAoQykgMjAwOSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
KyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvblV0aWxzLmgiCisKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1
ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNs
dWRlICJOb2RlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
Ky8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGJlaGF2ZSBjb3JyZWN0bHkgd2l0aCB0
cmFuc2Zvcm1lZCBmcmFtZXMuCitJbnRSZWN0IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3Vt
ZW50KFJlbmRlck9iamVjdCogcmVuZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAg
Tm9kZSogbm9kZSA9IHJlbmRlci0+bm9kZSgpOworICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQg
PSBub2RlLT5kb2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAg
IGJvb2wgdXNlU2Nyb2xsT2Zmc2V0ID0gIWlzT2Zmc2NyZWVuUmVjdChub2RlKSAmJiBub2RlLT5k
b2N1bWVudCgpICE9IG1haW5Eb2N1bWVudDsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFi
c29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKworICAgIEZsb2F0UG9pbnQgcChyZW5kZXIt
PmxvY2FsVG9BYnNvbHV0ZSgpKTsKKworICAgIC8vIFRoZXJlIGFyZSBjYXNlcywgbW9zdGx5IHdo
ZW4gfHJlbmRlcnwncyBhc3NvY2lhdGVkIG5vZGUgaXMgb2Zmc2NyZWVuLAorICAgIC8vIGl0IGlz
IHNhZmVyIHRvIGdldCBpdHMgcG9zaXRpb24gcmVnYXJkbGVzcyB0aGUgY29udGFpbmVyIHNjcm9s
bCBvZmZzZXQuCisgICAgaWYgKHVzZVNjcm9sbE9mZnNldCkKKyAgICAgICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gcmVuZGVyLT5ub2RlKCktPmRvY3VtZW50KCktPnZpZXcoKSkKKyAgICAg
ICAgICAgIHJlY3QubW92ZSgtZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKSk7CisKKyAgICAvLyBo
YW5kbGUgbmVzdGVkIGZyYW1lcy4KKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHJlbmRlci0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkp
CisgICAgICAgIGlmIChIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1l
LT5vd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPm9m
ZnNldExlZnQoKSwgb3duZXJFbGVtZW50LT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVj
dDsKK30KKworYm9vbCBpc01vdmluZ0Zyb21PdXR0ZXJUb0lubmVyRG9jdW1lbnQoTm9kZSogZnJv
bSwgTm9kZSogdG8pCit7CisgICAgaWYgKCFmcm9tIHx8ICF0bykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgRG9jdW1lbnQqIG1haW5Eb2N1bWVudCA9IHRvLT5kb2N1bWVudCgpLT5wYWdl
KCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAgIHJldHVybiAoZnJvbS0+ZG9jdW1lbnQo
KSA9PSBtYWluRG9jdW1lbnQgJiYgZnJvbS0+ZG9jdW1lbnQoKSAhPSB0by0+ZG9jdW1lbnQoKSk7
Cit9CisKK2Jvb2wgaXNNb3ZpbmdGcm9tSW5uZXJUb091dHRlckRvY3VtZW50KE5vZGUqIGZyb20s
IE5vZGUqIHRvKQoreworICAgIGlmICghZnJvbSB8fCAhdG8pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQgPSB0by0+ZG9jdW1lbnQoKS0+cGFnZSgp
LT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gKHRvLT5kb2N1bWVudCgpID09
IG1haW5Eb2N1bWVudCAmJiBmcm9tLT5kb2N1bWVudCgpICE9IHRvLT5kb2N1bWVudCgpKTsKK30K
KworLy8gQ2hlY2tzIGlmIHxub2RlfCBpcyBvZmZzY3JlZW4gdGhlIHZpc2libGUgYXJlYSAodmll
d3BvcnQpIG9mIGl0cyBjb250YWluZXIgZG9jdW1lbnQuCitib29sIGlzT2Zmc2NyZWVuUmVjdChO
b2RlKiBub2RlKQoreworICAgIC8vIEdldCB0aGUgY3VycmVudCB2aWV3cG9ydCByZWN0IHNvIHdl
IGNhbiBjaGVjayBpZiBmb2N1c0NhbmRpZGF0ZSdzIHJlY3QKKyAgICAvLyBpcyB2aXNpYmxlIGJl
Zm9yZSBhY3R1YWxseSBtb3ZpbmcgdGhlIGZvY3VzIHRvIGl0LiBJbiBjYXNlIGl0IGlzIG5vdCB2
aXNpYmxlLAorICAgIC8vIHdlIHNjcm9sbCBpbiBkaXJlY3Rpb24gbGF0ZXIgb24gaW5zdGVhZC4K
KyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKTsKKyAg
ICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBJbnRSZWN0IGNv
bnRhaW5lclZpZXdwb3J0UmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisK
KyAgICBSZW5kZXJPYmplY3QqIHJlbmRlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFy
ZW5kZXIpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+
YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworICAgIHJldHVybiAhY29udGFpbmVyVmll
d3BvcnRSZWN0LmludGVyc2VjdHMocmVjdCk7Cit9CisKKy8vIEluIGEgYm90dG9tLXVwIHdheSwg
dGhpcyBtZXRob2QgdHJpZXMgdG8gc2Nyb2xsIHxmcmFtZXwgaW4gYSBnaXZlbiBkaXJlY3Rpb24K
Ky8vIHxkaXJlY3Rpb258LCBnb2luZyB1cCBpbiB0aGUgZnJhbWUgdHJlZSBoaWVyYXJjaHkgaW4g
Y2FzZSBpdCBkb2VzIG5vdCBzdWNjZWVkLgorYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSog
ZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBpZiAoIWZyYW1lKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTY3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9u
OworCisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVm
dDoKKyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsTGVmdDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24g
PSBTY3JvbGxSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVw
OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNj
cm9sbERvd247CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxS
ZWN1cnNpdmVseShzY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEJ5TGluZSk7Cit9CisKK2Jvb2wgaXNS
ZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBz
dGFydFJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQoreworICAgIHN3aXRjaCAoZGlyZWN0
aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6IHsKKyAgICAgICAgaW50IG1pZGRs
ZSA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIHJl
dHVybiAobWlkZGxlIDwgc3RhcnRSZWN0LngoKSk7CisgICAgfQorICAgIGNhc2UgRm9jdXNEaXJl
Y3Rpb25SaWdodDogeworICAgICAgICBpbnQgbWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRl
c3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgcmV0dXJuIChtaWRkbGUgID4gc3RhcnRSZWN0
LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSkpOworICAgIH0KKyAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uVXA6IHsKKyAgICAgICAgaW50IG1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0
UmVjdC5oZWlnaHQoKSkvMjsKKyAgICAgICAgcmV0dXJuIChtaWRkbGUgPCBzdGFydFJlY3QueSgp
KTsKKyAgICAgICAgLy9yZXR1cm4gKGRlc3RSZWN0LnkoKSA8IHN0YXJ0UmVjdC55KCkpOworICAg
IH0KKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIChkZXN0UmVj
dC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpID4gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFy
dFJlY3QuaGVpZ2h0KCkpKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEJhc2VkIG9uIHRoZSBN
SUNST0IgU05hdiBsb2dpYyAoTVBML0dMUC9MR1BHKSwgZXhjZXB0ZWQgYnkgdGhlIERvd24gbG9n
aWMuCisvLyBUaGlzIG1ldGhvZCBjaGVja3MgZm9yIHByZWZlcmFibGUgcmVjdCB0byBtb3ZlIGZv
Y3VzIHRvLiBJbiBlc3NlbmNlLCB0YXJnZXRzCisvLyB3aG9zZSBtaWRkbGUgZmFsbHMgYmV0d2Vl
biB0aGUgdG9wIG9yIGJvdHRvbSBvZiB0aGUgY3VycmVudCByZWN0LgorYm9vbCBhcmVSZWN0c0Z1
bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHN0YXJ0
UmVjdCwgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvbkxlZnQgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsK
KyAgICAgICAgaW50IGRlc3RNaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVp
Z2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RCb3R0b20gPSBkZXN0UmVjdC55KCkgKyBhYnMo
ZGVzdFJlY3QuaGVpZ2h0KCkpOworICAgICAgICBpbnQgZGVzdEVuZCA9IGRlc3RSZWN0LngoKSAr
IGFicyhkZXN0UmVjdC53aWR0aCgpKTsKKworICAgICAgICBpbnQgc3RhcnRCb3R0b20gPSBzdGFy
dFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGludCBzdGFydEVu
ZCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpOworCisgICAgICAgIGlm
IChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25MZWZ0ICYmIGRlc3RFbmQgPiBzdGFydFJlY3Qu
eCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25SaWdodCAmJiBkZXN0UmVjdC54KCkgPCBzdGFydEVuZCkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0
YXJ0UmVjdC55KCkgJiYgZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgICAg
ICB8fCAoZGVzdEJvdHRvbSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RCb3R0b20gPD0gc3RhcnRC
b3R0b20pCisgICAgICAgICAgICAgICAgfHwgKGRlc3RSZWN0LnkoKSA9PSBzdGFydFJlY3QueSgp
KQorICAgICAgICAgICAgICAgIHx8IChkZXN0Qm90dG9tID09IHN0YXJ0Qm90dG9tKQorICAgICAg
ICAgICAgICAgIHx8IChkZXN0UmVjdC55KCkgPD0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9t
ID49IHN0YXJ0Qm90dG9tKSk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0Rp
cmVjdGlvblVwIHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsKKyAgICAgICAg
aW50IHN0YXJ0RW5kID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qud2lkdGgoKSk7Cisg
ICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRo
KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RFbmQgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJl
Y3Qud2lkdGgoKSk7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVw
ICYmIGRlc3RSZWN0LnkoKSA+IHN0YXJ0UmVjdC55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24gJiYgZGVz
dFJlY3QueSgpIDwgc3RhcnRSZWN0LnkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICByZXR1cm4gKChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdE1pZGRs
ZSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdFJlY3QueCgpID49IHN0YXJ0
UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAgICAgIHx8
IChzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgICAgICB8fCAoc3Rh
cnRFbmQgPT0gZGVzdEVuZCkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdFJlY3QueCgpIDw9IHN0
YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA+PSBzdGFydEVuZCkpOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworLy8gVGhpcyBtZXRob2QgY2hlY2tzIGlmIHxzdGFydFJlY3R8IGFuZCB8
ZGVzdFJlY3R8IGhhdmUgYSBwYXJ0aWFsIGludGVyc2VjdGlvbiwgZWl0aGVyCisvLyBob3Jpem9u
dGFsbHkgb3IgdmVydGljYWxseS4KK2Jvb2wgYXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgc3RhcnRSZWN0LCBjb25zdCBJbnRS
ZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVm
dCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodCkgeworICAgICAgICBpbnQgc3Rh
cnRCb3R0b20gPSBzdGFydFJlY3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgp
KSAvIDI7CisgICAgICAgIGludCBkZXN0Qm90dG9tID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RS
ZWN0LmhlaWdodCgpKTsKKworICAgICAgICByZXR1cm4gKChkZXN0UmVjdC55KCkgPj0gc3RhcnRS
ZWN0LnkoKSAmJiBkZXN0UmVjdC55KCkgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICAgICAg
fHwgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9tIDw9IHN0YXJ0Qm90
dG9tKQorICAgICAgICAgICAgICAgIHx8IChkZXN0TWlkZGxlID49IHN0YXJ0UmVjdC55KCkgJiYg
ZGVzdE1pZGRsZSA8PSBzdGFydEJvdHRvbSkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdFJlY3Qu
eSgpID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0YXJ0Qm90dG9tKQorICAg
ICAgICAgICAgICAgIHx8IChkZXN0Qm90dG9tID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRv
bSA8PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAg
IGludCBzdGFydEVuZCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpIC8q
ICsgaGFsZiAqLzsKKyAgICAgICAgaW50IGRlc3RFbmQgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVz
dFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgcmV0dXJuICgoZGVzdFJlY3QueCgpID49IHN0YXJ0
UmVjdC54KCkgJiYgZGVzdFJlY3QueCgpIDw9IHN0YXJ0RW5kKQorICAgICAgICAgICAgICAgIHx8
IChkZXN0RW5kID49IHN0YXJ0UmVjdC54KCkgJiYgZGVzdEVuZCA8PSBzdGFydEVuZCkpOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gc3FydCgoKHgxIC0geDIpIF4gMikgKyAo
KHkxIC0geTIpIF4gMikpCitsb25nIGxvbmcgZXVjbGlkaWVhbkRpc3RhbmNlKGNvbnN0IGludCB4
MSwgY29uc3QgaW50IHkxLCBjb25zdCBpbnQgeDIsIGNvbnN0IGludCB5MikKK3sKKyAgICBsb25n
IGxvbmcgcCA9IHBvdygoeDEgLSB4MiksIDIpICsgcG93KCh5MSAtIHkyKSwgMik7CisgICAgcmV0
dXJuIHNxcnQocCk7Cit9CisKK2xvbmcgbG9uZyBzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVj
dHMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBzdGFydFJlY3QsIGNv
bnN0IEludFJlY3QmIGRlc3RSZWN0KQoreworICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IGNNYXhE
aXN0YW5jZTsKKyAgICBsb25nIGxvbmcgYWx0ZXJuYXRlRGlzdGFuY2UgPSBjTWF4RGlzdGFuY2U7
CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgeworICAgICAgICBp
bnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKTsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVj
dC55KCkgKyBhYnMoc3RhcnRSZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WCAg
PSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisgICAgICAgIGludCBkZXN0
WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAg
ICBhbHRlcm5hdGVEaXN0YW5jZSA9IGV1Y2xpZGllYW5EaXN0YW5jZShzdGFydFgsIHN0YXJ0WSwg
ZGVzdFgsIGRlc3RZKTsKKyAgICAgICAgZGlzdGFuY2UgPSBldWNsaWRpZWFuRGlzdGFuY2Uoc3Rh
cnRSZWN0LngoKSwgc3RhcnRSZWN0LnkoKSwgZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCkpOwor
CisgICAgICAgIGlmIChhbHRlcm5hdGVEaXN0YW5jZSA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC55
KCkgPT0gZGVzdFJlY3QueSgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBhbHRlcm5hdGVEaXN0
YW5jZTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQp
IHsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0Lndp
ZHRoKCkpOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJl
Y3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKTsKKyAg
ICAgICAgaW50IGRlc3RZICA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkg
LyAyOworCisgICAgICAgIGFsdGVybmF0ZURpc3RhbmNlID0gZXVjbGlkaWVhbkRpc3RhbmNlKGRl
c3RYLCBkZXN0WSwgc3RhcnRYLCBzdGFydFkpOworICAgICAgICBkaXN0YW5jZSA9IGV1Y2xpZGll
YW5EaXN0YW5jZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgc3RhcnRSZWN0LngoKSwgc3Rh
cnRSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKGFsdGVybmF0ZURpc3RhbmNlIDwgZGlzdGFuY2Ug
JiYgc3RhcnRSZWN0LnkoKSA9PSBkZXN0UmVjdC55KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9
IGFsdGVybmF0ZURpc3RhbmNlOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25VcCkgeworICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhz
dGFydFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0Lnko
KTsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0
aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVj
dC5oZWlnaHQoKSk7CisKKyAgICAgICAgYWx0ZXJuYXRlRGlzdGFuY2UgPSBldWNsaWRpZWFuRGlz
dGFuY2Uoc3RhcnRYLCBzdGFydFksIGRlc3RYLCBkZXN0WSk7CisgICAgICAgIGRpc3RhbmNlID0g
ZXVjbGlkaWVhbkRpc3RhbmNlKGRlc3RSZWN0LngoKSwgZGVzdFJlY3QueSgpLCBzdGFydFJlY3Qu
eCgpLCBzdGFydFJlY3QueSgpKTsKKworICAgICAgICBpZiAoYWx0ZXJuYXRlRGlzdGFuY2UgPCBk
aXN0YW5jZSAmJiBzdGFydFJlY3QueCgpID09IGRlc3RSZWN0LngoKSkKKyAgICAgICAgICAgIGRp
c3RhbmNlID0gYWx0ZXJuYXRlRGlzdGFuY2U7CisKKyAgICAgICAgYWx0ZXJuYXRlRGlzdGFuY2Ug
PSAoc3RhcnRSZWN0LnkoKSAtIGRlc3RSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKGFsdGVybmF0
ZURpc3RhbmNlIDwgZGlzdGFuY2UpCisgICAgICAgICAgICBkaXN0YW5jZSA9IGFsdGVybmF0ZURp
c3RhbmNlOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3du
KSB7CisgICAgICAgIGludCBzdGFydFggPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53
aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBzdGFydFkgPSBzdGFydFJlY3QueSgpICsgYWJzKHN0
YXJ0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAgICBpbnQgZGVzdFggID0gZGVzdFJlY3QueCgp
ICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RZICA9IGRlc3RS
ZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQoKSkgLyAyOworCisgICAgICAgIGFsdGVybmF0
ZURpc3RhbmNlID0gZXVjbGlkaWVhbkRpc3RhbmNlKGRlc3RYLCBkZXN0WSwgc3RhcnRYLCBzdGFy
dFkpOworICAgICAgICBkaXN0YW5jZSA9IGV1Y2xpZGllYW5EaXN0YW5jZShkZXN0UmVjdC54KCks
IGRlc3RSZWN0LnkoKSwgc3RhcnRSZWN0LngoKSwgc3RhcnRSZWN0LnkoKSk7CisKKyAgICAgICAg
aWYgKGFsdGVybmF0ZURpc3RhbmNlIDwgZGlzdGFuY2UgJiYgc3RhcnRSZWN0LngoKSA9PSBkZXN0
UmVjdC54KCkpCisgICAgICAgICAgICBkaXN0YW5jZSA9IGFsdGVybmF0ZURpc3RhbmNlOworCisg
ICAgICAgIGFsdGVybmF0ZURpc3RhbmNlID0gKGRlc3RSZWN0LnkoKSAtIHN0YXJ0UmVjdC55KCkp
OworCisgICAgICAgIGlmIChhbHRlcm5hdGVEaXN0YW5jZSA8IGRpc3RhbmNlKQorICAgICAgICAg
ICAgZGlzdGFuY2UgPSBhbHRlcm5hdGVEaXN0YW5jZTsKKyAgICB9CisKKyAgICByZXR1cm4gYWJz
KGRpc3RhbmNlKTsKK30KKworbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAg
aW50IHgxID0gMCwgeTEgPSAwLCB4MiA9IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSB7CisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfAorICAgICAgICAvLyAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgp
KSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4
MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAgICAgIHgyID0gYi54
KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAg
ICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngo
KSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSAwOworICAgICAgICAg
ICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAg
ICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAg
IC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfAor
ICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgIHwtLS18CisgICAgICAgIC8vICAgICAgICAg
fC0tLXwKKyAgICAgICAgLy8KKyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgp
KSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB4
MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAg
ICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gdGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEu
d2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAg
ICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSAw
OworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAg
ICAgLy8gIHwtLS18ICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8gIHwtLS18ICB8LS0tfCAgfC0t
LXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAg
ICAgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLngoKSA+IGIueCgpICsgYi53aWR0
aCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisg
ICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAgICAgICAg
ICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5o
ZWlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngoKSArIGEud2lkdGgoKSA8IGIueCgpKSB7
CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSByaWdodCBvZiBhCisgICAgICAg
ICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAgICAgeTEgPSBhLnkoKTsKKyAg
ICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQo
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGJvdGggYiBhbmQgYSBzaGFyZSBz
b21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9IDA7CisgICAgICAgICAgICB5MSA9IGEu
eSgpOworICAgICAgICAgICAgeDIgPSAwOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVp
Z2h0KCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVj
dGlvbkRvd24pIHsKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAg
IHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAg
ICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLngo
KSA+IGIueCgpICsgYi53aWR0aCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRv
IHRoZSBsZWZ0IG9mIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeTEg
PSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpICsgYi53aWR0aCgp
OworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngoKSArIGEu
d2lkdGgoKSA8IGIueCgpKSB7CisgICAgICAgICAgICAvLyB0aGUgYiByZWN0IGlzIHRvIHRoZSBy
aWdodCBvZiBhCisgICAgICAgICAgICB4MSA9IGEueCgpICsgYS53aWR0aCgpOworICAgICAgICAg
ICAgeTEgPSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpOworICAg
ICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIGJv
dGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9IDA7Cisg
ICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gMDsK
KyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIGxv
bmcgZCA9IHBvdygoeDEgLSB4MiksIDIpICsgcG93KCh5MSAtIHkyKSwgMik7CisgICAgaWYgKGQg
PCAwKQorICAgICAgICBkICo9ICgtMSk7CisKKyAgICByZXR1cm4gZDsKK30KKwordm9pZCBkZWZs
YXRlSWZOZWVkZWQoSW50UmVjdCYgYSwgSW50UmVjdCYgYiwgaW50IHJlY3RGdWRnZSkKK3sKKyAg
ICBpZiAoIWEuaW50ZXJzZWN0cyhiKSB8fCBhLmNvbnRhaW5zKGIpIHx8IGIuY29udGFpbnMoYSkp
CisgICAgICAgIHJldHVybjsKKworICAgIC8vIEF2b2lkIG5lZ2F0aXZlIHdpZHRoIG9yIGhlaWdo
dCB2YWx1ZXMuCisgICAgaWYgKHJlY3RGdWRnZSA+IDAgfHwgKChhLndpZHRoKCkgKyAyICogcmVj
dEZ1ZGdlID4gMCkgJiYgKGEuaGVpZ2h0KCkgKyAyICogcmVjdEZ1ZGdlID4gMCkpKQorICAgICAg
ICBhLmluZmxhdGUocmVjdEZ1ZGdlKTsKKworICAgIGlmIChyZWN0RnVkZ2UgPiAwIHx8ICgoYi53
aWR0aCgpICsgMiAqIHJlY3RGdWRnZSA+IDApICYmIChiLmhlaWdodCgpICsgMiAqIHJlY3RGdWRn
ZSA+IDApKSkKKyAgICAgICAgYi5pbmZsYXRlKHJlY3RGdWRnZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvblV0
aWxzLmggYi9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwYjU4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA5IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA5IEFudG9uaW8gR29tZXMgPHRvbmlraXRv
b0B3ZWJraXQub3JnPgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaWZuZGVmIFNwYXRpYWxOYXZpZ2F0aW9uVXRpbHNfaAorI2RlZmluZSBT
cGF0aWFsTmF2aWdhdGlvblV0aWxzX2gKKworI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisK
KyNpbmNsdWRlIDxsaW1pdHM+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7
CitjbGFzcyBJbnRSZWN0OworY2xhc3MgTm9kZTsKK2NsYXNzIFJlbmRlck9iamVjdDsKKwordXNp
bmcgbmFtZXNwYWNlIHN0ZDsKKworY29uc3QgbG9uZyBsb25nIGNNYXhEaXN0YW5jZSA9IG51bWVy
aWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgpOworCisvLyBTcGF0aWFsbHkgc3BlYWtpbmcsIHR3
byBnaXZlbiBlbGVtZW50cyBpbiBhIHdlYiBwYWdlIGNhbiBiZToKKy8vIDEpIEZ1bGx5IGFsaWdu
ZWQ6IFRoZXJlIGlzIGEgZnVsbCBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgcmVjdHMsIGVpdGhl
cgorLy8gICAgdmVydGljYWxseSBvciBob3Jpem9udGFsbHkuCisvLworLy8gKiBIb3Jpem9udGFs
bHkgICAgICAgICogVmVydGljYWxseQorLy8gICAgXworLy8gICB8X3wgICAgICAgICAgICAgICAg
ICAgIF8gXyBfIF8gXyBfCisvLyAgIHxffC4uLi4uLiBfICAgICAgICAgICB8X3xffF98X3xffF98
CisvLyAgIHxffCAgICAgIHxffCAgICAgICAgICAuICAgIC4KKy8vICAgfF98Li4uLi4ufF98ICAg
T1IgICAgIC4gICAgLgorLy8gICB8X3wgICAgICB8X3wgICAgICAgICAgLiAgICAuCisvLyAgIHxf
fC4uLi4uLnxffCAgICAgICAgICAgXyBfIF8gXworLy8gICB8X3wgICAgICAgICAgICAgICAgICAg
fF98X3xffF98CisvLworLy8KKy8vIDIpIFBhcnRpYWxseSBhbGlnbmVkOiBUaGVyZSBpcyBhIHBh
cnRpYWwgaW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlIHJlY3RzLCBlaXRoZXIKKy8vICAgIHZlcnRp
Y2FsbHkgb3IgaG9yaXpvbnRhbGx5LgorLy8KKy8vICogSG9yaXpvbnRhbGx5ICAgICAgICogVmVy
dGljYWxseQorLy8gICAgXyAgICAgICAgICAgICAgICAgICAgIF8gXyBfIF8KKy8vICAgfF98ICAg
ICAgICAgICAgICAgICAgIHxffF98X3xffAorLy8gICB8X3wuLi4uIF8gICAgICBPUiAgICAgICAg
ICAgLiAuCisvLyAgIHxffCAgICB8X3wgICAgICAgICAgICAgICAgICAuIC4KKy8vICAgfF98Li4u
LnxffCAgICAgICAgICAgICAgICAgIC5fLl8gXworLy8gICAgICAgICAgfF98ICAgICAgICAgICAg
ICAgICAgfF98X3xffAorLy8gICAgICAgICAgfF98CisvLworLy8gMykgT3IsIG90aGVyd2lzZSwg
bm90IGFsaWduZWQgYXQgYWxsLgorLy8KKy8vICogSG9yaXpvbnRhbGx5ICAgICAgICogVmVydGlj
YWxseQorLy8gICAgICAgICBfICAgICAgICAgICAgXyBfIF8gXworLy8gICAgICAgIHxffCAgICAg
ICAgICB8X3xffF98X3wgICAuCisvLyAgICAgICAgfF98ICAgICAgICAgICAgICAgICAgLiAgIC4K
Ky8vICAgLi4uLi58X3wgICAgICAgICAgICAgICAgICAuICAgLgorLy8gICAgICAgICAgICAgICAg
ICBPUiAgICAgICAgIC4gICAuCisvLyAgICBfIC4uLi4uICAgICAgICAgICAgICAgICAgLiAgIC5f
IF8gXyBfIF8KKy8vICAgfF98ICAgICAgICAgICAgICAgICAgICAgICAuICAgfF98X3xffF98X3wK
Ky8vICAgfF98CisvLyAgIHxffAorLy8KKy8vICJUb3RhbGx5IEFsaWduZWQiIGVsZW1lbnRzIGFy
ZSBwcmVmZXJhYmxlIGNhbmRpZGF0ZXMgdG8gbW92ZQorLy8gZm9jdXMgdG8gb3ZlciAiUGFydGlh
bGx5IEFsaWduZWQiIG9uZXMsIHRoYXQgb24gaXRzIHR1cm5zIGFyZQorLy8gbW9yZSBwcmVmZXJh
YmxlIHRoYW4gIk5vdCBBbGlnbmVkIi4KK2VudW0gRm9jdXNDYW5kaWRhdGVBbGlnbm1lbnQgewor
ICAgIE5vbmUgPSAwLAorICAgIFBhcnRpYWwsCisgICAgRnVsbAorfTsKKworc3RydWN0IEZvY3Vz
Q2FuZGlkYXRlIHsKKyAgICBGb2N1c0NhbmRpZGF0ZSgpCisgICAgICAgIDogbm9kZSgwKQorICAg
ICAgICAsIGRpc3RhbmNlKGNNYXhEaXN0YW5jZSkKKyAgICAgICAgLCBwYXJlbnREaXN0YW5jZShj
TWF4RGlzdGFuY2UpCisgICAgICAgICwgYWxpZ25tZW50KE5vbmUpCisgICAgICAgICwgcGFyZW50
QWxpZ25tZW50KE5vbmUpCisgICAgeworICAgIH0KKyAgICBOb2RlKiBub2RlOworICAgIGxvbmcg
bG9uZyBkaXN0YW5jZTsKKyAgICBsb25nIGxvbmcgcGFyZW50RGlzdGFuY2U7CisgICAgRm9jdXND
YW5kaWRhdGVBbGlnbm1lbnQgYWxpZ25tZW50OworICAgIEZvY3VzQ2FuZGlkYXRlQWxpZ25tZW50
IHBhcmVudEFsaWdubWVudDsKK307CisKK2Jvb2wgaXNNb3ZpbmdGcm9tT3V0dGVyVG9Jbm5lckRv
Y3VtZW50KE5vZGUqLCBOb2RlKik7Citib29sIGlzTW92aW5nRnJvbUlubmVyVG9PdXR0ZXJEb2N1
bWVudChOb2RlKiwgTm9kZSopOworbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZUZvckFsaWduZWRS
ZWN0cyhGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK2xv
bmcgbG9uZyBzcGF0aWFsRGlzdGFuY2UoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRSZWN0Jik7Citib29sIGFyZVJlY3RzRnVsbHlBbGlnbmVkKEZvY3VzRGlyZWN0aW9u
LCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOworYm9vbCBhcmVSZWN0c1BhcnRpYWxs
eUFsaWduZWQoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7
CitJbnRSZWN0IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KFJlbmRlck9iamVjdCop
OworYm9vbCBpc1JlY3RJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKTsKK2Jvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqLCBGb2N1c0Rp
cmVjdGlvbik7Citib29sIGlzT2Zmc2NyZWVuUmVjdChOb2RlKik7Cit2b2lkIGRlZmxhdGVJZk5l
ZWRlZChJbnRSZWN0JiBhLCBJbnRSZWN0JiBiLCBpbnQpOworCit9IC8vIG5hbXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIFNwYXRpYWxOYXZpZ2F0aW9uVXRpbHNfaAotLSAKMS42LjAuNAoK
</data>
<flag name="commit-queue"
          id="30761"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48141</attachid>
            <date>2010-02-04 07:47:24 -0800</date>
            <delta_ts>2010-02-19 06:41:16 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v13+)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>108868</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBhZTc1YTE3ZDY4NWQ0ZTA2OTRmN2FiZjliMDRlODk4ZThmY2U0YTlhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAzIEZlYiAyMDEwIDE0OjM2OjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gRXh0
ZW5kIGtleWJvYXJkIG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KClBhdGNoIGJ5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJr
aXQuY29tPgpCYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFy
Y28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KClRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUg
Y29yZSBsb2dpYyBvZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVyZSBbMV0uCkl0IGlt
cHJvdmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2YgV2ViQ29yZSBieSBleHRlbmRpbmcg
dGhlIGJhc2ljIGtleWJvYXJkCm5hdmlnYXRpb24gY3VycmVudGx5IGF2YWlsYWJsZSAoYmFzZWQg
b24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJkKSB3aXRoIHRoZQphZGRpdGlvbiBvZiBhIHR3by1k
aW1lbnNpb25hbCBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGJ5IHVzaW5nIExlZnQsIFJpZ2h0LCBV
cCBhbmQKRG93biBhcnJvdyBrZXlzIHRvIG1vdmUgdG8gdGhlICJuZWFyZXN0IiBlbGVtZW50IGlu
IHRoZSBjb3JyZXNwb25kaW5nIGRpcmVjdGlvbi4KCkhpZ2hsaWdodHM6CiogRmVhdHVyZSBpcyB0
dXJuZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gU2V0dGluZ3MuIFBvcnQgc3BlY2lmaWMgQVBJcyBuZWVk
IHRvIGJlIGFkZGVkCiAgZm9yIHRvZ2dsaW5nIGl0IG9uL29mZi4KKiBPbmx5IGVsZW1lbnRzIHZp
ZXdlZCBpbiB0aGUgY3VycmVudCB2aWV3cG9ydCBjYW4gaGF2ZSBmb2N1cyBtb3ZlIHRvIGl0LiBJ
ZiB0aGUKICAibmVhcmVzdCIgaXMgbm90IGluIHZpZXdwb3J0IGRpbWVuc2lvbnMsIHRoZW4gYSBz
Y3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcwogIHBlcmZvcm1lZC4KKiBUaGUgbGF5b3V0IHRl
c3RzIGFkZGVkIHJ1biBvbiBRdCdzIERSVCBvbmx5IGZvciBub3cgKHNraXBwZWQgZm9yIE1hYywg
V2luIGFuZCBHdGspLgoKS25vd24gaXNzdWVzICh0byBiZSBjb3ZlcmVkIGluIGZvbGxvdy11cCBi
dWdzKToKKiBBZGQgcG9ydCBzcGVjaWZpYyBob29rcyB0byBlYWNoIERSVCB0byBlbmFibGUvZGlz
YWJsZSBTcGF0aWFsIE5hdmlnYXRpb24uCiogU3VwcG9ydCBmb3Igc3BhdGlhbCBuYXZpZ2F0aW9u
IHRocm91Z2ggZm9ybSBlbGVtZW50cyAoPGlucHV0PiwgPHNlbGVjdD4sIGV0YykKICBpcyBiZSBh
ZGRlZC4KKiBNYWtlIG5hdmlnYXRpb24ga2V5cyBjdXN0b21pemFibGUuIEl0IGN1cnJlbnRseSB3
b3JrcyB3aXRoIGFycm93cyBrZXlzIG9ubHkKICAodXAsIGRvd24sIHJpZ2h0IGFuZCBsZWZ0KS4K
KiBFeHRlbmQgc3VwcG9ydCBmb3IgdGhlIHVzZSBvZiBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQg
U2hpZnQpLgoKWzFdIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3BhdGlhbF9uYXZpZ2F0
aW9uCgpUZXN0czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRh
bC1zdXBlcnByZWNlZGVuY2UuaHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKICAgICAgIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQu
aHRtbAogICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdp
dGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAg
ICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFu
ZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCgoqIEFuZHJvaWQubWs6
CiogR05VbWFrZWZpbGUuYW06CiogV2ViQ29yZS5neXBpOgoqIFdlYkNvcmUucHJvOgoqIG1hbnVh
bC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbDogQWRkZWQuCiogbWFudWFsLXRl
c3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1s
OiBBZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi10ZXN0LWNhc2VzMi5odG1sOiBBZGRlZC4KKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CihX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6CihXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRGlyZWN0aW9uRm9yS2V5KToKKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKToKKiBwYWdlL0V2ZW50SGFuZGxlci5o
OgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6
YWR2YW5jZUZvY3VzKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5E
b2N1bWVudE9yZGVyKToKKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzRGly
ZWN0aW9uYWxseSk6CihXZWJDb3JlOjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKToKKFdl
YkNvcmU6OmRpc3RhbmNlSW5EaXJlY3Rpb24pOgoqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmg6Ciog
cGFnZS9Gb2N1c0RpcmVjdGlvbi5oOgooV2ViQ29yZTo6KToKKiBwYWdlL1NldHRpbmdzLmNwcDoK
KFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CihXZWJDb3JlOjpTZXR0aW5nczo6c2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkKToKKiBwYWdlL1NldHRpbmdzLmg6CihXZWJDb3JlOjpTZXR0
aW5nczo6aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoqIHBhZ2UvU3BhdGlhbE5hdmlnYXRp
b25VdGlscy5jcHA6IEFkZGVkLgooV2ViQ29yZTo6cmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9j
dW1lbnQpOgooV2ViQ29yZTo6aXNNb3ZpbmdGcm9tT3V0dGVyVG9Jbm5lckRvY3VtZW50KToKKFdl
YkNvcmU6OmlzTW92aW5nRnJvbUlubmVyVG9PdXR0ZXJEb2N1bWVudCk6CihXZWJDb3JlOjppc09m
ZnNjcmVlblJlY3QpOgooV2ViQ29yZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6aXNS
ZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6YXJlUmVjdHNGdWxseUFsaWduZWQpOgooV2ViQ29y
ZTo6YXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKToKKFdlYkNvcmU6OmV1Y2xpZGllYW5EaXN0YW5j
ZSk6CihXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVkUmVjdHMpOgooV2ViQ29yZTo6
c3BhdGlhbERpc3RhbmNlKToKKFdlYkNvcmU6OmRlZmxhdGVJZk5lZWRlZCk6CiogcGFnZS9TcGF0
aWFsTmF2aWdhdGlvblV0aWxzLmg6IEFkZGVkLgooV2ViQ29yZTo6KToKKFdlYkNvcmU6OkZvY3Vz
Q2FuZGlkYXRlOjpGb2N1c0NhbmRpZGF0ZSk6CgpMYXlvdXRUZXN0czoKClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0LmNv
bT4KCkV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmln
YXRpb24KaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjYyCgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWw6IEFkZGVk
LgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1s
OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFt
ZTMuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWU0Lmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvaWZyYW1lNS5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJw
cmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29u
dGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1p
ZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVu
dC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3Jl
ZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFk
ZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJh
dmVyc2FsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVj
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbDogQWRkZWQu
CiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVj
ZWRlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanM6IEFkZGVk
LgoodGVzdE1vdmVzKToKKF9uZXh0TW92ZSk6CihfbW92ZSk6CihfdmVyaWZ5QW5kQWR2YW5jZSk6
CiogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZv
cm0vd2luL1NraXBwZWQ6Ci0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDM4ICsrCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNl
cy9pZnJhbWUuaHRtbCAgICAgICB8ICAgMTAgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNv
dXJjZXMvaWZyYW1lMi5odG1sICAgICAgfCAgICA3ICsKIC4uLi9zcGF0aWFsLW5hdmlnYXRpb24v
cmVzb3VyY2VzL2lmcmFtZTMuaHRtbCAgICAgIHwgICAgOCArCiAuLi4vc3BhdGlhbC1uYXZpZ2F0
aW9uL3Jlc291cmNlcy9pZnJhbWU0Lmh0bWwgICAgICB8ICAgIDggKwogLi4uL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNS5odG1sICAgICAgfCAgIDExICsKIC4uLi9zbmF2LWhv
cml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCAgIHwgICA0NiArKwogLi4uL3Nu
YXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCAgICAgICAgICAgfCAgIDk4ICsrKysr
CiAuLi4vc25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0ICB8ICAg
IDcgKwogLi4uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwgICAgICAgICAg
fCAgIDU4ICsrKwogLi4uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3Rl
ZC50eHQgfCAgIDE3ICsKIC4uLi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRt
bCAgICAgICAgIHwgICA2OSArKysKIC4uLmUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1l
bnQtZXhwZWN0ZWQudHh0IHwgICAxNCArCiAuLi5hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9j
dXNhYmxlLWVsZW1lbnQuaHRtbCB8ICAgNjYgKysrCiAuLi4vc25hdi10YWJsZS10cmF2ZXJzYWwt
ZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICB8ICAgMTcgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sICAgfCAgIDg4ICsrKysKIC4uLi9zbmF2LXRpbnkt
dGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgICAyMCArCiAuLi4vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sICAgICAgICAgICAgICAgICB8ICAgOTMgKysrKwogLi4u
dC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgfCAgICA2ICsK
IC4uLnNuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sIHwgICA5
NiArKysrKwogLi4uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dCAg
ICAgfCAgIDE5ICsKIC4uLi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sICAgICAg
ICAgICAgIHwgICA4MSArKysrCiAuLi4vc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdh
dGlvbi11dGlscy5qcyB8ICAgNjkgKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZCAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Nr
aXBwZWQgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBXZWJDb3JlL0FuZHJvaWQubWsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDg1ICsrKysKIFdlYkNvcmUv
R05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwog
V2ViQ29yZS9XZWJDb3JlLnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy
ICsKIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogICAgICAgICAgICAgIHwg
ICAgOCArCiBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRt
bCB8ICAgIDkgKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwgICAgICAg
ICAgICAgfCAgMTM1ICsrKysrKwogLi4uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzMi5o
dG1sICAgICAgICAgICAgfCAgIDc3ICsrKysKIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
ICAgICAgICAgICAgICAgICAgICAgIHwgICA1MyArKystCiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgICAgICAgICAgICAgICAgICAgfCAgMjEyICsrKysrKysrKysKIFdlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBX
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcg
Ky0KIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgNiArCiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwICAgICAg
ICAgICAgfCAgNDQ1ICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5h
dmlnYXRpb25VdGlscy5oICAgICAgICAgICAgICB8ICAxMTggKysrKysrCiA0NCBmaWxlcyBjaGFu
Z2VkLCAyMTI0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3
NTUgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9p
ZnJhbWUzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lNS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0
ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1p
ZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3Jv
bGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFi
bGUtY29udGVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJs
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1m
b2N1c2FibGUtZWxlbWVudC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJs
ZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwu
aHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlv
bi5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2
aWdhdGlvbi11dGlscy5qcwogY3JlYXRlIG1vZGUgMTAwNzU1IFdlYkNvcmUvbWFudWFsLXRlc3Rz
L3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCiBjcmVhdGUgbW9kZSAxMDA3NTUgV2ViQ29y
ZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0
LWNhc2VzLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDc1NSBXZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0
aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMyLmh0bWwKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5jcHAKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGVjZDRkNmIuLmQ0ZTlhNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wMi0w
MSAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0
b25pa2l0b29Ad2Via2l0LmNvbT4KKworICAgICAgICBFeHRlbmQga2V5Ym9hcmQgbmF2aWdhdGlv
biB0byBhbGxvdyBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgorCisgICAgICAgICogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvaWZyYW1lMy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU1Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwt
c3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
aWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJs
ZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2Fi
bGUtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxl
bWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlu
eS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0
LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxv
dy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0TW92ZXMpOgorICAgICAgICAoX25leHRNb3ZlKToKKyAg
ICAgICAgKF9tb3ZlKToKKyAgICAgICAgKF92ZXJpZnlBbmRBZHZhbmNlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wMi0wMyAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFk
YW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCAwMDAwMDAwLi5jNWYxNzEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbApA
QCAtMCwwICsxLDEwIEBACis8aHRtbD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjEiIGhyZWY9ImEi
PmI8L2E+PGJyPgorICAgIDxhIGlkPSIyIiBocmVmPSJhIj5jPC9hPjxicj4KKyAgICA8YSBpZD0i
MyIgaHJlZj0iYSI+ZDwvYT48YnI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6ODBweCIg
PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPmU8L2E+CisgICAgPC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZWE5N2MwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1s
CkBAIC0wLDAgKzEsNyBAQAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSI0IiBocmVmPSJh
Ij5nPC9hPgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5oPC9hPgorICAgIDxhIGlkPSI2IiBocmVm
PSJhIj5pPC9hPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1l
My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYWQ5ZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
cmVzb3VyY2VzL2lmcmFtZTMuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorICA8Ym9keT4K
KyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+YjwvYT4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9w
OjEyMHB4Ij4KKyAgICAgIDxhIGlkPSIyIiBocmVmPSJhIj5kPC9hPgorICAgIDwvZGl2PgorICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZjQ4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFt
ZTQuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8ZGl2IHN0eWxl
PSJtYXJnaW4tdG9wOjEyMHB4Ij4KKyAgICAgIDxwPlRoaXMgZnJhbWUgaGFzIHNvbWUgdGV4dCBh
bmQgbm8gZm9jdXNhYmxlIGVsZW1lbnQgLi4uPC9hPgorICAgIDwvZGl2PgorICAgIDxwPi4uLiBh
bmQgc29tZSBtb3JlIHRleHQgLi4uPC9hPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lm
cmFtZTUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvaWZyYW1lNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjJmZjVkMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTUuaHRtbApAQCAtMCwwICsxLDExIEBACis8
aHRtbD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjEiIGhyZWY9ImEiPmI8L2E+CisgICAgPGRpdiBz
dHlsZT0ibWFyZ2luLXRvcDoxMjBweCI+CisgICAgICA8YSBpZD0iMyIgaHJlZj0iYSI+ZDwvYT4K
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogMTIwcHg7IG1hcmdpbi10
b3A6MTUwcHgiPgorICAgICAgPGEgaWQ9IjIiIGhyZWY9ImEiPmM8L2E+CisgICAgPC9kaXY+Cisg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhv
cml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMzcwMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNl
ZGVuY2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKK3Rlc3QKK0jCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgb3cgTm93IEJy
b3duIENvdworSG/CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqDCoMKgwqAgdyBOb3cgQnJvd24gQ293CitIb3cgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqDCoMKgwqDCoCBOb3cgQnJvd24gQ293CitIb3cgTiDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqDCoCBvdyBCcm93biBDb3cKK0hvdyBObyDC
oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqDCoCB3IEJyb3duIENv
dworSG93IE5vdyDCoMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDC
oMKgIEJyb3duIENvdworSG93IE5vdyBCIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgIHJvd24gQ293CitIb3cgTm93IEJyIMKgIMKgIMKgIMKgIMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgb3duIENvdworSG93IE5vdyBCcm8gwqAgwqAgwqAg
wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCB3biBDb3cKK0hvdyBOb3cgQnJv
d8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgIG4gQ293CitIb3cgTm93IEJyb3duIMKgIMKgIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoCDCoMKgwqAgQ293CitIb3cgTm93IEJyb3duIEMgwqAgwqDCoMKgIMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgb3cKK0hvdyBOb3cgQnJvd24gQ28gwqDC
oMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqAgdworSG93IE5vdyBC
cm93biBDb3cKKwordGVzdAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjUiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICI2IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
OCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjci
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI5Igor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTAiCitQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxMiIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjExIgorUEFT
UyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTMiCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNCIKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE2IgorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTUiCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxNyIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE4IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjAiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxOSIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIxIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjIiCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNCIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIzIgorUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMjUiCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyNiIKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjI3IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1
cGVycHJlY2VkZW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2ZhMjUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBl
cnByZWNlZGVuY2UuaHRtbApAQCAtMCwwICsxLDk4IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRo
aXMgdGVzdCBlbnN1cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2
aWdhdGlvbgorICAgIChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxz
IGJldHdlZW4gdGhlIHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBw
cmVmZXJhYmx5IHRvIG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAg
IDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0
aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQi
IGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50
cyByaWdodCB1cCBvciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwg
ZXZlbiB3aGVuIHRoZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVy
dGljYWxseSBhbGlnbmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+Cisg
IDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+
CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsi
UmlnaHQiLCAiMiJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiTGVmdCIsICIzIl0s
CisgICAgICBbIkRvd24iLCAiNSJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIkRv
d24iLCAiOCJdLAorICAgICAgWyJMZWZ0IiwgIjciXSwKKyAgICAgIFsiRG93biIsICI5Il0sCisg
ICAgICBbIlJpZ2h0IiwgIjEwIl0sCisgICAgICBbIkRvd24iLCAiMTIiXSwKKyAgICAgIFsiTGVm
dCIsICIxMSJdLAorICAgICAgWyJEb3duIiwgIjEzIl0sCisgICAgICBbIlJpZ2h0IiwgIjE0Il0s
CisgICAgICBbIkRvd24iLCAiMTYiXSwKKyAgICAgIFsiTGVmdCIsICIxNSJdLAorICAgICAgWyJE
b3duIiwgIjE3Il0sCisgICAgICBbIlJpZ2h0IiwgIjE4Il0sCisgICAgICBbIkRvd24iLCAiMjAi
XSwKKyAgICAgIFsiTGVmdCIsICIxOSJdLAorICAgICAgWyJEb3duIiwgIjIxIl0sCisgICAgICBb
IlJpZ2h0IiwgIjIyIl0sCisgICAgICBbIkRvd24iLCAiMjQiXSwKKyAgICAgIFsiTGVmdCIsICIy
MyJdLAorICAgICAgWyJEb3duIiwgIjI1Il0sCisgICAgICBbIlJpZ2h0IiwgIjI2Il0sCisgICAg
ICBbIkRvd24iLCAiMjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiRE9ORSIs
ICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtz
UHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8v
IHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92
ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisg
ICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxh
IGlkPSIxIiBocmVmPSJhIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBpZD0iMiIgaHJlZj0icCI+b3cgTm93
IEJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPkhvPC9hPiZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI0IiBocmVmPSJwIj53IE5vdyBCcm93biBD
b3c8L2E+PGJyPgorICAgIDxhIGlkPSI1IiBocmVmPSJhIj5Ib3c8L2E+ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9
IjYiIGhyZWY9InAiPk5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSI3IiBocmVmPSJh
Ij5Ib3cgTjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7
ICZuYnNwOyZuYnNwOyA8YSBpZD0iOCIgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAg
ICA8YSBpZD0iOSIgaHJlZj0iYSI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIxMCIgaHJlZj0icCI+dyBC
cm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxMSIgaHJlZj0iYSI+SG93IE5vdyA8L2E+Jm5i
c3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZu
YnNwOyA8YSBpZD0iMTIiIGhyZWY9InAiPkJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjEz
IiBocmVmPSJhIj5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjE0IiBocmVmPSJwIj5yb3duIENvdzwv
YT48YnI+CisgICAgPGEgaWQ9IjE1IiBocmVmPSJhIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTYiIGhy
ZWY9InAiPm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxNyIgaHJlZj0iYSI+SG93IE5vdyBC
cm88L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7IDxhIGlkPSIxOCIgaHJlZj0icCI+d24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTkiIGhy
ZWY9ImEiPkhvdyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaWQ9IjIwIiBocmVmPSJw
Ij5uIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjIxIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duPC9h
PiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7IDxhIGlkPSIyMiIgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgICA8YSBpZD0iMjMi
IGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMjQiIGhyZWY9InAiPm93PC9h
Pjxicj4KKyAgICA8YSBpZD0iMjUiIGhyZWY9ImEiPkhvdyBOb3cgQnJvd24gQ288L2E+ICZuYnNw
OyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEg
aWQ9IjI2IiBocmVmPSJwIj53PC9hPjxicj4KKyAgICA8YSBpZD0iMjciIGhyZWY9ImEiPkhvdyBO
b3cgQnJvd24gQ293PC9hPjxicj48YnI+CisgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+dGVzdDxi
cj48L2E+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2Fi
bGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMjU2NjRhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACithCisKKworZQorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2Fi
bGUtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZTNjYjUyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2Fi
bGUtY29udGVudC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhp
cyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNw
YXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBpZnJhbWVzIHdpdGhvdXQKKyAgICBh
bnkgZm9jdXNhYmxlIGNvbnRlbnQgc2hvdWxkIGJlIGlnbm9yZWQuCisKKyAgICAqIFByZS1jb25k
aXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisg
ICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29l
cyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgZnJvbSAic3Rh
cnQiIHRvICJlbmQiIGJ5cGFzc2luZyB0aGUgdHdvIGlmcmFtZXMKKyAgICAgICBpbiBiZXR3ZWVu
IHRoZW0sIG9uY2UgYm90aCBoYXZlIG5vIGZvY3VzYWJsZSBlbGVtZW50cyBpbnNpZGUuCisgIC0t
PgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0
aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3Jp
cHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAg
ICAgIFsiVXAiICAsICJzdGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3Qg
aXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RD
b21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsK
KyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0g
cnVuVGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUt
Y29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+
PGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNv
dXJjZXMvaWZyYW1lNC5odG1sIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0
byI+PC9pZnJhbWU+PGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lNC5odG1s
IiBzY3JvbGxpbmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhy
ZWY9ImEiPmU8L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1l
LW5vLXNjcm9sbGFibGUtY29udGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uM2Y5MjhiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNv
bnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK2EKKworCithCitQQVNTIGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1
bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5k
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9j
dW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0u
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjUiCitQQVNTIGRv
Y3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBd
LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBk
b2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sw
XS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1Mg
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICIxIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1p
ZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZDA4MWNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRl
bnQuaHRtbApAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2FsIGNvcnJlY3RuZXNzIG9mCisgICAgU3Bh
dGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBh
CisgICAgPGlmcmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRp
b25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAg
KiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0
byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVs
ZW1lbnRzIGluIHRoZSB0d28gaWZyYW1lcyBpbiB0aGUKKyAgICAgICBXZWIgcGFnZSwgZXZlbnR1
YWxseSBnb2luZyB0byBvdXRlciBhbiBzb3V0aHdhcmQgbGluaywgYnV0CisgICAgICAgZ29pbmcg
YmFjayB0byB0aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAg
dmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAi
MiJdLAorICAgICAgWyJEb3duIiwgIjMiXSwKKyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBb
IkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjQiXSwKKyAgICAgIFsiUmlnaHQiLCAiNSJd
LAorICAgICAgWyJSaWdodCIsICI2Il0sCisgICAgICBbIlJpZ2h0IiwgIjciXSwKKyAgICAgIFsi
VXAiLCAiMyJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwgIjEiXSwKKyAgICAg
IFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUp
OworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRU
YWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsK
KyAgICAgIC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2Uu
CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAg
ICB0ZXN0TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
ICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48
L2Rpdj4KKyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZS5odG1sIj48L2lmcmFtZT48
YnI+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9pZnJhbWUyLmh0bWwiPjwvaWZyYW1lPgor
ICAgIDxkaXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2Ny
ZWVuLWZvY3VzYWJsZS1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2Fi
bGUtZWxlbWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzMzYWExYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxl
bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorYQorCitlCitQQVNTIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlm
cmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVu
LWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWNjOTkzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxl
bWVudC5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0
IGVuc3VyZXMgdGhlIGJhc2ljIGlmcmFtZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBT
cGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGlu
IGEKKyAgICA8aWZyYW1lPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICogUHJlLWNvbmRp
dGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisKKyAg
ICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBnb2Vz
IHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhbG9uZyB0aGUg
ZWxlbWVudHMgaW4gdGhlIHR3byBpZnJhbWVzIGluIHRoZQorICAgICAgIFdlYiBwYWdlLCBldmVu
dHVhbGx5IGdvaW5nIHRvIG91dGVyIGFuIHNvdXRod2FyZCBsaW5rLCBidXQKKyAgICAgICBnb2lu
ZyBiYWNrIHRvIHRoZSBpZnJhbWUgb24gdGhlIHRvcCBsYXRlciBvbi4KKyAgLS0+CisgIDxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAg
ICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAgIFsiRG93biIs
ICIxIl0sCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAg
IFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIyIl0s
CisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiVXAiLCAiMSJdLAorICAgICAgWyJVcCIsICJz
dGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZl
cmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7CisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
VGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8g
YSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZv
Y3VzKCk7CisKKyAgICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUsIHRlc3RDb21wbGV0ZWQpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKyAgICA8
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxkaXY+PGEgaWQ9InN0YXJ0IiBo
cmVmPSJhIj5hPC9hPjwvZGl2PgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZyYW1lMy5o
dG1sIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIHNjcm9sbGluZz0iYXV0byI+PC9pZnJhbWU+PGJy
PgorICAgIDxkaXY+PGEgaWQ9ImVuZCIgaHJlZj0iYSI+ZTwvYT48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2Fs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWIwNzA3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdCB0YWJsZSB0cmF2ZXJzYWwKK2EJYQlhCithCWEJ
YQorYQlhCWEKK0VuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdAorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICI5IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiMSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjgxOGRkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
dGFibGUtdHJhdmVyc2FsLmh0bWwKQEAgLTAsMCArMSw4OCBAQAorPGh0bWw+CisgIDwhLS0KKyAg
ICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgYmFzaWMgdGFibGUgdHJhdmVyc2FsIGNvcnJlY3RuZXNz
IG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06IGZvY3VzYWJsZSBl
bGVtZW50cyBpbiBhCisgICAgPHRhYmxlPiBzaG91bGQgYmUgYWNjZXNzaWJsZS4KKworICAgICog
UHJlLWNvbmRpdGlvbnM6CisgICAgMSkgRFJUIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2Fi
bGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBm
b2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBh
bG9uZyB0aHJvdWdoIHRoZSBzcGFyc2VseSBwb3NpdGlvbmVkIGVsZW1lbnRzCisgICAgICAgaW4g
dGhlIHRhYmxlLCBldmVudHVhbGx5IGdvaW5nIHRvIGFuIG91dGVyIHNvdXRod2FyZCBsaW5rLAor
ICAgICAgIGJ1dCBnb2luZyBiYWNrIGluc2lkZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgor
ICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQi
PgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBb
IkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQi
XSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAgICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJp
Z2h0IiwgIjkiXSwKKyAgICAgIFsiVXAiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAg
ICBbIkxlZnQiLCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJE
T05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJl
ZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0
YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMo
bW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29t
cGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAg
d2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+VGVzdCB0YWJsZSB0cmF2ZXJzYWw8
YT4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJn
aW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGlu
Zz0iMiIgY2VsbHNwYWNpbmc9IjEiPgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAg
ICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7
Ij48YSBpZD0iMSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVy
dGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEi
PmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIzIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
IDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI0IiBocmVmPSJhIj5hPC9hPjwvdGQ+
CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij48YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHls
ZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhy
ZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAg
IDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEg
aWQ9IjciIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9h
PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFs
aWduOiBjZW50ZXI7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3Ry
PgorICAgICAgPC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10
b3A6MTAwcHgnPgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5kIG9mIHRhYmxlIHRyYXZl
cnNhbCB0ZXN0PGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFi
bGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zYWUwOGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjAgQEAKK2EKK2EJYQlhCithCWEJYQorYQlhCWEKK2EKK2EKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55
LXRhYmxlLXRyYXZlcnNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjEzMGQwMzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEs
OTMgQEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRh
YmxlIHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05h
dikgYWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxk
IGJlIGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBw
b3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgor
ICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2Fs
bHkuCisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0YWJsZSwg
ZXZlbnR1YWxseQorICAgICAgIGdvaW5nIHRvIG91dGVyIHNvdXRod2FyZCBhbmQgZWFzdHdhcmQg
bGlua3MsIGJ1dCBnb2luZworICAgICAgIGJhY2sgaW5zaWRlIHRoZSB0YWJsZSBsYXRlciBvbi4K
KyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRp
b24tdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2
YXNjcmlwdCI+CisKKyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjEiXSwK
KyAgICAgIFsiRG93biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNyJdLAorICAgICAgWyJEb3du
IiwgImVuZCJdLAorICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlJpZ2h0IiwgIjgiXSwKKyAg
ICAgIFsiUmlnaHQiLCAiOSJdLAorICAgICAgWyJVcCIsICI2Il0sCisgICAgICBbIlJpZ2h0Iiwg
InJpZ2h0Il0sCisgICAgICBbIkxlZnQiLCAiNiJdLAorICAgICAgWyJVcCIsICIzIl0sCisgICAg
ICBbIkxlZnQiLCAiMiJdLAorICAgICAgWyJMZWZ0IiwgIjEiXSwKKyAgICAgIFsiRE9ORSIsICJE
T05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJl
ZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0
YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMo
bW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29t
cGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAg
d2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48YnI+CisgICAgPHRhYmxl
PgorICAgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250
LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8
dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iMiIgaHJlZj0iYSI+YTwvYT48L3Rk
PgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIzIiBocmVm
PSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8
dGQgc3R5bGU9ImZvbnQtc2l6ZTogc21hbGw7Ij48YSBpZD0iNCIgaHJlZj0iYSI+YTwvYT48L3Rk
PgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI1IiBocmVm
PSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+
PGEgaWQ9IjYiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRy
PgorICAgICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI3IiBocmVm
PSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+
PGEgaWQ9IjgiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQt
c2l6ZTogc21hbGw7Ij48YSBpZD0iOSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3Ry
PgorICAgICAgPC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgc3R5bGU9J21hcmdpbi10
b3A6OHB4Jz4KKyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8YT4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweDsgbWFyZ2luLXRvcDotNzBweCI+CisgICAg
ICA8YSBpZD0icmlnaHQiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+YTwvYT4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJm
bG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xMmE1MzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQt
c2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitTdGFydAor
RW5kCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJz
dGFydCIKK1BBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICJlbmQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1p
bi1kaXJlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjM3NDQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1v
dmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTYgQEAKKzxo
dG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGNvcnJlY3RuZXNzIHRoZSBm
b2xsb3dpbmcgU3BhdGlhbCBOYXZpZ2F0aW9uCisgICAgKFNOYXYpIGFsZ29yaXRobSBmZWF0dXJl
cy4KKworICAgIDEpIFRoZXJlIGlzIG5vIHVuaXQgb3ZlcmZsb3cgaW4gdGhlIFNOYXYgYWxnb3Jp
dGhtIHdoaWxlIGNhbGN1bGF0aW5nCisgICAgICAgdGhlIGJlc3Qgbm9kZSBjYW5kaWRhdGUgdG8g
bW92ZSBmb2N1cyB0by4gVG8gdGVzdCB0aGF0IHRoaXMgcGFnZQorICAgICAgIHBvc2l0aW9ucyBz
b21lIGVsZW1lbnRzIDEwMDAwMDAwIHBpeGVscyBmYXIgZnJvbSBlYWNoIG90aGVyIChkaXN0YW5j
ZQorICAgICAgIHRoYXQgY2FuIGNvbnNpZGVyZWQgbGFyZ2UgZW5vdWdoIGZvciBtb3N0IG9mIHRo
ZSBXZWIgUGFnZXMgb24gdGhlCisgICAgICAgSW50ZXJuZXQpLgorCisgICAgMikgTWFrZSBzdXJl
IHRoYXQgYSBiZXN0IGZvY3VzYWJsZSBjYW5kaWRhdGUgb25seSBnZXRzIGZvY3VzZWQKKyAgICAg
ICBpZiBpdCBpcyB2aXNpYmxlIGluIHRoZSBjdXJyZW50bCBWaWV3cG9ydC4gU2Nyb2xsLWluLWRp
cmVjdGlvbgorICAgICAgIGlzIHBlcmZvcm1lZCBvdGhlcndpc2UuCisKKyAgICAqIFByZS1jb25k
aXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisg
ICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29l
cyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikgQXR0ZW1wdCB0byBtb3ZlIGZvY3Vz
IGRvd24gdG8gImVuZC4gQXMgaXQgaXMgdG9vIGZhciBhbmQgb3V0IG9mCisgICAgICAgdmlld3Bv
cnQsIGZvY3VzIGNoYW5nZSB3aWxsIG5vdCBoYXBwZW4gYW5kIHBhZ2Ugd2lsbCBiZSBzY3JvbGxl
ZAorICAgICAgIGEgc3RlcCBkb3duLgorICAgIDMpIEJ5IHNlbmRpbmcgYW4gIkVuZCIga2V5cHJl
c3MsIHBhZ2UgZ2V0cyBzY3JvbGxlZCBkb3duIHRvIGEgcGxhY2UKKyAgICAgICB3aGVyZSB0aGUg
ImVuZCIgbm9kZSBnZXRzIHZpc2libGUgaW4gdGhlIHZpZXdwb3J0LgorICAgIDQpIFN0ZXAgXzFf
IGlzIHJhbiBhZ2FpbiwgYW5kICJlbmQiIGdldHMgZm9jdXNlZC4gLS0+CisgIDxoZWFkPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAgICB2YXIg
bW92ZVRhYmxlMSA9IFsKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyIiLCAiIl0K
KyAgICBdOworCisgICAgdmFyIG1vdmVUYWJsZTIgPSBbCisgICAgICBbIkRvd24iLCAiZW5kIl0s
CisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkK
KyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtub3du
IHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsK
KworICAgICAgc2V0VGltZW91dChzdGVwMSAsIDApOworICAgICAgc2V0VGltZW91dChzdGVwMiAs
IDUwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgIC8vIEFj
dGlvbnMgaW4gJ21vdmVUYWJsZTEnIHNob3VsZCBrZWVwIHRoZSBmb2N1cyBpbiB0aGUgY3VycmVu
dGx5CisgICAgICAvLyBmb2N1c2VkIGVsZW1lbnQgKCdzdGFydCcpIG9uY2UgdGhlIGJlc3QgY2Fu
ZGlkYXRlICgnZW5kJykgaXMgbm90CisgICAgICAvLyB2aXNpYmxlIGluIGN1cnJlbnQgdmlld3Bv
cnQuCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxlMSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RlcDIoKQorICAgIHsKKyAgICAgIHNob3VsZEJlVHJ1ZShTdHJpbmcoZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3AgIT0gMCkpOworCisgICAgICAvLyBUaGVuIGl0IHNjcm9sbHMgZG93biB0byB0aGUg
ZW5kIG9mIHRoZSBwYWdlIC4uLgorICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZW5kIik7CisKKyAgICAgIC8vIEFuZCAnbW92ZVRhYmxl
MicgcmUtdHJpZXMgdG8gbW92ZSBmb2N1cyBkb3duLgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJs
ZTIsIHRlc3RDb21wbGV0ZWQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQo
KQorICAgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cu
b25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9k
eSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJhIj5TdGFydDwvYT4KKyAgICA8ZGl2IHN0eWxlPSdt
YXJnaW4tdG9wOjEwMDAwMDAwMHB4Jz4KKyAgICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+RW5k
PC9hPgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3Vw
ZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44ZWIwZDMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE5IEBACit0ZXN0Cit0ZXN0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqB0ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0Cit0ZXN0CisKKworCisKK3Rlc3QKK3Rlc3QKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2IgorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOCIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BBU1MgZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNTIGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1z
dXBlcnByZWNlZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwZTY4MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnBy
ZWNlZGVuY2UuaHRtbApAQCAtMCwwICsxLDgxIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMg
dGVzdCBlbnN1cmVzIHRoZSBzdXBlciBwcmVjZWRlbmNlIGxvZ2ljIG9mIFNwYXRpYWwgTmF2aWdh
dGlvbgorICAgIChTTmF2KSBhbGdvcml0aG06IHRhcmdldHMgd2hvc2UgbWlkZGxlIGZhbGxzIGJl
dHdlZW4gdGhlIHRvcCBvciBib3R0b20KKyAgICBvZiB0aGUgY3VycmVudCByZWN0IGFyZSBwcmVm
ZXJhYmx5IHRvIG1vdmUgZm9jdXMgdG8uCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEp
IERSVCBzdXBwb3J0IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9u
IHN0ZXBzOgorICAgIDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1
dG9tYXRpY2FsbHkuCisgICAgMikgRm9jdXMgbW92ZXMgcHJlZmVyYWJseSB0byBlbGVtZW50cyBy
aWdodCB1cCBvciBhYm92ZSB0aGUKKyAgICAgICBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCwgZXZl
biB3aGVuIHRoZXJlIGFyZSBzb21lIG90aGVyIGNsb3NlcgorICAgICAgIGJ1dCBub3QgdmVydGlj
YWxseSBhbGlnbmVkIGVsZW1lbnRzIGluIHRoZSBzYW1lIGRpcmVjdGlvbi4KKyAgLS0+CisgIDxo
ZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJzcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisK
KyAgICB2YXIgbW92ZVRhYmxlID0gWworICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93
biIsICI2Il0sCisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAor
ICAgICAgWyJVcCIsICI3Il0sCisgICAgICBbIlVwIiwgIjIiXSwKKyAgICAgIFsiRE9ORSIsICJE
T05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJl
ZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0
YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMo
bW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29t
cGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAg
d2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIj4KKyAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsgdGV4dC1hbGlnbjogbGVm
dDsiPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAgICAgICAgPGEg
aWQ9InN0YXJ0IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEg
aWQ9IjIiIGhyZWY9ImEiPnRlc3Q8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGEgaWQ9IjMiIGhy
ZWY9ImEiPnRlc3Q8L2E+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7
Ij4KKyAgICAgICAgPGEgaWQ9IjQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9kaXY+
CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAgICAgICA8YSBpZD0i
NSIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgc3R5bGU9
Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI2IiBocmVmPSJhIj50ZXN0PGJy
PjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9IjciIGhyZWY9ImEiPnRlc3Q8YnI+PC9h
PgorICAgICAgPGJyPjxicj48YnI+PGJyPgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
IDQwcHg7Ij4KKyAgICAgICAgPGEgaWQ9IjgiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAg
PC9kaXY+CisgICAgICA8YSBpZD0iZW5kIiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc3Bh
dGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi44MDExOWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGls
cy5qcwpAQCAtMCwwICsxLDY5IEBACisvKgorICogT3JpZ2luYWwgYXV0aG9yOiBEb3VnIFR1cm5l
ciA8ZG91Zy50dXJuZXJAZ21haWwuY29tPgorICoKKyAqIENvbnRyaWJ1dG9yczoKKyAqICAgICAq
IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorICoqLworCit2YXIgX21vdmVU
YWJsZTsKK3ZhciBfbW92ZVRhYmxlSW5kZXggPSAwOwordmFyIF9jb21wbGV0ZWRDYWxsYmFjayA9
IG51bGw7CisKK2Z1bmN0aW9uIHRlc3RNb3Zlcyh0YWJsZSwgY29tcGxldGVkQ2IpIHsKKyAgIC8v
IGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgX3ZlcmlmeUFuZEFkdmFuY2UsIHRy
dWUpOworCisgIF9tb3ZlVGFibGUgPSB0YWJsZTsKKyAgX21vdmVUYWJsZUluZGV4ID0gMDsKKyAg
X2NvbXBsZXRlZENhbGxiYWNrID0gY29tcGxldGVkQ2I7CisgIF9tb3ZlKCk7Cit9CisKK2Z1bmN0
aW9uIF9uZXh0TW92ZSgpCit7CisgIF9tb3ZlVGFibGVJbmRleCsrOworCisgIC8vIFdoZW4gYSB0
YWJsZSBlbmRzIHdpdGggIkRPTkUiLCBjYWxsIHRoZSBjb21wbGV0aW9uIGNhbGxiYWNrLgorICBp
ZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICJET05FIikKKyAgICBpZiAoX2Nv
bXBsZXRlZENhbGxiYWNrKSB7CisgICAgICBfY29tcGxldGVkQ2FsbGJhY2soKTsKKyAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgLy8gd2hlbiBhIHRhYmxlIGhhcyBhbiBlbXB0eSBlbGVtZW50LCBl
bmQgdGhlIG1vdmVzLgorICBpZiAoX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5kZXhdWzBdID09ICIi
KQorICAgIHJldHVybjsKKworICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbW92ZSgpCit7Cisg
IHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50cycpOworICBl
dmVudC5pbml0S2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LCBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMF0sIDAsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CisgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQp
OworCisgIHNldFRpbWVvdXQoIF92ZXJpZnlBbmRBZHZhbmNlICwgMTAwKTsKK30KKworZnVuY3Rp
b24gX3ZlcmlmeUFuZEFkdmFuY2UoKQoreworICB2YXIgZGlyZWN0aW9uID0gX21vdmVUYWJsZVtf
bW92ZVRhYmxlSW5kZXhdWzBdOworICB2YXIgZXhwZWN0ZWRJRCA9IF9tb3ZlVGFibGVbX21vdmVU
YWJsZUluZGV4XVsxXTsKKworICB2YXIgaSA9IDA7CisgIHZhciBtYWluRnJhbWVIYXNGb2N1cyA9
IHRydWU7CisgIGZvcig7IGkgPCBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXMubGVuZ3RoOyBp
KyspCisgICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1tpXS5kb2N1bWVudC5oYXNG
b2N1cygpKSB7CisgICAgICBtYWluRnJhbWVIYXNGb2N1cyA9IGZhbHNlOworICAgICAgYnJlYWs7
CisgICAgfQorCisgIC8vIHRoaXMgc3VwcG9ydCBmcmFtZXMgbmVzdGVkIGluIG9uZSBsZXZlbCBk
ZWVwIG9ubHkuCisgIGlmIChtYWluRnJhbWVIYXNGb2N1cykKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBl
Y3RlZElEKTsKKyAgZWxzZQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzWyIgKyBpICsgIl0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoXCJpZFwiKSIsIGV4cGVjdGVkSUQpOworCisgIF9uZXh0TW92ZSgpOworfQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDgwZmI2NjEuLjVkOWVhNGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCkBAIC01Nzk5LDMgKzU3OTksNiBAQCBwcmludGluZy9wYWdlTnVtZXJGb3JF
bGVtZW50QnlJZC5odG1sCiAjIEludGVybWl0dGVudGx5IHRpbWluZyBvdXQgb24gR3RrIERlYnVn
IEJvdDoKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNDQ1CiBo
dHRwL3Rlc3RzL2luY3JlbWVudGFsL3NwbGl0LWhleC1lbnRpdGllcy5wbAorCisjIE5lZWQgdG8g
YWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNh
YmxlIFNwYXRpYWwgTmF2aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDY5ZDZlMGIuLmQ4NjVkMGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCkBAIC0xMTEsMyArMTExLDYgQEAgaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1jb29raWUuaHRtbAogIyBGYWlscyBvbiBNYWMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0MzMxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlZmVyZXIuaHRt
bAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFu
ZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDI3ZTJlM2EuLmViNGU1
MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC03NDQsMyArNzQ0LDYgQEAgcHJpbnRp
bmcvcGFnZU51bWVyRm9yRWxlbWVudEJ5SWQuaHRtbAogIyBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
cy1ERU5JRUQtd2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbCB0aW1lZCBvdXQgb24gV2lu
ZG93cyBEZWJ1ZyBCb3QKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMzMzQ5CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtd2luZG93LW9wZW4tamF2YXNj
cmlwdC11cmwuaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVtcFJlbmRl
clRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbgorZmFzdC9l
dmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsg
Yi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggOGNiYzkxZC4uNDcxNWI0YSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMzUwLDYgKzM1
MCw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvU2Ny
ZWVuLmNwcCBcCiAJcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgXAogCXBhZ2UvU2V0dGluZ3MuY3Bw
IFwKKwlwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwIFwKIAlwYWdlL1VzZXJDb250ZW50
VVJMUGF0dGVybi5jcHAgXAogCXBhZ2UvV2luZG93RmVhdHVyZXMuY3BwIFwKIAlwYWdlL1dvcmtl
ck5hdmlnYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBmNjc0OTJmLi4xYWUzOTgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEwLTAy
LTAxICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFBhdGNoIGJ5IEFudG9uaW8gR29tZXMg
PHRvbmlraXRvb0B3ZWJraXQuY29tPgorICAgICAgICBCYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3Jr
IG9mIE1hcmNvIEJhcmlzaW9uZSA8bWFyY28uYmFyaXNpb25lQGNvbGxhYm9yYS5jby51az4KKwor
ICAgICAgICBFeHRlbmQga2V5Ym9hcmQgbmF2aWdhdGlvbiB0byBhbGxvdyBkaXJlY3Rpb25hbCBu
YXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODY2MgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgY29yZSBsb2dpYyBv
ZiB0aGUgJ1NwYXRpYWwgTmF2aWdhdGlvbicgZmVhdHVyZSBbMV0uCisgICAgICAgIEl0IGltcHJv
dmVzIHRoZSBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgb2YgV2ViQ29yZSBieSBleHRlbmRpbmcgdGhl
IGJhc2ljIGtleWJvYXJkCisgICAgICAgIG5hdmlnYXRpb24gY3VycmVudGx5IGF2YWlsYWJsZSAo
YmFzZWQgb24gVGFiIGZvcndhcmQgYW5kIGJhY2t3YXJkKSB3aXRoIHRoZQorICAgICAgICBhZGRp
dGlvbiBvZiBhIHR3by1kaW1lbnNpb25hbCBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGJ5IHVzaW5n
IExlZnQsIFJpZ2h0LCBVcCBhbmQKKyAgICAgICAgRG93biBhcnJvdyBrZXlzIHRvIG1vdmUgdG8g
dGhlICJuZWFyZXN0IiBlbGVtZW50IGluIHRoZSBjb3JyZXNwb25kaW5nIGRpcmVjdGlvbi4KKwor
ICAgICAgICBIaWdobGlnaHRzOgorICAgICAgICAqIEZlYXR1cmUgaXMgdHVybmVkIG9mZiBieSBk
ZWZhdWx0IGluIFNldHRpbmdzLiBQb3J0IHNwZWNpZmljIEFQSXMgbmVlZCB0byBiZSBhZGRlZAor
ICAgICAgICAgIGZvciB0b2dnbGluZyBpdCBvbi9vZmYuCisgICAgICAgICogT25seSBlbGVtZW50
cyB2aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92ZSB0byBp
dC4gSWYgdGhlCisgICAgICAgICAgICJuZWFyZXN0IiBpcyBub3QgaW4gdmlld3BvcnQgZGltZW5z
aW9ucywgdGhlbiBhIHNjcm9sbC1pbi1kaXJlY3Rpb24gYWN0aW9uIGlzCisgICAgICAgICAgIHBl
cmZvcm1lZC4KKyAgICAgICAgKiBUaGUgbGF5b3V0IHRlc3RzIGFkZGVkIHJ1biBvbiBRdCdzIERS
VCBvbmx5IGZvciBub3cgKHNraXBwZWQgZm9yIE1hYywgV2luIGFuZCBHdGspLgorCisgICAgICAg
IEtub3duIGlzc3VlcyAodG8gYmUgY292ZXJlZCBpbiBmb2xsb3ctdXAgYnVncyk6CisgICAgICAg
ICogQWRkIHBvcnQgc3BlY2lmaWMgaG9va3MgdG8gZWFjaCBEUlQgdG8gZW5hYmxlL2Rpc2FibGUg
U3BhdGlhbCBOYXZpZ2F0aW9uLgorICAgICAgICAqIFN1cHBvcnQgZm9yIHNwYXRpYWwgbmF2aWdh
dGlvbiB0aHJvdWdoIGZvcm0gZWxlbWVudHMgKDxpbnB1dD4sIDxzZWxlY3Q+LCBldGMpCisgICAg
ICAgICAgaXMgYmUgYWRkZWQuCisgICAgICAgICogTWFrZSBuYXZpZ2F0aW9uIGtleXMgY3VzdG9t
aXphYmxlLiBJdCBjdXJyZW50bHkgd29ya3Mgd2l0aCBhcnJvd3Mga2V5cyBvbmx5CisgICAgICAg
ICAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCkuCisgICAgICAgICogTWFrZSBpdCBzdXBwb3J0
IG1vZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCisKKyAgICAgICAgWzFdIGh0dHA6Ly9l
bi53aWtpcGVkaWEub3JnL3dpa2kvU3BhdGlhbF9uYXZpZ2F0aW9uCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVj
ZWRlbmNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1j
b250ZW50Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2
ZXJzYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRp
cmVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAorCisgICAgICAgICogQW5kcm9p
ZC5tazoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwt
bmF2aWdhdGlvbi9saW5rcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYW51YWwtdGVzdHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZp
Z2F0aW9uLXRlc3QtY2FzZXMyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJk
RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Zm9jdXNEaXJl
Y3Rpb25Gb3JLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0QXJy
b3dFdmVudEhhbmRsZXIpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAg
ICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250
cm9sbGVyOjphZHZhbmNlRm9jdXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVy
OjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZGlzdGFu
Y2VJbkRpcmVjdGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TcGF0
aWFsTmF2aWdhdGlvblV0aWxzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJS
ZWN0UmVsYXRpdmVUb1Jvb3REb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjppc01vdmluZ0Zy
b21PdXR0ZXJUb0lubmVyRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNNb3ZpbmdGcm9t
SW5uZXJUb091dHRlckRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzT2Zmc2NyZWVuUmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjppc1JlY3RJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjphcmVSZWN0c0Z1bGx5
QWxpZ25lZCk6CisgICAgICAgIChXZWJDb3JlOjphcmVSZWN0c1BhcnRpYWxseUFsaWduZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXVjbGlkaWVhbkRpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6
OnNwYXRpYWxEaXN0YW5jZUZvckFsaWduZWRSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpzcGF0
aWFsRGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmbGF0ZUlmTmVlZGVkKToKKyAgICAg
ICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDYW5kaWRhdGU6OkZvY3VzQ2FuZGlkYXRl
KToKKwogMjAxMC0wMi0wMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggOWY5NzNkYS4u
MDdlMjJhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xNDA3LDYgKzE0MDcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCBcCiAJV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggXAorCVdlYkNvcmUvcGFnZS9T
cGF0aWFsTmF2aWdhdGlvblV0aWxzLmNwcCBcCisJV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uVXRpbHMuaCBcCiAJV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgXAog
CVdlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaCBcCiAJV2ViQ29yZS9wYWdlL1Vz
ZXJTY3JpcHQuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IGVkNDllODMuLjdjZTU3OTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODcyLDYgKzE4NzIs
OCBAQAogICAgICAgICAgICAgJ3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmgnLAogICAgICAgICAg
ICAgJ3BhZ2UvU2V0dGluZ3MuY3BwJywKICAgICAgICAgICAgICdwYWdlL1NldHRpbmdzLmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oJywKKyAgICAgICAgICAg
ICdwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwJywKICAgICAgICAgICAgICdwYWdlL1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmgnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlclNjcmlwdC5oJywKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDYxZThj
M2MuLmUwM2I0ZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtNzUzLDYgKzc1Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwIFwKICAgICBwYWdlL1NjcmVlbi5jcHAgXAogICAgIHBhZ2UvU2V0
dGluZ3MuY3BwIFwKKyAgICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwIFwKICAgICBw
YWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMu
Y3BwIFwKICAgICBwYWdlL1hTU0F1ZGl0b3IuY3BwIFwKQEAgLTE0NTYsNiArMTQ1Nyw3IEBAIEhF
QURFUlMgKz0gXAogICAgIHBhZ2UvU2NyZWVuLmggXAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4u
aCBcCiAgICAgcGFnZS9TZXR0aW5ncy5oIFwKKyAgICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRp
bHMuaCBcCiAgICAgcGFnZS9XaW5kb3dGZWF0dXJlcy5oIFwKICAgICBwYWdlL1dvcmtlck5hdmln
YXRvci5oIFwKICAgICBwYWdlL1hTU0F1ZGl0b3IuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCBjMzFkZTdkLi41NjZkZTI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTIwOTY1LDYgKzIwOTY1LDE0IEBACiAJCQkJPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BhdGlhbE5hdmlnYXRp
b25VdGlscy5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwYWdlXFNwYXRpYWxOYXZpZ2F0aW9uVXRpbHNzLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFVzZXJDb250ZW50
VVJMUGF0dGVybi5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwgYi9XZWJDb3JlL21h
bnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCAwMDAwMDAwLi4wZDZlZDdjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9t
YW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWwKQEAgLTAsMCArMSw5IEBA
Cis8aHRtbD4KKzxoZWFkPjwvaGVhZD4KKzxib2R5PgorPHA+Cis8YSBocmVmPSJhIj5hPC9hPgor
PGEgaHJlZj0iYSI+YTwvYT4KKzxhIGhyZWY9ImEiPmE8L2E+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlh
bC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyODM0NmQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9u
LXRlc3QtY2FzZXMuaHRtbApAQCAtMCwwICsxLDEzNSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElD
ICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorICA8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsg
Y2hhcnNldD1JU08tODg1OS0xIj4KKyAgPHRpdGxlPlNwYXRpYWwgTmF2aWdhdGlvbiBUZXN0IENh
c2VzPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQw
cHg7IHRleHQtYWxpZ246IGNlbnRlcjsiPgorICA8aDEgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7
Ij5TcGF0aWFsIE5hdmlnYXRpb24gRnVuPC9oMT4KKyAgPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiBs
ZWZ0OyI+M3gzIENlbnRlcmVkIFRhYmxlIFRlc3Q8L2gyPgorPC9kaXY+Cis8dGFibGUgc3R5bGU9
InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2lu
LXJpZ2h0OiBhdXRvOyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIi
PgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAg
ICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxh
IGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAg
IDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQg
c3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9
ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwvdHI+
CisgICAgPHRyPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFs
aWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgICA8dGQgc3R5bGU9
InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRl
c3Q8L2E+PC90ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1h
bGlnbjogY2VudGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgIDwvdHI+CisgIDwv
dGJvZHk+Cis8L3RhYmxlPgorPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxicj4KKyAgPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPgorICAg
IDxoMj5WZXJ0aWNhbCBTaW5lIFRlc3Q8L2gyPjxicj4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9
InRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICA8
ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPjxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgor
ICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICA8YSBocmVm
PSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0
MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8YSBocmVm
PSJhIj50ZXN0PGJyPjwvYT4KKyAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDQwcHg7Ij4KKyAg
ICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0OiA4MHB4OyI+CisgICAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgIDwvZGl2Pgor
ICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8
YnI+PC9hPgorICA8L2Rpdj4KKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+Jm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7CisgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorCisgIDxoMj5JbmNyZWFzaW5nIHNlbnRl
bmNlIGxlbmd0aDwvaDI+CisgIDxhIGhyZWY9ImEiPkg8L2E+PGJyPgorICA8YSBocmVmPSJwIj5I
bzxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdzxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdyA8
YnI+PC9hPgorICA8YSBocmVmPSJwIj5Ib3cgTjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBO
bzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5I
b3cgTm93IDwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBOb3cgQnI8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJybzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd248L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIDwvYT48YnI+
CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24gQzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dyBOb3cgQnJvd24gQ288L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duIENvdzwv
YT48YnI+CisgIDxicj4KKyAgPGgyPlNwbGl0IHNlbnRlbmNlPGJyPjwvaDI+CisgIDxicj4KKyAg
PGEgaHJlZj0icCI+SDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEgaHJlZj0icCI+b3cgTm93IEJyb3duIENvdzwv
YT48YnI+CisgIDxhIGhyZWY9InAiPkhvPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IDxhIGhyZWY9InAiPncgTm93IEJyb3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhv
dzwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+b3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEg
aHJlZj0icCI+SG93IE5vPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPncgQnJvd24gQ293PC9hPjxicj4KKyAg
PGEgaHJlZj0icCI+SG93IE5vdyA8L2E+Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5Ccm93biBDb3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEI8L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+cm93biBDb3c8
L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vd24gQ293PC9h
Pjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm88L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPnduIENvdzwvYT48
YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvdzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJl
Zj0icCI+biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJyb3duPC9hPiAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5i
c3A7IDxhIGhyZWY9InAiPkNvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24g
QzwvYT4gJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyZuYnNwOyA8YSBocmVmPSJwIj5vdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJv
d24gQ288L2E+ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cg
QnJvd24gQ293PC9hPjxicj48YnI+CisgIDxoMj5MaW5lIFdyYXAgVGVzdDwvaDI+PGJyPgorICA8
dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAzOTNweDsgaGVpZ2h0OiA3MnB4
OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAgIDx0Ym9k
eT4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+
CisgICAgICAgICAgPHNwYW4gY2xhc3M9Imh1Z2UiPgorICAgICAgICAgICAgPGEgaHJlZj0iYSI+
V2hpY2ggb2YgdGhlIGZvbGxvd2luZyBjb25zdGFuc3QgZG8geW91IGxpa2UgdGhlIG1vc3QsIG9u
ZSBpcyBnLCBvbmUgaXMgcGksIGFuZCB0aGUgb3RoZXIgaXMgZS4gPC9hPjxicj4KKyAgICAgICAg
ICA8L3NwYW4+PC90ZD4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyI+
CisgICAgICAgICAgPGEgaHJlZj0iYSI+My4xNDwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0i
YSI+Mi43MTwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Ni42NzwvYT48YnI+CisgICAg
ICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFibGU+PGJyPgorICA8
aDI+SmF2YXNjcmlwdCBGb2N1cy9CbHVyIFRlc3Q8L2gyPgorICAgIFdoZW4gZ29pbmcgdG8gYW55
IGxpbmsgZnJvbSB0aGUgZm9sbG93aW5nIGxpbmssIHlvdSBzaG91bGQgc2VlIGEgZGlhbG9nLjxi
cj48YnI+CisgIDxhIGhyZWY9ImEiIG9uYmx1cj0nYWxlcnQoIm9uQmx1cnQiKSc+VGVzdDwvYT48
YnI+PGJyPgorCisgIDxoMj5GcmFtZVNldHM8L2gyPiA8YnI+CisgIDxmcmFtZXNldCBjb2xzPSIy
NSUsMjUlLCoiPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJhbWUgc3Jj
PSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICA8L2ZyYW1l
c2V0PgorICA8YnI+PGJyPgorCisgIDxoMj5JRnJhbWVzPC9oMj48YnI+CisgIDxpZnJhbWUgc3Jj
PSJsaW5rcy5odG1sIj48L2lmcmFtZT48YnI+PGJyPjxicj4KKyAgPGgyPkRJVnM8L2gyPjxicj4K
KyAgPGRpdiBpZD12PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPGRpdiBpZD0iRGl2MSI+
CisgICAgICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGEgaHJlZj0iYSI+
YTwvYT4KKyAgPC9kaXY+PGJyPjxicj4KKyAgPC9kaXY+CisgIDwvZGl2PgorICA8YSBocmVmPSJs
YXN0Ij5sYXN0PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51
YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2Vz
Mi5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwt
bmF2aWdhdGlvbi10ZXN0LWNhc2VzMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAuLmI4N2EzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9z
cGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3QtY2FzZXMyLmh0bWwKQEAg
LTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQu
MDEgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVxdWl2
PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4K
KyAgPHRpdGxlPlNwYXRpYWwgTmF2aWdhdGlvbiBUZXN0IENhc2VzPC90aXRsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgor
ICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJy
PgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+
PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8
YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgor
ICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJyPgorICA8YnI+PGJy
PgorICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAzOTNweDsgaGVpZ2h0
OiA3MnB4OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiPgorICAg
IDx0Ym9keT4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyI+CisgICAgICAgICAgPHNwYW4gY2xhc3M9Imh1Z2UiPgorICAgICAgICAgICAgPGEgaHJl
Zj0iYSI+V2hpY2ggb2YgdGhlIGZvbGxvd2luZyBjb25zdGFuc3QgZG8geW91IGxpa2UgdGhlIG1v
c3QsIG9uZSBpcyBnLCBvbmUgaXMgcGksIGFuZCB0aGUgb3RoZXIgaXMgZS4gPC9hPjxicj4KKyAg
ICAgICAgICA8L3NwYW4+PC90ZD4KKyAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+My4xNDwvYT48YnI+CisgICAgICAgICAgPGEg
aHJlZj0iYSI+Mi43MTwvYT48YnI+CisgICAgICAgICAgPGEgaHJlZj0iYSI+Ni42NzwvYT48YnI+
CisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGJvZHk+CisgIDwvdGFibGU+PGJy
PgorICA8aDI+SmF2YXNjcmlwdCBGb2N1cy9CbHVyIFRlc3Q8L2gyPgorICAgIFdoZW4gZ29pbmcg
dG8gYW55IGxpbmsgZnJvbSB0aGUgZm9sbG93aW5nIGxpbmssIHlvdSBzaG91bGQgc2VlIGEgZGlh
bG9nLjxicj48YnI+CisgIDxhIGhyZWY9ImEiIG9uYmx1cj0nYWxlcnQoIm9uQmx1cnQiKSc+VGVz
dDwvYT48YnI+PGJyPgorCisgIDxoMj5GcmFtZVNldHM8L2gyPiA8YnI+CisgIDxmcmFtZXNldCBj
b2xzPSIyNSUsMjUlLCoiPgorICAgIDxmcmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJh
bWUgc3JjPSJsaW5rcy5odG1sIi8+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICA8
L2ZyYW1lc2V0PgorICA8YnI+PGJyPgorCisgIDxoMj5JRnJhbWVzPC9oMj48YnI+CisgIDxpZnJh
bWUgc3JjPSJsaW5rcy5odG1sIj48L2lmcmFtZT48YnI+PGJyPjxicj4KKyAgPGgyPkRJVnM8L2gy
Pjxicj4KKyAgPGRpdiBpZD12PgorICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPGRpdiBpZD0i
RGl2MSI+CisgICAgICAgIDxhIGhyZWY9ImEiPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGEgaHJl
Zj0iYSI+YTwvYT4KKyAgPC9kaXY+PGJyPjxicj4KKyAgPC9kaXY+CisgIDwvZGl2PgorICA8YSBo
cmVmPSJsYXN0Ij5sYXN0PC9hPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCA4YTc3ODY3Li40NzIxOTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjE1NiwxMCAr
MjE1NiwxNSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVy
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
ZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IikKICAgICAgICAgICAgIGRlZmF1bHRU
YWJFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiA9IGZvY3VzRGlyZWN0aW9uRm9yS2V5KGV2ZW50LT5rZXlJZGVu
dGlmaWVyKCkpOworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiAhPSBGb2N1c0RpcmVjdGlvbk5v
bmUpCisgICAgICAgICAgICAgICAgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKGRpcmVjdGlvbiwg
ZXZlbnQpOworICAgICAgICB9CiAKLSAgICAgICAvLyBwcm92aWRlcyBLQiBuYXZpZ2F0aW9uIGFu
ZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgdXNlcnMKLSAgICAgICBpZiAo
QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQo
KSkKLSAgICAgICAgICAgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudChldmVudCk7ICAg
ICAgIAorICAgICAgICAvLyBwcm92aWRlcyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9y
IGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgdXNlcnMKKyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6
OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCisgICAgICAgICAg
ICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KGV2ZW50KTsKICAgICB9CiAgICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpIHsKICAgICAgICAg
bV9mcmFtZS0+ZWRpdG9yKCktPmhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQpOwpAQCAtMjE3MCw2
ICsyMTc1LDI3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRs
ZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgfQogfQogCitGb2N1c0RpcmVjdGlvbiBFdmVu
dEhhbmRsZXI6OmZvY3VzRGlyZWN0aW9uRm9yS2V5KGNvbnN0IEF0b21pY1N0cmluZyYga2V5SWRl
bnRpZmllcikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgRG93biwg
KCJEb3duIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBVcCwgKCJV
cCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgTGVmdCwgKCJMZWZ0
IikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBSaWdodCwgKCJSaWdo
dCIpKTsKKworICAgIEZvY3VzRGlyZWN0aW9uIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uTm9uZTsK
KworICAgIGlmIChrZXlJZGVudGlmaWVyID09IERvd24pCisgICAgICAgIHJldFZhbCA9IEZvY3Vz
RGlyZWN0aW9uRG93bjsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09IFVwKQorICAgICAg
ICByZXRWYWwgPSBGb2N1c0RpcmVjdGlvblVwOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZpZXIg
PT0gTGVmdCkKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25MZWZ0OworICAgIGVsc2Ug
aWYgKGtleUlkZW50aWZpZXIgPT0gUmlnaHQpCisgICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0
aW9uUmlnaHQ7CisKKyAgICByZXR1cm4gcmV0VmFsOworfQorCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKIGJvb2wgRXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZs
b2F0UG9pbnQmIGZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXRpb24pIGNvbnN0CiB7CkBAIC0yNDY0LDYg
KzI0OTAsMjcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50KiBldmVudCkKIAogI2VuZGlmCiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpkZWZh
dWx0QXJyb3dFdmVudEhhbmRsZXIoRm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb24sIEtleWJv
YXJkRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChldmVudC0+Y3RybEtleSgpIHx8IGV2ZW50LT5t
ZXRhS2V5KCkgfHwgZXZlbnQtPmFsdEdyYXBoS2V5KCkgfHwgZXZlbnQtPnNoaWZ0S2V5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkg
fHwgIXBhZ2UtPnNldHRpbmdzKCktPmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIEFycm93cyBhbmQgb3RoZXIgcG9zc2libGUgZGlyZWN0aW9u
YWwgbmF2aWdhdGlvbiBrZXlzIGNhbiBiZSB1c2VkIGluIGRlc2lnbgorICAgIC8vIG1vZGUgZWRp
dGluZy4KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+YWR2YW5jZUZv
Y3VzKGZvY3VzRGlyZWN0aW9uLCBldmVudCkpCisgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFu
ZGxlZCgpOworfQorCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICAvLyBXZSBzaG91bGQgb25seSBhZHZhbmNlIGZv
Y3VzIG9uIHRhYnMgaWYgbm8gc3BlY2lhbCBtb2RpZmllciBrZXlzIGFyZSBoZWxkIGRvd24uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgKaW5kZXggZjQ5MDA3My4uNDBiNWEyZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAt
MjcsNiArMjcsNyBAQAogI2RlZmluZSBFdmVudEhhbmRsZXJfaAogCiAjaW5jbHVkZSAiRHJhZ0Fj
dGlvbnMuaCIKKyNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKQEAgLTMwMSw2ICszMDIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWZhdWx0U3BhY2VF
dmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCopOwogICAgIHZvaWQgZGVmYXVsdFRhYkV2ZW50SGFu
ZGxlcihLZXlib2FyZEV2ZW50Kik7CisgICAgdm9pZCBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIo
Rm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAgICAgdm9pZCBhbGxvd0RIVE1MRHJhZyhib29sJiBmbGFnREhUTUwsIGJvb2wmIGZsYWdV
QSkgY29uc3Q7CkBAIC0zMjMsNiArMzI1LDggQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHNl
dEZyYW1lV2FzU2Nyb2xsZWRCeVVzZXIoKTsKIAorICAgIEZvY3VzRGlyZWN0aW9uIGZvY3VzRGly
ZWN0aW9uRm9yS2V5KGNvbnN0IEF0b21pY1N0cmluZyYpOworCiAgICAgYm9vbCBjYXB0dXJlc0Ry
YWdnaW5nKCkgY29uc3QgeyByZXR1cm4gbV9jYXB0dXJlc0RyYWdnaW5nOyB9CiAKICNpZiBQTEFU
Rk9STShNQUMpICYmIGRlZmluZWQoX19PQkpDX18pICYmICFFTkFCTEUoRVhQRVJJTUVOVEFMX1NJ
TkdMRV9WSUVXX01PREUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGJkZDMxNTEuLjQx
MWZmZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC00OSwxMiArNDksMTcgQEAKICNp
bmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvblV0aWxz
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKK3N0YXRpYyB2b2lkIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24o
RG9jdW1lbnQqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqLCBGb2N1c0Nh
bmRpZGF0ZSYpOworc3RhdGljIGxvbmcgbG9uZyBkaXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqLCBO
b2RlKiwgRm9jdXNEaXJlY3Rpb24sIEZvY3VzQ2FuZGlkYXRlJik7CiAKIHN0YXRpYyBpbmxpbmUg
dm9pZCBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIGZvY3VzZWQpCiB7CkBAIC0xNTMsNiArMTU4LDI0IEBAIGJvb2wgRm9jdXNDb250
cm9sbGVyOjpzZXRJbml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2Fy
ZEV2ZW50KiBlCiAKIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMp
CiB7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRm9y
d2FyZDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIHJldHVybiBh
ZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3Vz
KTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
UmlnaHQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgIGNhc2UgRm9jdXNEaXJlY3Rp
b25Eb3duOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShkaXJlY3Rp
b24sIGV2ZW50KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjph
ZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXli
b2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCit7CiAgICAgRnJhbWUqIGZyYW1l
ID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTI1Nyw2ICsyODAsNzAgQEAgYm9v
bCBGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqIGV2ZW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24gZGlyZWN0
aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2Vk
T3JNYWluRnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOworICAgIERvY3VtZW50KiBmb2N1c2Vk
RG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWZvY3VzZWREb2N1bWVudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgTm9kZSogZm9jdXNlZE5vZGUgPSBmb2N1c2Vk
RG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZSkgeworICAgICAg
ICAvLyBKdXN0IG1vdmUgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBub2RlLgorICAgICAgICBGb2N1
c0RpcmVjdGlvbiB0YWJEaXJlY3Rpb24gPSAoRm9jdXNEaXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25MZWZ0KSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGb2N1c0RpcmVjdGlvbkZvcndhcmQgOiBGb2N1c0RpcmVjdGlvbkJhY2t3YXJkOwor
ICAgICAgICAvLyAnaW5pdGlhbEZvY3VzJyBpcyBzZXQgdG8gdHJ1ZSBzbyB0aGUgY2hyb21lIGlz
IG5vdCBmb2N1c2VkLgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVy
KHRhYkRpcmVjdGlvbiwgZXZlbnQsIHRydWUpOworICAgIH0KKworICAgIC8vIE1vdmUgdXAgaW4g
dGhlIGNoYWluIG9mIG5lc3RlZCBmcmFtZXMuCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAg
RnJhbWUqIHBhcmVudEZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CisgICAgICAgIGlm
ICghcGFyZW50RnJhbWUgfHwgIXBhcmVudEZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAg
YnJlYWs7CisKKyAgICAgICAgZnJhbWUgPSBwYXJlbnRGcmFtZTsKKyAgICB9CisKKyAgICBGb2N1
c0NhbmRpZGF0ZSBmb2N1c0NhbmRpZGF0ZTsKKyAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0
aW9uKGZyYW1lLT5kb2N1bWVudCgpLCBmb2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwgZm9j
dXNDYW5kaWRhdGUpOworCisgICAgTm9kZSogbm9kZSA9IGZvY3VzQ2FuZGlkYXRlLm5vZGU7Cisg
ICAgaWYgKG5vZGUpIHsKKyAgICAgICAgLy8gSW4gb3JkZXIgdG8gYXZvaWQgY3JhenkganVtcCBi
ZXR3ZWVuIGxpbmtzIHRoYXQgYXJlIGVpdGhlciBmYXIgYXdheSBmcm9tIGVhY2ggb3RoZXIsCisg
ICAgICAgIC8vIG9yIGp1c3Qgbm90IGN1cnJlbnRseSB2aXNpYmxlLCBsZXRzIGJhaWwgb3V0IGlm
IHRoZSBkZXN0aW5hdGlvbiBmb2N1c2FibGUgZWxlbWVudCBpcworICAgICAgICAvLyBub3QgaW4g
dGhlIHZpZXdwb3J0LgorICAgICAgICBpZiAoaXNPZmZzY3JlZW5SZWN0KG5vZGUpKSB7CisgICAg
ICAgICAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCktPmZyYW1lKCk7
CisgICAgICAgICAgICBzY3JvbGxJbkRpcmVjdGlvbihmcmFtZSwgZGlyZWN0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgRnJh
bWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgICAgIHNjcm9sbEluRGlyZWN0
aW9uKGZyYW1lLCBkaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6IE1heSBu
ZWVkIGEgd2F5IHRvIGZvY3VzIGEgZG9jdW1lbnQgaGVyZS4KKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7
CisKKyAgICBpZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIC8v
IEZvY3VzIGlzIGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50
LCBzbyBjbGVhciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNl
dEZvY3VzZWROb2RlKDApOworICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAg
c2V0Rm9jdXNlZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0
PEVsZW1lbnQqPihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCiBz
dGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAqbm9kZSkKIHsKICAgICBB
U1NFUlQobm9kZSk7CkBAIC0zNjQsNCArNDUxLDEyOSBAQCB2b2lkIEZvY3VzQ29udHJvbGxlcjo6
c2V0QWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICBkaXNwYXRjaEV2ZW50c09uV2luZG93QW5k
Rm9jdXNlZE5vZGUobV9mb2N1c2VkRnJhbWUtPmRvY3VtZW50KCksIGFjdGl2ZSk7CiB9CiAKK3N0
YXRpYyB2b2lkIGZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50
LCBOb2RlKiBzdGFydCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBl
dmVudCwgRm9jdXNDYW5kaWRhdGUmIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSkKK3sKKyAgICBBU1NF
UlQoZG9jdW1lbnQpOworCisgICAgLy8gV2FsayBhbGwgdGhlIGNoaWxkIG5vZGVzIGFuZCB1cGRh
dGUgZm9jdXNDYW5kaWRhdGUgaWYgd2UgZmluZCBhIG5lYXJlciBub2RlLgorICAgIGZvciAoTm9k
ZSogY2FuZGlkYXRlID0gZG9jdW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2FuZGlkYXRlOyBjYW5kaWRh
dGUgPSBjYW5kaWRhdGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICAvLyBJbm5lciBk
b2N1bWVudHMgY2FzZS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZS0+aXNGcmFtZU93bmVyRWxlbWVu
dCgpKSB7CisgICAgICAgICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gc3RhdGlj
X2Nhc3Q8SFRNTEZyYW1lT3duZXJFbGVtZW50Kj4oY2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGlm
ICghb3duZXItPmNvbnRlbnRGcmFtZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93bmVyLT5jb250ZW50RnJhbWUo
KS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgICAgIGlmICghaW5uZXJEb2N1bWVudCkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGlubmVyRG9jdW1lbnQgPT0gc3Rh
cnQtPmRvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVj
dGlvbihpbm5lckRvY3VtZW50LCBzdGFydCwgZGlyZWN0aW9uLCBldmVudCwgY2xvc2VzdEZvY3Vz
Q2FuZGlkYXRlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENoZWNr
IGlmIHRoZSBjdXJyZW50IHtpfWZyYW1lIGVsZW1lbnQgaXRzZWxmIGlzIGEgZ29vZCBjYW5kaWRh
dGUKKyAgICAgICAgICAgICAgICAvLyB0byBtb3ZlIGZvY3VzIHRvLiBJZiBpdCBpcywgdGhlbiB3
ZSB0cmF2ZXJzZSBpdHMgaW5uZXIgbm9kZXMuCisgICAgICAgICAgICAgICAgLy8gTGV0cyBwYXNz
IGEgY29weSBvZiB0aGUgYmVzdCBjYW5kaWRhdGUsIHRvIG5vdCBnZXQgZm9vbGVkIGJ5IGEKKyAg
ICAgICAgICAgICAgICAvLyBmcmFtZSB3aXRob3V0IGZvY3VzYWJsZSBlbGVtZW50cy4KKyAgICAg
ICAgICAgICAgICBGb2N1c0NhbmRpZGF0ZSBmb2N1c0NhbmRpZGF0ZUNvcHkgPSBjbG9zZXN0Rm9j
dXNDYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gZGlzdGFu
Y2VJbkRpcmVjdGlvbihzdGFydCwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIGZvY3VzQ2FuZGlkYXRl
Q29weSk7CisgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgZm9jdXNDYW5kaWRhdGVDb3B5
LmRpc3RhbmNlKSB7CisgICAgICAgICAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlQ29weS5wYXJl
bnRBbGlnbm1lbnQgPSBmb2N1c0NhbmRpZGF0ZUNvcHkuYWxpZ25tZW50OworICAgICAgICAgICAg
ICAgICAgICBmb2N1c0NhbmRpZGF0ZUNvcHkucGFyZW50RGlzdGFuY2UgPSBkaXN0YW5jZTsKKwor
ICAgICAgICAgICAgICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGlubmVyRG9j
dW1lbnQsIHN0YXJ0LCBkaXJlY3Rpb24sIGV2ZW50LCBmb2N1c0NhbmRpZGF0ZUNvcHkpOworCisg
ICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlYWxseSBoYXZlIGFuIGlubmVyIGJlc3Qgbm9k
ZSBjYW5kaWRhdGUsIHRha2UgaXQuCisgICAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0Rm9j
dXNDYW5kaWRhdGUubm9kZSAhPSBmb2N1c0NhbmRpZGF0ZUNvcHkubm9kZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSA9IGZvY3VzQ2FuZGlkYXRlQ29weTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2Fu
ZGlkYXRlICE9IHN0YXJ0ICYmIGNhbmRpZGF0ZS0+aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCkp
IHsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBkaXN0YW5jZSA9IGRpc3RhbmNlSW5EaXJlY3Rpb24o
c3RhcnQsIGNhbmRpZGF0ZSwgZGlyZWN0aW9uLCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOworICAg
ICAgICAgICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlKSB7
CisgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLnBh
cmVudERpc3RhbmNlCisgICAgICAgICAgICAgICAgICAgICYmIHN0YXJ0LT5kb2N1bWVudCgpID09
IGNhbmRpZGF0ZS0+ZG9jdW1lbnQoKSkgeworICAgICAgICAgICAgICAgICAgICBjbG9zZXN0Rm9j
dXNDYW5kaWRhdGUubm9kZSA9IGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2Vz
dEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlID0gZGlzdGFuY2U7CisgICAgICAgICAgICAgICAgICAg
IGlmIChzdGFydC0+ZG9jdW1lbnQoKSA9PSBjYW5kaWRhdGUtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUucGFyZW50RGlzdGFuY2UgPSBj
TWF4RGlzdGFuY2U7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydC0+ZG9jdW1lbnQo
KSAhPSBjYW5kaWRhdGUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYg
dGhlIHxzdGFydHwgKGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQpIGlzIGluc2lkZSBhbiBpbm5l
cgorICAgICAgICAgICAgICAgICAgICAvLyBkb2N1bWVudCBhbmQgdGhlIHxjYW5kaWRhdGV8IGlz
IG9uIGEgZGlmZmVyZW50IGRvY3VtZW50LCB3ZSBvbmx5CisgICAgICAgICAgICAgICAgICAgIC8v
IGNvbnNpZGVyIHRvIG1vdmUgaWYgdGhlcmUgaXMgbm90IGFub3RoZXIgYWxyZWFkeSBnb29kIGZv
Y3VzYWJsZQorICAgICAgICAgICAgICAgICAgICAvLyBjYW5kaWRhdGUgaW4gdGhlIHNhbWUgZG9j
dW1lbnQgYXMgfHN0YXJ0fC4KKyAgICAgICAgICAgICAgICAgICAgaWYgKCEoaXNNb3ZpbmdGcm9t
SW5uZXJUb091dHRlckRvY3VtZW50KHN0YXJ0LCBjYW5kaWRhdGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAmJiAoY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLm5vZGUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICYmIChzdGFydC0+ZG9jdW1lbnQoKSA9PSBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUubm9k
ZS0+ZG9jdW1lbnQoKSkpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VzdEZvY3Vz
Q2FuZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgICAgICAgICBjbG9z
ZXN0Rm9jdXNDYW5kaWRhdGUuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
K30KKworc3RhdGljIGxvbmcgbG9uZyBkaXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqIHN0YXJ0LCBO
b2RlKiBkZXN0LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEZvY3VzQ2FuZGlkYXRlJiBjYW5k
aWRhdGUpCit7CisgICAgbG9uZyBsb25nJiBkaXN0YW5jZSA9IGNhbmRpZGF0ZS5kaXN0YW5jZTsK
KworICAgIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXIgPSBzdGFydC0+cmVuZGVyZXIoKTsKKyAg
ICBpZiAoIXN0YXJ0UmVuZGVyKQorICAgICAgICByZXR1cm4gY01heERpc3RhbmNlOworCisgICAg
UmVuZGVyT2JqZWN0KiBkZXN0UmVuZGVyID0gZGVzdC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIWRl
c3RSZW5kZXIpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICBJbnRSZWN0IHN0
YXJ0UmVjdCA9IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KHN0YXJ0UmVuZGVyKTsK
KyAgICBJbnRSZWN0IGRlc3RSZWN0ICA9IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50
KGRlc3RSZW5kZXIpOworCisgICAgLy8gVGhlIGJvdW5kaW5nIHJlY3RhbmdsZSBvZiB0d28gY29u
c2VjdXRpdmUgbGlua3MgY291bGQgb3ZlcmxhcCwgc28gd2UgZGVjcmVhc2UgdGhlIHNpemUKKyAg
ICAvLyBvZiBib3RoIHJlY3RhbmdsZXMuCisgICAgc3RhdGljIGNvbnN0IGludCByZWN0RnVkZ2Ug
PSAtMjsKKyAgICBkZWZsYXRlSWZOZWVkZWQoc3RhcnRSZWN0LCBkZXN0UmVjdCwgcmVjdEZ1ZGdl
KTsKKworICAgIGlmICgoc3RhcnRSZWN0LmlzRW1wdHkoKSB8fCBkZXN0UmVjdC5pc0VtcHR5KCkp
CisgICAgICAgIHx8IChkZXN0UmVjdC54KCkgPCAwIHx8IGRlc3RSZWN0LnkoKSA8IDApKQorICAg
ICAgICByZXR1cm4gY01heERpc3RhbmNlOworCisgICAgaWYgKCFpc1JlY3RJbkRpcmVjdGlvbihk
aXJlY3Rpb24sIHN0YXJ0UmVjdCwgZGVzdFJlY3QpKQorICAgICAgICByZXR1cm4gY01heERpc3Rh
bmNlOworCisgICAgLy8gSWYgdGFyZ2V0IHRha2VzIHByZWNlZGVuY2UgdGhlbiB1c2UgaXQgLSBk
aXN0YW5jZSBpcyBub3QgYWx3YXlzIHRoZSBzaG9ydGVzdAorICAgIC8vIGZvciBhIHByZWNlZGVu
dCB0YXJnZXQuCisgICAgaWYgKGFyZVJlY3RzRnVsbHlBbGlnbmVkKGRpcmVjdGlvbiwgc3RhcnRS
ZWN0LCBkZXN0UmVjdCkKKyAgICAgICAgfHwgKGNhbmRpZGF0ZS5ub2RlICYmIGNhbmRpZGF0ZS5w
YXJlbnRBbGlnbm1lbnQgPT0gRnVsbAorICAgICAgICAmJiAoZGVzdC0+ZG9jdW1lbnQoKSA9PSBj
YW5kaWRhdGUubm9kZS0+ZG9jdW1lbnQoKSkpKSB7CisgICAgICAgIC8vIFJlc2V0IGRpc3RhbmNl
IGFzIHdlIGFyZSBub3cgaW4gc3VwZXIgcHJlY2VkZW5jZSBtb2RlLgorICAgICAgICBpZiAoY2Fu
ZGlkYXRlLmFsaWdubWVudCAhPSBGdWxsKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBjTWF4RGlz
dGFuY2U7CisKKyAgICAgICAgbG9uZyBsb25nIHByZWNlZGVudERpc3RhbmNlID0gc3BhdGlhbERp
c3RhbmNlRm9yQWxpZ25lZFJlY3RzKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7Cisg
ICAgICAgIGlmIChkaXN0YW5jZSA+IHByZWNlZGVudERpc3RhbmNlKSB7CisgICAgICAgICAgICBj
YW5kaWRhdGUuYWxpZ25tZW50ID0gRnVsbDsKKyAgICAgICAgICAgIHJldHVybiBwcmVjZWRlbnRE
aXN0YW5jZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChjYW5kaWRhdGUuYWxpZ25tZW50
ID09IEZ1bGwpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICAvLyBJZiB0YXJn
ZXQgdGFrZXMgcHJlY2VkZW5jZSB0aGVuIHVzZSBpdCAtIGRpc3RhbmNlIGlzIG5vdCBhbHdheXMg
dGhlIHNob3J0ZXN0CisgICAgLy8gZm9yIGEgcHJlY2VkZW50IHRhcmdldAorICAgIGlmIChhcmVS
ZWN0c1BhcnRpYWxseUFsaWduZWQoZGlyZWN0aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KSB8fCBj
YW5kaWRhdGUucGFyZW50QWxpZ25tZW50ID09IFBhcnRpYWwpIHsKKyAgICAgICAgbG9uZyBsb25n
IHByZWNlZGVudERpc3RhbmNlID0gc3BhdGlhbERpc3RhbmNlRm9yQWxpZ25lZFJlY3RzKGRpcmVj
dGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7CisKKyAgICAgICAgaWYgKGRpc3RhbmNlID4gcHJl
Y2VkZW50RGlzdGFuY2UpIHsKKyAgICAgICAgICAgIGNhbmRpZGF0ZS5hbGlnbm1lbnQgPSBQYXJ0
aWFsOworICAgICAgICAgICAgcmV0dXJuIHByZWNlZGVudERpc3RhbmNlOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKGNhbmRpZGF0ZS5hbGlnbm1lbnQgPT0gUGFydGlhbCkKKyAgICAgICAg
cmV0dXJuIGNNYXhEaXN0YW5jZTsKKworICAgIHJldHVybiBzcGF0aWFsRGlzdGFuY2UoZGlyZWN0
aW9uLCBzdGFydFJlY3QsIGRlc3RSZWN0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IDMyZDQwNjAuLmI4ZWFiYTQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmgKQEAgLTU4LDYgKzU4LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNGb2N1c2VkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KIAogcHJpdmF0ZToKKyAgICBib29sIGFkdmFu
Y2VGb2N1c0RpcmVjdGlvbmFsbHkoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKKyAg
ICBib29sIGFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9h
cmRFdmVudCosIGJvb2wgaW5pdGlhbEZvY3VzKTsKKwogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBS
ZWZQdHI8RnJhbWU+IG1fZm9jdXNlZEZyYW1lOwogICAgIGJvb2wgbV9pc0FjdGl2ZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIGIvV2ViQ29yZS9wYWdlL0ZvY3Vz
RGlyZWN0aW9uLmgKaW5kZXggMjYxYzc0NS4uNTZkZTU4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0ZvY3VzRGlyZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmgK
QEAgLTI5LDcgKzI5LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0Rp
cmVjdGlvbiB7CiAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZv
Y3VzRGlyZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25Ob25lLAorICAgICAgICBGb2N1c0RpcmVjdGlvblVwLAorICAg
ICAgICBGb2N1c0RpcmVjdGlvbkRvd24sCisgICAgICAgIEZvY3VzRGlyZWN0aW9uTGVmdCwKKyAg
ICAgICAgRm9jdXNEaXJlY3Rpb25SaWdodAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDg3
NzM3ZWUuLjAyYWNjNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysr
IGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtNjQsNiArNjQsNyBAQCBTZXR0aW5nczo6
U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUobnVt
ZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkpCiAgICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUg
KiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dlc3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1f
cGx1Z2luQWxsb3dlZFJ1blRpbWUobnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkKKyAg
ICAsIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseShmYWxzZSkKICAg
ICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChmYWxzZSkKQEAgLTIzOSw2ICsyNDAsMTEgQEAg
dm9pZCBTZXR0aW5nczo6c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9vbCBh
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb20KICAgICBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZp
bGVVUkxzID0gYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7CiB9CiAKK3ZvaWQgU2V0
dGluZ3M6OnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sIGlzU3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkKQoreworICAgIG1faXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgPSBpc1NwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZDsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0SmF2YUVuYWJsZWQo
Ym9vbCBpc0phdmFFbmFibGVkKQogewogICAgIG1faXNKYXZhRW5hYmxlZCA9IGlzSmF2YUVuYWJs
ZWQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCmluZGV4IDczYzU0N2UuLjZkNTg0YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xMTUsNiArMTE1
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgICAgIGJvb2wgamF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0dXJuIG1famF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsgfQogCisgICAgICAgIHZvaWQgc2V0U3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkKGJvb2wpOworICAgICAgICBib29sIGlzU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDsgfQor
CiAgICAgICAgIHZvaWQgc2V0SmF2YUVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgaXNKYXZh
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNKYXZhRW5hYmxlZDsgfQogCkBAIC0zMDYsNiAr
MzA5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVj
b2RlZEltYWdlU2l6ZTsKICAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0b3JhZ2VRdW90YTsKICAg
ICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKKyAgICAgICAgYm9vbCBtX2lz
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJs
ZWQgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKICAg
ICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAxOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuY3BwIGIvV2ViQ29yZS9wYWdlL1NwYXRp
YWxOYXZpZ2F0aW9uVXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjU3Y2NhMGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRp
b25VdGlscy5jcHAKQEAgLTAsMCArMSw0NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgQW50b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisgKgorICog
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU3BhdGlhbE5hdmlnYXRpb25VdGlscy5oIgorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZVRyZWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJIVE1M
RnJhbWVPd25lckVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiTm9k
ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhN
RTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBiZWhhdmUgY29ycmVjdGx5IHdpdGggdHJhbnNmb3Jt
ZWQgZnJhbWVzLgorSW50UmVjdCByZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3REb2N1bWVudChSZW5k
ZXJPYmplY3QqIHJlbmRlcikKK3sKKyAgICBBU1NFUlQocmVuZGVyKTsKKworICAgIE5vZGUqIG5v
ZGUgPSByZW5kZXItPm5vZGUoKTsKKyAgICBEb2N1bWVudCogbWFpbkRvY3VtZW50ID0gbm9kZS0+
ZG9jdW1lbnQoKS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBib29sIHVz
ZVNjcm9sbE9mZnNldCA9ICFpc09mZnNjcmVlblJlY3Qobm9kZSkgJiYgbm9kZS0+ZG9jdW1lbnQo
KSAhPSBtYWluRG9jdW1lbnQ7CisKKyAgICBJbnRSZWN0IHJlY3QocmVuZGVyLT5hYnNvbHV0ZUNs
aXBwZWRPdmVyZmxvd1JlY3QoKSk7CisKKyAgICBGbG9hdFBvaW50IHAocmVuZGVyLT5sb2NhbFRv
QWJzb2x1dGUoKSk7CisKKyAgICAvLyBUaGVyZSBhcmUgY2FzZXMsIG1vc3RseSB3aGVuIHxyZW5k
ZXJ8J3MgYXNzb2NpYXRlZCBub2RlIGlzIG9mZnNjcmVlbiwKKyAgICAvLyBpdCBpcyBzYWZlciB0
byBnZXQgaXRzIHBvc2l0aW9uIHJlZ2FyZGxlc3MgdGhlIGNvbnRhaW5lciBzY3JvbGwgb2Zmc2V0
LgorICAgIGlmICh1c2VTY3JvbGxPZmZzZXQpCisgICAgICAgIGlmIChGcmFtZVZpZXcqIGZyYW1l
VmlldyA9IHJlbmRlci0+bm9kZSgpLT5kb2N1bWVudCgpLT52aWV3KCkpCisgICAgICAgICAgICBy
ZWN0Lm1vdmUoLWZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOworCisgICAgLy8gaGFuZGxlIG5l
c3RlZCBmcmFtZXMuCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSByZW5kZXItPmRvY3VtZW50KCkt
PmZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnBhcmVudCgpKQorICAgICAg
ICBpZiAoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQgPSBmcmFtZS0+b3duZXJF
bGVtZW50KCkpCisgICAgICAgICAgICByZWN0Lm1vdmUob3duZXJFbGVtZW50LT5vZmZzZXRMZWZ0
KCksIG93bmVyRWxlbWVudC0+b2Zmc2V0VG9wKCkpOworCisgICAgcmV0dXJuIHJlY3Q7Cit9CisK
K2Jvb2wgaXNNb3ZpbmdGcm9tT3V0dGVyVG9Jbm5lckRvY3VtZW50KE5vZGUqIGZyb20sIE5vZGUq
IHRvKQoreworICAgIGlmICghZnJvbSB8fCAhdG8pCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQgPSB0by0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5tYWlu
RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gKGZyb20tPmRvY3VtZW50KCkgPT0gbWFp
bkRvY3VtZW50ICYmIGZyb20tPmRvY3VtZW50KCkgIT0gdG8tPmRvY3VtZW50KCkpOworfQorCiti
b29sIGlzTW92aW5nRnJvbUlubmVyVG9PdXR0ZXJEb2N1bWVudChOb2RlKiBmcm9tLCBOb2RlKiB0
bykKK3sKKyAgICBpZiAoIWZyb20gfHwgIXRvKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBEb2N1bWVudCogbWFpbkRvY3VtZW50ID0gdG8tPmRvY3VtZW50KCktPnBhZ2UoKS0+bWFpbkZy
YW1lKCktPmRvY3VtZW50KCk7CisgICAgcmV0dXJuICh0by0+ZG9jdW1lbnQoKSA9PSBtYWluRG9j
dW1lbnQgJiYgZnJvbS0+ZG9jdW1lbnQoKSAhPSB0by0+ZG9jdW1lbnQoKSk7Cit9CisKKy8vIENo
ZWNrcyBpZiB8bm9kZXwgaXMgb2Zmc2NyZWVuIHRoZSB2aXNpYmxlIGFyZWEgKHZpZXdwb3J0KSBv
ZiBpdHMgY29udGFpbmVyIGRvY3VtZW50LgorYm9vbCBpc09mZnNjcmVlblJlY3QoTm9kZSogbm9k
ZSkKK3sKKyAgICAvLyBHZXQgdGhlIGN1cnJlbnQgdmlld3BvcnQgcmVjdCBzbyB3ZSBjYW4gY2hl
Y2sgaWYgZm9jdXNDYW5kaWRhdGUncyByZWN0CisgICAgLy8gaXMgdmlzaWJsZSBiZWZvcmUgYWN0
dWFsbHkgbW92aW5nIHRoZSBmb2N1cyB0byBpdC4gSW4gY2FzZSBpdCBpcyBub3QgdmlzaWJsZSwK
KyAgICAvLyB3ZSBzY3JvbGwgaW4gZGlyZWN0aW9uIGxhdGVyIG9uIGluc3RlYWQuCisgICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCk7CisgICAgaWYgKCFm
cmFtZVZpZXcpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSW50UmVjdCBjb250YWluZXJW
aWV3cG9ydFJlY3QgPSBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOworCisgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXIgPSBub2RlLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRl
Q2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKyAgICByZXR1cm4gIWNvbnRhaW5lclZpZXdwb3J0UmVj
dC5pbnRlcnNlY3RzKHJlY3QpOworfQorCisvLyBJbiBhIGJvdHRvbS11cCB3YXksIHRoaXMgbWV0
aG9kIHRyaWVzIHRvIHNjcm9sbCB8ZnJhbWV8IGluIGEgZ2l2ZW4gZGlyZWN0aW9uCisvLyB8ZGly
ZWN0aW9ufCwgZ29pbmcgdXAgaW4gdGhlIGZyYW1lIHRyZWUgaGllcmFyY2h5IGluIGNhc2UgaXQg
ZG9lcyBub3Qgc3VjY2VlZC4KK2Jvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oRnJhbWUqIGZyYW1lLCBG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgU2Nyb2xsRGlyZWN0aW9uIHNjcm9sbERpcmVjdGlvbjsKKworICAg
IHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAg
ICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbExlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xs
UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25VcDoKKyAgICAg
ICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsVXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxEb3du
OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsUmVjdXJzaXZl
bHkoc2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxCeUxpbmUpOworfQorCitib29sIGlzUmVjdEluRGly
ZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgc3RhcnRSZWN0
LCBjb25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgewor
ICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OiB7CisgICAgICAgIGludCBtaWRkbGUgPSBkZXN0
UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lkdGgoKSkgLyAyOworICAgICAgICByZXR1cm4gKG1p
ZGRsZSA8IHN0YXJ0UmVjdC54KCkpOworICAgIH0KKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmln
aHQ6IHsKKyAgICAgICAgaW50IG1pZGRsZSA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53
aWR0aCgpKSAvIDI7CisgICAgICAgIHJldHVybiAobWlkZGxlICA+IHN0YXJ0UmVjdC54KCkgKyBh
YnMoc3RhcnRSZWN0LndpZHRoKCkpKTsKKyAgICB9CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVw
OiB7CisgICAgICAgIGludCBtaWRkbGUgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVp
Z2h0KCkpIC8gMjsKKyAgICAgICAgcmV0dXJuIChtaWRkbGUgPCBzdGFydFJlY3QueSgpKTsKKyAg
ICB9CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiAoZGVzdFJl
Y3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSA+IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3Rh
cnRSZWN0LmhlaWdodCgpKSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBCYXNlZCBvbiB0aGUg
TUlDUk9CIFNOYXYgbG9naWMgKE1QTC9HTFAvTEdQRyksIGV4Y2VwdGVkIGJ5IHRoZSBEb3duIGxv
Z2ljLgorLy8gVGhpcyBtZXRob2QgY2hlY2tzIGZvciBwcmVmZXJhYmxlIHJlY3QgdG8gbW92ZSBm
b2N1cyB0by4gSW4gZXNzZW5jZSwgdGFyZ2V0cworLy8gd2hvc2UgbWlkZGxlIGZhbGxzIGJldHdl
ZW4gdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVjdC4KK2Jvb2wgYXJlUmVjdHNG
dWxseUFsaWduZWQoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBzdGFy
dFJlY3QsIGNvbnN0IEludFJlY3QmIGRlc3RSZWN0KQoreworICAgIGlmIChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25MZWZ0IHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0KSB7
CisgICAgICAgIGludCBkZXN0TWlkZGxlID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0Lmhl
aWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0Qm90dG9tID0gZGVzdFJlY3QueSgpICsgYWJz
KGRlc3RSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgaW50IGRlc3RFbmQgPSBkZXN0UmVjdC54KCkg
KyBhYnMoZGVzdFJlY3Qud2lkdGgoKSk7CisKKyAgICAgICAgaW50IHN0YXJ0Qm90dG9tID0gc3Rh
cnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpOworICAgICAgICBpbnQgc3RhcnRF
bmQgPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKTsKKworICAgICAgICBp
ZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCAmJiBkZXN0RW5kID4gc3RhcnRSZWN0
LngoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoZGlyZWN0aW9u
ID09IEZvY3VzRGlyZWN0aW9uUmlnaHQgJiYgZGVzdFJlY3QueCgpIDwgc3RhcnRFbmQpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuICgoZGVzdE1pZGRsZSA+PSBz
dGFydFJlY3QueSgpICYmIGRlc3RNaWRkbGUgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICAg
ICAgfHwgKGRlc3RCb3R0b20gPj0gc3RhcnRSZWN0LnkoKSAmJiBkZXN0Qm90dG9tIDw9IHN0YXJ0
Qm90dG9tKQorICAgICAgICAgICAgICAgIHx8IChkZXN0UmVjdC55KCkgPT0gc3RhcnRSZWN0Lnko
KSkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdEJvdHRvbSA9PSBzdGFydEJvdHRvbSkKKyAgICAg
ICAgICAgICAgICB8fCAoZGVzdFJlY3QueSgpIDw9IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRv
bSA+PSBzdGFydEJvdHRvbSkpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNE
aXJlY3Rpb25VcCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAg
IGludCBzdGFydEVuZCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMoc3RhcnRSZWN0LndpZHRoKCkpOwor
ICAgICAgICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LngoKSArIGFicyhkZXN0UmVjdC53aWR0
aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0RW5kID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RS
ZWN0LndpZHRoKCkpOworCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25V
cCAmJiBkZXN0UmVjdC55KCkgPiBzdGFydFJlY3QueSgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duICYmIGRl
c3RSZWN0LnkoKSA8IHN0YXJ0UmVjdC55KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgcmV0dXJuICgoZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueCgpICYmIGRlc3RNaWRk
bGUgPD0gc3RhcnRFbmQpCisgICAgICAgICAgICAgICAgfHwgKGRlc3RSZWN0LngoKSA+PSBzdGFy
dFJlY3QueCgpICYmIGRlc3RSZWN0LngoKSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgICAgICB8
fCAoc3RhcnRSZWN0LngoKSA9PSBkZXN0UmVjdC54KCkpCisgICAgICAgICAgICAgICAgfHwgKHN0
YXJ0RW5kID09IGRlc3RFbmQpCisgICAgICAgICAgICAgICAgfHwgKGRlc3RSZWN0LngoKSA8PSBz
dGFydFJlY3QueCgpICYmIGRlc3RFbmQgPj0gc3RhcnRFbmQpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKKy8vIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB8c3RhcnRSZWN0fCBhbmQg
fGRlc3RSZWN0fCBoYXZlIGEgcGFydGlhbCBpbnRlcnNlY3Rpb24sIGVpdGhlcgorLy8gaG9yaXpv
bnRhbGx5IG9yIHZlcnRpY2FsbHkuCitib29sIGFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZChGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHN0YXJ0UmVjdCwgY29uc3QgSW50
UmVjdCYgZGVzdFJlY3QpCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxl
ZnQgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgaW50IHN0
YXJ0Qm90dG9tID0gc3RhcnRSZWN0LnkoKSArIGFicyhzdGFydFJlY3QuaGVpZ2h0KCkpOworICAg
ICAgICBpbnQgZGVzdE1pZGRsZSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0UmVjdC5oZWlnaHQo
KSkgLyAyOworICAgICAgICBpbnQgZGVzdEJvdHRvbSA9IGRlc3RSZWN0LnkoKSArIGFicyhkZXN0
UmVjdC5oZWlnaHQoKSk7CisKKyAgICAgICAgcmV0dXJuICgoZGVzdFJlY3QueSgpID49IHN0YXJ0
UmVjdC55KCkgJiYgZGVzdFJlY3QueSgpIDw9IHN0YXJ0Qm90dG9tKQorICAgICAgICAgICAgICAg
IHx8IChkZXN0Qm90dG9tID49IHN0YXJ0UmVjdC55KCkgJiYgZGVzdEJvdHRvbSA8PSBzdGFydEJv
dHRvbSkKKyAgICAgICAgICAgICAgICB8fCAoZGVzdE1pZGRsZSA+PSBzdGFydFJlY3QueSgpICYm
IGRlc3RNaWRkbGUgPD0gc3RhcnRCb3R0b20pCisgICAgICAgICAgICAgICAgfHwgKGRlc3RSZWN0
LnkoKSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RSZWN0LnkoKSA8PSBzdGFydEJvdHRvbSkKKyAg
ICAgICAgICAgICAgICB8fCAoZGVzdEJvdHRvbSA+PSBzdGFydFJlY3QueSgpICYmIGRlc3RCb3R0
b20gPD0gc3RhcnRCb3R0b20pKTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uVXAgfHwgZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAg
ICBpbnQgc3RhcnRFbmQgPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53aWR0aCgpKSAv
KiArIGhhbGYgKi87CisgICAgICAgIGludCBkZXN0RW5kID0gZGVzdFJlY3QueCgpICsgYWJzKGRl
c3RSZWN0LndpZHRoKCkpOworCisgICAgICAgIHJldHVybiAoKGRlc3RSZWN0LngoKSA+PSBzdGFy
dFJlY3QueCgpICYmIGRlc3RSZWN0LngoKSA8PSBzdGFydEVuZCkKKyAgICAgICAgICAgICAgICB8
fCAoZGVzdEVuZCA+PSBzdGFydFJlY3QueCgpICYmIGRlc3RFbmQgPD0gc3RhcnRFbmQpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIHNxcnQoKCh4MSAtIHgyKSBeIDIpICsg
KCh5MSAtIHkyKSBeIDIpKQorbG9uZyBsb25nIGV1Y2xpZGllYW5EaXN0YW5jZShjb25zdCBpbnQg
eDEsIGNvbnN0IGludCB5MSwgY29uc3QgaW50IHgyLCBjb25zdCBpbnQgeTIpCit7CisgICAgbG9u
ZyBsb25nIHAgPSBwb3coKHgxIC0geDIpLCAyKSArIHBvdygoeTEgLSB5MiksIDIpOworICAgIHJl
dHVybiBzcXJ0KHApOworfQorCitsb25nIGxvbmcgc3BhdGlhbERpc3RhbmNlRm9yQWxpZ25lZFJl
Y3RzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgc3RhcnRSZWN0LCBj
b25zdCBJbnRSZWN0JiBkZXN0UmVjdCkKK3sKKyAgICBsb25nIGxvbmcgZGlzdGFuY2UgPSBjTWF4
RGlzdGFuY2U7CisgICAgbG9uZyBsb25nIGFsdGVybmF0ZURpc3RhbmNlID0gY01heERpc3RhbmNl
OworCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpIHsKKyAgICAgICAg
aW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCk7CisgICAgICAgIGludCBzdGFydFkgPSBzdGFydFJl
Y3QueSgpICsgYWJzKHN0YXJ0UmVjdC5oZWlnaHQoKSkgLyAyOworICAgICAgICBpbnQgZGVzdFgg
ID0gZGVzdFJlY3QueCgpICsgYWJzKGRlc3RSZWN0LndpZHRoKCkpOworICAgICAgICBpbnQgZGVz
dFkgID0gZGVzdFJlY3QueSgpICsgYWJzKGRlc3RSZWN0LmhlaWdodCgpKSAvIDI7CisKKyAgICAg
ICAgYWx0ZXJuYXRlRGlzdGFuY2UgPSBldWNsaWRpZWFuRGlzdGFuY2Uoc3RhcnRYLCBzdGFydFks
IGRlc3RYLCBkZXN0WSk7CisgICAgICAgIGRpc3RhbmNlID0gZXVjbGlkaWVhbkRpc3RhbmNlKHN0
YXJ0UmVjdC54KCksIHN0YXJ0UmVjdC55KCksIGRlc3RSZWN0LngoKSwgZGVzdFJlY3QueSgpKTsK
KworICAgICAgICBpZiAoYWx0ZXJuYXRlRGlzdGFuY2UgPCBkaXN0YW5jZSAmJiBzdGFydFJlY3Qu
eSgpID09IGRlc3RSZWN0LnkoKSkKKyAgICAgICAgICAgIGRpc3RhbmNlID0gYWx0ZXJuYXRlRGlz
dGFuY2U7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0
KSB7CisgICAgICAgIGludCBzdGFydFggPSBzdGFydFJlY3QueCgpICsgYWJzKHN0YXJ0UmVjdC53
aWR0aCgpKTsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55KCkgKyBhYnMoc3RhcnRS
ZWN0LmhlaWdodCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCk7Cisg
ICAgICAgIGludCBkZXN0WSAgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkp
IC8gMjsKKworICAgICAgICBhbHRlcm5hdGVEaXN0YW5jZSA9IGV1Y2xpZGllYW5EaXN0YW5jZShk
ZXN0WCwgZGVzdFksIHN0YXJ0WCwgc3RhcnRZKTsKKyAgICAgICAgZGlzdGFuY2UgPSBldWNsaWRp
ZWFuRGlzdGFuY2UoZGVzdFJlY3QueCgpLCBkZXN0UmVjdC55KCksIHN0YXJ0UmVjdC54KCksIHN0
YXJ0UmVjdC55KCkpOworCisgICAgICAgIGlmIChhbHRlcm5hdGVEaXN0YW5jZSA8IGRpc3RhbmNl
ICYmIHN0YXJ0UmVjdC55KCkgPT0gZGVzdFJlY3QueSgpKQorICAgICAgICAgICAgZGlzdGFuY2Ug
PSBhbHRlcm5hdGVEaXN0YW5jZTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uVXApIHsKKyAgICAgICAgaW50IHN0YXJ0WCA9IHN0YXJ0UmVjdC54KCkgKyBhYnMo
c3RhcnRSZWN0LndpZHRoKCkpIC8gMjsKKyAgICAgICAgaW50IHN0YXJ0WSA9IHN0YXJ0UmVjdC55
KCk7CisgICAgICAgIGludCBkZXN0WCAgPSBkZXN0UmVjdC54KCkgKyBhYnMoZGVzdFJlY3Qud2lk
dGgoKSkgLyAyOworICAgICAgICBpbnQgZGVzdFkgPSBkZXN0UmVjdC55KCkgKyBhYnMoZGVzdFJl
Y3QuaGVpZ2h0KCkpOworCisgICAgICAgIGFsdGVybmF0ZURpc3RhbmNlID0gZXVjbGlkaWVhbkRp
c3RhbmNlKHN0YXJ0WCwgc3RhcnRZLCBkZXN0WCwgZGVzdFkpOworICAgICAgICBkaXN0YW5jZSA9
IGV1Y2xpZGllYW5EaXN0YW5jZShkZXN0UmVjdC54KCksIGRlc3RSZWN0LnkoKSwgc3RhcnRSZWN0
LngoKSwgc3RhcnRSZWN0LnkoKSk7CisKKyAgICAgICAgaWYgKGFsdGVybmF0ZURpc3RhbmNlIDwg
ZGlzdGFuY2UgJiYgc3RhcnRSZWN0LngoKSA9PSBkZXN0UmVjdC54KCkpCisgICAgICAgICAgICBk
aXN0YW5jZSA9IGFsdGVybmF0ZURpc3RhbmNlOworCisgICAgICAgIGFsdGVybmF0ZURpc3RhbmNl
ID0gKHN0YXJ0UmVjdC55KCkgLSBkZXN0UmVjdC55KCkpOworCisgICAgICAgIGlmIChhbHRlcm5h
dGVEaXN0YW5jZSA8IGRpc3RhbmNlKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBhbHRlcm5hdGVE
aXN0YW5jZTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93
bikgeworICAgICAgICBpbnQgc3RhcnRYID0gc3RhcnRSZWN0LngoKSArIGFicyhzdGFydFJlY3Qu
d2lkdGgoKSkgLyAyOworICAgICAgICBpbnQgc3RhcnRZID0gc3RhcnRSZWN0LnkoKSArIGFicyhz
dGFydFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgaW50IGRlc3RYICA9IGRlc3RSZWN0Lngo
KSArIGFicyhkZXN0UmVjdC53aWR0aCgpKSAvIDI7CisgICAgICAgIGludCBkZXN0WSAgPSBkZXN0
UmVjdC55KCkgKyBhYnMoZGVzdFJlY3QuaGVpZ2h0KCkpIC8gMjsKKworICAgICAgICBhbHRlcm5h
dGVEaXN0YW5jZSA9IGV1Y2xpZGllYW5EaXN0YW5jZShkZXN0WCwgZGVzdFksIHN0YXJ0WCwgc3Rh
cnRZKTsKKyAgICAgICAgZGlzdGFuY2UgPSBldWNsaWRpZWFuRGlzdGFuY2UoZGVzdFJlY3QueCgp
LCBkZXN0UmVjdC55KCksIHN0YXJ0UmVjdC54KCksIHN0YXJ0UmVjdC55KCkpOworCisgICAgICAg
IGlmIChhbHRlcm5hdGVEaXN0YW5jZSA8IGRpc3RhbmNlICYmIHN0YXJ0UmVjdC54KCkgPT0gZGVz
dFJlY3QueCgpKQorICAgICAgICAgICAgZGlzdGFuY2UgPSBhbHRlcm5hdGVEaXN0YW5jZTsKKwor
ICAgICAgICBhbHRlcm5hdGVEaXN0YW5jZSA9IChkZXN0UmVjdC55KCkgLSBzdGFydFJlY3QueSgp
KTsKKworICAgICAgICBpZiAoYWx0ZXJuYXRlRGlzdGFuY2UgPCBkaXN0YW5jZSkKKyAgICAgICAg
ICAgIGRpc3RhbmNlID0gYWx0ZXJuYXRlRGlzdGFuY2U7CisgICAgfQorCisgICAgcmV0dXJuIGFi
cyhkaXN0YW5jZSk7Cit9CisKK2xvbmcgbG9uZyBzcGF0aWFsRGlzdGFuY2UoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBiKQoreworICAg
IGludCB4MSA9IDAsIHkxID0gMCwgeDIgPSAwLCB5MiA9IDA7CisKKyAgICBpZiAoZGlyZWN0aW9u
ID09IEZvY3VzRGlyZWN0aW9uTGVmdCkgeworICAgICAgICAvLyAgfC0tLXwKKyAgICAgICAgLy8g
IHwtLS18CisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwKKyAgICAgICAgLy8g
IHwtLS18ICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAgfC0tLXwKKyAgICAgICAgLy8g
IHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLnkoKSA+IGIueSgpICsgYi5oZWlnaHQo
KSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyBhYm92ZSBhLgorICAgICAgICAgICAg
eDEgPSBhLngoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAgICAgICB4MiA9IGIu
eCgpICsgYi53aWR0aCgpOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVpZ2h0KCk7Cisg
ICAgICAgIH0gZWxzZSBpZiAoYS55KCkgKyBhLmhlaWdodCgpIDwgYi55KCkpIHsKKyAgICAgICAg
ICAgIC8vIHRoZSBiIHJlY3QgaXMgYmVsb3cgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCk7Cisg
ICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAgICAgIHgyID0gYi54
KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHkxID0gMDsKKyAgICAgICAg
ICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisgICAgICAgICAgICB5MiA9IDA7CisgICAgICAg
IH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblJpZ2h0KSB7Cisg
ICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAg
ICAvLworICAgICAgICAvLyAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwK
KyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgICB8LS0tfAorICAgICAgICAvLyAgICAgICAg
IHwtLS18CisgICAgICAgIC8vCisgICAgICAgIGlmIChhLnkoKSA+IGIueSgpICsgYi5oZWlnaHQo
KSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyBhYm92ZSBhLgorICAgICAgICAgICAg
eDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAg
ICAgICB4MiA9IGIueCgpOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVpZ2h0KCk7Cisg
ICAgICAgIH0gZWxzZSBpZiAoYS55KCkgKyBhLmhlaWdodCgpIDwgYi55KCkpIHsKKyAgICAgICAg
ICAgIC8vIHRoZSBiIHJlY3QgaXMgYmVsb3cgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCkgKyBh
LndpZHRoKCk7CisgICAgICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQoKTsKKyAgICAgICAg
ICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0g
MDsKKyAgICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgICAgICB5MiA9IDA7CisgICAgICAg
IH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwKSB7CisgICAg
ICAgIC8vICB8LS0tfCAgfC0tLXwgIHwtLS18CisgICAgICAgIC8vICB8LS0tfCAgfC0tLXwgIHwt
LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8gICAg
ICAgICB8LS0tfAorICAgICAgICAvLworICAgICAgICBpZiAoYS54KCkgPiBiLngoKSArIGIud2lk
dGgoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyB0byB0aGUgbGVmdCBvZiBhLgor
ICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAg
ICAgICB4MiA9IGIueCgpICsgYi53aWR0aCgpOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIu
aGVpZ2h0KCk7CisgICAgICAgIH0gZWxzZSBpZiAoYS54KCkgKyBhLndpZHRoKCkgPCBiLngoKSkg
eworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyB0byB0aGUgcmlnaHQgb2YgYQorICAgICAg
ICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAgICAgIHkxID0gYS55KCk7Cisg
ICAgICAgICAgICB4MiA9IGIueCgpOworICAgICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVpZ2h0
KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBib3RoIGIgYW5kIGEgc2hhcmUg
c29tZSBjb21tb24geCdzLgorICAgICAgICAgICAgeDEgPSAwOworICAgICAgICAgICAgeTEgPSBh
LnkoKTsKKyAgICAgICAgICAgIHgyID0gMDsKKyAgICAgICAgICAgIHkyID0gYi55KCkgKyBiLmhl
aWdodCgpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJl
Y3Rpb25Eb3duKSB7CisgICAgICAgIC8vICAgICAgICAgfC0tLXwKKyAgICAgICAgLy8gICAgICAg
ICB8LS0tfAorICAgICAgICAvLworICAgICAgICAvLyAgfC0tLXwgIHwtLS18ICB8LS0tfAorICAg
ICAgICAvLyAgfC0tLXwgIHwtLS18ICB8LS0tfAorICAgICAgICAvLworICAgICAgICBpZiAoYS54
KCkgPiBiLngoKSArIGIud2lkdGgoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyB0
byB0aGUgbGVmdCBvZiBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHkx
ID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgo
KTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSBpZiAoYS54KCkgKyBh
LndpZHRoKCkgPCBiLngoKSkgeworICAgICAgICAgICAgLy8gdGhlIGIgcmVjdCBpcyB0byB0aGUg
cmlnaHQgb2YgYQorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAg
ICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAg
ICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBi
b3RoIGIgYW5kIGEgc2hhcmUgc29tZSBjb21tb24geCdzLgorICAgICAgICAgICAgeDEgPSAwOwor
ICAgICAgICAgICAgeTEgPSBhLnkoKSArIGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IDA7
CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyBs
b25nIGQgPSBwb3coKHgxIC0geDIpLCAyKSArIHBvdygoeTEgLSB5MiksIDIpOworICAgIGlmIChk
IDwgMCkKKyAgICAgICAgZCAqPSAoLTEpOworCisgICAgcmV0dXJuIGQ7Cit9CisKK3ZvaWQgZGVm
bGF0ZUlmTmVlZGVkKEludFJlY3QmIGEsIEludFJlY3QmIGIsIGludCByZWN0RnVkZ2UpCit7Cisg
ICAgaWYgKCFhLmludGVyc2VjdHMoYikgfHwgYS5jb250YWlucyhiKSB8fCBiLmNvbnRhaW5zKGEp
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBdm9pZCBuZWdhdGl2ZSB3aWR0aCBvciBoZWln
aHQgdmFsdWVzLgorICAgIGlmIChyZWN0RnVkZ2UgPiAwIHx8ICgoYS53aWR0aCgpICsgMiAqIHJl
Y3RGdWRnZSA+IDApICYmIChhLmhlaWdodCgpICsgMiAqIHJlY3RGdWRnZSA+IDApKSkKKyAgICAg
ICAgYS5pbmZsYXRlKHJlY3RGdWRnZSk7CisKKyAgICBpZiAocmVjdEZ1ZGdlID4gMCB8fCAoKGIu
d2lkdGgoKSArIDIgKiByZWN0RnVkZ2UgPiAwKSAmJiAoYi5oZWlnaHQoKSArIDIgKiByZWN0RnVk
Z2UgPiAwKSkpCisgICAgICAgIGIuaW5mbGF0ZShyZWN0RnVkZ2UpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb25V
dGlscy5oIGIvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGI1OGVjCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uVXRpbHMuaApAQCAtMCwwICsxLDExOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0
b29Ad2Via2l0Lm9yZz4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBTcGF0aWFsTmF2aWdhdGlvblV0aWxzX2gKKyNkZWZpbmUg
U3BhdGlhbE5hdmlnYXRpb25VdGlsc19oCisKKyNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgor
CisjaW5jbHVkZSA8bGltaXRzPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
OworY2xhc3MgSW50UmVjdDsKK2NsYXNzIE5vZGU7CitjbGFzcyBSZW5kZXJPYmplY3Q7CisKK3Vz
aW5nIG5hbWVzcGFjZSBzdGQ7CisKK2NvbnN0IGxvbmcgbG9uZyBjTWF4RGlzdGFuY2UgPSBudW1l
cmljX2xpbWl0czxsb25nIGxvbmc+OjptYXgoKTsKKworLy8gU3BhdGlhbGx5IHNwZWFraW5nLCB0
d28gZ2l2ZW4gZWxlbWVudHMgaW4gYSB3ZWIgcGFnZSBjYW4gYmU6CisvLyAxKSBGdWxseSBhbGln
bmVkOiBUaGVyZSBpcyBhIGZ1bGwgaW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlIHJlY3RzLCBlaXRo
ZXIKKy8vICAgIHZlcnRpY2FsbHkgb3IgaG9yaXpvbnRhbGx5LgorLy8KKy8vICogSG9yaXpvbnRh
bGx5ICAgICAgICAqIFZlcnRpY2FsbHkKKy8vICAgIF8KKy8vICAgfF98ICAgICAgICAgICAgICAg
ICAgICBfIF8gXyBfIF8gXworLy8gICB8X3wuLi4uLi4gXyAgICAgICAgICAgfF98X3xffF98X3xf
fAorLy8gICB8X3wgICAgICB8X3wgICAgICAgICAgLiAgICAuCisvLyAgIHxffC4uLi4uLnxffCAg
IE9SICAgICAuICAgIC4KKy8vICAgfF98ICAgICAgfF98ICAgICAgICAgIC4gICAgLgorLy8gICB8
X3wuLi4uLi58X3wgICAgICAgICAgIF8gXyBfIF8KKy8vICAgfF98ICAgICAgICAgICAgICAgICAg
IHxffF98X3xffAorLy8KKy8vCisvLyAyKSBQYXJ0aWFsbHkgYWxpZ25lZDogVGhlcmUgaXMgYSBw
YXJ0aWFsIGludGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSByZWN0cywgZWl0aGVyCisvLyAgICB2ZXJ0
aWNhbGx5IG9yIGhvcml6b250YWxseS4KKy8vCisvLyAqIEhvcml6b250YWxseSAgICAgICAqIFZl
cnRpY2FsbHkKKy8vICAgIF8gICAgICAgICAgICAgICAgICAgICBfIF8gXyBfCisvLyAgIHxffCAg
ICAgICAgICAgICAgICAgICB8X3xffF98X3wKKy8vICAgfF98Li4uLiBfICAgICAgT1IgICAgICAg
ICAgIC4gLgorLy8gICB8X3wgICAgfF98ICAgICAgICAgICAgICAgICAgLiAuCisvLyAgIHxffC4u
Li58X3wgICAgICAgICAgICAgICAgICAuXy5fIF8KKy8vICAgICAgICAgIHxffCAgICAgICAgICAg
ICAgICAgIHxffF98X3wKKy8vICAgICAgICAgIHxffAorLy8KKy8vIDMpIE9yLCBvdGhlcndpc2Us
IG5vdCBhbGlnbmVkIGF0IGFsbC4KKy8vCisvLyAqIEhvcml6b250YWxseSAgICAgICAqIFZlcnRp
Y2FsbHkKKy8vICAgICAgICAgXyAgICAgICAgICAgIF8gXyBfIF8KKy8vICAgICAgICB8X3wgICAg
ICAgICAgfF98X3xffF98ICAgLgorLy8gICAgICAgIHxffCAgICAgICAgICAgICAgICAgIC4gICAu
CisvLyAgIC4uLi4ufF98ICAgICAgICAgICAgICAgICAgLiAgIC4KKy8vICAgICAgICAgICAgICAg
ICAgT1IgICAgICAgICAuICAgLgorLy8gICAgXyAuLi4uLiAgICAgICAgICAgICAgICAgIC4gICAu
XyBfIF8gXyBfCisvLyAgIHxffCAgICAgICAgICAgICAgICAgICAgICAgLiAgIHxffF98X3xffF98
CisvLyAgIHxffAorLy8gICB8X3wKKy8vCisvLyAiVG90YWxseSBBbGlnbmVkIiBlbGVtZW50cyBh
cmUgcHJlZmVyYWJsZSBjYW5kaWRhdGVzIHRvIG1vdmUKKy8vIGZvY3VzIHRvIG92ZXIgIlBhcnRp
YWxseSBBbGlnbmVkIiBvbmVzLCB0aGF0IG9uIGl0cyB0dXJucyBhcmUKKy8vIG1vcmUgcHJlZmVy
YWJsZSB0aGFuICJOb3QgQWxpZ25lZCIuCitlbnVtIEZvY3VzQ2FuZGlkYXRlQWxpZ25tZW50IHsK
KyAgICBOb25lID0gMCwKKyAgICBQYXJ0aWFsLAorICAgIEZ1bGwKK307CisKK3N0cnVjdCBGb2N1
c0NhbmRpZGF0ZSB7CisgICAgRm9jdXNDYW5kaWRhdGUoKQorICAgICAgICA6IG5vZGUoMCkKKyAg
ICAgICAgLCBkaXN0YW5jZShjTWF4RGlzdGFuY2UpCisgICAgICAgICwgcGFyZW50RGlzdGFuY2Uo
Y01heERpc3RhbmNlKQorICAgICAgICAsIGFsaWdubWVudChOb25lKQorICAgICAgICAsIHBhcmVu
dEFsaWdubWVudChOb25lKQorICAgIHsKKyAgICB9CisgICAgTm9kZSogbm9kZTsKKyAgICBsb25n
IGxvbmcgZGlzdGFuY2U7CisgICAgbG9uZyBsb25nIHBhcmVudERpc3RhbmNlOworICAgIEZvY3Vz
Q2FuZGlkYXRlQWxpZ25tZW50IGFsaWdubWVudDsKKyAgICBGb2N1c0NhbmRpZGF0ZUFsaWdubWVu
dCBwYXJlbnRBbGlnbm1lbnQ7Cit9OworCitib29sIGlzTW92aW5nRnJvbU91dHRlclRvSW5uZXJE
b2N1bWVudChOb2RlKiwgTm9kZSopOworYm9vbCBpc01vdmluZ0Zyb21Jbm5lclRvT3V0dGVyRG9j
dW1lbnQoTm9kZSosIE5vZGUqKTsKK2xvbmcgbG9uZyBzcGF0aWFsRGlzdGFuY2VGb3JBbGlnbmVk
UmVjdHMoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7Cits
b25nIGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UmVjdCYpOworYm9vbCBhcmVSZWN0c0Z1bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlv
biwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK2Jvb2wgYXJlUmVjdHNQYXJ0aWFs
bHlBbGlnbmVkKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYp
OworSW50UmVjdCByZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3REb2N1bWVudChSZW5kZXJPYmplY3Qq
KTsKK2Jvb2wgaXNSZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3Qm
LCBjb25zdCBJbnRSZWN0Jik7Citib29sIHNjcm9sbEluRGlyZWN0aW9uKEZyYW1lKiwgRm9jdXNE
aXJlY3Rpb24pOworYm9vbCBpc09mZnNjcmVlblJlY3QoTm9kZSopOwordm9pZCBkZWZsYXRlSWZO
ZWVkZWQoSW50UmVjdCYgYSwgSW50UmVjdCYgYiwgaW50KTsKKworfSAvLyBuYW1zcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBTcGF0aWFsTmF2aWdhdGlvblV0aWxzX2gKLS0gCjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="30764"
          type_id="1"
          status="-"
          setter="eric"
    />
    <flag name="commit-queue"
          id="30765"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49074</attachid>
            <date>2010-02-19 06:41:16 -0800</date>
            <delta_ts>2010-02-24 19:59:32 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v14)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>51652</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAwNGU5NmVhZjVjNGVhNTIxNDJiNjgxMDI5YWMxYmYyMTYzZDYyMGQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogRnJpLCAxOSBGZWIgMjAxMCAwMDowNToxNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0LmNvbT4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl
IGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZlYXR1cmUgWzFdLgpJdCBp
bXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IG9mIFdlYkNvcmUgYnkgZXh0ZW5kaW5n
IHRoZSBiYXNpYyBrZXlib2FyZApuYXZpZ2F0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgKGJhc2Vk
IG9uIFRhYiBmb3J3YXJkIGFuZCBiYWNrd2FyZCkgd2l0aCB0aGUKYWRkaXRpb24gb2YgYSB0d28t
ZGltZW5zaW9uYWwgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBieSB1c2luZyBMZWZ0LCBSaWdodCwg
VXAgYW5kCkRvd24gYXJyb3cga2V5cyB0byBtb3ZlIHRvIHRoZSAibmVhcmVzdCIgZWxlbWVudCBp
biB0aGUgY29ycmVzcG9uZGluZyBkaXJlY3Rpb24uCgpIaWdobGlnaHRzOgoqIEZlYXR1cmUgaXMg
dHVybmVkIG9mZiBieSBkZWZhdWx0IGluIFNldHRpbmdzLiBQb3J0IHNwZWNpZmljIEFQSXMgbmVl
ZCB0byBiZSBhZGRlZAogIGZvciB0b2dnbGluZyBpdCBvbi9vZmYuCiogT25seSBlbGVtZW50cyB2
aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4g
SWYgdGhlCiAgIm5lYXJlc3QiIGlzIG5vdCBpbiB2aWV3cG9ydCBkaW1lbnNpb25zLCB0aGVuIGEg
c2Nyb2xsLWluLWRpcmVjdGlvbiBhY3Rpb24gaXMKICBwZXJmb3JtZWQuCiogVGhlIGxheW91dCB0
ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lwcGVkIGZvciBNYWMs
IFdpbiBhbmQgR3RrKS4KCktub3duIGlzc3VlcyAodG8gYmUgY292ZXJlZCBpbiBmb2xsb3ctdXAg
YnVncyk6CiogQWRkIHBvcnQgc3BlY2lmaWMgaG9va3MgdG8gZWFjaCBEUlQgdG8gZW5hYmxlL2Rp
c2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uLgoqIFN1cHBvcnQgZm9yIHNwYXRpYWwgbmF2aWdhdGlv
biB0aHJvdWdoIGZvcm0gZWxlbWVudHMgKDxpbnB1dD4sIDxzZWxlY3Q+LCBldGMpCiAgaXMgYmUg
YWRkZWQuCiogTWFrZSBuYXZpZ2F0aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkg
d29ya3Mgd2l0aCBhcnJvd3Mga2V5cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCku
CiogTWFrZSBpdCBzdXBwb3J0IG1vZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0g
aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KCiogQW5kcm9p
ZC5tazoKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3JlLmd5cGk6CiogV2ViQ29yZS5wcm86Ciog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgoo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgooV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpmb2N1c0RpcmVjdGlvbkZvcktleSk6CihXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIu
aDoKKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OmFkdmFuY2VGb2N1cyk6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0lu
RG9jdW1lbnRPcmRlcik6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0Rp
cmVjdGlvbmFsbHkpOgooV2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZkNsb3Nlcik6CihX
ZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgoo
V2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlv
bik6CiogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6CihX
ZWJDb3JlOjopOgoqIHBhZ2UvU2V0dGluZ3MuY3BwOgooV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRp
bmdzKToKKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoq
IHBhZ2UvU2V0dGluZ3MuaDoKKFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCk6CiogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6IEFkZGVkLgooV2ViQ29yZTo6
ZGlzdGFuY2VJbkRpcmVjdGlvbik6CihXZWJDb3JlOjpyZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3RE
b2N1bWVudCk6CihXZWJDb3JlOjphbGlnbm1lbnRGb3JSZWN0cyk6CihXZWJDb3JlOjppc0hvcml6
b250YWxNb3ZlKToKKFdlYkNvcmU6OmFyZVJlY3RzRnVsbHlBbGlnbmVkKToKKFdlYkNvcmU6OmFy
ZVJlY3RzUGFydGlhbGx5QWxpZ25lZCk6CihXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2UpOgooV2Vi
Q29yZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6aXNPZmZzY3JlZW5SZWN0KToKKFdl
YkNvcmU6OnNjcm9sbEluRGlyZWN0aW9uKToKKFdlYkNvcmU6OmlzTW92aW5nVG9Sb290RG9jdW1l
bnQpOgooV2ViQ29yZTo6ZGVmbGF0ZUlmTmVlZGVkKToKKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
Lmg6IEFkZGVkLgooV2ViQ29yZTo6KToKKFdlYkNvcmU6OkZvY3VzQ2FuZGlkYXRlOjpGb2N1c0Nh
bmRpZGF0ZSk6CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRy
b2lkLm1rCmluZGV4IGJiOTkxZjMuLjJjZjkzNmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9p
ZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTM0NSwxNiArMzQ1LDE3IEBAIExPQ0FM
X1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvUGFnZS5jcHAgXAogCXBh
Z2UvUGFnZUdyb3VwLmNwcCBcCiAJcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKIAlw
YWdlL1BsdWdpbkhhbHRlci5jcHAgXAogCXBhZ2UvUHJpbnRDb250ZXh0LmNwcCBcCiAJcGFnZS9T
Y3JlZW4uY3BwIFwKIAlwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBcCiAJcGFnZS9TZXR0aW5ncy5j
cHAgXAorCXBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIFwKIAlwYWdlL1VzZXJDb250ZW50VVJM
UGF0dGVybi5jcHAgXAogCXBhZ2UvV2luZG93RmVhdHVyZXMuY3BwIFwKIAlwYWdlL1dvcmtlck5h
dmlnYXRvci5jcHAgXAogCXBhZ2UvWFNTQXVkaXRvci5jcHAgXAogCVwKIAlwYWdlL2FuZHJvaWQv
RHJhZ0NvbnRyb2xsZXJBbmRyb2lkLmNwcCBcCiAJcGFnZS9hbmRyb2lkL0V2ZW50SGFuZGxlckFu
ZHJvaWQuY3BwIFwKIAlcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGM2Yjk5YmQuLjY1ZDMxZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDggKzEsODMgQEAKKzIwMTAtMDIt
MTggIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8
dG9uaWtpdG9vQHdlYmtpdC5jb20+CisgICAgICAgIEJhc2VkIG9uIHRoZSBpbml0aWFsIHdvcmsg
b2YgTWFyY28gQmFyaXNpb25lIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgorCisg
ICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5h
dmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NjYyCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBjb3JlIGxvZ2ljIG9m
IHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJlIFsxXS4KKyAgICAgICAgSXQgaW1wcm92
ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5IGV4dGVuZGluZyB0aGUg
YmFzaWMga2V5Ym9hcmQKKyAgICAgICAgbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxhYmxlIChi
YXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCisgICAgICAgIGFkZGl0
aW9uIG9mIGEgdHdvLWRpbWVuc2lvbmFsIGRpcmVjdGlvbmFsIG5hdmlnYXRpb24gYnkgdXNpbmcg
TGVmdCwgUmlnaHQsIFVwIGFuZAorICAgICAgICBEb3duIGFycm93IGtleXMgdG8gbW92ZSB0byB0
aGUgIm5lYXJlc3QiIGVsZW1lbnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZGlyZWN0aW9uLgorCisg
ICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVyZSBpcyB0dXJuZWQgb2ZmIGJ5IGRl
ZmF1bHQgaW4gU2V0dGluZ3MuIFBvcnQgc3BlY2lmaWMgQVBJcyBuZWVkIHRvIGJlIGFkZGVkCisg
ICAgICAgICAgZm9yIHRvZ2dsaW5nIGl0IG9uL29mZi4KKyAgICAgICAgKiBPbmx5IGVsZW1lbnRz
IHZpZXdlZCBpbiB0aGUgY3VycmVudCB2aWV3cG9ydCBjYW4gaGF2ZSBmb2N1cyBtb3ZlIHRvIGl0
LiBJZiB0aGUKKyAgICAgICAgICAibmVhcmVzdCIgaXMgbm90IGluIHZpZXdwb3J0IGRpbWVuc2lv
bnMsIHRoZW4gYSBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcworICAgICAgICAgIHBlcmZv
cm1lZC4KKyAgICAgICAgKiBUaGUgbGF5b3V0IHRlc3RzIGFkZGVkIHJ1biBvbiBRdCdzIERSVCBv
bmx5IGZvciBub3cgKHNraXBwZWQgZm9yIE1hYywgV2luIGFuZCBHdGspLgorCisgICAgICAgIEtu
b3duIGlzc3VlcyAodG8gYmUgY292ZXJlZCBpbiBmb2xsb3ctdXAgYnVncyk6CisgICAgICAgICog
QWRkIHBvcnQgc3BlY2lmaWMgaG9va3MgdG8gZWFjaCBEUlQgdG8gZW5hYmxlL2Rpc2FibGUgU3Bh
dGlhbCBOYXZpZ2F0aW9uLgorICAgICAgICAqIFN1cHBvcnQgZm9yIHNwYXRpYWwgbmF2aWdhdGlv
biB0aHJvdWdoIGZvcm0gZWxlbWVudHMgKDxpbnB1dD4sIDxzZWxlY3Q+LCBldGMpCisgICAgICAg
ICAgaXMgYmUgYWRkZWQuCisgICAgICAgICogTWFrZSBuYXZpZ2F0aW9uIGtleXMgY3VzdG9taXph
YmxlLiBJdCBjdXJyZW50bHkgd29ya3Mgd2l0aCBhcnJvd3Mga2V5cyBvbmx5CisgICAgICAgICAg
KHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCkuCisgICAgICAgICogTWFrZSBpdCBzdXBwb3J0IG1v
ZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCisKKyAgICAgICAgWzFdIGh0dHA6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvU3BhdGlhbF9uYXZpZ2F0aW9uCisKKyAgICAgICAgKiBBbmRyb2lk
Lm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZvY3VzRGlyZWN0aW9uRm9yS2V5KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKToKKyAgICAg
ICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzKToK
KyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3VzSW5Eb2N1bWVu
dE9yZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZvY3Vz
RGlyZWN0aW9uYWxseSk6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVGb2N1c0NhbmRpZGF0ZUlm
Q2xvc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6ZmluZEZvY3VzYWJs
ZU5vZGVJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmRl
ZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29u
dHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6Oik6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFNw
YXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAg
ICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpkaXN0YW5jZUluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlclJlY3RS
ZWxhdGl2ZVRvUm9vdERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmFsaWdubWVudEZvclJl
Y3RzKToKKyAgICAgICAgKFdlYkNvcmU6OmlzSG9yaXpvbnRhbE1vdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6YXJlUmVjdHNGdWxseUFsaWduZWQpOgorICAgICAgICAoV2ViQ29yZTo6YXJlUmVjdHNQ
YXJ0aWFsbHlBbGlnbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OnNwYXRpYWxEaXN0YW5jZSk6Cisg
ICAgICAgIChXZWJDb3JlOjppc1JlY3RJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpp
c09mZnNjcmVlblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6aXNNb3ZpbmdUb1Jvb3REb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpkZWZsYXRlSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24u
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXND
YW5kaWRhdGU6OkZvY3VzQ2FuZGlkYXRlKToKKwogMjAxMC0wMi0xMiAgQnJldHQgV2lsc29uICA8
YnJldHR3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgog
CiAgICAgICAgIFVwZGF0ZSB0aGUgR29vZ2xlLVVSTCB2ZXJzaW9uIG9mIEtVUkwgYW5kIHRoZSBW
OCBiaW5kaW5ncyB0byB0aGUgbmV3CiAgICAgICAgIGJlaGF2aW9yIG9mIEtVUkwuSXNTdGFuZGFy
ZC4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4
NTkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDE3ZmUzM2YuLjgyOGJiYjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTQwNiwxNiArMTQwNiwx
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGFnZS9QcmludENvbnRleHQuaCBc
CiAJV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgXAogCVdlYkNvcmUvcGFnZS9TY3JlZW4uaCBcCiAJ
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmggXAogCVdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCBcCiAJV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggXAorCVdlYkNv
cmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXAorCVdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCiAJ
V2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNl
clNjcmlwdC5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNlclNjcmlwdFR5cGVzLmggXAogCVdlYkNvcmUv
cGFnZS9Vc2VyU3R5bGVTaGVldC5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXRUeXBl
cy5oIFwKIAlXZWJDb3JlL3BhZ2UvV2ViS2l0UG9pbnQuaCBcCiAJV2ViQ29yZS9wYWdlL1dpbmRv
d0ZlYXR1cmVzLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IGI4MzE2Y2YuLmRlMDE1YzIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODc0LDE2ICsx
ODc0LDE4IEBACiAgICAgICAgICAgICAncGFnZS9QcmludENvbnRleHQuaCcsCiAgICAgICAgICAg
ICAncGFnZS9TY3JlZW4uY3BwJywKICAgICAgICAgICAgICdwYWdlL1NjcmVlbi5oJywKICAgICAg
ICAgICAgICdwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9TZWN1
cml0eU9yaWdpbi5oJywKICAgICAgICAgICAgICdwYWdlL1NlY3VyaXR5T3JpZ2luSGFzaC5oJywK
ICAgICAgICAgICAgICdwYWdlL1NldHRpbmdzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9TZXR0
aW5ncy5oJywKKyAgICAgICAgICAgICdwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgnLAorICAgICAg
ICAgICAgJ3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwJywKICAgICAgICAgICAgICdwYWdlL1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmgnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlclNjcmlwdC5oJywKICAgICAgICAg
ICAgICdwYWdlL1VzZXJTY3JpcHRUeXBlcy5oJywKICAgICAgICAgICAgICdwYWdlL1VzZXJTdHls
ZVNoZWV0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlclN0eWxlU2hlZXRUeXBlcy5oJywKICAg
ICAgICAgICAgICdwYWdlL1dlYktpdFBvaW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvV2luZG93
RmVhdHVyZXMuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IDRjYjQ3OTQuLmVkY2FjNDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNzU1LDE2ICs3NTUsMTcg
QEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9QYWdlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAu
Y3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGx1
Z2luSGFsdGVyLmNwcCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuY3BwIFwKICAgICBwYWdlL1Nl
Y3VyaXR5T3JpZ2luLmNwcCBcCiAgICAgcGFnZS9TY3JlZW4uY3BwIFwKICAgICBwYWdlL1NldHRp
bmdzLmNwcCBcCisgICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXAogICAgIHBhZ2UvVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCiAgICAgcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgXAog
ICAgIHBhZ2UvWFNTQXVkaXRvci5jcHAgXAogICAgIHBsdWdpbnMvUGx1Z2luRGF0YS5jcHAgXAog
ICAgIHBsdWdpbnMvUGx1Z2luQXJyYXkuY3BwIFwKICAgICBwbHVnaW5zL1BsdWdpbi5jcHAgXAog
ICAgIHBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAgXAogICAgIHBsdWdpbnMv
TWltZVR5cGUuY3BwIFwKQEAgLTE0NTgsMTYgKzE0NTksMTcgQEAgSEVBREVSUyArPSBcCiAgICAg
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAgcGFnZS9QYWdlLmggXAogICAgIHBh
Z2UvUGx1Z2luSGFsdGVyLmggXAogICAgIHBhZ2UvUGx1Z2luSGFsdGVyQ2xpZW50LmggXAogICAg
IHBhZ2UvUHJpbnRDb250ZXh0LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXAogICAgIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uaCBcCiAgICAgcGFnZS9TZXR0aW5ncy5oIFwKKyAgICBwYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmggXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuaCBcCiAgICAgcGFnZS9Xb3Jr
ZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGFnZS9YU1NBdWRpdG9yLmggXAogICAgIHBsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uaCBcCiAgICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxp
c3QuaCBcCiAgICAgcGxhdGZvcm0vQXJlbmEuaCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUu
aCBcCiAgICAgcGxhdGZvcm0vQ29udGV4dE1lbnUuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCBjNzdjNGE1Li4yYWM2Yjc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKQEAgLTIwOTYwLDE2ICsyMDk2MCwyNCBAQAogCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxTZXR0aW5ncy5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNldHRpbmdzLmgiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFNwYXRpYWxOYXZpZ2F0
aW9uLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcU3BhdGlhbE5hdmlnYXRpb24uaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHBhZ2VcVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDhhNzc4NjcuLjQ3MjE5OTQgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0yMTUxLDMwICsyMTUxLDU2IEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
dm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2
ZW50KiBldmVudCkKIHsKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50KSB7CiAgICAgICAgIG1fZnJhbWUtPmVkaXRvcigpLT5oYW5kbGVLZXlib2FyZEV2
ZW50KGV2ZW50KTsKICAgICAgICAgaWYgKGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSsw
MDA5IikKICAgICAgICAgICAgIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiA9IGZvY3VzRGly
ZWN0aW9uRm9yS2V5KGV2ZW50LT5rZXlJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgaWYgKGRp
cmVjdGlvbiAhPSBGb2N1c0RpcmVjdGlvbk5vbmUpCisgICAgICAgICAgICAgICAgZGVmYXVsdEFy
cm93RXZlbnRIYW5kbGVyKGRpcmVjdGlvbiwgZXZlbnQpOworICAgICAgICB9CiAKLSAgICAgICAv
LyBwcm92aWRlcyBLQiBuYXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vz
c2liaWxpdHkgdXNlcnMKLSAgICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
aGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkKLSAgICAgICAgICAgaGFuZGxlS2V5Ym9hcmRT
ZWxlY3Rpb25Nb3ZlbWVudChldmVudCk7ICAgICAgIAorICAgICAgICAvLyBwcm92aWRlcyBLQiBu
YXZpZ2F0aW9uIGFuZCBzZWxlY3Rpb24gZm9yIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgdXNlcnMK
KyAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRl
cmZhY2VFbmFibGVkKCkpCisgICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVt
ZW50KGV2ZW50KTsKICAgICB9CiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmtleXByZXNzRXZlbnQpIHsKICAgICAgICAgbV9mcmFtZS0+ZWRpdG9yKCktPmhhbmRsZUtleWJv
YXJkRXZlbnQoZXZlbnQpOwogICAgICAgICBpZiAoZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChldmVudC0+Y2hhckNvZGUoKSA9PSAnICcp
CiAgICAgICAgICAgICBkZWZhdWx0U3BhY2VFdmVudEhhbmRsZXIoZXZlbnQpOwogICAgIH0KIH0K
IAorRm9jdXNEaXJlY3Rpb24gRXZlbnRIYW5kbGVyOjpmb2N1c0RpcmVjdGlvbkZvcktleShjb25z
dCBBdG9taWNTdHJpbmcmIGtleUlkZW50aWZpZXIpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIERvd24sICgiRG93biIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgVXAsICgiVXAiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIExlZnQsICgiTGVmdCIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgUmlnaHQsICgiUmlnaHQiKSk7CisKKyAgICBGb2N1c0RpcmVjdGlvbiByZXRWYWwg
PSBGb2N1c0RpcmVjdGlvbk5vbmU7CisKKyAgICBpZiAoa2V5SWRlbnRpZmllciA9PSBEb3duKQor
ICAgICAgICByZXRWYWwgPSBGb2N1c0RpcmVjdGlvbkRvd247CisgICAgZWxzZSBpZiAoa2V5SWRl
bnRpZmllciA9PSBVcCkKKyAgICAgICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25VcDsKKyAgICBl
bHNlIGlmIChrZXlJZGVudGlmaWVyID09IExlZnQpCisgICAgICAgIHJldFZhbCA9IEZvY3VzRGly
ZWN0aW9uTGVmdDsKKyAgICBlbHNlIGlmIChrZXlJZGVudGlmaWVyID09IFJpZ2h0KQorICAgICAg
ICByZXRWYWwgPSBGb2N1c0RpcmVjdGlvblJpZ2h0OworCisgICAgcmV0dXJuIHJldFZhbDsKK30K
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiBib29sIEV2ZW50SGFuZGxlcjo6ZHJhZ0h5c3Rl
cmVzaXNFeGNlZWRlZChjb25zdCBGbG9hdFBvaW50JiBmbG9hdERyYWdWaWV3cG9ydExvY2F0aW9u
KSBjb25zdAogewogICAgIEludFBvaW50IGRyYWdWaWV3cG9ydExvY2F0aW9uKChpbnQpZmxvYXRE
cmFnVmlld3BvcnRMb2NhdGlvbi54KCksIChpbnQpZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbi55
KCkpOwogICAgIHJldHVybiBkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGRyYWdWaWV3cG9ydExvY2F0
aW9uKTsKIH0KICAgICAKIGJvb2wgRXZlbnRIYW5kbGVyOjpkcmFnSHlzdGVyZXNpc0V4Y2VlZGVk
KGNvbnN0IEludFBvaW50JiBkcmFnVmlld3BvcnRMb2NhdGlvbikgY29uc3QKQEAgLTI0NTksMTYg
KzI0ODUsMzcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihL
ZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHZpZXctPnNj
cm9sbChkaXJlY3Rpb24sIFNjcm9sbEJ5UGFnZSkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0
SGFuZGxlZCgpOwogfQogCiAjZW5kaWYKIAordm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRBcnJv
d0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiBmb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5jdHJsS2V5KCkgfHwgZXZlbnQtPm1ldGFLZXko
KSB8fCBldmVudC0+YWx0R3JhcGhLZXkoKSB8fCBldmVudC0+c2hpZnRLZXkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKSB8fCAhcGFn
ZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gQXJyb3dzIGFuZCBvdGhlciBwb3NzaWJsZSBkaXJlY3Rpb25hbCBuYXZp
Z2F0aW9uIGtleXMgY2FuIGJlIHVzZWQgaW4gZGVzaWduCisgICAgLy8gbW9kZSBlZGl0aW5nLgor
ICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRlc2lnbk1vZGUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5hZHZhbmNlRm9jdXMoZm9j
dXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7
Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJk
RXZlbnQqIGV2ZW50KQogewogICAgIC8vIFdlIHNob3VsZCBvbmx5IGFkdmFuY2UgZm9jdXMgb24g
dGFicyBpZiBubyBzcGVjaWFsIG1vZGlmaWVyIGtleXMgYXJlIGhlbGQgZG93bi4KICAgICBpZiAo
ZXZlbnQtPmN0cmxLZXkoKSB8fCBldmVudC0+bWV0YUtleSgpIHx8IGV2ZW50LT5hbHRHcmFwaEtl
eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgp
OwogICAgIGlmICghcGFnZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aCBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBmNDkwMDczLi40MGI1YTJkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0yMiwxNiArMjIsMTcgQEAKICAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAogI2lmbmRlZiBFdmVudEhhbmRsZXJfaAogI2RlZmluZSBFdmVu
dEhhbmRsZXJfaAogCiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKKyNpbmNsdWRlICJGb2N1c0Rp
cmVjdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlNj
cm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoX19PQkpDX18pCiBjbGFzcyBOU1ZpZXc7CkBAIC0yOTYsMTYgKzI5NywxNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgcGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIGJvb2wgcGFzc1dpZGdldE1vdXNlRG93bkV2
ZW50VG9XaWRnZXQoUmVuZGVyV2lkZ2V0Kik7CiAKICAgICBib29sIHBhc3NNb3VzZURvd25FdmVu
dFRvV2lkZ2V0KFdpZGdldCopOwogICAgIGJvb2wgcGFzc1doZWVsRXZlbnRUb1dpZGdldChQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQqKTsKIAogICAgIHZvaWQgZGVmYXVsdFNwYWNlRXZlbnRI
YW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKICAgICB2b2lkIGRlZmF1bHRUYWJFdmVudEhhbmRsZXIo
S2V5Ym9hcmRFdmVudCopOworICAgIHZvaWQgZGVmYXVsdEFycm93RXZlbnRIYW5kbGVyKEZvY3Vz
RGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgIHZvaWQgYWxsb3dESFRNTERyYWcoYm9vbCYgZmxhZ0RIVE1MLCBib29sJiBmbGFnVUEpIGNv
bnN0OwogI2VuZGlmCiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBjYWxsZWQgYXQgdGhlIGJl
Z2lubmluZyBvZiBoYW5kbGVNb3VzZVVwIGFuZCBoYW5kbGVEcmFnLiAgCiAgICAgLy8gSWYgdGhl
eSByZXR1cm4gdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhhdCB0aGV5IGhhdmUgY29uc3VtZWQgdGhlIGV2
ZW50LgogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJik7CkBAIC0zMTgsMTYgKzMyMCwxOCBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWco
Tm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpOwogI2VuZGlmCiAK
ICAgICB2b2lkIHVwZGF0ZUxhc3RTY3JvbGxiYXJVbmRlck1vdXNlKFNjcm9sbGJhciosIGJvb2wp
OwogICAgIAogICAgIHZvaWQgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogCisgICAgRm9j
dXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJik7CisK
ICAgICBib29sIGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVzRHJh
Z2dpbmc7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNfXykgJiYgIUVO
QUJMRShFWFBFUklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKICAgICBOU1ZpZXcgKm1vdXNlRG93
blZpZXdJZlN0aWxsR29vZCgpOwogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGN1cnJlbnRQbGF0
Zm9ybU1vdXNlRXZlbnQoKSBjb25zdDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CmluZGV4IGJkZDMxNTEuLjU4ZTY3ODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC00
NCwyMiArNDQsMjQgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAi
U2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAi
U3BhdGlhbE5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYv
UGxhdGZvcm0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogc3RhdGljIGlubGluZSB2b2lkIGRpc3Bh
dGNoRXZlbnRzT25XaW5kb3dBbmRGb2N1c2VkTm9kZShEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wg
Zm9jdXNlZCkKIHsKICAgICAvLyBJZiB3ZSBoYXZlIGEgZm9jdXNlZCBub2RlIHdlIHNob3VsZCBk
aXNwYXRjaCBibHVyIG9uIGl0IGJlZm9yZSB3ZSBibHVyIHRoZSB3aW5kb3cuCiAgICAgLy8gSWYg
d2UgaGF2ZSBhIGZvY3VzZWQgbm9kZSB3ZSBzaG91bGQgZGlzcGF0Y2ggZm9jdXMgb24gaXQgYWZ0
ZXIgd2UgZm9jdXMgdGhlIHdpbmRvdy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjcxMDUKICAgICBpZiAoIWZvY3VzZWQgJiYgZG9jdW1lbnQtPmZvY3Vz
ZWROb2RlKCkpCiAgICAgICAgIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpLT5kaXNwYXRjaEJsdXJF
dmVudCgpOwpAQCAtMTQ4LDE2ICsxNTAsMzQgQEAgc3RhdGljIE5vZGUqIGRlZXBGb2N1c2FibGVO
b2RlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgTm9kZSogbm9kZSwgS2V5Ym9hcmRFdmUKIAog
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiBkaXJl
Y3Rpb24sIEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIHJldHVybiBhZHZhbmNlRm9jdXMo
ZGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CiB9CiAKIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwg
Ym9vbCBpbml0aWFsRm9jdXMpCiB7CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNl
IEZvY3VzRGlyZWN0aW9uRm9yd2FyZDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6
CisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBl
dmVudCwgaW5pdGlhbEZvY3VzKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAg
IGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzRGly
ZWN0aW9uYWxseShkaXJlY3Rpb24sIGV2ZW50KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCit7
CiAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJUKGZy
YW1lKTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAg
IE5vZGUqIGN1cnJlbnROb2RlID0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CiAgICAgLy8gRklY
TUU6IE5vdCBxdWl0ZSBjb3JyZWN0IHdoZW4gaXQgY29tZXMgdG8gZm9jdXMgdHJhbnNpdGlvbnMg
bGVhdmluZy9lbnRlcmluZyB0aGUgV2ViVmlldyBpdHNlbGYKICAgICBib29sIGNhcmV0QnJvd3Np
bmcgPSBmb2N1c2VkT3JNYWluRnJhbWUoKS0+c2V0dGluZ3MoKS0+Y2FyZXRCcm93c2luZ0VuYWJs
ZWQoKTsKIApAQCAtMjUyLDE2ICsyNzIsMTU2IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZh
bmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVuCiAg
ICAgICAgIGlmIChmcmFtZS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCiAg
ICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
OwogICAgIH0KIAogICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+Zm9jdXMoZmFsc2Up
OwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIEZvY3VzQ29udHJvbGxlcjo6YWR2YW5jZUZv
Y3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQq
IGV2ZW50KQoreworICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOworICAg
IEFTU0VSVChmcmFtZSk7CisgICAgRG9jdW1lbnQqIGZvY3VzZWREb2N1bWVudCA9IGZyYW1lLT5k
b2N1bWVudCgpOworICAgIGlmICghZm9jdXNlZERvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBOb2RlKiBmb2N1c2VkTm9kZSA9IGZvY3VzZWREb2N1bWVudC0+Zm9jdXNlZE5v
ZGUoKTsKKyAgICBpZiAoIWZvY3VzZWROb2RlKSB7CisgICAgICAgIC8vIEp1c3QgbW92ZSB0byB0
aGUgZmlyc3QgZm9jdXNhYmxlIG5vZGUuCisgICAgICAgIEZvY3VzRGlyZWN0aW9uIHRhYkRpcmVj
dGlvbiA9IChGb2N1c0RpcmVjdGlvblVwIHx8IGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxl
ZnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzRGlyZWN0
aW9uRm9yd2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ7CisgICAgICAgIC8vICdpbml0aWFs
Rm9jdXMnIGlzIHNldCB0byB0cnVlIHNvIHRoZSBjaHJvbWUgaXMgbm90IGZvY3VzZWQuCisgICAg
ICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIodGFiRGlyZWN0aW9uLCBldmVu
dCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gTW92ZSB1cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVk
IGZyYW1lcy4KKyAgICBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRvcCgpOworCisgICAgRm9jdXND
YW5kaWRhdGUgZm9jdXNDYW5kaWRhdGU7CisgICAgZmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlv
bihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUsIGRpcmVjdGlvbiwgZXZlbnQsIGZvY3Vz
Q2FuZGlkYXRlKTsKKworICAgIE5vZGUqIG5vZGUgPSBmb2N1c0NhbmRpZGF0ZS5ub2RlOworICAg
IGlmICghbm9kZSB8fCAhbm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIC8vIEZJWE1F
OiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3VtZW50IGhlcmUuCisgICAgICAgIEZyYW1l
KiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOworICAgICAgICBzY3JvbGxJbkRpcmVjdGlv
bihmcmFtZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IC8vIEluIG9yZGVyIHRvIGF2b2lkIGNyYXp5IGp1bXAgYmV0d2VlbiBsaW5rcyB0aGF0IGFyZSBl
aXRoZXIgZmFyIGF3YXkgZnJvbSBlYWNoIG90aGVyLAorICAgIC8vIG9yIGp1c3Qgbm90IGN1cnJl
bnRseSB2aXNpYmxlLCBsZXRzIGRvIGEgc2Nyb2xsIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24gYW5k
IGJhaWwgb3V0CisgICAgLy8gaWYgfG5vZGV8IGVsZW1lbnQgaXMgbm90IGluIHRoZSB2aWV3cG9y
dC4KKyAgICBpZiAoaXNPZmZzY3JlZW5SZWN0KG5vZGUpKSB7CisgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKS0+ZnJhbWUoKTsKKyAgICAgICAgc2Nyb2xsSW5E
aXJlY3Rpb24oZnJhbWUsIGRpcmVjdGlvbik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIERvY3VtZW50KiBuZXdEb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCk7CisKKyAgICBp
ZiAobmV3RG9jdW1lbnQgIT0gZm9jdXNlZERvY3VtZW50KSB7CisgICAgICAgIC8vIEZvY3VzIGlz
IGdvaW5nIGF3YXkgZnJvbSB0aGUgb3JpZ2luYWxseSBmb2N1c2VkIGRvY3VtZW50LCBzbyBjbGVh
ciB0aGUgZm9jdXNlZCBub2RlLgorICAgICAgICBmb2N1c2VkRG9jdW1lbnQtPnNldEZvY3VzZWRO
b2RlKDApOworICAgIH0KKworICAgIGlmIChuZXdEb2N1bWVudCkKKyAgICAgICAgc2V0Rm9jdXNl
ZEZyYW1lKG5ld0RvY3VtZW50LT5mcmFtZSgpKTsKKworICAgIHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihub2RlKS0+Zm9jdXMoZmFsc2UpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIHVwZGF0
ZUZvY3VzQ2FuZGlkYXRlSWZDbG9zZXIoTm9kZSogZm9jdXNlZE5vZGUsIE5vZGUqIGNhbmRpZGF0
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGlzdGFuY2Us
IEZvY3VzQ2FuZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpCit7CisgICAgLy8gQmFpbCBv
dXQgaWYgfGRpc3RhbmNlfCBpcyBiaWdnZXIgdGhhbiB0aGUgY3VycmVudCBjbG9zZXN0IGNhbmRp
ZGF0ZS4KKyAgICBpZiAoZGlzdGFuY2UgPj0gY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNl
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB8Zm9jdXNlZE5vZGV8IGFuZCB8Y2FuZGlk
YXRlfCBhcmUgaW4gdGhlIHNhbWUgZG9jdW1lbnQgQU5ECisgICAgLy8gY3VycmVudCB8Y2xvc2Vz
dEZvY3VzQ2FuZGlkYWR0ZXwgaXMgbm90IGluIGFuIHtpfWZyYW1lIHRoYXQgaXMKKyAgICAvLyBw
cmVmZXJhYmxlIHRvIGdldCBmb2N1c2VkLgorICAgIGlmIChmb2N1c2VkTm9kZS0+ZG9jdW1lbnQo
KSA9PSBjYW5kaWRhdGUtPmRvY3VtZW50KCkKKyAgICAgICAgJiYgZGlzdGFuY2UgPCBjbG9zZXN0
Rm9jdXNDYW5kaWRhdGUucGFyZW50RGlzdGFuY2UpIHsKKyAgICAgICAgY2xvc2VzdEZvY3VzQ2Fu
ZGlkYXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5k
aXN0YW5jZSA9IGRpc3RhbmNlOworICAgICAgICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUucGFyZW50
RGlzdGFuY2UgPSBjTWF4RGlzdGFuY2U7CisgICAgfSBlbHNlIGlmIChmb2N1c2VkTm9kZS0+ZG9j
dW1lbnQoKSAhPSBjYW5kaWRhdGUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIHxm
b2N1c2VkTm9kZXwgaXMgaW4gYW4gaW5uZXIgZG9jdW1lbnQgYW5kIHRoZSB8Y2FuZGlkYXRlfCBp
cworICAgICAgICAvLyBpbiBhIGRpZmZlcmVudCBkb2N1bWVudCwgd2Ugb25seSBjb25zaWRlciB0
byBjaGFuZ2UgZm9jdXMgaWYgdGhlcmUgaXMKKyAgICAgICAgLy8gbm90IGFub3RoZXIgYWxyZWFk
eSBnb29kIGZvY3VzYWJsZSBjYW5kaWRhdGUgaW4gdGhlIHNhbWUgZG9jdW1lbnQgYXMKKyAgICAg
ICAgLy8gfGZvY3VzZWROb2RlfC4KKyAgICAgICAgaWYgKCEoaXNNb3ZpbmdUb1Jvb3REb2N1bWVu
dChmb2N1c2VkTm9kZSwgY2FuZGlkYXRlKQorICAgICAgICAgICAgJiYgKGNsb3Nlc3RGb2N1c0Nh
bmRpZGF0ZS5ub2RlCisgICAgICAgICAgICAmJiAoZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgPT0g
Y2xvc2VzdEZvY3VzQ2FuZGlkYXRlLm5vZGUtPmRvY3VtZW50KCkpKSkpIHsKKyAgICAgICAgICAg
IGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAgICAgICAgY2xv
c2VzdEZvY3VzQ2FuZGlkYXRlLmRpc3RhbmNlID0gZGlzdGFuY2U7CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3ZvaWQgRm9jdXNDb250cm9sbGVyOjpmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9u
KERvY3VtZW50KiBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5vZGUqIGZvY3VzZWROb2RlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Ym9h
cmRFdmVudCogZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKQoreworICAg
IEFTU0VSVChkb2N1bWVudCk7CisKKyAgICAvLyBXYWxrIGFsbCB0aGUgY2hpbGQgbm9kZXMgYW5k
IHVwZGF0ZSBmb2N1c0NhbmRpZGF0ZSBpZiB3ZSBmaW5kIGEgbmVhcmVyIG5vZGUuCisgICAgZm9y
IChOb2RlKiBjYW5kaWRhdGUgPSBkb2N1bWVudC0+Zmlyc3RDaGlsZCgpOyBjYW5kaWRhdGU7IGNh
bmRpZGF0ZSA9IGNhbmRpZGF0ZS0+dHJhdmVyc2VOZXh0Tm9kZSgpKSB7CisgICAgICAgIC8vIElu
bmVyIGRvY3VtZW50cyBjYXNlLgorICAgICAgICBpZiAoY2FuZGlkYXRlLT5pc0ZyYW1lT3duZXJF
bGVtZW50KCkpCisgICAgICAgICAgICBkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihm
b2N1c2VkTm9kZSwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5k
aWRhdGUpOworICAgICAgICBlbHNlIGlmIChjYW5kaWRhdGUgIT0gZm9jdXNlZE5vZGUgJiYgY2Fu
ZGlkYXRlLT5pc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KSkgeworICAgICAgICAgICAgbG9uZyBs
b25nIGRpc3RhbmNlID0gZGlzdGFuY2VJbkRpcmVjdGlvbihmb2N1c2VkTm9kZSwgY2FuZGlkYXRl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aXJlY3Rpb24sIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CisgICAgICAgICAgICB1cGRhdGVGb2N1
c0NhbmRpZGF0ZUlmQ2xvc2VyKGZvY3VzZWROb2RlLCBjYW5kaWRhdGUsIGRpc3RhbmNlLCBjbG9z
ZXN0Rm9jdXNDYW5kaWRhdGUpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEZvY3VzQ29u
dHJvbGxlcjo6ZGVlcEZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oTm9kZSogZm9jdXNlZE5v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTm9kZSogY2FuZGlkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZEV2ZW50
KiBldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlKQoreworICAgIEhU
TUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVPd25lckVs
ZW1lbnQqPihjYW5kaWRhdGUpOworICAgIGlmICghb3duZXItPmNvbnRlbnRGcmFtZSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBEb2N1bWVudCogaW5uZXJEb2N1bWVudCA9IG93bmVyLT5jb250
ZW50RnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWlubmVyRG9jdW1lbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmIChpbm5lckRvY3VtZW50ID09IGZvY3VzZWROb2RlLT5kb2N1bWVu
dCgpKQorICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGlubmVyRG9jdW1lbnQs
IGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpOwor
ICAgIGVsc2UgeworICAgICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCB7aX1mcmFtZSBlbGVt
ZW50IGl0c2VsZiBpcyBhIGdvb2QgY2FuZGlkYXRlCisgICAgICAgIC8vIHRvIG1vdmUgZm9jdXMg
dG8uIElmIGl0IGlzLCB0aGVuIHdlIHRyYXZlcnNlIGl0cyBpbm5lciBub2Rlcy4KKyAgICAgICAg
Ly8gTGV0cyBwYXNzIGEgY29weSBvZiB0aGUgYmVzdCBjYW5kaWRhdGUsIHRvIG5vdCBnZXQgZm9v
bGVkIGJ5IGEKKyAgICAgICAgLy8gZnJhbWUgd2l0aG91dCBmb2N1c2FibGUgZWxlbWVudHMuCisg
ICAgICAgIEZvY3VzQ2FuZGlkYXRlIGZvY3VzQ2FuZGlkYXRlQ29weSA9IGNsb3Nlc3RGb2N1c0Nh
bmRpZGF0ZTsKKyAgICAgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gZGlzdGFuY2VJbkRpcmVjdGlv
bihmb2N1c2VkTm9kZSwgY2FuZGlkYXRlLCBkaXJlY3Rpb24sIGZvY3VzQ2FuZGlkYXRlQ29weSk7
CisgICAgICAgIGlmIChkaXN0YW5jZSA8IGZvY3VzQ2FuZGlkYXRlQ29weS5kaXN0YW5jZSkgewor
ICAgICAgICAgICAgZm9jdXNDYW5kaWRhdGVDb3B5LnBhcmVudEFsaWdubWVudCA9IGZvY3VzQ2Fu
ZGlkYXRlQ29weS5hbGlnbm1lbnQ7CisgICAgICAgICAgICBmb2N1c0NhbmRpZGF0ZUNvcHkucGFy
ZW50RGlzdGFuY2UgPSBkaXN0YW5jZTsKKworICAgICAgICAgICAgZmluZEZvY3VzYWJsZU5vZGVJ
bkRpcmVjdGlvbihpbm5lckRvY3VtZW50LCBmb2N1c2VkTm9kZSwgZGlyZWN0aW9uLCBldmVudCwg
Zm9jdXNDYW5kaWRhdGVDb3B5KTsKKworICAgICAgICAgICAgLy8gSWYgd2UgcmVhbGx5IGhhdmUg
YW4gaW5uZXIgY2xvc2VyIGZvY3VzIGNhbmRpZGF0ZSBub2RlLCB0YWtlIGl0LgorICAgICAgICAg
ICAgaWYgKGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5ub2RlICE9IGZvY3VzQ2FuZGlkYXRlQ29weS5u
b2RlKQorICAgICAgICAgICAgICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSA9IGZvY3VzQ2FuZGlk
YXRlQ29weTsKKyAgICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIGJvb2wgcmVsaW5xdWlzaGVz
RWRpdGluZ0ZvY3VzKE5vZGUgKm5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIEFTU0VS
VChub2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpKTsKIAogICAgIE5vZGUqIHJvb3QgPSBub2RlLT5y
b290RWRpdGFibGVFbGVtZW50KCk7CiAgICAgRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQo
KS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFyb290KQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
CmluZGV4IDMyZDQwNjAuLjc1NTkxYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTI4LDIw
ICsyOCwyMiBAQAogCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEZyYW1lOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwor
c3RydWN0IEZvY3VzQ2FuZGlkYXRlOwogCiBjbGFzcyBGb2N1c0NvbnRyb2xsZXIgOiBwdWJsaWMg
Tm9uY29weWFibGUgewogcHVibGljOgogICAgIEZvY3VzQ29udHJvbGxlcihQYWdlKik7CiAKICAg
ICB2b2lkIHNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CiAgICAgRnJhbWUqIGZv
Y3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9CiAgICAg
RnJhbWUqIGZvY3VzZWRPck1haW5GcmFtZSgpOwpAQCAtNTMsMTYgKzU1LDIyIEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wpOwogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7
IHJldHVybiBtX2lzQWN0aXZlOyB9CiAKICAgICB2b2lkIHNldEZvY3VzZWQoYm9vbCk7CiAgICAg
Ym9vbCBpc0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogCiBwcml2YXRl
OgorICAgIGJvb2wgYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShGb2N1c0RpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCopOworICAgIGJvb2wgYWR2YW5jZUZvY3VzSW5Eb2N1bWVudE9yZGVyKEZvY3Vz
RGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgYm9vbCBpbml0aWFsRm9jdXMpOworCisgICAgdm9p
ZCBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKERvY3VtZW50KiwgTm9kZSosIEZvY3VzRGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50KiwgRm9jdXNDYW5kaWRhdGUmKTsKKyAgICB2b2lkIGRlZXBG
aW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKE5vZGUqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqLCBGb2N1c0NhbmRpZGF0ZSYpOworCiAgICAgUGFnZSogbV9wYWdlOwog
ICAgIFJlZlB0cjxGcmFtZT4gbV9mb2N1c2VkRnJhbWU7CiAgICAgYm9vbCBtX2lzQWN0aXZlOwog
ICAgIGJvb2wgbV9pc0ZvY3VzZWQ7CiAgICAgYm9vbCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCmluZGV4IDI2
MWM3NDUuLjU2ZGU1ODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5o
CisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0yNCwxMyArMjQsMTggQEAK
ICAqLwogCiAjaWZuZGVmIEZvY3VzRGlyZWN0aW9uX2gKICNkZWZpbmUgRm9jdXNEaXJlY3Rpb25f
aAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVjdGlvbiB7CiAgICAg
ICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3VzRGlyZWN0aW9uQmFj
a3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCwKKyAgICAgICAgRm9jdXNEaXJl
Y3Rpb25Ob25lLAorICAgICAgICBGb2N1c0RpcmVjdGlvblVwLAorICAgICAgICBGb2N1c0RpcmVj
dGlvbkRvd24sCisgICAgICAgIEZvY3VzRGlyZWN0aW9uTGVmdCwKKyAgICAgICAgRm9jdXNEaXJl
Y3Rpb25SaWdodAogICAgIH07CiB9CiAKICNlbmRpZiAvLyBGb2N1c0RpcmVjdGlvbl9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAppbmRleCBjODJiMjM0Li4yZDAyNmJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTU5LDE2ICs1OSwx
NyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fdGV4dERpcmVjdGlv
blN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2Fs
bHlJbmNsdWRlZCkKICAgICAsIG1fbWluaW11bUZvbnRTaXplKDApCiAgICAgLCBtX21pbmltdW1M
b2dpY2FsRm9udFNpemUoMCkKICAgICAsIG1fZGVmYXVsdEZvbnRTaXplKDApCiAgICAgLCBtX2Rl
ZmF1bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX21heGltdW1EZWNvZGVkSW1hZ2VTaXplKG51
bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VRdW90YSg1
ICogMTAyNCAqIDEwMjQpICAvLyBTdWdnZXN0ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCiAgICAgLCBt
X3BsdWdpbkFsbG93ZWRSdW5UaW1lKG51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCisg
ICAgLCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0phdmFF
bmFibGVkKGZhbHNlKQogICAgICwgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoZmFsc2UpCiAg
ICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2NhcmV0QnJvd3Np
bmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9hcmVJbWFnZXNFbmFibGVkKHRydWUpCiAgICAgLCBt
X2FyZVBsdWdpbnNFbmFibGVkKGZhbHNlKQogICAgICwgbV9kYXRhYmFzZXNFbmFibGVkKGZhbHNl
KQogICAgICwgbV9sb2NhbFN0b3JhZ2VFbmFibGVkKGZhbHNlKQpAQCAtMjQxLDE2ICsyNDIsMjEg
QEAgdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoYm9v
bCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb20KICAgICBtX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzID0gYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7CiB9CiAKIHZvaWQg
U2V0dGluZ3M6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMcykKIHsKICAgICBtX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9
IGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpCit7
CisgICAgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA9IGlzU3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkOworfQorCiB2b2lkIFNldHRpbmdzOjpzZXRKYXZhRW5hYmxlZChib29sIGlzSmF2YUVu
YWJsZWQpCiB7CiAgICAgbV9pc0phdmFFbmFibGVkID0gaXNKYXZhRW5hYmxlZDsKIH0KIAogdm9p
ZCBTZXR0aW5nczo6c2V0SW1hZ2VzRW5hYmxlZChib29sIGFyZUltYWdlc0VuYWJsZWQpCiB7CiAg
ICAgbV9hcmVJbWFnZXNFbmFibGVkID0gYXJlSW1hZ2VzRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggNjY0
OGEwOC4uYjcyNjJiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTExMywxNiArMTEzLDE5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcygp
IGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM7IH0KIAog
ICAgICAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhib29sKTsKICAgICAg
ICAgYm9vbCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoKSBjb25zdCB7IHJldHVybiBtX2Fs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczsgfQogCiAgICAgICAgIHZvaWQgc2V0SmF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sKTsKICAgICAgICAgYm9vbCBqYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OyB9CiAKKyAgICAgICAgdm9pZCBzZXRTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CisgICAgICAgIGJvb2wgaXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
OyB9CisKICAgICAgICAgdm9pZCBzZXRKYXZhRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBp
c0phdmFFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0phdmFFbmFibGVkOyB9CiAKICAgICAg
ICAgdm9pZCBzZXRJbWFnZXNFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGFyZUltYWdlc0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FyZUltYWdlc0VuYWJsZWQ7IH0KIAogICAgICAgICB2
b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGFyZVBsdWdpbnNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcmVQbHVnaW5zRW5hYmxlZDsgfQpAQCAtMzA3LDE2ICsz
MTAsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yIG1fdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
cjsKICAgICAgICAgaW50IG1fbWluaW11bUZvbnRTaXplOwogICAgICAgICBpbnQgbV9taW5pbXVt
TG9naWNhbEZvbnRTaXplOwogICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAg
IGludCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplOwogICAgICAgICBzaXplX3QgbV9tYXhpbXVtRGVj
b2RlZEltYWdlU2l6ZTsKICAgICAgICAgdW5zaWduZWQgbV9sb2NhbFN0b3JhZ2VRdW90YTsKICAg
ICAgICAgdW5zaWduZWQgbV9wbHVnaW5BbGxvd2VkUnVuVGltZTsKKyAgICAgICAgYm9vbCBtX2lz
U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJs
ZWQgOiAxOwogICAgICAgICBib29sIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IDogMTsKICAg
ICAgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1f
Y2FyZXRCcm93c2luZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYXJlSW1hZ2VzRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hcmVQbHVnaW5zRW5hYmxlZCA6IDE7CiAgICAgICAgIGJv
b2wgbV9kYXRhYmFzZXNFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2xvY2FsU3RvcmFnZUVu
YWJsZWQgOiAxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNw
cCBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYTllNzliNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKQEAgLTAsMCArMSw0NTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQW50b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5v
cmc+CisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKKworI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVk
ZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1
ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
bG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKTsKK0ludFJlY3QgcmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9jdW1l
bnQoUmVuZGVyT2JqZWN0Kik7CitSZWN0c0FsaWdubWVudCBhbGlnbm1lbnRGb3JSZWN0cyhGb2N1
c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK2Jvb2wgYXJlUmVj
dHNGdWxseUFsaWduZWQoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRS
ZWN0Jik7Citib29sIGFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK2Jvb2wgaXNSZWN0SW5EaXJlY3Rpb24oRm9j
dXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CisKKy8vIEZJWE1F
X3RvbmlraXRvbzogRm9jdXNDYW5kaWRhdGUgZGlzdGFuY2VEYXRhRm9yTm9kZShzdGFydCwgZGVz
dCwgZGlyZWN0aW9uKQorbG9uZyBsb25nIGRpc3RhbmNlSW5EaXJlY3Rpb24oTm9kZSogc3RhcnQs
IE5vZGUqIGRlc3QsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jdXNDYW5kaWRhdGUmIGNh
bmRpZGF0ZSkKK3sKKyAgICBsb25nIGxvbmcmIGRpc3RhbmNlID0gY2FuZGlkYXRlLmRpc3RhbmNl
OworCisgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJlcigpOwor
ICAgIGlmICghc3RhcnRSZW5kZXIpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAg
ICBSZW5kZXJPYmplY3QqIGRlc3RSZW5kZXIgPSBkZXN0LT5yZW5kZXJlcigpOworICAgIGlmICgh
ZGVzdFJlbmRlcikKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0YW5jZTsKKworICAgIEludFJlY3Qg
c3RhcnRSZWN0ID0gcmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9jdW1lbnQoc3RhcnRSZW5kZXIp
OworICAgIEludFJlY3QgZGVzdFJlY3QgID0gcmVuZGVyUmVjdFJlbGF0aXZlVG9Sb290RG9jdW1l
bnQoZGVzdFJlbmRlcik7CisKKyAgICAvLyBUaGUgYm91bmRpbmcgcmVjdGFuZ2xlIG9mIHR3byBj
b25zZWN1dGl2ZSBub2RlcyBjYW4gb3ZlcmxhcC4gSW4gc3VjaCBjYXNlcywKKyAgICAvLyBkZWZs
YXRlIGJvdGguCisgICAgc3RhdGljIGNvbnN0IGludCBmdWRnZUZhY3RvciA9IC0yOworICAgIGRl
ZmxhdGVJZk5lZWRlZChzdGFydFJlY3QsIGRlc3RSZWN0LCBmdWRnZUZhY3Rvcik7CisKKyAgICBp
ZiAoKHN0YXJ0UmVjdC5pc0VtcHR5KCkgfHwgZGVzdFJlY3QuaXNFbXB0eSgpKQorICAgICAgICB8
fCAoZGVzdFJlY3QueCgpIDwgMCB8fCBkZXN0UmVjdC55KCkgPCAwKSkKKyAgICAgICAgcmV0dXJu
IGNNYXhEaXN0YW5jZTsKKworICAgIGlmICghaXNSZWN0SW5EaXJlY3Rpb24oZGlyZWN0aW9uLCBz
dGFydFJlY3QsIGRlc3RSZWN0KSkKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0YW5jZTsKKworICAg
IC8vIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHR3byBub2RlcyBpcyBub3QgdG8gYmUgY29uc2lkZXJl
ZCBhbG9uZSB3aGVuIGV2YWx1YXRpbmcvbG9va2luZworICAgIC8vIGZvciB0aGUgYmVzdCBmb2N1
cyBjYW5kaWRhdGUgbm9kZS4gQWxpZ25tZW50IG9mIHJlY3RzIGNhbiBiZSBhbHNvIGEgZ29vZCBw
b2ludCB0byBiZQorICAgIC8vIGNvbnNpZGVyZWQgaW4gb3JkZXIgdG8gbWFrZSB0aGUgYWxnb3Jp
dGhtIHRvIGJlaGF2aW9yIGluIGEgbW9yZSBpbnR1aXRpdmUgd2F5LgorICAgIFJlY3RzQWxpZ25t
ZW50IGFsaWdubWVudCA9IGFsaWdubWVudEZvclJlY3RzKGRpcmVjdGlvbiwgc3RhcnRSZWN0LCBk
ZXN0UmVjdCk7CisKKyAgICBib29sIHNhbWVEb2N1bWVudCA9IGNhbmRpZGF0ZS5ub2RlICYmIGRl
c3QtPmRvY3VtZW50KCkgPT0gY2FuZGlkYXRlLm5vZGUtPmRvY3VtZW50KCk7CisgICAgaWYgKHNh
bWVEb2N1bWVudCkgeworICAgICAgICBpZiAoY2FuZGlkYXRlLmFsaWdubWVudCA+IGFsaWdubWVu
dCB8fCAoY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCAmJiBhbGlnbm1lbnQgPiBjYW5kaWRhdGUu
cGFyZW50QWxpZ25tZW50KSkKKyAgICAgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisgICAg
fSBlbHNlIGlmIChjYW5kaWRhdGUuYWxpZ25tZW50ID4gYWxpZ25tZW50ICYmIChjYW5kaWRhdGUu
cGFyZW50QWxpZ25tZW50ICYmIGFsaWdubWVudCA+IGNhbmRpZGF0ZS5wYXJlbnRBbGlnbm1lbnQp
KQorICAgICAgICByZXR1cm4gY01heERpc3RhbmNlOworCisgICAgLy8gRklYTUVfdG9uaWtpdG9v
OiBzaW1wbGlmeSB0aGUgbG9naWMgaGVyZSAhCisgICAgaWYgKGFsaWdubWVudCAhPSBOb25lCisg
ICAgICAgIHx8IChjYW5kaWRhdGUubm9kZSAmJiBjYW5kaWRhdGUucGFyZW50QWxpZ25tZW50ID49
IGFsaWdubWVudAorICAgICAgICAmJiAoZGVzdC0+ZG9jdW1lbnQoKSA9PSBjYW5kaWRhdGUubm9k
ZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgJiYgYWxpZ25tZW50ID4gTm9uZSkpIHsKKworICAgICAg
ICAvLyBSZXNldCBkaXN0YW5jZSBpZiB3ZSBhcmUgbm93IGluIGhpZ2hlciBwcmVjZWRlbmNlIGNh
c2UuCisgICAgICAgIGlmIChjYW5kaWRhdGUuYWxpZ25tZW50IDwgYWxpZ25tZW50ICYmIGNhbmRp
ZGF0ZS5wYXJlbnRBbGlnbm1lbnQgPCBhbGlnbm1lbnQpCisgICAgICAgICAgICBkaXN0YW5jZSA9
IGNNYXhEaXN0YW5jZTsKKworICAgICAgICAvLyBGSVhNRV90b25pa2l0b286IG1ha2UgdGhpcyBh
c3NpZ25tZW50IGluIHRoZSBjYWxsZXIgbWV0aG9kID8KKyAgICAgICAgY2FuZGlkYXRlLmFsaWdu
bWVudCA9IGFsaWdubWVudDsKKyAgICB9CisKKyAgICByZXR1cm4gc3BhdGlhbERpc3RhbmNlKGRp
cmVjdGlvbiwgc3RhcnRSZWN0LCBkZXN0UmVjdCk7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGZ1bmN0
aW9uIGRvZXMgbm90IGJlaGF2ZSBjb3JyZWN0bHkgd2l0aCB0cmFuc2Zvcm1lZCBmcmFtZXMuCitJ
bnRSZWN0IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KFJlbmRlck9iamVjdCogcmVu
ZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAgTm9kZSogbm9kZSA9IHJlbmRlci0+
bm9kZSgpOworICAgIERvY3VtZW50KiBtYWluRG9jdW1lbnQgPSBub2RlLT5kb2N1bWVudCgpLT5w
YWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpOworICAgIGJvb2wgdXNlU2Nyb2xsT2Zmc2V0
ID0gIWlzT2Zmc2NyZWVuUmVjdChub2RlKSAmJiBub2RlLT5kb2N1bWVudCgpICE9IG1haW5Eb2N1
bWVudDsKKworICAgIEludFJlY3QgcmVjdChyZW5kZXItPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93
UmVjdCgpKTsKKworICAgIC8vIFRoZXJlIGFyZSBjYXNlcywgbW9zdGx5IHdoZW4gfHJlbmRlcnwn
cyBhc3NvY2lhdGVkIG5vZGUgaXMgb2Zmc2NyZWVuLAorICAgIC8vIGl0IGlzIHNhZmVyIHRvIGdl
dCBpdHMgcG9zaXRpb24gcmVnYXJkbGVzcyB0aGUgY29udGFpbmVyIHNjcm9sbCBvZmZzZXQuCisg
ICAgaWYgKHVzZVNjcm9sbE9mZnNldCkKKyAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gcmVuZGVyLT5ub2RlKCktPmRvY3VtZW50KCktPnZpZXcoKSkKKyAgICAgICAgICAgIHJlY3Qu
bW92ZSgtZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKSk7CisKKyAgICAvLyBIYW5kbGUgbmVzdGVk
IGZyYW1lcy4KKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHJlbmRlci0+ZG9jdW1lbnQoKS0+ZnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCisgICAgICAgIGlm
IChIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IGZyYW1lLT5vd25lckVsZW1l
bnQoKSkKKyAgICAgICAgICAgIHJlY3QubW92ZShvd25lckVsZW1lbnQtPm9mZnNldExlZnQoKSwg
b3duZXJFbGVtZW50LT5vZmZzZXRUb3AoKSk7CisKKyAgICByZXR1cm4gcmVjdDsKK30KKworUmVj
dHNBbGlnbm1lbnQgYWxpZ25tZW50Rm9yUmVjdHMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBj
b25zdCBJbnRSZWN0JiBzdGFydCwgY29uc3QgSW50UmVjdCYgZGVzdCkKK3sKKyAgICBpZiAoYXJl
UmVjdHNGdWxseUFsaWduZWQoZGlyZWN0aW9uLCBzdGFydCwgZGVzdCkpCisgICAgICAgIHJldHVy
biBGdWxsOworCisgICAgaWYgKGFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZChkaXJlY3Rpb24sIHN0
YXJ0LCBkZXN0KSkKKyAgICAgICAgcmV0dXJuIFBhcnRpYWw7CisKKyAgICByZXR1cm4gTm9uZTsK
K30KKworYm9vbCBpc0hvcml6b250YWxNb3ZlKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sK
KyAgICByZXR1cm4gZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rpb24g
PT0gRm9jdXNEaXJlY3Rpb25SaWdodDsKK30KKworI2RlZmluZSBNSURETEUoZGlyZWN0aW9uLCBy
ZWN0KSAgICAgICBcCisgICAgaXNIb3Jpem9udGFsTW92ZShkaXJlY3Rpb24pID8gICAgIFwKKyAg
ICAgICAgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC8gMjogXAorICAgICAgICByZWN0LngoKSAr
IHJlY3Qud2lkdGgoKSAgLyAyOworCisjZGVmaW5lIEVORChkaXJlY3Rpb24sIHJlY3QpICAgICAg
ICAgIFwKKyAgICBpc0hvcml6b250YWxNb3ZlKGRpcmVjdGlvbikgPyAgICAgXAorICAgICAgICBy
ZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkgOiAgICBcCisgICAgICAgIHJlY3QueCgpICsgcmVjdC53
aWR0aCgpOworCisjZGVmaW5lIFNUQVJUKGRpcmVjdGlvbiwgcmVjdCkgICAgICAgIFwKKyAgICBp
c0hvcml6b250YWxNb3ZlKGRpcmVjdGlvbikgPyByZWN0LnkoKSA6IHJlY3QueCgpOworCisvLyBU
aGlzIG1ldGhvZCBjaGVja3MgaWYgcmVjdHMgfGF8IGFuZCB8YnwgYXJlIGZ1bGx5IGFsaWduZWQg
ZWl0aGVyIHZlcnRpY2FsIG9yCisvLyBob3Jpem9udGFsbHkuIFJlY3RzIHRoYXQgbWF0Y2ggdGhp
cyBjcml0ZXJpYSBhcmUgcHJlZmVyYWJsZSB0YXJnZXQgbm9kZXMgaW4KKy8vIG1vdmUgZm9jdXMg
Y2hhbmdpbmcgb3BlcmF0aW9ucy4KKy8vIEluIGVzc2VuY2UsIHRhcmdldHMgd2hvc2UgbWlkZGxl
IGZhbGxzIGJldHdlZW4gdGhlIHRvcCBvciBib3R0b20gb2YgdGhlIGN1cnJlbnQgcmVjdC4KKy8v
ICogYSA9IEN1cnJlbnQgZm9jdXNlZCBub2RlLgorLy8gKiBiID0gRm9jdXMgY2FuZGlkYXRlIG5v
ZGUuCitib29sIGFyZVJlY3RzRnVsbHlBbGlnbmVkKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwg
Y29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikKK3sKKyAgICBpbnQgYVN0YXJ0LCBi
U3RhcnQsIGFFbmQsIGJFbmQ7CisKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2Ug
Rm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBhU3RhcnQgPSBhLngoKTsKKyAgICAgICAgYkVu
ZCA9IGIueCgpICsgYi53aWR0aCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uUmlnaHQ6CisgICAgICAgIGFTdGFydCA9IGIueCgpOworICAgICAgICBiRW5kID0gYS54
KCkgKyBhLndpZHRoKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25V
cDoKKyAgICAgICAgYVN0YXJ0ID0gYS55KCk7CisgICAgICAgIGJFbmQgPSBiLnkoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIGFTdGFydCA9
IGIueSgpOworICAgICAgICBiRW5kID0gYS55KCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKGFTdGFydCA8IGJFbmQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGFTdGFydCA9IFNUQVJUKGRpcmVjdGlvbiwgYSk7CisgICAgYlN0YXJ0ID0gU1RBUlQo
ZGlyZWN0aW9uLCBiKTsKKworICAgIGludCBhTWlkZGxlID0gTUlERExFKGRpcmVjdGlvbiwgYSk7
CisgICAgaW50IGJNaWRkbGUgPSBNSURETEUoZGlyZWN0aW9uLCBiKTsKKworICAgIGFFbmQgPSBF
TkQoZGlyZWN0aW9uLCBhKTsKKyAgICBiRW5kID0gRU5EKGRpcmVjdGlvbiwgYikKKworICAgIC8v
IFBpY3R1cmUgb2YgdGhlIHRvdGFsbHkgYWxpZ25lZCBsb2dpYzoKKyAgICAvLworICAgIC8vICAg
ICBIb3Jpem9udGFsICAgIFZlcnRpY2FsICAgICAgICBIb3Jpem9udGFsICAgICBWZXJ0aWNhbAor
ICAgIC8vICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqICAqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgorICAgIC8vICAqICBfICAgICAgICAgICogICBfIF8gXyBfICAqICAqICAgICAg
ICAgXyAgICogICAgICBfIF8gICAgKgorICAgIC8vICAqIHxffCAgICAgXyAgICogIHxffF98X3xf
fCAqICAqICBfICAgICB8X3wgICogICAgIHxffF98ICAgKgorICAgIC8vICAqIHxffC4uLi58X3wg
ICogICAgICAuICAgICAqICAqIHxffC4uLi58X3wgICogICAgICAgLiAgICAgKgorICAgIC8vICAq
IHxffCAgICB8X3wgKDEpICAgICAuICAgICAqICAqIHxffCAgICB8X3wgKDIpICAgICAgLiAgICAg
KgorICAgIC8vICAqIHxffCAgICAgICAgICogICAgIF8uXyAgICAqICAqICAgICAgICB8X3wgICog
ICAgXyBfLl8gXyAgKgorICAgIC8vICAqICAgICAgICAgICAgICogICAgfF98X3wgICAqICAqICAg
ICAgICAgICAgICogICB8X3xffF98X3wgKgorICAgIC8vICAqICAgICAgICAgICAgICogICAgICAg
ICAgICAqICAqICAgICAgICAgICAgICogICAgICAgICAgICAgKgorICAgIC8vICAqKioqKioqKioq
KioqKioqKioqKioqKioqKioqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAg
Ly8gICAgIEhvcml6b250YWwgICAgVmVydGljYWwgICAgICAgIEhvcml6b250YWwgICAgIFZlcnRp
Y2FsCisgICAgLy8gICoqKioqKioqKioqKioqKioqKioqKioqKioqKiogICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCisgICAgLy8gICogIF8uLi4uLi5fICAgKiAgIF8gXyBfIF8gICogICog
IF8gICAgICAgICAgKiAgICBfIF8gXyBfICAqCisgICAgLy8gICogfF98ICAgIHxffCAgKiAgfF98
X3xffF98ICogICogfF98ICAgICBfICAgKiAgIHxffF98X3xffCAqCisgICAgLy8gICogfF98ICAg
IHxffCAgKiAgLiAgICAgICAgICogICogfF98ICAgIHxffCAgKiAgICAgICAgICAgLiAqCisgICAg
Ly8gICogfF98ICAgICAgICAoMykgLiAgICAgICAgICogICogfF98Li4uLnxffCAoNCkgICAgICAg
ICAgLiAqCisgICAgLy8gICogICAgICAgICAgICAgKiAgLl8gXyAgICAgICogICogICAgICAgICAg
ICAgKiAgICAgICAgXyBfLiAqCisgICAgLy8gICogICAgICAgICAgICAgKiAgfF98X3wgICAgICog
ICogICAgICAgICAgICAgKiAgICAgICB8X3xffCAqCisgICAgLy8gICogICAgICAgICAgICAgKiAg
ICAgICAgICAgICogICogICAgICAgICAgICAgKiAgICAgICAgICAgICAqCisgICAgLy8gICoqKioq
KioqKioqKioqKioqKioqKioqKioqKiogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisK
KyAgICByZXR1cm4gKChiTWlkZGxlID49IGFTdGFydCAmJiBiTWlkZGxlIDw9IGFFbmQpIC8vICgx
KQorICAgICAgICAgICAgfHwgKGFNaWRkbGUgPj0gYlN0YXJ0ICYmIGFNaWRkbGUgPD0gYkVuZCkg
Ly8gKDIpCisgICAgICAgICAgICB8fCAoYlN0YXJ0ID09IGFTdGFydCkgLy8gKDMpCisgICAgICAg
ICAgICB8fCAoYkVuZCA9PSBhRW5kKSk7IC8vICg0KQorfQorCisvLyBUaGlzIG1ldGhvZCBjaGVj
a3MgaWYgfHN0YXJ0fCBhbmQgfGRlc3R8IGhhdmUgYSBwYXJ0aWFsIGludGVyc2VjdGlvbiwgZWl0
aGVyCisvLyBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS4KKy8vICogYSA9IEN1cnJlbnQgZm9j
dXNlZCBub2RlLgorLy8gKiBiID0gRm9jdXMgY2FuZGlkYXRlIG5vZGUuCitib29sIGFyZVJlY3Rz
UGFydGlhbGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3Qm
IGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAgaW50IGFTdGFydCAgPSBTVEFSVChkaXJlY3Rp
b24sIGEpOworICAgIGludCBiU3RhcnQgICA9IFNUQVJUKGRpcmVjdGlvbiwgYik7CisKKyAgICBp
bnQgYk1pZGRsZSAgPSBNSURETEUoZGlyZWN0aW9uLCBiKTsKKworICAgIGludCBhRW5kID0gRU5E
KGRpcmVjdGlvbiwgYSk7CisgICAgaW50IGJFbmQgID0gRU5EKGRpcmVjdGlvbiwgYikKKworICAg
IC8vIEFib3V0IHRoZSBsb2dpYyBiZWxvdzoKKyAgICByZXR1cm4gKChiU3RhcnQgPj0gYVN0YXJ0
ICYmIGJTdGFydCA8PSBhRW5kKQorICAgICAgICAgICAgfHwgKGJTdGFydCA+PSBhU3RhcnQgJiYg
YlN0YXJ0IDw9IGFFbmQpCisgICAgICAgICAgICB8fCAoYkVuZCA+PSBhU3RhcnQgJiYgYkVuZCA8
PSBhRW5kKQorICAgICAgICAgICAgfHwgKGJNaWRkbGUgPj0gYVN0YXJ0ICYmIGJNaWRkbGUgPD0g
YUVuZCkKKyAgICAgICAgICAgIHx8IChiRW5kID49IGFTdGFydCAmJiBiRW5kIDw9IGFFbmQpKTsK
K30KKworLy8gKiBhID0gQ3VycmVudCBmb2N1c2VkIG5vZGUuCisvLyAqIGIgPSBGb2N1cyBjYW5k
aWRhdGUgbm9kZS4KK2xvbmcgbG9uZyBzcGF0aWFsRGlzdGFuY2UoRm9jdXNEaXJlY3Rpb24gZGly
ZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBiKQoreworICAgIGludCB4
MSA9IDAsIHkxID0gMCwgeDIgPSAwLCB5MiA9IDA7CisKKyAgICBpZiAoZGlyZWN0aW9uID09IEZv
Y3VzRGlyZWN0aW9uTGVmdCkgeworICAgICAgICAvLyAjMSAgfC0tfAorICAgICAgICAvLworICAg
ICAgICAvLyAjMiAgfC0tfCAgfC0tfAorICAgICAgICAvLworICAgICAgICAvLyAjMyAgfC0tfAor
CisgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgIHgyID0gYi54KCkgKyBiLndpZHRoKCk7CisK
KyAgICAgICAgaWYgKGEueSgpID4gYi55KCkgKyBiLmhlaWdodCgpKSB7CisgICAgICAgICAgICAv
LyAjMSBUaGUgYiByZWN0IGlzIGFib3ZlIGEuCisgICAgICAgICAgICB5MSA9IGEueSgpOworICAg
ICAgICAgICAgeTIgPSBiLnkoKSArIGIuaGVpZ2h0KCk7CisgICAgICAgIH0gZWxzZSBpZiAoYS55
KCkgKyBhLmhlaWdodCgpIDwgYi55KCkpIHsKKyAgICAgICAgICAgIC8vICMzIFRoZSBiIHJlY3Qg
aXMgYmVsb3cgYS4KKyAgICAgICAgICAgIHkxID0gYS55KCkgKyBhLmhlaWdodCgpOworICAgICAg
ICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICMyIEJv
dGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB5J3MuCisgICAgICAgICAgICB5MSA9IDA7Cisg
ICAgICAgICAgICB5MiA9IDA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9
PSBGb2N1c0RpcmVjdGlvblJpZ2h0KSB7CisgICAgICAgIC8vICAgICAgICB8LS18ICAjMQorICAg
ICAgICAvLworICAgICAgICAvLyAgfC0tfCAgfC0tfCAgIzIKKyAgICAgICAgLy8KKyAgICAgICAg
Ly8gICAgICAgIHwtLXwgICMzCisKKyAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAg
ICAgICAgeDIgPSBiLngoKTsKKworICAgICAgICBpZiAoYS55KCkgPiBiLnkoKSArIGIuaGVpZ2h0
KCkpIHsKKyAgICAgICAgICAgIC8vICMxIFRoZSBiIHJlY3QgaXMgYWJvdmUgYS4KKyAgICAgICAg
ICAgIHkxID0gYS55KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpICsgYi5oZWlnaHQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChhLnkoKSArIGEuaGVpZ2h0KCkgPCBiLnkoKSkgeworICAgICAgICAg
ICAgLy8gIzMgVGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeTEgPSBhLnkoKSAr
IGEuaGVpZ2h0KCk7CisgICAgICAgICAgICB5MiA9IGIueSgpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLy8gIzIgQm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHkncy4KKyAg
ICAgICAgICAgIHkxID0gMDsKKyAgICAgICAgICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uVXApIHsKKyAgICAgICAgLy8KKyAg
ICAgICAgLy8gICAjMSAgICAjMiAgICAjMworICAgICAgICAvLworICAgICAgICAvLyAgfC0tfCAg
fC0tfCAgfC0tfAorICAgICAgICAvLworICAgICAgICAvLyAgICAgICAgfC0tfAorCisgICAgICAg
IHkxID0gYS55KCk7CisgICAgICAgIHkyID0gYi55KCkgKyBiLmhlaWdodCgpOworCisgICAgICAg
IGlmIChhLngoKSA+IGIueCgpICsgYi53aWR0aCgpKSB7CisgICAgICAgICAgICAvLyAjMSBUaGUg
YiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAg
ICAgICAgICAgeDIgPSBiLngoKSArIGIud2lkdGgoKTsKKyAgICAgICAgfSBlbHNlIGlmIChhLngo
KSArIGEud2lkdGgoKSA8IGIueCgpKSB7CisgICAgICAgICAgICAvLyAjMyBUaGUgYiByZWN0IGlz
IHRvIHRoZSByaWdodCBvZiBhLgorICAgICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsK
KyAgICAgICAgICAgIHgyID0gYi54KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAv
LyAjMiBCb3RoIGIgYW5kIGEgc2hhcmUgc29tZSBjb21tb24geCdzLgorICAgICAgICAgICAgeDEg
PSAwOworICAgICAgICAgICAgeDIgPSAwOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChkaXJl
Y3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25Eb3duKSB7CisgICAgICAgIC8vICAgICAgICB8LS18Cisg
ICAgICAgIC8vCisgICAgICAgIC8vICB8LS18ICB8LS18ICB8LS18CisgICAgICAgIC8vCisgICAg
ICAgIC8vICAgIzEgICAgIzIgICAgIzMKKworICAgICAgICB5MSA9IGEueSgpICsgYS5oZWlnaHQo
KTsKKyAgICAgICAgeTIgPSBiLnkoKTsKKworICAgICAgICBpZiAoYS54KCkgPiBiLngoKSArIGIu
d2lkdGgoKSkgeworICAgICAgICAgICAgLy8gIzEgVGhlIGIgcmVjdCBpcyB0byB0aGUgbGVmdCBv
ZiBhLgorICAgICAgICAgICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCkgKyBi
LndpZHRoKCk7CisgICAgICAgIH0gZWxzZSBpZiAoYS54KCkgKyBhLndpZHRoKCkgPCBiLngoKSkg
eworICAgICAgICAgICAgLy8gIzMgVGhlIGIgcmVjdCBpcyB0byB0aGUgcmlnaHQgb2YgYQorICAg
ICAgICAgICAgeDEgPSBhLngoKSArIGEud2lkdGgoKTsKKyAgICAgICAgICAgIHgyID0gYi54KCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyAjMiBCb3RoIGIgYW5kIGEgc2hhcmUg
c29tZSBjb21tb24geCdzLgorICAgICAgICAgICAgeDEgPSAwOworICAgICAgICAgICAgeDIgPSAw
OworICAgICAgICB9CisgICAgfQorCisgICAgbG9uZyBsb25nIGRpc3RhbmNlID0gcG93KCh4MSAt
IHgyKSwgMikgKyBwb3coKHkxIC0geTIpLCAyKTsKKyAgICByZXR1cm4gYWJzKGRpc3RhbmNlKTsK
K30KKworYm9vbCBpc1JlY3RJbkRpcmVjdGlvbihGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNv
bnN0IEludFJlY3QmIHN0YXJ0LCBjb25zdCBJbnRSZWN0JiBkZXN0KQoreworICAgIGludCBtaWRk
bGUgPSBpc0hvcml6b250YWxNb3ZlKGRpcmVjdGlvbikgPworICAgICAgICBkZXN0LngoKSArIGRl
c3Qud2lkdGgoKSAgLyAyOgorICAgICAgICBkZXN0LnkoKSArIGRlc3QuaGVpZ2h0KCkgLyAyOwor
CisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoK
KyAgICAgICAgcmV0dXJuIG1pZGRsZSA8IHN0YXJ0LngoKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uUmlnaHQ6CisgICAgICAgIHJldHVybiBtaWRkbGUgID4gc3RhcnQueCgpICsgc3RhcnQud2lk
dGgoKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgICAgIHJldHVybiBtaWRkbGUg
PCBzdGFydC55KCk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVy
biBtaWRkbGUgPiBzdGFydC55KCkgKyBzdGFydC5oZWlnaHQoKTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKKy8vIENoZWNrcyBpZiB8bm9kZXwgaXMgb2Zmc2NyZWVuIHRoZSB2aXNpYmxlIGFyZWEgKHZp
ZXdwb3J0KSBvZiBpdHMgY29udGFpbmVyCisvLyBkb2N1bWVudC4gSW4gY2FzZSBpdCBpcywgb25l
IGNhbiBzY3JvbGwgaW4gZGlyZWN0aW9uIG9yIHRha2UgYW55IGRpZmZlcmVudAorLy8gZGVzaXJl
ZCBhY3Rpb24gbGF0ZXIgb24uCitib29sIGlzT2Zmc2NyZWVuUmVjdChOb2RlKiBub2RlKQorewor
ICAgIC8vIEdldCB0aGUgRnJhbWVWaWV3IGluIHdoaWNoIHxub2RlfCBpcyAod2hpY2ggbWVhbnMg
dGhlIGN1cnJlbnQgdmlld3BvcnQgaWYgfG5vZGV8CisgICAgLy8gaXMgbm90IGluIGFuIGlubmVy
IGRvY3VtZW50KSwgc28gd2UgY2FuIGNoZWNrIGlmIGl0cyBjb250ZW50IHJlY3QgaXMgdmlzaWJs
ZQorICAgIC8vIGJlZm9yZSB3ZSBhY3R1YWxseSBtb3ZlIHRoZSBmb2N1cyB0byBpdC4KKyAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IG5vZGUtPmRvY3VtZW50KCktPnZpZXcoKTsKKyAgICBpZiAo
IWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBJbnRSZWN0IGNvbnRhaW5l
clZpZXdwb3J0UmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisKKyAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlciA9IG5vZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXIp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1
dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworICAgIHJldHVybiAhY29udGFpbmVyVmlld3BvcnRS
ZWN0LmludGVyc2VjdHMocmVjdCk7Cit9CisKKy8vIEluIGEgYm90dG9tLXVwIHdheSwgdGhpcyBt
ZXRob2QgdHJpZXMgdG8gc2Nyb2xsIHxmcmFtZXwgaW4gYSBnaXZlbiBkaXJlY3Rpb24KKy8vIHxk
aXJlY3Rpb258LCBnb2luZyB1cCBpbiB0aGUgZnJhbWUgdHJlZSBoaWVyYXJjaHkgaW4gY2FzZSBp
dCBkb2VzIG5vdCBzdWNjZWVkLgorYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSogZnJhbWUs
IEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBTY3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uOworCisg
ICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAg
ICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsTGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3Jv
bGxSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAg
ICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbERv
d247CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICByZXR1cm4gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNp
dmVseShzY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEJ5TGluZSk7Cit9CisKK2Jvb2wgaXNNb3ZpbmdU
b1Jvb3REb2N1bWVudChOb2RlKiBmcm9tLCBOb2RlKiB0bykKK3sKKyAgICBpZiAoIWZyb20gfHwg
IXRvKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBEb2N1bWVudCogcm9vdERvY3VtZW50
ID0gdG8tPmRvY3VtZW50KCktPnBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAg
cmV0dXJuICh0by0+ZG9jdW1lbnQoKSA9PSByb290RG9jdW1lbnQgJiYgZnJvbS0+ZG9jdW1lbnQo
KSAhPSB0by0+ZG9jdW1lbnQoKSk7Cit9CisKK3ZvaWQgZGVmbGF0ZUlmTmVlZGVkKEludFJlY3Qm
IGEsIEludFJlY3QmIGIsIGludCBmdWRnZUZhY3RvcikKK3sKKyAgICBpZiAoIWEuaW50ZXJzZWN0
cyhiKSB8fCBhLmNvbnRhaW5zKGIpIHx8IGIuY29udGFpbnMoYSkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIEF2b2lkIG5lZ2F0aXZlIHdpZHRoIG9yIGhlaWdodCB2YWx1ZXMuCisgICAgaWYg
KGZ1ZGdlRmFjdG9yID4gMCB8fCAoKGEud2lkdGgoKSArIDIgKiBmdWRnZUZhY3RvciA+IDApICYm
IChhLmhlaWdodCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4gMCkpKQorICAgICAgICBhLmluZmxhdGUo
ZnVkZ2VGYWN0b3IpOworCisgICAgaWYgKGZ1ZGdlRmFjdG9yID4gMCB8fCAoKGIud2lkdGgoKSAr
IDIgKiBmdWRnZUZhY3RvciA+IDApICYmIChiLmhlaWdodCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4g
MCkpKQorICAgICAgICBiLmluZmxhdGUoZnVkZ2VGYWN0b3IpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBi
L1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjFjNmIwZmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uaApAQCAtMCwwICsxLDExMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENv
cHlyaWdodCAoQykgMjAwOSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lm
bmRlZiBTcGF0aWFsTmF2aWdhdGlvbl9oCisjZGVmaW5lIFNwYXRpYWxOYXZpZ2F0aW9uX2gKKwor
I2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBJbnRSZWN0OworY2xhc3MgTm9k
ZTsKK2NsYXNzIFJlbmRlck9iamVjdDsKKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworY29uc3Qg
bG9uZyBsb25nIGNNYXhEaXN0YW5jZSA9IG51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1heCgp
OworCisvLyBTcGF0aWFsbHkgc3BlYWtpbmcsIHR3byBnaXZlbiBlbGVtZW50cyBpbiBhIHdlYiBw
YWdlIGNhbiBiZToKKy8vIDEpIEZ1bGx5IGFsaWduZWQ6IFRoZXJlIGlzIGEgZnVsbCBpbnRlcnNl
Y3Rpb24gYmV0d2VlbiB0aGUgcmVjdHMsIGVpdGhlcgorLy8gICAgdmVydGljYWxseSBvciBob3Jp
em9udGFsbHkuCisvLworLy8gKiBIb3Jpem9udGFsbHkgICAgICAgKiBWZXJ0aWNhbGx5CisvLyAg
ICBfCisvLyAgIHxffCAgICAgICAgICAgICAgICAgICBfIF8gXyBfIF8gXworLy8gICB8X3wuLi4u
Li4gXyAgICAgICAgICB8X3xffF98X3xffF98CisvLyAgIHxffCAgICAgIHxffCAgICAgICAgIC4g
ICAgICAgLgorLy8gICB8X3wuLi4uLi58X3wgICBPUiAgICAuICAgICAgIC4KKy8vICAgfF98ICAg
ICAgfF98ICAgICAgICAgLiAgICAgICAuCisvLyAgIHxffC4uLi4uLnxffCAgICAgICAgICBfIF8g
XyBfCisvLyAgIHxffCAgICAgICAgICAgICAgICAgIHxffF98X3xffAorLy8KKy8vCisvLyAyKSBQ
YXJ0aWFsbHkgYWxpZ25lZDogVGhlcmUgaXMgYSBwYXJ0aWFsIGludGVyc2VjdGlvbiBiZXR3ZWVu
IHRoZSByZWN0cywgZWl0aGVyCisvLyAgICB2ZXJ0aWNhbGx5IG9yIGhvcml6b250YWxseS4KKy8v
CisvLyAqIEhvcml6b250YWxseSAgICAgICAqIFZlcnRpY2FsbHkKKy8vICAgIF8gICAgICAgICAg
ICAgICAgICAgXyBfIF8gXyBfCisvLyAgIHxffCAgICAgICAgICAgICAgICAgfF98X3xffF98X3wK
Ky8vICAgfF98Li4uLiBfICAgICAgT1IgICAgICAgICAgIC4gLgorLy8gICB8X3wgICAgfF98ICAg
ICAgICAgICAgICAgICAgLiAuCisvLyAgIHxffC4uLi58X3wgICAgICAgICAgICAgICAgICAuXy5f
IF8KKy8vICAgICAgICAgIHxffCAgICAgICAgICAgICAgICAgIHxffF98X3wKKy8vICAgICAgICAg
IHxffAorLy8KKy8vIDMpIE9yLCBvdGhlcndpc2UsIG5vdCBhbGlnbmVkIGF0IGFsbC4KKy8vCisv
LyAqIEhvcml6b250YWxseSAgICAgICAqIFZlcnRpY2FsbHkKKy8vICAgICAgICAgXyAgICAgICAg
ICAgICAgXyBfIF8gXworLy8gICAgICAgIHxffCAgICAgICAgICAgIHxffF98X3xffAorLy8gICAg
ICAgIHxffCAgICAgICAgICAgICAgICAgICAgLgorLy8gICAgICAgIHxffCAgICAgICAgICAgICAg
ICAgICAgIC4KKy8vICAgICAgIC4gICAgICAgICAgT1IgICAgICAgICAgICAgLgorLy8gICAgXyAu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLl8gXyBfIF8gXworLy8gICB8X3wgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfF98X3xffF98X3wKKy8vICAgfF98CisvLyAgIHxffAorLy8KKy8v
ICJUb3RhbGx5IEFsaWduZWQiIGVsZW1lbnRzIGFyZSBwcmVmZXJhYmxlIGNhbmRpZGF0ZXMgdG8g
bW92ZQorLy8gZm9jdXMgdG8gb3ZlciAiUGFydGlhbGx5IEFsaWduZWQiIG9uZXMsIHRoYXQgb24g
aXRzIHR1cm5zIGFyZQorLy8gbW9yZSBwcmVmZXJhYmxlIHRoYW4gIk5vdCBBbGlnbmVkIi4KK2Vu
dW0gUmVjdHNBbGlnbm1lbnQgeworICAgIE5vbmUgPSAwLAorICAgIFBhcnRpYWwsCisgICAgRnVs
bAorfTsKKworc3RydWN0IEZvY3VzQ2FuZGlkYXRlIHsKKyAgICBGb2N1c0NhbmRpZGF0ZSgpCisg
ICAgICAgIDogbm9kZSgwKQorICAgICAgICAsIGRpc3RhbmNlKGNNYXhEaXN0YW5jZSkKKyAgICAg
ICAgLCBwYXJlbnREaXN0YW5jZShjTWF4RGlzdGFuY2UpCisgICAgICAgICwgYWxpZ25tZW50KE5v
bmUpCisgICAgICAgICwgcGFyZW50QWxpZ25tZW50KE5vbmUpCisgICAgeworICAgIH0KKyAgICBO
b2RlKiBub2RlOworICAgIGxvbmcgbG9uZyBkaXN0YW5jZTsKKyAgICBsb25nIGxvbmcgcGFyZW50
RGlzdGFuY2U7CisgICAgUmVjdHNBbGlnbm1lbnQgYWxpZ25tZW50OworICAgIFJlY3RzQWxpZ25t
ZW50IHBhcmVudEFsaWdubWVudDsKK307CisKK2xvbmcgbG9uZyBkaXN0YW5jZUluRGlyZWN0aW9u
KE5vZGUqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEZvY3VzQ2FuZGlkYXRlJik7Citib29sIHNj
cm9sbEluRGlyZWN0aW9uKEZyYW1lKiwgRm9jdXNEaXJlY3Rpb24pOworYm9vbCBpc09mZnNjcmVl
blJlY3QoTm9kZSopOworYm9vbCBpc01vdmluZ1RvUm9vdERvY3VtZW50KE5vZGUqLCBOb2RlKik7
Cit2b2lkIGRlZmxhdGVJZk5lZWRlZChJbnRSZWN0JiBhLCBJbnRSZWN0JiBiLCBpbnQpOworCit9
IC8vIG5hbXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwYXRpYWxOYXZpZ2F0aW9uX2gKLS0g
CjEuNi4wLjQKCg==
</data>
<flag name="review"
          id="31833"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="31834"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49076</attachid>
            <date>2010-02-19 06:49:49 -0800</date>
            <delta_ts>2010-03-02 13:09:35 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (LayoutTests - v1)</desc>
            <filename>0002-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>432911</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA4NmFhMzY4NTZhMTNkYTdmYzlhMmM0OTJlNjM5NmZlMDQ2NTkzNzRmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogVGh1LCAxOCBGZWIgMjAxMCAxNToxOTowNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24g
KExheW91dFRlc3RzIHBhcnQpCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg2NjIKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpQYXRjaCBieSBBbnRvbmlvIEdv
bWVzIDx0b25pa2l0b29Ad2Via2l0LmNvbT4KCldlYkNvcmU6CgpUZXN0czogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbAog
ICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3Vz
YWJsZS1jb250ZW50Lmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQuaHRtbAogICAgICAgZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1l
bGVtZW50Lmh0bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRh
YmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCiAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0
bWwKICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1
cGVycHJlY2VkZW5jZS5odG1sCgoqIG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlu
a3MuaHRtbDogQWRkZWQuCiogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFs
LW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sOiBBZGRlZC4KKiBtYW51YWwtdGVzdHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzMi5odG1sOiBBZGRlZC4K
CkxheW91dFRlc3RzOgoKKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2Vz
L2Fycm93LmdpZjogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291
cmNlcy9pZnJhbWUuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3Jlc291cmNlcy9pZnJhbWUyLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMy5odG1sOiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU1Lmh0bWw6IEFkZGVkLgoqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvd2Via2l0X2xvZ28ucG5nOiBB
ZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1
cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUt
Y29udGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sOiBBZGRlZC4KKiBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNh
YmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRt
bDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGFibGUtdHJh
dmVyc2FsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtdGFibGUtdHJhdmVyc2FsLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2
ZXJzYWwuaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYt
dW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5k
LXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRtbDogQWRkZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCiogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJw
cmVjZWRlbmNlLmh0bWw6IEFkZGVkLgoqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
cGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanM6IEFkZGVkLgoodGVzdE1vdmVzKToKKF9uZXh0TW92
ZSk6CihfbW92ZSk6CihfdmVyaWZ5QW5kQWR2YW5jZSk6CiogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6
CiogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CiogcGxhdGZvcm0vd2luL1NraXBwZWQ6CgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGVkYjUxMTAuLjUzYjQ4YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsOCArMSw0OCBAQAorMjAxMC0wMi0xOCAgQW50
b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgorCisgICAgICAgIEV4dGVuZCBrZXli
b2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24gKExheW91dFRl
c3RzIHBhcnQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBQ
YXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0LmNvbT4KKworICAgICAgICAq
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvYXJyb3cuZ2lmOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lm
cmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lNC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3Vy
Y2VzL2lmcmFtZTUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3Jlc291cmNlcy93ZWJraXRfbG9nby5wbmc6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1u
YXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZv
Y3VzYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xs
YWJsZS1jb250ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJs
ZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
cGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2
ZXJzYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFu
ZC1zY3JvbGwtaW4tZGlyZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xs
LWluLWRpcmVjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVuY2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0
aWNhbC1zdXBlcnByZWNlZGVuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qczogQWRkZWQuCisg
ICAgICAgICh0ZXN0TW92ZXMpOgorICAgICAgICAoX25leHRNb3ZlKToKKyAgICAgICAgKF9tb3Zl
KToKKyAgICAgICAgKF92ZXJpZnlBbmRBZHZhbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
U2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0wMi0xOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgogCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTEzNAogICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzI0NjI4MD4gQ3Jhc2ggd2hlbiBhIHBsdWdpbiBjYWxscyBOUE5f
U2V0U3RhdHVzKDApCiAKICAgICAgICAgKiBwbHVnaW5zL3NldC1zdGF0dXMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2
aWdhdGlvbi9yZXNvdXJjZXMvYXJyb3cuZ2lmIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9hcnJvdy5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcxYTYyM2Q4
MDMzMzYxMmM0MTIwMzdkMWM5NDRkMTdhZDQ2MjZkYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg
MTIwCnpjbVo/d2JoRUhibHdwdXpYa2NYYzQrZUBxU3J7MUA3I1ZhSmZCKz1Ken5zLTx3e289QHxL
ZDVIRV9CYTdZeEN9Mgp6Wkd4S0xmczhwM0o2RE1fWklVfjRHUWZHKWx9WFFrdFRRJUBKSUt9bFZ6
RlpNRGI8VCtwTzFFMylafUQhJjBLTHkKVmRpIWk5PiFZRVkpUUBfc1dAY3J1MV5+fTRGI1B9awoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzVmMTcxMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMv
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlk
PSIxIiBocmVmPSJhIj5iPC9hPjxicj4KKyAgICA8YSBpZD0iMiIgaHJlZj0iYSI+YzwvYT48YnI+
CisgICAgPGEgaWQ9IjMiIGhyZWY9ImEiPmQ8L2E+PGJyPgorICAgIDxkaXYgc3R5bGU9Im1hcmdp
bi1sZWZ0OjgwcHgiID4KKyAgICAgIDxhIGlkPSI3IiBocmVmPSJhIj5lPC9hPgorICAgIDwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvaWZyYW1lMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhOTdjMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2Vz
L2lmcmFtZTIuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxodG1sPgorICA8Ym9keT4KKyAgICA8YSBp
ZD0iNCIgaHJlZj0iYSI+ZzwvYT4KKyAgICA8YSBpZD0iNSIgaHJlZj0iYSI+aDwvYT4KKyAgICA8
YSBpZD0iNiIgaHJlZj0iYSI+aTwvYT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJh
bWUzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVz
b3VyY2VzL2lmcmFtZTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
MWFkOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWUzLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRt
bD4KKyAgPGJvZHk+CisgICAgPGEgaWQ9IjEiIGhyZWY9ImEiPmI8L2E+CisgICAgPGRpdiBzdHls
ZT0ibWFyZ2luLXRvcDoxMjBweCI+CisgICAgICA8YSBpZD0iMiIgaHJlZj0iYSI+ZDwvYT4KKyAg
ICA8L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2Y0OGZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jl
c291cmNlcy9pZnJhbWU0Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKyAgPGJvZHk+Cisg
ICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoxMjBweCI+CisgICAgICA8cD5UaGlzIGZyYW1lIGhh
cyBzb21lIHRleHQgYW5kIG5vIGZvY3VzYWJsZSBlbGVtZW50IC4uLjwvYT4KKyAgICA8L2Rpdj4K
KyAgICA8cD4uLi4gYW5kIHNvbWUgbW9yZSB0ZXh0IC4uLjwvYT4KKyAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3Jlc291cmNlcy9pZnJhbWU1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFs
LW5hdmlnYXRpb24vcmVzb3VyY2VzL2lmcmFtZTUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yZmY1ZDI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Jlc291cmNlcy9pZnJhbWU1Lmh0bWwKQEAgLTAs
MCArMSwxMSBAQAorPGh0bWw+CisgIDxib2R5PgorICAgIDxhIGlkPSIxIiBocmVmPSJhIj5iPC9h
PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTIwcHgiPgorICAgICAgPGEgaWQ9IjMiIGhy
ZWY9ImEiPmQ8L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDEy
MHB4OyBtYXJnaW4tdG9wOjE1MHB4Ij4KKyAgICAgIDxhIGlkPSIyIiBocmVmPSJhIj5jPC9hPgor
ICAgIDwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vcmVzb3VyY2VzL3dlYmtpdF9sb2dvLnBuZyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9yZXNvdXJjZXMvd2Vi
a2l0X2xvZ28ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNjExZjlhODUwZTViYzJlMmNkNWU1ZjVkMDhkZjMw
MDNmZTIxMzkKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI5MTI3NQp6Y21ZJjwxeUNIKCgpSHJP
Z0cxMlo0I0F5M2cxZlcwNldyWkhhQ2Q/Ung1ZUd2SE1xTWt6UFNFOGBRQ2VmKWw1eUAKeko1QDdO
eDleLWplWSFoTFFDPFFTPUBTd0YwNj4rSntIX2NES3F+P09QQDVtJS0pQWhsUkxiOGtQKV5EY3FK
V0FDCnpxTkRjI3RodERzMm1ud1dnWnlqPV9kWF53bVE8RGwwNmVKeTBSTFlBen5sUnJ7fi1ZMiFV
X04hOHZwPSZzUT5fOwp6ZU1YQ3QwMDhoN0UlallRKW1gdFQ5bk0/elV8dytTJlRyI1JFMnRySG59
bzU2cE5fZDNHNUhTXl5zbGQ/dStVSlYKekFISU0xOUBnNTU+ODchTGNHaiZNZjF2I3xoNXs+WHg4
bWg+WnNRZlFWZHEzbVZMbDt7RmIxcmhVJCVQbF5aRTdtCnppLUFsQlk3NlBQTHcpbkBESlcjcmNr
M217NFg/dUE5YDRfRks0XlN4Zj9oQFhjPStlaHVsUDttaDJ7ODcoR0xeagp6Mnl6ZjNnVDBfS3pQ
JVE1Q0tIbzBzUWpWfmZMTHxIe2FtPVpZeHJyNUx2LSU8bkNmQFJgU0REbDNBelg4PE5yTX0Kenpe
QG5TOGVZTmcpMGY7eWVSJE1rTkZ4LT9xeGJETl9sRWFfIXdxPWhBbWE3cSR5PmU9e2RER19sQll1
JDApKz1mCnoyVzlfSWtNP3VgJGp4QGpVaks4WDArOVpZPnMjKDcrZUVzQl52QDZjI3x5Z3JoTEp2
Szc3MyNzJm03cTg0QmtDSgp6bE8zMWtlMCVieUFpd2Y+YDxvfkg2bTI8TUpQQUtGeGRWVW07TSVo
KF5pcWcmNHlobUZfVVJ5K0R3O0g+YylXZjwKenstV04jU2dkYiM8Y3I0aCRhe0IkbnMjYERibGxq
SkB1Q0gkVDg7VnRtITxPeHNWKDk3eVYlb25tfVglIWBHJEExCno+KkstOCFvLVZOQG94Q0pJT3oo
OTtgUW9USH5aYHpkUztvRV5TJFVBN0RZZGJlRHVUbVZQQzRMYyttaE9kJCVkZgp6UWs9fDk0N3px
TW03cX5LKSRtc0JnZHxGKXFzaUspTDtOVXd3NUhIYEVtVEN2LU9Iel53flR5WUI0SF9TU1lfWDEK
emVZPW1kUGFXLSpaYGRDbUgtTlFmRlFpR3Ujazc8WGFsJGU5VSQkQWtnYG1CRlhHPklzZHRJXzRh
JlYoYi19LXhrCnpifj9MV1VkMD4jejh0PGo/X2QkXyMxUXU/NVZ1fnF7PzhKPW9CZyRtcC1ha1RT
Qzxeb3dyNyomYVVBQ1hKVCtKUQp6RDdSUkJ6WEZedGdKJXxPd0hqJnhPOWFjVDNVTngwWGk0cUh3
dWNXbnEoRkEkVGw3LU40eCR9WjI7SFd8KU9NUSEKek5BTCs0YGx9Sl92aFp0VmVCT3JTIWRGNW5k
Rm17TytCbHMkdk4rc1V2bkF4PHdaKVc0aFhkVEB1Y1EkdllxRVFCCnplVTYyb0ZaIXhZamZ7K2w/
MmwxWDtaZzd9bWZRZ2FmQWJ7bjtDTFIqPTk/VGdte2EqflRLNkUtPSRiLXk+OzhNQQp6MmRKcys9
QXhhPVBHVEtJOTZ6U2AkOzYmPVVNXyhwPm05fVYrUkBLMlo8ZEpxWTUheG4mNnJrYnFXZV9neD1I
PF8KemkwZE9ePDgyTCF6Q3ZGP2tJfiVNMnIzUGZNU0VIQSpqY3o/aktMZClOWXdAYjNkYmNTbXNP
Vi08UT07UW9oKmFoCnpKZlhqZmNPJjFpZ2xgLU1eaWxARXQtQU97QXVGNnczSzdNNmB+cHxrJkFK
cTVCcDlTRUU7QnY4cXNhPEt7NyRjdAp6RU1rU3hYQW9rfFZ3VFR2QGUwUShVQXUjZTFxdSZJT355
MylremNVQGxsdUZVKl58fD5QNnJiJiVDZ3FXOG5EczAKempHN2x+QHhSIy1uMUYwdmk9fFhmNjZM
czlTUXpAZWNBKSFfMF5gT283VUVYVm58UStySmNhV1pBOClDWE1FQHhBCnprTnhJKHUpKiUxMzJ6
MnBfJjt7QXtmfXxHNmU8OFFFQF5XSVopN3QqJjZkYUo4JmJAI3dzcTRKSVpoa31WKFIrQgp6VCgk
PXtTWGsmKiNNeXVURnROWShNRDZVJSs3YVY1bzdvI2hIVXltRD4ldUprXmB4ZWUqeCpQZV84SFoq
eSlJdiYKek87RVdmKDF6aX5YeEZBMHY7Pm82K29RJmA9RnstJjlTc2FTKEExbEx6cU9QXiN9bHNp
eGUmRnVnaTNHJjVwajYkCnpmaHdPU0xZeE91I3khMWFVb3wzTyNJdXQoME0/SjthX1A1OHNmIT54
P3c9eWRicnlTQCNEd1otRFhZeyVrRERaeQp6KXFgakBtfSl9cGUjZFowZiRXdktKWiQ+ZkR5fTZ0
WEdiYH1FI352LThfTWdKcnB+QGFRREd4ITNAXjJxJD8pe3IKeiZZYU9LYWwmbjsrWDdYfWtaeHJS
Vj0tJiYwNSVZb2xxWVB5dVooVnhAQj0qWmA5STxCelpnPjQzak9ufTwmNnNXCnokTXskJD5OMjRE
P0NgaTd4c24pWCQrbmN8QXU7b3ExOWIoJFpvODxIPmFlb0M+V3BrMEc7RyNyTFc4ZF9FSEQ2PQp6
VVh8azwtcn1SQDUzeTlDSkk2MEFYej9uSlVTMm9rdHt9bnAxd1kwcWlGP3V2WTtlVjxuXj1fYzRF
TE8hVjYpJUoKenNNenRCJGpAQGNsamdaUXlqOHRpQHJQOUtrXy1KdnpKSmQ3aE8wcEVkTlclQkJa
VEZpP0Q+QFpwKWQ2SXtPdik5CnpfMWc+fSlxYlRoZmQqIUdFU3QtdUpDY0F4SnpeWWhzbUF4SEZI
PjdYQXpgYE1iOzU4c0RrN1NBQHd0Nl9Ta1ApIwp6RXVZJiRLWTdYVTReIWlZdGlJVTUjQzFrblMk
JGUqO3x4dnxWOE47ZD5NVHR3cGtqZ0pDNCs7UlBjdmhxJT1jXysKenlWPEVJbiFNMCpCJDRqSUQk
R35qOHJQJWZnWEhCQj9kUS0oN2VCbHBGUmNHVl4/JGUhVFhsY0g+fDZZQXVqTSkrCnp7WnA7eSg8
VldxN2QhXipQdmoxZVUwQVV2V0VJcGs0enMyZnRCTEV8KiRre3JaeDRDQDxgR3FtXzhxS3A9NXM9
MAp6WFJ8QHBIM307UG9nfVQtd0xMK0dqQENNX0J7I2dnaWY0SVVhcXBANm5IN1hKI1REK0ohXmdQ
R2BDejEoUmdoWkkKelE/cV4rMzNqbXspMnhKM089SHJDSjl7fXI5PjtfWG5sT0U8JEkjPHhNNmpI
ZXB4ME94NGc+WUlIciRkOCUtQ3cjCnoqTzBLVkZ5OVZiJSs9IXVOR0F+NCFYX2tqQG9XNTJwOVVq
SXlYeylJIX1oak9MU3Y7YS0jNSNIayV5M2l6Um5jRQp6SGtaPjk7fSEwKmpLekJKaUJ0KjlyJjVW
JXV4XnJ8RzA1eGpYSEBrRkMhUCFeMz00dXc4UUVQS15YSEJoc0p7VysKejZoX2M/dW9DY1ZENGBi
JTRpSmE3K2A9O0VUR1BMfHlhfDIjYSlnTThBS0NKVFFZaGkjR2JHNExRPH5jdkd3eGJGCnpXYFlw
dHxLWDRTeUNIPWVwd0d2KVlzb1UxZW18VSZtMmtjY2wke2dTUGo0PFIxe019a1hFZHMyPHJeMlU0
ZmpaVQp6KUNCKENSJU84SUExLV8+RHFMLSZXKyhZJGVocXZtP15QaHg2Vyt4S0VhWiR3SmV7dHp7
bl9ZPGY7XnRDd0gmNnUKencwNGwlLSo9XipNYHRmYGVBbnw+X0BQIUd4S3BYZUZMYXJsXkdxcUBy
S1Ypdz5YZXx2bWBKXnRvPFU7Z3FULXF7CnpVIVB+Wm85R3NeUFQlU0NkYElJdG1RaW12eTZ1Miky
Tz9ye0dVJGF9cUZBQSE4JEM7e0Q1ZDAtKDdvSWd3WWYzZwp6KmwyVjBqKjdjMjhRPUZyIW8rUXFL
ZD04MW84cm8pNXFERmtxSnJXKSpZdDY+KDFXd0A4JD4qYEcxKCFwdk8+KXwKekhwfCRrc3pidV5T
QklaeHFTNm1ua2NGKUxQb1NmMXhTRzBRc2hZMXl4UnxTTnl5P0syZHVAfVh1cjdzNEo5YExzCnpn
PzV7eWomPTdnUmpvTlhqSj5FJTs4NG0tdz83NyFJOVdLJC1wJCM+KThJUGRSXkk8SW47eDl8SDRw
JSpfJD4jbQp6aTdOSlYoKzUrS1FFMWNhVGVDeVIrTjhxdGx+VDZsZnhCPH5uJDNlMDhoM1A1WjV6
M3VgcU5sTisoRVEwaUwzUzcKekBARnJxV1dQcTItWnMwMV40fkF4QlVDQ0tUNl94RWtiWUlqcGlq
cS10LWk/PSM8Y21uQyFDcTUzTFJreCE9K3BWCnpnMCFfWm0mcnpWKVZJQ0ZkfnlBRzBYOTgtZWI9
X0EtI3paPVBtbytVa2xPYihSRH5HTURGTWRaKGd3UjhDOTBBbQp6T2JKJk9aQ3tofm1jMm9BVGZJ
RGNSbmgwUj0/KXRXN0x3JUlSPiRxdz01KyQjKCthKXhTcHkjUDFEe1J7P3hFd0oKemRlenxFTl83
Q1leLUs/blBWTFV2R2c3P1Z3K0l6UkJia3xVbH5GZTlHeGdvWTFDMFp8I015bWJINGJiKDRRfH0j
CnpjfXw+V1BSYF99ZE1AbHttKDdGeTdVLTFWUXRPY0V4KGBefitCPiE4WmcjcSNKQTdYNUFidENq
MihGayUzZCRzJQp6VU5IJWYoNGdGakhlIUJQWileSXV3UCh4Xj0mSnVlPkM8bjNjQWtGZzRFb1RB
dF5hdGM4R3BMbGZVPDB5IXp2PUUKelhxO3dNSllQcWZmfkBqPHFhZzFyKENIUSNGY3pGY1V1TmM0
Pz4wNmlUdUU/eWBvP19wKUY/Qz8meElJJGpPaDMzCnpMPmVkal9BcUctZHM4SSpWc1ViaXtidGMp
cDhjfHMte0pTUDU/UkBLWj94c19vNlZIWHsyMHxZZTt6VjJWdlY3cwp6ayY8TnF1Yj5LYFk8RXRI
UD5CYTZRTnloWTJ1O1hDNHRFSkhCQFZLWlF1TFYwLU11NX5Ndm00N1M/R3YpZH57ekgKemYhfk9F
VTFXVVZpMUIzOWpQKCZYUn0zYzBOYTh4UXBzRTh9RmM3PUJ2MSpORSpecEoza2YwTGp0Jm9XYnB+
Q3NKCnpNcyFLdDU/aDdBI2FHXlFZSX0xJm9kWlFyQklTMEl5P2xOWkI9Jm0/UEw9WnFvVkk+eykl
V0w8QGEhPFEldj9tWQp6SiE2Xz9FNTtjI0t0THxAPjVIdmkxZFB6MFRQd0NDNzReZ31XR1l6MiZK
I1FaY2YwP0Uxdj91IVV0OGJsSDtUeXcKelRGMCNVJHM9SiFtJUNWeFYrOFMmNGhRRkpwakNldXlz
YyV6bmpvX3JTeylCKHhBPT5IPXpKSnpGTG9tJWZ4RSVQCnpGQlVHOD1VV3p8bShKSkc5PW5jYkBN
PyQ4OHk5JVI/ckd4Rl49Vl5tRnpOfW4qS0JjKSg/QiNhbzg1SE5SeiN1UAp6QyYmeHZoYGVsbkI3
O29HP2wlN3ZgNTt1ZlR3Q2EtWD9BfUomIWtgPFRyJGRCISFGZHkoPGtMS3RiNCFeO2gwZjUKekNn
YWU/S3sycWtvZVIqdXNoNk1FQGBebC1sMjNKQyZadXdPQHR0R3RRQ1EqUkl0K0YqOFk9JTJEY0t0
ZTtAUD14CnpgI3d8R1YqK1VucVFpeWp4NDxwSDBkbWM4RjVPMDxpWlAjI1ElJjVaampvYjNDYmV8
X1Y3UE4lUSRLcmMkbV9gfgp6cyt9JD9EcUJ2Nmw1fXVFcEhuO1M8dHlgRWNVQVJoeDIzeXVTQj9E
PGNXQ04lKVVaOEZPY1FndSgmUTB3VWpzQ1QKek08OzxfdkwpTVh3UyF+Q2UjbjdrI1AtR2IjU1pi
Y0A8Wip9IVQyQX49M05JWmo3UiZqYDBeVWtDVihCXlktOyVTCnpXbSFUWkVJcEg/JXB7TkZ3SVRC
Z21ZPE1IMl81KyV0WVFIQFlMMihzdSRYYUlGbD1lM0x6Q05hUSROYGsoeXhFdQp6Y2h8M3ZkO1J0
cDVmdTM3KlkxOGVXIUVvYFBGa2IkLURJKHA0b2pqa3tmcUlsSUgxdFJENUJeYk5XfSZEYjA2LSgK
ek1tVyNOKHtCMUFpWmc1QEdaJUJGPiM7TXRSbGwjWHlVPExTckheTT9NMz1RdypqX2oqO1JmYEdK
P2xCPGVgSnRgCnp3ekhjPXN9ZX1WLXpySDwjNEpyeE8wPj5XTmkpPmVqNUYySE8wdjw9Typ6b2km
X0E0QVJOYkFQUl42VlNTS1ZEKgp6Njc/QHgrPUtHPGd+bU4xZkdXQ21ZfTY8KHNJYiRQUyE7YmlK
KG91WEg2PzsqdFIhNGlKNklsQCtrNDZnOCNgP24KekFuc2A/MkZaS2l7ND9qaDZEVXFHQVJedGNP
Jk07MCQwdEc4IT5QfUMycV5jcU5TZEApLXlDIVV5YXs0PDYlJCFpCnpScWwpYSpUZGJUUig4Y2U8
JmhFd3VraCFqJVV9RFl1QCMmenNLbH4lZTZ6bEFoSDAqVCUyY0NTemkjM2dwNDlWKgp6WkBmSDAl
eGFNc1QmNnc0Y1FLcjRnSzhaX3h3bEBiNjQ3VE9TYllOckRjMGFkayQlfkk4cGFZWVB2aTdDYz9f
emgKenckKkRoNz5QY3xsVFhsVWNVPUVgUyZ3WU9SaktQT1o4WFozPGlvRzc2VGpaUnpyNXVHeksk
a2NIU2t0OCVMfCY4CnpMVlNYbC0hQHQzJEY+K2R5MTNQfVBoXlJyYC1IWGQyWlEtQEJRKnFLelVi
ZEU0dyY4YihqSChEbWpxYnExfGRHaQp6ZF9wNDFnMkhiOVFGLW1ZMkhhYjZzJDRFUkBRdT0jNEFp
byNJQWx9OXN8WjBFPFU9RzxgPjEoa2FKcU08UT1pbWMKenNqbDwtOW0+R053SzFoeDd7UCR5Z1o8
MSFyXnsqNiomZSZ7QWxpdm10SV9PY19sYElrNXMlUyo7fDV3OXRHbTZoCnpRNGEwZ2JEa3YzWGE3
Z2t4NCQzSTxeQlYtdVQyYVdsV2EyQyh4PHA2UHk+PClMVm5hczdTSCMtYGVSdWY/eH5Cagp6QEFT
S3pzSDVqXzc4ZFRFYnoxdnk3SyFsfSVjSFR5ViVAYTR8QT9QRSUxcSNKMSFjSkZTTyordDttRFh2
aGdZVWoKelA8YChCQCVFWkk4Ymg/d3NEN0lgVyhIXjRZLTJ1fHoydEtsS2VBcT8hRSYtTnI8Xmsx
PjdoMC1FMiV2e0FiWHh6Cnp5SH5FRnhCcGxLVTU8aj8xQiU0WHdUWVViKUZmbW08b2xnOWR8QWIj
d3J9TkFeTGF8U2c8O0lgQU9YTWpyZ0Rkbwp6eUNifVE/TH1iVmF3PnR0RlI0ZmprejA+cmNkNWdZ
Kn5ORThgRk1VIT0/SlFNSmkkZHQ0SEVJQEx9UXpgIXJQXksKejdFQ18laT5kVFIwISpCVzJgRWt4
RTFCUWheNXMrRjNKeT45KVFHMGZqOXNTYEdRMig8Q2hyWjdCNDlIYVFaJmpMCnpMWX1NQzdtbXol
QWU7VjV3KTVpUF9ic1NXX0NHODVpe1hNKUZRNX00UypWfVYyWl9qTSUtITJFYDs4KE1LX1koVQp6
VTd2dkxJbVpSTzlFe2BoSTZTUDEkbUd2UXUzQXRFQUMoQD05cio/PHYkTE59RDh4KTlXYld0R3hQ
PUZ1UlF6dTcKejsra3gpR0Y+ejM3aEZqJEF6N343cEMwWmQ8ZWJifUZVai1wP0ZgNW96K2xKSDFy
am9SXlBxV0o4Nm8tTGQzRVI3CnpoRUhfcE49NHROIWoxdWQ5IVgxRC1iU2xgOGMqd1lTfU01I2NF
SiFAQW5hfUQoQyVzSFQ8I1R8SkN8QFQ1c2JEXgp6XjIwY18tKm1+aU5qYCV1OEBJemNiP3VPe1B4
UT4ocUlxa2YpQzBAZVJOU2x0aXghO344V29Ye3VzWHM+aW1Ge2kKenl3ej90JShIMCNzN3YqX08w
Wk1sWm88RyZIR25ePlVSOUdDclVWVHhtdX1iN1o2fnQ9PEY7QXE4bkg+U3NrRyM1CnpGYXtSVCly
en04cEhPaGE9YW59RGQoUHZAQ2Nie2llZUx6cj4/ISg+WSFvMVRpfVhDcHkxSmV4RTk2M08zaHtY
agp6U3c0aUxxRkBLVnh0QEd7bk9VeTRkaF8xJlUofXpGbHpkazZvYXRkUEY+JD9LWXFTJlY+fV5k
IVV1O3BjSnx3eUgKekZtP21zPShhaUMrQERHYERoU3dzYy1CXyt0Pm1xVHFNRTZxUXgyJChoYkpL
XyQkQ0hCX0JaZCRZQ19acnZqbDJACnpgYXQ9Zj1pSj08d0hzdUZSZz8tKzItRldHJDFmVjs3ZDVS
UEBwZ1R3YyppOHo4UiNXeGdvVkNXYSZTKW5wPVYhaQp6YG9ne0NzJWB1ODtpY18rRWx1LWZxeThS
Y1lGamcqYDc7O0EkUjhTfVpGTDM1IT5GdTIxRG9WY3VLPXAxT2FueU0KelI/WFp+KkpQODx6eWg4
I0JSM3l+cyg0TFFeI3EmWVc4QFA4MEphc0slTENrQV98dDNFSXQtJmZxZm9JWWBYMiMzCno0WVFU
e2UyR3VFdXdJdElFOW9WTkNHP1ZLPjNqfmAwP3IkOTFue14+b1QrMkdgaEc3aTgrc0lhby11QTFD
fU9ZMQp6Wn03PGFuZzEoWVhsTXJiMXdEJmY1QVkrUnJNIUtRJEVZVVpJNVhNbXh6cT5nQFJuNkot
RVVWPyVgPX5NeGA1K0YKemxtVV9tWGRuV1FpX0x+PU0+YTMmNEI9fDhXM0BTJCtCKCQmeWRSfitf
ailAJC1KSGtmUkU7R0opYGB1T2phTk40CnpHZStWSyQxKlRLdWFrRndlUFhuXm4wZ2YyYyltS09Z
PT55fisqQz5pdDxMailgaHxiX21CeWRTRSMydnxMKkI5Xgp6aGFgPlFAMmVKWFNocHUhJDxgeSk/
PVJ2d09QQUR+JX5FRWxhM3lCclZuP3tBVmtOa0Q1aT1sP3E8ayR3Mkk8O2cKempBcE01V0p8Z0hF
U0loZEBAPEh0O2FeTkZGdH54cnA9ZEpLRGxxPT5ya0Elfm56QDs8RzdUdlA3U2E1ZzRkLTlmCnp2
Q0FoKSp+V28zU3hpPjYmSWFSRHUoPXJ6SCElU3Y9dXBASnc5KGJhcEZoczJwRkl7KkZMYmJUY1ox
a0lZcUJoagp6cFhEd2spZ3JgPHIqb2JAe1o9VSlPSmxYMTwleiVDXm4wd1ordncwd0Fqbj12X3E2
a0BSdWwhP0ZnJU1PeF8kbW4Kel55Um1UYkRzI2hSU34hQ0s1WnZgeDx2QTYpNHh5byZodiZqWmp5
JnFNVkNzQFh3V0AtcDNJVWhZIWEyYUkzI0M8Cno4QDx1eWFnP34wLWUqUi0rVW1PJTdwUj8qOWs8
a2VvNGRXdnc3Pz5MLXI7ZXhDO35JU0x1MEVlVHcoSVo8R0xuYgp6Szx9SUpPfVlJM0Y9NjBae2Vv
JW1WUCREbFErcH1IU0hFdzhmJFB6WkR9KjZQWWh3eUhAWGZfSVZoPEtMR2B8a2oKejMmb0VZNCpD
Yz1AaEg+bGxUOUAxSENGNDdPNTNjUUkrLWBOTTBgNFNAKmJmRjJWS09YNn5JV3VTIXhIMT9Wenkr
Cno1NEFXT05hMXRFKyk1MmZTeXNJQkNgbGhHdDNjTFhBN08zZWtUeFVsX1l8c29VNmFjKjhlbTJz
cjN+Zm11cHomVQp6K3d6Mj9jWFVuOWtQSnhSbCZmcl8rUld2XylnWHQrZ0E4ZDdpTDc2M0kze3Re
KWZSa0pBPUdjPUBUWVhQek5taWUKemZrfCgmd30pZU5lQHJ0Xno+aXhfOyZmREVsMk1uI1lwc1dY
OWFrMCkxQX5+fDlSPChnPihPcUhZX2FlZVkyIXJfCno7eSl6amU9NH0wd3M1e157KlU/MzskIWl0
biVRcVNEQzBATCNqYU1PZylfSEQ/Yno0fFVrbUhwPUZEcXFfPVJXPwp6JnZ1OElVZUhMX2N7WWRR
JUQpdjlHKUQyWHgjZmtQeXErZT1sZFNRbz0hcUt6I0FvemZ2RGZlfkZrfil2b2FXWiMKej1OQiZM
Xnp0MWA/QWNuNG1USW9eSVc0VSMwdGUzOzs7WXdlT2JOQkk7TCFQZHYyeEBhKFdxTXcmKkBORG0q
Rm9jCnoqS3YjK1poPSlMZUs2VDhQeTdOKjNpVXhQV2lIZ2ckRSVhaz4+akdBbWFpemhHTEBGZEMr
aSY4eXpNcjBQOWlJdgp6UnRnQWVhRnhyV3gqei1qdDJ7TnEoRVJFTiN7SCNkU35WayMkbSgkeC02
UFpFSyE7S356XnFMJm1VLVZhI2tKLSUKekYldkYyQkZqMjROQDU8aWozWEk8cyslcE5xMXJtVDdl
cG8rbH5qbWRKSlBDN2dnbUYmWFApRWgwX2QqPjNLcE5XCnpoel49M0VqOCF7KGR7UX4zMkNqdkZV
U3t7WXEjNCFnXlNnOFdYSkdhI2xjOEtlO2poM2pnbngkYGp3T1IpKntUZAp6bEA7X2EoZkA8Uz0z
Tz1QVFFULVJ4KERYVEg/blItbE98IXJSTGMweChEc2o1Pjk9Iz9JOEtpP0l2dzYhWEwxWSgKej1Q
VDhZX24pT018NHU4WDQ9QGxYZD0mS2FlNERreCVReFI+YTw9fGs0eUgqYXUqbFQxYSNabjYqa2tH
Xk1qSlN8Cno8PHIqVCp8c1Fpb2dSSjdqYz8zY2hTTHY7X35iajBeNnRraHUjZH00cD5gVStjfjdD
YjRKb31NeDtnajhFKShQSgp6eGR7cjYtSDUmdEJScWBvJmt1ZztFdk12dj1MZj1hUlhUVXslVnIw
KTJIPFpCS1p6QkRxd2lYO0RKZFRKWWtPMnsKekBvO3t0U0MlXjN0azJgfElDSkNqTGpVMFRiX0lQ
JT51TWt1MW1KcDUyWXBfTW9ISGU/VTYlRHhQeDFeKnFPcSE7Cnp7c2ppbm9fIWpQWCYhTFF0RUBl
dFdsQU99Pjc1cD4qSG4mJGtBU3B9Wk1QK1UtWGI9Wm5vd3IheDFmPTZTPy0/Qgp6cGpefnRSckpg
aDFvMTN8IVdlS2liSCFjYEE7YU0hJjFwJDlWdXlGbHdqVEczYCplTjFUcTw/RCVLaSQhWXZhKjEK
emA1USkyRT1ab2BgMEE4MiQjaldoMFBaKl9ieG4wQG5XNVZBRW09KXdmJDZ1Zih8I3h2aDRAZE9Q
aSojXlU5U2VZCno5cHZoPGBEKU87SipybjVnUVUkRHdFczJPMHglJUVtK35jJTxCbT0kbnM5T1Na
czNfVCk4eFVyS0x2eyM8JjR8cQp6YDAjdnhCOXFPektZU0B+cDtDdj47YjdpJD0yakF2KW9NMngr
KXNtTXFnQ1NRZEdIdF5qbkhWSkRAMVBVdTZ0SjEKekZCaGMzSDkkYHZVM2tGS3h9cjBFPHUqNWs0
cnc+VCNSSGlXa34pcjMoVll+IU4maGs9THN7SyZHblUpQWlYVCY5CnpyUjZUOFQlK3ozNyVpO2hT
UyRVNnNyNX1IU0lTRGckeVVSdHQwM2V1JVJHeStTeUVWYGRnWWI2LWAyLTF6VzBwIwp6JVM0RiZw
Z1Zuc0phV2VzcEska345NTh1cnJQTy1tRUtPakExZHZKK2ZGOU94PERtfVhnSyg5fXcpV0c8Kkol
UCoKelAxUWc3V1pfNjtuMkskTWdVRyVJbT84fDxJe1NHZjl+VFk5emY5SkFfdjVVUndgODJ4UDc/
RlRGI1RkJTFrNDN2CnpCcD1mY1B3VGk9YX4kWGJsPXkqI2pWUG4yRCNsX2AhNjFSJmpEKllNWmZn
d1d4bkphazV2NGJRa05BbyZlVXMyMQp6Z0tnTWJvJmpUa1RxMW89OUEyVHlAJW5RfiNKQDUxVXpF
QXs4dGlJOHYtNGAmbyUjWkhCdGUkU1khQWlmOWZWe2YKekRWTSlXYn5gNlhiTTBDRmxpfDh9KGg0
QWpRNndGO249TkhGTlpAJmhpWjNwaXVmVGE9WmBwYiF8TlB+eGFgd2VfCnpLZUE2aERlPX5+RnFp
eCNzTz5xUlF1MWRZNSU8TGBNb0dAUWkzb2kqeU4oZmArJHU5WS1RU0x6KmBCelcxVjZYPwp6KUs4
YVc1fn1Te3hmUm8kdURHMn1lPHJ3My1pPm1SRlZpQlJ4OGhrQnN5cnwmSCM7XmlHUT5MczlnJUcz
NWFTZDcKeiFIWGxae2d7cDgjbV98M3tjSX18NC18MUlIST8heGxydUY9KjdjRkFfJEszJTxLJChX
MHxefCFUJWRgOUdmK24mCnooJGc/c2FtSiR8YU1fNU9JK2o5aG5vOExCXy1QN2clSUNMK19Gdzgl
N0tuQjxwcktJP08hOXZ6OEVGWGlIWEhvKAp6cH4/Uk5MKUU3UHdRUGpkajRHQEpNN3hpfjVYbXpN
UnJ2RXkwO0JMSTU1dDlVa0UyZ01Gbkk4REB+JnJXZT1Ddk0Kem14QDdQQkE1Pk0kVDYrIyEre0Zw
eiNmbVNhMzktaGZvNTx6ckhvNlEkKl9EcDxKdUdLQ3xkZ3Y1Kjh9aSt3YmFRCnpZWDxkZl5vOXR7
Vm4wTkckNlhsT0I1cz1rYE59alRWaUdmUCFoKTk2dlNvVlc0VlNhUzQlQiFuNFFBMkRONSMxSAp6
b1YwOTdEIWdjeTJjTVQwPFFWbVRkbTZ0UnEtVWF8UXgmJEEhSS1DMTNydjRuWG9ZaTFvYEJ6a1dU
aC1MLThMRUEKejJBI2p8Vl97bX5OcShvKkQxUTg9Sm4wN0NMJmtPbyFLYyFZe1Vie3Z7b0cyWCNf
OHdlNWw8RHQwLUh2Y3oxITVvCnozPDJrLWZmNmlyY3lud31SRldGOypoRmNvUl80TjBVOF4oSiRA
SG4+QnpRaXFxaDtiVXBzXzdwNmN0NyNGT3FeUwp6UzhtKE1OS1ZDUlRoezMrVkdLRCFyRj9ZY1kq
fCVmY1gzfHJWM343JXBTTnhuaG9fLTslQk0xPz5yJS0kNDNlLTwKemVzSTlsJiYmY3dDWE94SG96
bkdLWGVwdXtFPFVpJFhPPTsyPnIteXExISg0TCl+czxRWj99YU13OCsjdFo+UnVSCnpFSjAqdkBD
PFY3cmdJbCQ0cCMqSiROe08jTURGUXF2WUp3RFQlI2NoYmEmQ0Bxc1Y7WUYhRTRycHBSPFVfS0FC
Pgp6QnhZYGM9cnRTKkZPMXl8cSFBNChsY01EJVhqTEN0emNEVXZ2Qzd5Ql4objhSWlRkY0c3N3FG
KlpeS3ZaRl48USMKekU3WEQlVURSVUB4YGc1VDItO3YyWiFeM2w9ZGA5PGgwT0FPVW5qQD0oRXk1
UWYoR15McVNJYiRzKXpTSGB+eTZMCnpnTD5uVDxzZ2BhcStNNnk8aSNmSWhvU0RrTDNDMTlnVmB5
JjRnJkk/ZkJ0RTJiSj5ERGNyNT43WHEjQDAoNENUPQp6RF5SelJpcnlCZDJTYmk7Rl48V2hIcnF3
PWUpMG9iaCo7RnU9PmleQ3tzaW8xRDhWcm55QTd5RFNkYHFBWH0kJnIKeiVNVCY5KSp0eUIrYCNu
eEpEQk9yXnJzc29FKVIhTEtJSTk2PEVVeUFKZ1kpfS1RNmU4b0N2aX1qVHolPVcyPk52CnpDNjUo
LVM1Kjd2WkxFXzUwX0BYRCFlbmYta0QwaX1AdWBHJSQkRntRemczYmdSMWBmSEl6VXtMKWgqUE0p
ajZMeAp6bnd5ejducWVaUjE7K3h0cmN7cV9pPEBWMCpmKHt1YjZGODRaYWxuN3p7bjxLPypmJlIm
empFaFJibGx8MGIhPSYKejhZZ2RxQVY0djt8MEM1JGtINyswVHw9cD9EXmAwXzB8emRDJjBHcTZH
QyhUSXgkJWtaNnRHRyRqUjswSCZUd0daCnpUbj9hQXpyLTM7NnlPb1FWRUFCJnI8dlNJRzx3RE52
IWE9VGFaKTE8PWFKWTw+e1M5Tk1mTnEzUkZrJGNrYTVPXwp6PHRvIylUMmNsUCpRRCtAOUQkd0xS
dWhwYFc0ZHVWK3Y/cmNCfD4jfUZYUWtGWkc8Q2xfalk+eyZAJlclRz18JU4KenMtekshR2pAMzYh
M0Ihck44X0tARl9+MThhWDgtJkREXjlxQ1RkKzckeW56fFNyaV9SO0hFPSFZe29QS3hva0pJCno5
MCR5SnhtRF5odXo1RWY7I1ZuQj9yZ2FRJFdSc1d6IT1nJG9TIzl5eHAofj1JJHRqc0VAWU1wKjFI
WmZRTWsoIwp6dmZ1SkI7U3hCa2Eyc09SaGkydWRzSlhVVEZkK3dURjFeOTFlayYxWSshaloyYG14
V2hYQm8ya0U7c0JPdzhYLSUKem5JcHElZmtgRyo1KmZVOzhzQ28rNkF1WlIraD8lbCYkNHt2OVZV
JTlPLXRySjlZa0FxYzxPb0g7bmVxcmFIeihOCno5UDdyWnZDWj1PNDM4Kl5qc0QmS25iVnJ0bEdJ
cm45RmFZV0JrWSZMVTxrI212MikmSms+N29pTnFraEtmPX12UQp6JWc4aVIldHE1KSpUNmQ3UXE4
dX5RTlhvUFFycH5qc149NjItaWM7Jk9HQ1Y/WTQ2JEwrOzN8YWI5Q2l5U2k/NyoKej9wNEY3WTt2
SCVJWks2O0ZxVT1hbF5DYURLOCRvU3NjJmAjayZsTXNWRVR1KjQ5QjFBbT9HKilHWSh2U2heVUQo
Cnp4a1UyPGhMMXVlcEx4SmA5aXBAbmRXUC13QTZDX3Z6eU41UkBjWU5OK31MJmxpYjc9PWA0dDA5
LTktelg1eyNDegp6NUh0aE1LTVQzQE9ebHBuej1yYTVCbCRwOCpsVTtlR1VKKnlndSQpcV5ncjhH
bjB5YHBZYkhMMzxKdXdiazZMZ0sKejNLZlY1JCRwajQlVEVgR2ZDeEBiZT40MXcwQ1YlJXpoKTFo
cylBOU89Qkl3eUhReCQ3MWlmLT9Aa2IwJGlwezg2Cnp7UX4oKElXdDE1S2ttKy16JUl8dFhgPWQx
VyVYbnpaZX0yY2kxKmJ6S09Qeks9azxiQXRfUDN5LUBrMCpKS0g+cgp6VUZ7c0NZKXt6eUU9Q3R4
R3BUUThtPipYQjw4QVZRVCoyWnBreHN1ZG1Bej09WTdZVyR0PXNCYXtIdzIyM0U/Z0AKek0kbERL
UkYmWCFBfENlYl9gSCZFXl8xallXTkp5cm04QT87bEFPRipETD5KOz5LKlNObjJCTjApQk47UFEh
M0tJCnpHUnVHcHR1KGpRSUBfKm42WU9vQGFxPTtWNzNTJmxVQHpHfVNeQTw/ekxKaT05R3R9eXI1
cnUkOU1tb0k5ZWdjUQp6bTNSZVk9WX0hRlolUXpOJDY1VXZfeHNXdEBiV2NYbEZnUmFMeH1GR0kp
P1Y+UXVFRXJzVloyJHRla1FWQigqXz4KemRYNUdPSWQ7ZGBoSkdaZ3k2I3daXylYfWRFV2U0RT0/
Rzk1QDFKPGJJd0pwNE48YXs4SzxuUXxQM2ErKjxWfms2Cnp2RFRxI05pUGRyRnpxO3xsKExpWDdA
TzJVWWFZQGNYU2xHPDEpeHxCVEFBISR2alQ/O3stQ20mSGh2XlYxajdfSgp6IVB7ITxuRCR0M2JY
N2JWUCN1P2lsRC1FVVghO0FPS15ud3kmI35LdiNmWiRObj16O0VkTjdaKVUofWxUdXkmdkkKemFL
dk9SMCZmTE9VQmJtUlpiaEUtYHlmPTN6JkhTQWx0RUg4fEJiTj5CSyFMaGxPIWdmYmhPP0teK0p5
bUh4QDVrCnpWOzFneXJyKUBIOWo4bEcjcVI0SSppb2sxbXxNKiVaWU4/SnlFZUdiQWRgX0wxT2tR
SXhMWk0mNn0hbWt2KWFWVgp6TDFAUH53cmkwNlFUJW1TKXAxS1FXbjtpUntEU3VYaWktPzJIZmM8
b1YpN2ZhS1JIfHR1VG1MaGdxbyZ0VDF7PHkKejswWCZ5ZG9rO3RFIWh+KTdQYmpwWV9wKDlWYmJS
RDllaC1xREluYDZQRntYKUtRUm9lNHxudXgmYH1xdEpKP3FQCnpTfGt2TCk3WiRXQ1NAfHNGPyVo
UWYkeTkzekNhdCl3Q3Y+VTVGTlJWR0pJWlNXZmtuPFV9VHNPYyhsemg2fThQWgp6d0dAZVdGJXQ9
dyg9I2t9YWdZakA2U0dNNkxEZWk2MilBeVg0YDx8dW1PX3UxMjlkbSpUM31kKSloanYwPGhHNXEK
enxIe0xtPHB4Pk9sPzhsZFhjR0s5dWReUjYoIXpZUCpXfVdlKnJaJTA3KG53SHRKQSZPc0haSkd6
bUZpMSViNStNCnpBU1pVMUl2Vm52WT5aNTEpRX0tYTN2PmxSJClMXntVY1JPUDZJPERrLTJ7ZW5H
b3F7QVhALTY8OHppLXYwT2lTQwp6cmJ9dmlTZUBzXkU/ZEF6aFMtd2B3VFp9bkRpc1MqJHZlISRT
OGNifE0qaktYaWQ1PTJFJip6VEkhMnQ7OGRkRk0Kel5jMGdZbDYxOEtxfkNHS0VDankkNWtUZyZ4
PmhTRSUtQHdVSHVJP2RGJT5zWDI+V3U2RENvOVpsUjNtYUZvRj9oCnpsYlFiIWV2eXFMYnFNazY9
UXlHejxyQCF5azhfRyRFR15HWTUmbjF4OWFHfkFnby19eSU/TXgxNVQtWDdRV3NYKAp6YSY0MS1k
RmUkdGR7SlgtQjRoRWVwSTgwY3VSOz8obWRmTEt5O3ZRfXsqaSFvK1ZBQFloUTFzej5rV0d+aFM5
cWUKek4lMkBqP0JuX3o8NE5sQlVNU0coWW1LTyVgWSNQRHo7NlRUUygpSUJfIzxaVEE5ZWNwNGZg
aDVeTCswM2plN3pDCnp6ZChmfUoxLTNwLTw3KGYyJGlEemp7TEw2LVZrKVpKbGZnPVpQUHRzbjdL
KTUpSCY0ejUobE5kJkJYfXdJfFhHOAp6QT1afjNmfDNYTnFUNWlxayNsVilzZlZmZ3ZWJDBEJVE4
fTdNLXw4fVRgI3ozRzdYJkJZLUM+USp9RXFHKCRIQn0KelhqNF94O01KNVpaKHVUMktENzhUdTxz
V3VNVXxBPDFNcVVjMElzQSNqcTB+K3toa3shQSQ9e2VxXzApa3UreTAoCnp0eipaQTtfaHY2JmVS
QElCQFBAQlk/UUxsYmNWe2U+c2poVj5eVnx2OVhEayZyOztjd3dLZ3dVQGNZbnF2XndNPAp6YlJm
Q09wJnlGK1F+b0d3JnQ0NGEpXyZXfkN2KWgrdXRqUDtoaTM4RnZgTCloRGA5e2xfSyk5S2MwKWx4
WUZJcn0KenJGQV5iclpWen57MGJndXJITjNTM3hMKEdTSzZMdjtwbiUkNGM/JHIjNDM1Izs2UjVG
PWF2MiU5b0wlSDJ+NVRYCnpBOVJMVztRQE42I0xfJCNYbn5VMjwpJChhd1MzQEhHZCg2NTw1eWU/
RSFQXiFvanR+e1VQNFp0WjBTb2AqI2pyRAp6YD5jNTU9Zjh7QUojbHxEZ295RUVjRGJoQEdnNGdC
a0F9P355PSg4OXohNF8oLT9sQFJITHt3Z1liJjYkM09jcjsKemQkQU5Ad1Z4eyUzezhUQmRkI0lu
UDhFe3ombXchTmNiaEYpMHxKblJKLVhtS3IoRH12RHA7Tkk+anZlaioxfFJ3CnohPTNGQ0xVcmFX
dkllN3VwfndRUGtWc3VoS0ZAbjElN2pVWXtCQjAxY19MUFNKa1hONGB1VCU8SjNyKUE1OXlgegp6
b0pJTHdfUF5tJng+a1VuY3JiWEpMfWBJZzFOdUJaUkZWe3BAaD9DRkRUazY4djNwOENWbSQ0cEph
c1c2VjAoS3MKek1BQ1lkPU5OeSNpKkQjRiVVT2czYUNFWk95bnJFIWgtbXd9S0pIM08wKW1gUVQr
Vlh0U2cqV3Nac3hSQzlNTkFlCnpCZm9FSG8rLXpvZCl1SX5hT0t3TyR9bDgxJUQ0eSl3clQzamE8
Y3hAcDx6X3pVfF5JZ148QXFEPXhyNyRyc2V3Ngp6UjktSnZPaTNAP01hO0w8TXB2bXRTN2t7eldJ
aiF4Q159NmJySl9aJkBkLTdrMHYjTm9PUyp2OUVNIUlSPmEodE0KemEqSFckJDB9VzZtbG0kT3sr
P1pUPDtIR2lQM19yfHN4YnY5cTUjNFRaSGJ0Kio+PEA7Xlo2VVdrYWE/UmpFZjAtCnptZHorYWdp
MWNnRkk/fUFeYDdkM1FEfTNaNWRae2pOJiQtRFFGaEJtPi1ZR01yS2lVPF4+USZyQlpKWkR6ZW5e
eAp6bWVmajRMTX0rP3kxUlZCI3JRfGJTRmIyI0UpeFREYmZPN1EoaG92KHM3ZD0heVV4R3dzQUps
MilsakNSR1dMNTQKeiR+MTJEVCNAWjFLXnYkQVhCbnooKFN0c1hWTD1zMT5sQXsrMGFZTERzV2RA
YFRrdFojY0xFdFFBaUgwfW8wMChlCno4OTlGeXhoRWZAaU50cm8yOXBHfEV2OUQoWnlTPF44bHVP
bnM0Mnx7Z1hxTn4pVkBpQjxtYXwqTzV6YD0/akl4Pwp6LUJBUmleKkpzMFBJUnxnKG99OEs2Rl9x
K25ZblcrPjdfNCk5TEw4QXQ1WHArQ0I3cENRMld5JilPY0orQlR9KnsKemYtTkdkaiZHJVohM3w2
IzlZNUFHM35MdTszMFc8Y0A/VlluejZZYVpHWEp4PnYtNkIkV1BCSiprKHdaM0FicjZ2CnoqTGZn
cG88Q2BLalEtU2xaUXkkWElxN3Vme2wlakZrTVFyRlErK2M5eCokN296Myh3SnoreVdJen5OQTY9
UX1fQgp6e0pgPHU/YnYpNGp2R1BPOXg/XlQ/WUNVX1MhUkVOeEU+eUpiPkJzJWgpbWpgMCg5TF9G
akN9TiokeG10M1NYYGsKelQmTnIoPyhoTUZoQGh5QEwmfWJRQyR3NWJZK0k8XjFuZEBKVFA+UjVU
ZGZ7fkpiIzNVQk9GVDVOUE1DKDUhY1MmCno+KGt5Q1NFd0YrU0hmQjdOOWBGSU1xTnVRI3ZEcDJo
Zz5YNmhUVXVgbmVFJShHcWtzVjhvRXhVYm1MWkwyOGBVawp6IUAyKX5qUElDUXtUPmBtYzh0KnxV
S2xxZXV9aE8jVn0weTx2MmlOI2E+SnRKQHl7amtyfT9HS04xP2tDQFZQTXoKek1qP25VNilWTVBW
bSFRZW0xbWQ1KDRSU1NnUiZFJj9BcWRlR2ZBJm5IfGJHKl9gVGNVVUNTWSpLSElNekNfd2U4CnpP
Z1l3aXRZK3NMc0t2QVk3dFcmUWhkeE90bDNRVEwwWGUkPEVGQ1ZHZD14VmRHd1RlQmZ+ViFrUTI+
eTIocFpaUgp6eG5iLXZwXjlKd1BVSj4pbmpgTClYKHNRZXRNOWhRQipCckc/enghJiNmQl4tSiZT
LUlSWVo0QVVzQG9KWWlgdmoKelVKazIlYTFtQGVXMWBMblJVZ3x1NypgYnwjblF7b0YxZ1p5QGpK
SDNYVks5RHF5KShiXlFFLSsqYkluajJCc0wmCnpBYzEyPmg4VXFpYGRsQGoqY2NyNHRfWkF+cXAl
YXpka3RjWG9aP1J+b2JjY19tI1FnSXI7Jng8d2Zqa1c3UjlsKAp6Zj1BLVdPNzEyKmkoe2E/QFc9
KTRJPGA+KmZCKmlwckZsS2ZqRW1+NnRUSiE0KChYazdQSCZAfktBKnsyQXVtaHsKemJOYmFPczZR
Nyo+PndKPFpgbHt4aUF1ek0yKGdvaEloJTNvQCl5ZCE0NEJRbjQzVkoxN2chfmZeY2hvcGBRKD9e
Cno8TVY5SGFGTmdlZVdFQEB7JVVOKztHT3RoTz4zcEdkRWo1RFAkVEptNnFUQDFqNFYmcXVKbmBy
aSFeMkQ9fGArNQp6QDBsSnN7VU9sbS1AOU09X1h7KzRIYi12OXZFVGhuVkhJO0pZXiRQTSNfVmx3
dTx+M2dOa31Wd1pndnhgQFo9fXYKemRIayY3M1lSYlU3TU98ai1NKVF1dCp1VWVDVl47NmhtPVE2
VztKfGl3eDFaJElXNWhiR1pqPnpreThPc3c8LSR6CnojMC03eXtkNCM9QDM0dVZkYm0wT2V5Sko/
VWFZenNLQit7aCgxa1psVTlTSmd3Y0hkYVBwc0IjWW1sKHx4empAYwp6I0JsNHJ0YXxkJFJ4JTRW
YiF0OFVDcCVWaEd3clMwUmlFMDUpdkxNcFBNd1pkblZ1JTs+QVZsQj1OJVIxbUdgXkwKemwtPVpg
emV4fkoqWGk8dlJlVnlgMTtRSl9ETyhJeEBReHo1a0kxbVdBKTV2fiptMT9LNXBCLXB7R35jYSpx
JU8mCnpiTCZTPzVKdmJLN20oSF94PVQ/eSM0K2YhWnN2ZyklJFUkfURPdn5BQHUhWnNZVlBZMW9U
ejJoRnZaPTw/YUpNaAp6MnA1fCZ0cyNgJUo0NFZjMWwhYDt3VEFAfWw+Wnt8cmJDfDdBMGZYXnNj
S3FiJkA5fkhRYXx5RVJmOFJeRFBASVkKelJXJCMrayFlMTZBJileUUNhYTNiMlNOR19XZDsqISU0
MklUSE5VTT4wRyhMQ3BOQlErQmFDTW4zd0REUlYmTF5KCnpuZ01hQlcrakRXOHR6R1FSZlp+Pjts
dnIjNzNXU0VkZl5KXlpIe2tDVSRFT2l7YVQtayhJdGg7PDUkYVBXMSNXSgp6alh2bkVQNj8qSlA3
S2FFVz0wY3VDP3IkN2cmUD1JamNIZz8qKUN4c3VfPGxxOH5eSD9RKndLYHc3YCpIIzg3c2MKej9Z
cTYyUnFgfT5eMUpTMyU9VH5uUmxJUXV7UnlHKVF7P1ZGOWxlKSRqOUxOX0BBbUJjPVdwbUIobDNm
ZXIoTGdACnpramBoYiheYjJVNDhIbkZiNGEmaCp6LXIjelorQTdlcFlZd3E8bjl8YyZ+UmdvNHpM
ejgtcG1Ab207RnkzamEpUAp6SihIKyE5c21qeSNObj52PV9EKU00fWpaIzs4JTdpPlo/JERtNkxB
RGFYZyRDdiZaWUI3cGIyc1pKc3coUUR5MjsKemQ8X1ZndDhyQHk2UGU1MEpJZ2BGdjc1V2V0OEVv
Y0p3NWxKcnJNK2RiJHkhNXdTWTVqdnxNPnV1ajZkUU9FdzxUCnplSmd2YW89SFUtdUtOWk48PHdA
TjxGOTYyJEVNJGU0SUwkTXhOZyhOPD5hKnFDKS1ZI0NvQGklcjtkKFRwb20mNQp6WXg/UDJyc0ZM
YE9Re0hzKDxWWVltckJ+WEdtJDBUQjhmVFBpV249VHdke0drVz8/KH1UaEc2JCRDc3RlVl8/cCUK
em5lPTJmS29RJmQqKkBETzM4NDVOMmVpRCs5emQ+bS1qVCFyZFojWjxkUjVjLTNqaG59RDtDWmQx
PXVYZitfSTRkCnpXQmg5OVRmfE1lO2dmUiFaUTlkN2BvYTlxWUtycT83e0hBWCRDViVxKXNIIWUx
cDxPMSE/cj9zdUh6cEphQD1Ddgp6QiR+eVZCKjtuYjJZZUFYb2p2NjNFWVJPZVlDZ0UoTlAzIVUp
YDJaPiZqKDxYdSR1Xk1udHVvM0x3e1k8OFI8YnUKenNzNTNHIT88TExIRl9oXj1kdzF9dVd5UWEh
Tl9UdlI9c2FjSTNJNjNzTzFPK2VXXndHV3V9NHw9ViV8WCNsVjlACnpeOSN6Yyp5alVIRFNWVGI0
PShEczwtO1MhRX1DTjdhX1Y4WlBpbGt1QXR9ZTdqX0ojJjcxWXxgJWV0THJEU3NIMQp6Zz1IKFAr
UiUxUyo3Y3ZCQmkmV0x7JjlhUWk0T1RJRDQoZzt1Vjx3OCNTKDwrVSYoZXcpSFM9NVJsflpNSE88
PUoKek5ZI0IraVR0NzxCPENoUGpjclYmaFgxMzlpRTRBYyhCN14rTntGTmRPcUB8ISQ/NFlJQFIr
PGFteXs7MnBgUEtVCnp0bmF4ajtgNTUoUm5NIzNmSmJkdHVsbEtSOz1Bd0ktOW1LZW44cCZIX2tN
TGZqOTRTbjhOY1U0VF8rbGxha31YMwp6dT00NXBiZmFfZjtHWGItQFImdW9NLWxPcis3Q1VPdkBe
dWA4R0NlPXBGQE1KNWxOYG1RPk4tPzdfMkRXP2NJZXUKemEqUj9GXmpqe0BKQDQwfUhTVmdJbWFU
UDxNQXskOWlyNzMkVVZVTnk3VWJ1Y2V0TEBzR2xnPGIocSFGWDxDKi1iCnpXWmdGVXQqKnlzYSRx
eWtsO3dgeWxWS2sjPUYlYlN6YTgkJVNIWHFQTi0qV0BOVW1tPGMtfFJ4bUUhSU0kTmxqNQp6PkhR
KDt7UTJUUTU3V0x5XyUqcXpzND0tMzE7ejx5c3EhWHBtUmpjZFo7aXxZcGlVQjRPOzNBTTdwU3RV
d3hZTkAKenFvfWREcT9MNUF1SnJyVndlcTlfKCkmfk9pTisoMFlxQUNscXpeNjcmTiU3Wkg+SCFa
UCM8SmwzNjJuMD1mTCZxCnp1JVcqXndxK0plQF59diVwKmZOO2VxNnlUbDJgU1dDOV41R0N2PFRv
ZDB1PX5pRE1BWTJHSFgwUmt3SWNSOUtkNQp6ZFhPKHdQJW5fMlY0MVFsYjtYejxVWUg7JE94eEpY
c1Ala05Pbm5LU1hkZFc2SH1BWWpLSmM2amN5ZX5uQ29fcV4KemlnIVBLP0d1ZlEpSWh7N2d9bnN5
aUpFcEppeEdRLWk3YVNGbEE/YlheVkJ1SyRVNHhaPGgjIU9RcHI1T2hhWFlCCnpHMSlWWUFALTs5
PWh8Tl5Wfmx8XiY1UihQUVR2fV4wK01sYU1qI3BGdVBSPH4rfjg2YWJNI30oI29sMW0raFgxYgp6
TENjWXpKcjM3Uzx+U0VNdjZ8Y1h1ay1RZj5kYmclX1gyTTdZM0pRcSRaYkhHSU1ROW9SclNOc0c+
OHN4TXdpR2YKejd8eUQlZGNGdzE+UVU5VmZNQmE7RCtjZVheY2UydSVvaVNEdWxmaT1CZGNUPGk8
elNXWiNCN1NHUXBFTmBBMlJECnpZVH1mYGxOQnRoOzh2e2FlZ2EqJGtYPkJ3U1dvVHtUaUF2VyZT
YXBlUSFTa3skWDZ3ZWc7bFI3ZVg/bV9WdCYzWQp6b01OU0wkWDB3Jml3QHhLO0oleUREP1ZePlg9
eiNNQUNfKlEmdChmOTZyLUhHaShKZlleMCpIZGw8RH4wPmFjOHsKemZHaHQ5Tmshfl5MaXJAbnF8
bipuXlcrYFczMVJXMmo+UjtTZUs5NXRaJTZSeUIpbnolRnA5R1gybTReKC11UUNgCnpIcndJbnF5
U095Q2NFO0debyNMJSpvRCROdjZRUm1RZ0c+YihlI316R1R+d05TMD9MaDJtMXktSCgyNTxIJWgk
Kwp6d2lna14zPnZwZCptIVRBcWBRc1pWbUQwQ3p4c1h5PkBDJHcxZWVsRCNXWjxkRS1yJFBpQHd8
RyNBYTlJRj5gQjMKenlqJlh6eCYtWXRSJUdlZiszUS1RWkBITENMOWBGaFM1a0ZeXzYhe01HOXJU
Wil3b3h6OFU7PShmdl9JeSZYSzRiCnptKHROeVozelRjZ2JDP352MEFEN2lRMCk8JUYxYmJkYi1K
ez4jOHZSdngrQXhPSWpyTW1DWFgxaEV9R1ZkQUZycQp6Z1R6U3ozTT0lYGRVZVQ5byEwYWFBMnNk
NiVSO3Q9UXlZdDkkViFpRD4pQjZpe2ArV3khd0ZaaklTKlR1WD00QTYKeiEqO04tPncjNEFnKiEr
S1NPKGh+RHE7THo2OV5abkBCbWFhMDd7OTlnYkdaTSV6TUx8K01jY25ZbVUzezNQMW9ECnoyPX4q
MD10TTs/Y2JGZmI3SGJfMldAO2pFSGhGJksxeE4kM2dnISo8KTxuWkROejhVQW9XOUspezl5JiRH
ZiglJAp6RzMmKkxBQmF1NnNWOT1pcHc4e3tVRkdgQjAtST1CdTJ2X2pTK0JrfFhMWWFnQCMycmg3
KztUa2hQNkYyIXpmRyMKelFxbl4kJHlxUm11PWVic0piIU5pQGVhblZGYCUyRmdYMCR5PURseSol
Nl8mdD5HJGRoUz8oVjlfaj13RTJAOVZ4CnpuI08yNUxLUTFGSnFkdm4jSkFXMF5NVEBrQF9sUjlQ
TjY2bHdaWkMldEI+PGFDekgjXzBBOzd7OTtIMntab0ZIIQp6UW4qSU1hNXEydER6fDNVaXtMI25T
KiZ2Zl9WdDg5U3R9QXI3PjAjZE9COHQyT0A7P3R8MmI0dlJWX2lhPlY/Kl8KeisqJHBVa2d8NEtC
KjhsbnQ+bHJDJGUtdFNvJFEyRFU9fmY8XmN2YmlWS1doPGpBUD02VHdSaTZSTzJjKHYxdG80CnpZ
dE41bj9XeXFzYilramkhJmFSJXVRX1NjaFZiVStOYUdmWCFqb3B0QTNnOWw/UmhFTE51UiNGampo
TWNVXmhtawp6K01EY0xDQEM5IzMlMXFlK35tS2NeWGImJT5EYSlsZWVadUc8VyUoVGxTTVNgKDBg
MyV6KDBGSTxHQ2ImcGZrY2oKelllUGpIZH5WM19QRWo+c3wzbDdGTmFtOCZnYEk4al9DQF9UZ3x5
JVQ8Nm5ndUY3SmdKM0QrPUhiO2c2eVp4Mm5kCno4LTF7aEB0Y0pCSl9kaX1vK3tmdU84PWUyNmE5
JD1sUilfKT1lPmc5QT1VPCo2MTdPcEVhYlVTO2okQT1sOS14WAp6PlRIbGFQPl9JSlZVPlp3eyFT
LUdSTD88OFFOSVVWKEZ0YCt6UGgjZGlleD5+XnU5elRrO0JOJjgzb0UhNHVvaX4KemhvYVlWJFZi
KUgkVk4wY2pEQDxgUGUjXz5qZlU1dms0SDh9NE5FeWwoQFEhSEdtYms/ekMqYVdhPyp8KFR5Uk0+
CnotJHJZRiEmRUM0JTFxI1pAYGVPSlVTWExZST1kZDR3TyN8UjRjNmF0UDk1aklyRkAjU2dYKm1A
aW1Kb1QzUiQzKQp6cDtwJlpud2BpQ0BXKV9Yb0pOUTVTclB+a1k2Z2hGUU1TalMmO1hScW0jQ3Yl
d3JsMGE0S2hBT0tzNiFoWG1TUD0KelQ2O045RSE4T0JyLWRVRDF4UyhtVmQyMlBJMTs8SV4tTERg
VT1PKChXSEAzKUBfclFDRVROcjQ4RX0rZ1JzOWdUCnpUZE9kaERrM3F3TTdsODhDR2A8bzNNaGVF
PjxPU0FrdC1kb3tkcVNHNGRXMzxpRHByYlZsRHAjOXVBTjQmPFFBVwp6V1ZwO29jU3MpKmZJdlRY
RCR1JEU+TzEyWnNwVXRqVmVFVXdrOG47amJZUFp2UGxHRS1kSktON15OMkx7JXA3PWIKemdAN29w
Xyp5bj9ZeGxoc1NZXkpQQVRBYn42Qmh2RlolKmNSYUJxKkwyKSVBVmYkaEdfMGkpI3I8PyltTEsm
QEwpCnpTJSNudWktN2BFVH4tNTV3ZlFPNDNEQklrcTdyX253NmBIJSgxT0oqPUVEejh2IUNQQWhJ
ZnxSOSU/ZDRVMWdzewp6RjcwK1VpamNLTSoyPTxxVXk2O09Ndk41eV4zMm9EMHxeM1ZafCYhbTtB
N1E0IUt5UioqVyowWmFJeVg8NH5qS3sKemJWb3prYkZTQmVPRDN6JURyQzYqUk1NQGxUbGc7Yldk
SC1fTnEta2VRXmZUPTZwMEd3KSFZd3N3Nm9yUjQreE1wCnptK0Z4SS1lISNYI2B+SyYtaCQyKihf
eHJ2TWJ3eXk+cSN1bCs4KihYcmEzYHo8NWhCSGJaWVJ6T319fE4kTm4mJQp6eyVfeHx0SlZDfE13
M0JNeVItYylYOCRSTCp+dmN8bTZCPlpOSUpaKSV3WTxuNHhpTEllUDI1OFZPZ21YQUFCIygKeiFU
akBLTGcke2ZhQFA7eXskYyhZSns1OEd7PXdmPUB7b2llOWNqVjJeN2B+ZjZEOWktMXdfMW1DeXlZ
Q0RBXkhwCno9dGYwez48UENfX3A8IztOTz1zdG0pY2FgfDdmanpWWW8yWHJTTk5ubHM4X19ZeVpU
RzxpUXhTSE11SVpHcnJ5dQp6NihnbXQ5ZioyejlVbDd+c0xxX20+MFE2KjloVzROQkVLMzV3RClR
Vm9mS0BjZj96KUVCJGhkd2wrRU03bTF5JmcKek5YWGVgcjhJSWl5UlZPbktXWTZMV09fO0VIXlV1
ezxCSS0kaUtnZTRrbnMmXlN+bzkoZUp4P3NzcUl7Uz9fcWF0CnpfWCZwXjghbVkrMXp3RlM1cTZk
ezM3KDU5OEozR1gxKS1pWjNCaT5zMzJ4bnY4UUY3SThUWSFiZmJxZ1ojPFdZTwp6Tik4fGBRVkdh
ZHVUejY+dzwtVHtWcTNQVz00QT5QVGxiQ0tAYj54Py10SzckU0BTQSYpQnlxdURIdnF5Z1lHX0wK
eitGTSp1bkRTTVA1VjE8fklCO1FPQWRDNEB2eXpfZ14wa2J5MlhoQ3lrbmZqfVk/ZEhkaXZ4cEU1
I3B+NTtWMCQzCnpEdyt5UmNrSVk1dUpQUFFSKmcmZj5tK311YGJEMVN1N14ybj9rcV5aOXR4dXZe
cjRBU2l2M2BxZTNzMTdLbG8xQgp6MGRTbnFQcEJ8VyRiO2N0OFh+S0t1JkVsRCg+YSVfdEtveSFN
S193NVdXRVh5SGktbmYyZDkyPGlgZVUxSDZYeXkKelYmdjZLPT5NJDk0aEA8aW1KcilGY1p6P3xD
Tl9uX01iTTF4KlRjMiZAfjB4I1ZQOFkkUlNjbTJGZ3Q2MmJOTEEzCnpUN3pkeD1MWFpwMEs1e1Il
dHx0aClBV1JHJTxaeS00ZWEhViU8U3w4T2UmU152TnBec3Z0NkxTKlZtPjEpTEJUbAp6MEpMK15L
anZ5dSg4Rj5wX2llcGlQSzNPa3dsVGItMjBNTXtgfU1ZNEBTMDheMHpHZH1ebHFNQDZLKjBHTDAm
JmcKeiVAbStJdlJ1XzFadF50KjtxYyFQJXE+IVplez9ZKzhXVGBRZSVuK1lEYC0wb3FjfEVjPnoq
UUxKcHlZV1Z+Kll4Cno5az1SRStFckdAaDZHQCFEPU8heURrYDY8WX5gS0lZbyVLX2t+MjxUMHx6
QHRYdD5aKHZ5PiVWPiM2b3oyJHFNPgp6eVFeWSZaMFQ4NEloc3B0bWR1TzM4QW9+T1AxaTQtSjwq
QEZOYUdncnBBMVJZdHRUZCQoMj9MZWNALSRVUTs0VDIKekxNUFByaVY0KzU8Kll3eytgTGJxPUdK
PC1QUExjKHNfKEJXM3o7KFM7aF8yN18pSXB0Q1pFM1RLWWIhKWYkcWV2CnpSe2pZcFMmeTlVZThX
MHllMklrS0taM2NTNEU+KE44ezk2RUt6cjNqalk2YER6SHBOcjRoLVJkKVZQaE9haF8+SQp6dDdF
SChweHs4VUY1eylWXmRsJTtkeUomcXsmSytTSmwjT3VgdW1ibmBQRUxWZ19+MjN3NzVOTHdHRUJ1
Xl9nNGIKem9ec3JHWFNYcDN4bF47JV4pd30mSkhuXmxiVHJ2bHlWM1NWLVYmVDlHSSVTNCFwbEBe
KkEmMEh1N3N4KzlWT19lCnpYViVrU09IKmBNJH1xKztyTDFUMHJ+TFk1KyQhQTQqMFJLd1pKTkp4
PTZheXtKc2lkfXY2aD5+JHRkU3dZMnJROQp6Z0UofkxrWiF1cGtXWTx3KE1AbTZeMyQjSUB2elQt
O298UCtFZE9ZJjN+VyNVbnBXdGAkPnIhZioqSjZ3cTdrWEIKemQoMHtrS1FAKDdwR2NYejlNKD54
UnBGZy04blc8JWQtUG1xZ1dEYENrPkRrZkpYWjhAdHtUZU9uaDNpfWlaYjx5Cno9Uns2PztJYFJI
PT5lR3p1Wk5La244VjlwP3FRaDdJRUY9WERFfUk+QWQ1Y0hyUnU5enc1RihNbkxnM3h6QFZTcAp6
MiFGeTVhKHwzK2hYIzYoNEBkOHwpV35aNGxnanYkdT4lVE03JTclUjNuVkBsdnlKI2B7NV5EeV9f
RSFGampuamYKejVNOUNrR2o4UmghQUw1TVZuSFo9QG1OaXRaJigwMUJEJEN8TiR7YUVye2JRPHI5
VVBAdkg/bV9FP1ZvY3dUeHNDCnpZKV9YNzZsK3EhPzwhXmdMWmtaLXE9YWpyLWxgbXw+VHdNeTZs
ez5pcH1Dd24lREFNRE59KVReNFIjST07dkswcgp6U2xNQ2h5UU18MGsyQXc/I1hzTXM5JVh3OylE
JjRYUmZwZUhMI1NIUkB3ZUAqUUxOJlYwKzheWWMkbmsoRD1gNEQKejA4P2R5cHI7JEJTKCNoaG1C
en1mdEZCb1llPnladG07VlJTS3JPJHFTNzQrRjlLOGJBZGowJCFaVWYtTDxLRGhgCnohRnR9bFg1
QyE5IzZEaSZ1fWBzSWZHVTcxdTRvP3d1dSFqXzNGPCFmTVJrdj5tJVp4TVEraHJzMCZ2OEg7a2g1
VAp6YVhebE04dihjJTBCOGl9cDVGJXBjQ1Y3aGtPNT5wMTt+MHIwSU1rKkFUYkAxVj1fUWhFU1Jn
WHA3enE5cDAqO04KejkoY0tXbnNYZ3tuKHh9WVpBZHFMK21MR2J4O3tiWVJjLTltbXo3YSFGRGs7
JEp9blBFXlFiZ1BfRmtje09rMGt9CnpmcmYwaUohS2hBNTs+YE04PFBedVNCSGl9PyhAPUtXYlMt
dm98Z0k5bmFYLTZyeWFVX2MreGlZe1MjSlMrQjBTVwp6eThFV2ZZIzE+P2FAb0tVRDtNP355a2dF
NUlMVXdXQzl6V2NtO2B+KlNzMDElVkhjeXxiTWIlYV5IMT1fa2lIWlcKenRNflFTVS10ekZgaTRn
RyZ+V0lQNkRBQ3JBfGYmcigrUzIlTnZzKXY7XyZ2Vl4wSmNDUlRRTFZzd3kzc2J5an1ZCnojSncy
I3Y+dUh3I0p+ZUlwJFZZPj1rIUpNQldYYDQ+OzBGWG9Qe3N7S2ZlTSQkSCgrT3dIeDFqZGRxTTAy
aT09Vgp6QX15Y2pYWm9YR0olOWM7WVpvdT56aD1wakwySzhGNFA2Zmpac1NIVmskdDxpT3E0c2Ni
REhZdWdMNT5fJVByRT0KelI5SnJkaFUoaGVNaSh8KS1CI2J9V09aJTdwVWJWSTtlT19GUTklfGV1
fGJ4WDxISyNXNStkI09RPT1WQmxjU3clCnpHdlp5R0daUzNBPzxUcWo8dERwXz1PdyR2PCl3UDA2
czNBKG0xY1M2bSpASkdSXzZPeCpBeFhiKUQ7SntISXhOKQp6SElAY0ZZJWFlOHVUc2RmKX5ldV8w
OEZuc1lFZDtJdVRnS1ArTihwfmEjYVA7UkVkKXB6V3w9dGB3R05tSz47fVIKejAjQnt3RmVhRCFm
TC0hTGhAfjY2TktQRXtncG4oKEFrX3dKNmluUzJARmBgKEBDe31PM0V+e2YjRVQqakw9eTEyCno+
IV9RS095TDtJIVViVXhjKj40NTBaPW1MeipBYkowU1g7JVJEMituMFUkK3s4RHFkejdRZ09kbitx
MUkwOCZeZgp6TE18KU50eVQ+V1JER1Q7bT9RIzc2aEE8V2t+T2E5ZnUhb1kkY2xvT2kzM1pKPDt2
a3txUnUpUnlqenE0Rm9xRSoKemBIPC1IMEM7al5eKVVOUjJlYWpfdiRUK19FRzZnP0skOXY8QD5P
RVZKXy1ufkpqR0pJUE8+QnEzZVleazskM0F+CnpsS1V4XjsmcH4pX0A4Nj47YWFSNSV2b0kpUXFB
KnkwaTQxaWdDKCNCXzJ+Yz54ZDBsRj47T09yNmNPVkBmVHtacAp6enxXZ2t7T3Q+RDBmYiZaISk7
SHZkY3kmI01faDNMMyU3QlAwZFZUK2UlcV93OzV5bjV8TTllc0FFYEk1cDBQTEIKeipOPk9yZEhL
KUh2MTBfcDIkPGFpYkgpYypvWkx0Tml6aGswMVk3cHY5PjVoP0VSclhtd2lOKDAwI0ZmQzF3Y2pl
CnpVe19AJVNnSyRFRCEtb0EweUdAdElsWFBsd3RtfT9WZkxtelNecVZSPk15SX51MDVAYXkhNUN2
Uk9ObkFwaEExMAp6fE1CYGYmeDRnJlY1VStYQis/VHNIcGZRYVVMUDF7dzhsQmApezVLeXk1RFIw
VHdrUT5yNz5JOTtve2BJYGxyVGkKelJ5IzFfYHg5Ry0mZV5xYztLVzZ1VWt7JT0+YXppJkwlO2xu
SXs2NGxreCFCVDx3PypiX1RTUk1fd0tWJjlyNzYhCnpITkZUV0o3UzNEVl8tT2ExYD9BX0c5Nnxh
ZWt9a19HfWpRSGpsPHs5NUVXVEdjZT5+U3NnM2oxNnJAKyp4K2NIRgp6T3otUyZvNy15cFR4YEAy
LXF1JnhkYGFjVmxBWXBXbGgqPWRRM28tfWVaKnFYektOMGdmdmt0KXBrdHc5IWgwamsKemtvd1Bg
U0F8RkxVJE8hfTwhPSUmT314fUBQezwjRCVjNV5iZik1UFJARnlVSTVgWEM1RXVUTXMkUW0mKiV6
O31yCnpVVklmazRBIW9ndjMyOXhgTz1jeG1kUEw4emZTJEUlcjxUSEdrY0Exb0lQZjNlRUUjTTx5
QUZqOCpNRkx3X0FwaAp6MGhYMyZ2NXQtYU5Jdj1MVUxuUEl7bz19VTBAQTdxMCZ9WUtnTnF3Vkxk
ek9UTCNtckEhdDB0ViF5OCt4IWtiJHYKeiFgZlFRISNpM2tMaHJSeWdndDFmNDFMXk03NWIjTEdX
MjxTYj1acng+WDI4YypLSmp5WmAhSXR6JCU0eTExdGUzCnotMnFVLWlIV0tUbXIqPm4+Q1B1WFEo
R2xgRWNfellObD9ULTI+P2BNdUB9dFY/bDVeZmJLV05jUTI4bT1Ub3RDLQp6dShHQDhsRktJK2lY
c1MqLTkjQnF5fFNEcm1WaTN6JFBgWDcxbz10a0puI2hPRFQ1RTVRWH0rUFlRIXlHMzRqIVQKem47
djxLUURzRXc8MXpaXmc0MVU/YWZZbFEzMllHblJDJEl1eiFDWURjen4lMmo4cjl9MlBuVSgzX3oo
MksjMnpJCnprX28oK3ohTG1TYEg8eXU2QVctMXcqYnM7Qkh1fDVAfCtHPkNNXzdtSENnZjxiKFl8
Tms7UXRldktTOVYjMW1qPgp6dWRAdEdhNlFhWS00STtxZiUzJGQ3SD03aFltdmp+N01AZ0I0eW1w
XyViQiY2aE8+S2hXYikydGs2T1hYdzNoKW0KeiFMIXNeM0M0enU7X3kzeFN0NiRCOWVeUyohfnZv
PVR5PU1ZUmlZdzUpVnNMcj17XkxVeD4tKlR1a2FzTnlyMWJkCnotaE8mfGRYP1poWnZRYHstbXpQ
fmpeUTI5QmdUdSpkSiVLUnYxYjVtRjlFIXMxOGl8MTMqaFJWMVBNdjg2UzgxQwp6TyEySipzJlk2
YGIrMHpEcj5pUXVyPXklP0tZc3UhJitnYDJocXNNY21UJjQpTzx2YX49KUowbihSQCk2dUoqSm4K
ek1EWT53cnRUTWJBOHlaYS1ga1khdmIhcUhRS0IlfVpmaSFPKXcteHl2bFpTXjFgQktnd1B4SX5L
UkBaTCZXWHs3CnpseT91XnheTH0zdkJmaktua3FXPCZtdG0ye3lLRWY9WTc4WThqJVF0Y3lTMjVM
RFlYNmZafjc/MmNHeiFpMnw8Xgp6ZVIoOUhMeDR3Z3NPVUdgOUstJTIyOTZ5JWNGNT5LcWxadE9G
ayMlSHh6bmVLRXQpJURfUTxaeUghak5ed0tPPCkKeisxY2Bucm1ySWNjLT9na29HbVZAWGtDXy1s
SDlwXisxM3JxWE5zPl9KZXVTXzAlTnBxVnp6eiZxV0kmZT0kSm44CnpNKld3WiMpTDBaeEJ+ekY3
NUtQbzxRKyY3bjdpcDQ2P01UYWdhbyR8OWRIdD5TQVBScD8lVWxQSHg3e0F5PWt6Xwp6ejglQm1q
X2UoIWF7QXl7TUxDJVg+Z1NKN3pOU3RjYUEpU35ZTWZ0VXNDI0xKelYtIWlsVW88SThzNTZOYD9r
VHcKemdWd2gtUHVRRFhTOH10e3ozQSgjdU5DWmwrYVMhPilHfEU0JXNDPisobDsqTENOd2pfSDh3
eHBKR0NAQkFoIyslCnp1KFlsdXhWRTd6dzdIPXl5c05RMTsmRUdiKVJXSElzQXBYYkYpIXtsUXBM
VyY8eVd9d2IhU31eN15PKENOcyh7Ywp6WWEjP2lWNXZ0PzlXfGxzVH4pKjJgPnVqPG5UbypFS0w/
PWQoUD53ZTxIR3IjaVhoKD1xKn1BUVdQcVUqajVeNmMKenJ5UDd1bX1MaExoNVJNfUNTc2oxbVcz
T3khVkFIKTwzY2JnTDdZNUtTJi0tbUpmKHdxOyhAMUwwNz9MKV99akZJCnpuflctKkR3NHA/RXBF
N1BVVjsoV0JMWVVJMDcrbj8wSGtQSm4jTjw2aWN7Y3xMVXZPRHV9Z2BOe20/O3wzJjR+ZQp6ZGxT
ek9LVTApMF9OJmNPTGEpS3NiUVEqTWIoUj0ja3RPPHtYWXN5Z1MpNytMaX1nNmVWJTsjWDdYZ3t2
JXNjbFoKelR6Ri1rPy01cU9DNFprbUNlc0MwOEwhUTFAd2BvdEl5PlAzZGVvY2B7fUVXMjJWaTMh
ZnxZcWg+PGtyVEZmY1ZGCnprQ0U0ajxUZTV4SmI9VXBNU01VYzA3Z0lENT1hdSVkalEzfHVKX0xY
UTU9eF54QzgrMD1Ldl5Ud0R8UHshMVdkJgp6dFFTekQlaUw9S3p5bXUqQCo+QjY1cW19d0F9MHcj
aE5Oe004SVVBRUdRV2VSZGZiLUpeSGlhYGtSKDQyT3FLWmUKenY9bChAJVhhOE5DUlRUU2lzOVJ1
YyYpY3AoVTt5LWhNIyo/N09lMlIjOSNKdGYkeCM3OUl5UT8rM3ZlNEc5NVElCnpyJitDdWtHWnxu
S1MrMGhqcE4xSHgpdiVrJmZRZClhenk+YGdsKT1fcWdLanE4TD9waCs5NlotdUk/fGc4fWk8cQp6
MzE5U14zd2UoXmAxcCpKeiReN2ZXPFREMG8la2M1RDVTS3YqTklwc2xJc1F6OU4yJTxzOEl0NUk4
N1psWnEmbHIKenYmWVl5Rj1PaGs/Vy0zYUtlVDxGaXV9R15NbUxsZCtealdqMWk5YUVpU1JlQGox
OWYqcEE9eWg2NSszSjwhUF5SCnojWXA/S2pKQyRmdCFqI2c3OVd6QEIpVXl9I3BzblE3WT9RYHMw
NUA0dE9AKjReZDhWdTFwOyhHOypJK0VwSXdCewp6Q3xyUio9bkRMeFlvc0A7I0lAQW9nSjNidCt6
Uz5nXy1eWihIR0B8M0xudD9HU35HczwmYUlQPU9ZZmQ+O21vblEKem1zSTRJWHNhdSUpWXJRcFpm
Yzt1JkRMQ05rQ1hrKWdQeDl0JE01KUJDYDh8SkkyUlhVZTxkTnhRNzFYZCR1S1IoCnojVWVBXyln
ZGQ8JV9BcSgoPzJpT0UzXyFuSEBZTyNLY08oJkMleTJsWnd7RUkhaXdDV140ZysxKWVXVSM0ZlVt
QQp6Wk9zKUNfbk5DQjk8QHxQSzVlYXZkZjhxWl57Tjl2c2sxS240ZUc2K0klKkBreHZHZihWMWtG
RkgpeUhgWG5JJWcKekt+cDtiKTRTcTgoPGd1djckK0ZUYFNxVDRZT25PZWIkKj1waVAkSHFtTkZt
QzJaZS1qMDM9dClieHJfR181ZXt9CnpwI1klcmt9Kn4jJjYpI0k8elMrISgzKCV0MVFgQntaYVZ+
RWZfYlYmanVYd1JEQEohK0tCTyVrYEB7b0pYJihTNQp6PFNQTHJhVFZVWDVFfkcjaFg2fHkyS3Jf
SUx9Zit1S0BfQ0NkO2xxdTtFRGoyWGo/I0YzRzdsWDA4PFZKbX5PR1YKekY/cy1BMDhObnFQMnQr
ZWFrfGJATGFyZVleOWxeJVY0OGYrZ0tiaH5AbT5sbjBXPEJBUHwyUG8peWM2bSUocUwmCnpIcSVG
cjxAKEZCIWFJdHJHPmtAPVR4TH1Tb0RnPXxoPnBWNlZuNWJkNiQ+RGMzdmtjP3p5Sm5AXkJ9PCM0
eUs3Uwp6aDt4QHdCK2IyKDthPjZDcVBKaj56JDdzK05xP3QkZ0Nfem9LVlhzc2VrY0dLbEphYGpU
az1RPSpyST1DT1c9cXIKemt7PGNSTnJ3VkltU0RAMUMzIUw7bT9gK1N4VjdLXzc1ckRedV85MU9v
Kz5pRWxhQzZXaExuVCMwQVB5aTFWclpfCnpiXk1XY3N3dnk5cnk7fDw4fklka1laNyhkUkw1TC1T
ckt7dVg9JGpeIUBAdz5qc285OV58fGk1RD45dDY8Um4/SQp6UG1Dfkc2JXVUKSVzdWV0QjJ6IURk
RHE/NVhEZUdOUGRUYzBZP1E+TWdUcSN4LVl8NXxuJVZ1dnVZfG19VkR4OS0KemlHMChDXkdXZmU1
YTxOe042SVVERldhZkJ8MzUqT294dG5LMV40M2ZrXmxgY01CfnU+TE8hUXEhLWZzVWNLRiFnCnpW
QEVIWUljM1VQdXxATkRpbXpDQ3s+PExwQ05+c014bWMtUjRmRUJyT3BVWSokV0x9aUZWMXY9Xn1z
Y15CRkMqRAp6S2dCVU5CZ1dEej04bFB9enBLdEFKQ2xuP0V9YzhQUTkoez5pS044M0RHTyVJNyVe
diM9czs/PTtvQnVSWmA3eHsKel4qLUBse0l7QCRmNiFDNkBNWmxMUnpVRGFeZ2pZZ2p1JTROfDhw
OHJPNmxGeTYrKDAxUnhEbVRkZWZSVTwyUDx4CnpKOVJya0QwZ2h4dT1zJH5fNyRnKEA3citjK3t4
YCltekRNej5SdmMqVldPZEVaPXJMXiF7TF47cE5FbEFzR3BUfQp6UW5hKG4tRERyJWZ+PiZNdmJe
QjklS1ZVd254Y15XYHRwZDwjPiZXPT1CbnQxKXwlTW5qKyokXmpAcjJQKjFGaVAKel9QViV4WkZN
bVorRz03UmNodGxAPjh5KSsrRXg/STBqQm9hJGskKz0tbjc/NWdIPyhHSyNKJUEofWFyWDBuPnlF
Cno9VH0leU09ZV4lc2NPUkIqR35lZEE3YEUzZ0QwTEB7QyN+SUtzQT9vYjIoM1NoJTJaRCVTNldV
VmdNIXJQYFFaIQp6TUYzRitWNHtsQ3R2UTJ1Q0JRXkEweCQqSFA4QGpSMlZtdzxyKEc8dVBjVnk8
TTh+bUF5QDFtQDBMMjRNUjRITE0KenhKc284elgxUzVLIX0qQW9BND9USTA4dGI7KCF1P0U1ME5i
c2ZYdHZtUHI/bihgTHpgU31aQiNJIWdyR2xvKWdjCnpJWmxeWnRuWWFpPHc1eVBeMmwkSmctbXdA
T3cmUEAwO3crMzY5YSpMa0Z6e35JYVV+YGZGeThiJSRURERabHJyQgp6PXBiT3kxVEZpdnRPYzEl
OVRqMmhLNjA1SkJUQz19KmNBY15KJj9NMTI1KH1RZEkxVyR7N0QmKGZZVlJeYHcmMTgKekpIJmdB
d3xHN1JHO2lOTFhLIUFVd319cn1kaWtkV0t1KnhATT1hUlNFckFEJV5KOClRclhtSzc9Z0FeKSN6
fWY0CnpAZD87OGt7RjRaZntmVlIhK1lKdFA7cFd2LUgjcWFFRjZJPEdSdCQoNExvKj1qT2txRzl+
YUcjNHJVNWIza1YkVAp6Qz1FbzJDfWg0SWh3Zz88diRxS1Bke1l+THtkSHkzZ19qcyheUnpoZCp5
QlE8e3JCP1JjZVEzWlpLK1NVNkU4YCUKelVZKGszekFRWGlmM2Q1ZD0xZTBpclNUVmFqKlVMMXZV
OXxpamY9bHR2PHd9NTNxYCZoR3hAdGQxNGJhRWxWPFkkCnowajBlVXpISWpQZjZgfHIqJXlkKXFS
dSlJdXVjRm4wfGA3fkl9K0VBNiVgUT9VQUFFTSFmb1FxKSpzcnZlKHckUwp6NktDQ1F1YjlMSDh1
KD8kK2F3Xz90YHl6N28jXm5yaHB5ZlNWN0A2VHJKKlglcXFyI0RJVztOVit7QFFsPWpJS0sKelF3
cio1ckZTM1F6aUZBK2c0dlZqJlllMUgtbl97Sk5HY0B6Z3VyMGw4JHxJbHE8UytfZWBJIz53e1R0
Kzk+YWdoCnozVUdmJl5ldXxJPG5YUGt1ZE04V2Z2VHp9TXlzRGNDOH5XPDVoRzV7JmV6akN4NzZo
M3JCIUJ6UzJ0TVF6QWo7NQp6ZTB7SGwkeUZJXkdwKkF1KTtHPzJJdlpXfmIySFl0PDZ+aEk4ZW5B
fDljPTNvN3dZN2o5T1c5QzdVdiRIbzhnflUKem8qUi09UXhhYSVQIT9VP1Ixd3FNUVdlfFBSdlo3
UXZwKVdMUzdYQTxkeVByMj9sJmQ5elRjU3FybUhGTz9MRGYtCnpndHp3XjtAQF5QI0J0U0w4dntU
RHplakJwMDF7T3NTQ0ghJXVWQWpfRHVRMnBAYm51MVAtR0codnY/SjxlIyl8Vgp6RUVFQiEwKDhf
LTZ7U01YPDNKUkdGOTlxRklGJXVFdjRsVDxCXlN7SSlLIS1pMTlTTDQzODJ5PWtqSTN8MDcmOCQK
elU4ZGBaVmJUVFEodCRMYDE1TD5RTyRtM2R2aUx2Xjc4e0ByI3pfcWxvaHBtPlFEJCtUaWplM3x2
bHhKPElIWlJzCnp4KmxPRTd7aWp+YiZUWiRJRiRxfFYmPmE8UnV6MihwaD1yY19palhwQiF5dE02
KFcpVm5NaD1jZWhCJkxETmd0PQp6QTIpT0MzSVE2eXp4Uk5yeEFnWHI0RUlUeT9OZStISyQzdCgw
KGZ+MVF+N0lqXjFYZnpASWtRJCRkR3lvTC16fEQKeiQ4KEI0Y3Z1RytrLUZ0LV8jSmIrdH5zdUE/
Z3YkYz5wbSlVKi1gdWZfeEp+T0Z1JFk3QnUqZ2JRNF5qQT85bWV7CnprfG1LfU1aUEN1bXRMU2xA
RmZwYWFZYnleVFBpWlheWlptajlBbXtaeWkqcTxicm4rUUEkMkJsMjZaeH4oe203Kgp6TFklQEFu
OSgyZVdqQFhgUmQlUFJ3YUJ7JSo7NkYoXzAqOzRfdFlrOHl7KFFgZHNgbCtfQCpASSNMRlZUTChk
OTQKekNHWHxBTjtLcCtaWW9XK1VWfFA1dUBKeE9iRFckbVBycWZWSDB8OEFxdk5HRDR2cFM9WnVq
dXozUj8ld2x2ekQhCnohbWNHPjQtPWQ5YEx7SE9aYFEwSW1HKnV3QUYmQE5pZ1clP0xCT3d8IT4o
YE56RiFTU0IqRXdiMUhLeSU7NTJkSwp6JFB1RHIjKSE8SElkalVZQDhgfGl3clRrP2c9MVNLdUFE
dTU7K0UjZyVrRE9wRU1vNSUxWjg4R0lPYnUzVmZYSXAKenRod3sxdm9gb2BTOGQ0S2R2JjMySkY0
ekhYKTU+Y3RTPDB3Q2BmYjZOQz47X0A5VjU+Mkc7N0xzaC1sfGl6LUpwCnpDQFYtVkkobCZQbD1h
SU5qOTlafiQpTmYzTVpYfitNYlFWbntaVXdLTEZlU2hWX3wrVD99UDktZyk4dXpUWT4qaQp6OWR6
YG5SaldRRFB0JmVseU19M0JKdll0RE9uYlNMJjVpQnVfRDFgQit8NlZIZVhTSEMwdiptTE03ZTND
QnpXdGwKeiNkO2QyQztDYHRDSE9qTHJ9fXkycjNWSFVXKDk+NldkKzMrPUw5RjA9NyhtSzwlaX4k
N2VvfFE3S0J5UWx8PEd5CnpsKmNxU1JtSFpwUkw2Qy0pV2ttT3NFdlF4UUozKHRxYXBydlhNTiZa
MElCWS1oSkB+VzRUO15JNGU+bygpeU1VOAp6KjJWVTgpQiFsNXooTyVkYlgpO015e3tVOENheGtG
NyRfOEUzKUMtVG9nbS0hbEk7Knp6en5ZYilzTH1HQi1neiEKemdkJGUoczxxc1FEK35jPDd8WClO
NkhyVitKO3R1b3olV2l5VHskfUhOLTU2PzUqfnI0QX07KXJtPyQyUTt4Mj1FCnpxRl91NHokRXI1
Myt6KjdiVDlVYWxqYDJIUDQ2JUIqZTAmUnojeDU4MWReeChLdVlqNGphVlZ6bG9TSENESHN3Ugp6
MHh1SC1BPUNMP2Y9cVhUTVJ9Zk9GYGoyd29YMDdhO0M9JCNiMD03YCQ4bmJHZDdOYzwkK0VqWHZY
SlJjIVB9JlEKeihJZ2o8dGJHbVJPWXtNbiVtSkRsMEdoeHlBdy1nYkM4P3V+eTJ+Z2RpOWliWmRr
NnFAZzg/R2U8PiZrKCZrYHJZCno1c1NuKFhMRGVLJS1HWitNfX07RzVsOzV3Y2ZiKSlkV2twI2lX
UFd7dn5tdmdhNGBidGNtbzUqI1J3NDQwQmJ7fAp6Vll1WFNXSGRjUWttZHVoSTFlQztlWSlhc2VY
bHxRPVkhZnJ5aVROXzxGITdsJEN3JGdZPnlmPElFbjJzVU9UWnYKelB2QnBBZl94fT9lbG0lM2ZR
eiFLczRJXzU8WTFPNGRWdkZhY24hU1FMSTRYZ0NiM1Vrcj1mdCFxTXYhIXk/STVsCnpDeEl5ZEwr
cHo+N29YI2AocmJLLTk0ZWp4b3lTVVhwYEtgVFh1NTBEKH54RztRPTZwTVRAIW5peWkle3JMUVgj
YAp6NHY9fEo8aHsybypHLX0oLUVMIUhnMm4yelh5Zm4wZl5STnlfMUJ6ZDs7QXZ+aXY3OUNyd21W
eWxEdjl3I0NteSYKeiEzKTtVYCtWYTExeihNemFMJGpVeV5xYiF6cUxeQEEyLXUqR0d1U2I0bHlq
MCFeOHoqX1VeREYpQGtnfXArbS12Cno4JE4yJXFfR29jUG58ZXAlaTZfYSh0OV49UTk4Wm5rY3FE
Uklad01RMWApbkc5Ky0oNGc8UUN0c3ZOaWFgZUx1bgp6bU5MSm1oKHpmfDZpTkBhSnBmYnFhKEwk
enJXIW5MRGgrczBRe1lvbXA2I0JVbzglQ2E4ZSFvVTtpR1RoV3Z7N2YKelpLIShhc19LeXEyWD0w
cHprQjFGTmQlOyghKVFKUUc5bSR+LXF9JGZoajd3b0tZZkFqUmxtNnRsPDxJckVBVSVoCnpmJlkm
XzcmdWU3eGNIRiR5U0dtPSg5dX1xPzRXPGQtYChzfGhgLSY5JFU5Q0phUz84PT5CO19uMXZ3I01S
WWozOwp6d1dUclhicm8/MTRIWEYkJkREdnV0dS1tbD9lKGVjOVN4fStvc0RWdD9sb29IP2Ala1Vi
Z3Y9eGFhVXZObGRpXygKelhQeCFRJnBSOEZVVWJ3YXpDeWszczg0IT4/YzB2SmAwbWQ3Z3prPHlm
VGo5KSN3KDF+NUw2djxhNSYpZjl6NllYCnowN35GXzsrZSRUJHN7aFFVSihUWEBidD84Nm9Ecmkk
JTB2SCRhQklWVT0tJW9wfVZkRFUzUyFNUnxnUDlZMnFaOwp6NSN2T2xpMnhMdCMwdno0a2p3JVU0
Z005ZFBubXI3REdnbjlvUDc1SWZhKFJCMW1OaWgwN3szT0wtJTlGJCNsVjUKelY0U1cmcVNJalUy
KXZCPHl+dHZgUjlUZH1BYDVwdSY1Yz0hYjRGZzFeRkVnNWM4Sn5lSXMjTXBHMDFlTWMjS29UCnpj
PnBJKGozPzJAKmIpbkYxV0hHVktmOHlTYlBvVlYyc0JhVjV3U0FGSUJAXzBPYntfQ29RV0Y3Wkp2
a2VyfmgjUAp6M2dDJjgtb1YwZWtwY3FLSFB7P3A3OEFle05uM2NYN212VXlROEdDSmlIPFV1dVBK
aldsUmN1KkUoQ1RjS14lYWgKenZrYm96I1hndmBob1F9QTBCOGVxKm9PRDQ2O1RxY0BUNzV0QGoz
NWB5VXV9RWJSUjAqellRVSZaM1hWIVhxZmd3CnpGVjwxeSEjViswWCNaVXA4JC1gXjRgQXxzYnUw
KGNJRGlINE11RDNZIXBRP3VWNkFaNkZDUkI/WSElNkxUbkghYAp6PkIlRVRwbytqMD1Md0BWZTk4
Qk95X2Zrb0ZpOE5DNyZhfl9sJFg5dmxJZiRDWXleM3g7dXNLKno+VHVPN1hYWioKelkwUnxqMktl
T3pzazUpazAjQ2p5X0xGe0E9KCo9bnAzQnkqRVBMXyNIMHcybXNUTmA+KEZYR2EweUprPytOK00h
CnpHP3A3QnJ6JHlvJENta0RpTEZAQmNaUWhncEc4SXc9PHs3S1gtX2NRdmlIZ1J4QVluTGFhYl9k
ZWNaZTJuN3xXKAp6Nk96cCk0MkZATC0oZT4qTH1jajVrdDBWOzhhc0M0JXFiSVFFdG9ONz5Bdmwy
d3lEVFQkekhwQlJNWFkhbDVKZCYKelZLfnx6M29FbC1ZY2M8X3FvY3lfUyRtWn5mS25oQkMoNG5k
SlVMI3pUc3JfMnpTSlIzQ0ZuSj1RTWxhSVN7flMzCnprPmo0OW5fdzNlOWJuPy1ZajtpOFEwdDdg
M0YpMCVfVX5OM2wpOVdKT2AwQH1Lb2xMSHBpfVEtWnhwPkFgdDBYPgp6cWxBOF8tX21jT0BLfUJ+
RTVIRkwzYmQ1aXhOKzNjZ0htJUd0UEoqcTJpUlh1aDtwfH1rTjVWdW47YUNHbjtEVzsKelJ1R1g+
VF4zdT9SRnpvT1QlRncxVDk/fEBVWjNfRFZDaCpgUV51P05FdHpqblp5JlR8YzBYKUd3UHRpYlhp
NFlsCnplc2dOfnl+ZFBvMDRjQ2JOZFFXVFQhRGM/I2RHeEBKcEZNMlIzbHxOKGVQaCUrdHU7cyp3
R0JUYSkybHIkd0cybgp6NXViR2AjTjBYX2ZhMC1GQjtXbm8wUDNBbyQxelRqPlZoO2BkO3B8NjBI
LSkjSDVrTHNMOGVvSk9zOVlXem5EP3kKemdsOztGU3hKVitER2hOMUlmeC1CNDN2V0BUIXxzWDVk
KDZzTDhiJDZMS0ZmSUlRajhgUXdxbm41WChZfDtNQUg9CnphdXMhJGFVcSE5a2ZiPV4pY1lVQjNo
PXcpMWw/KV5QWlZkb2UhK1FfMnRkM2ZSKjZeXkVeIT43MTFhRVNzRDlFfgp6JGV5KDFAekA+JE57
d2s/Znw5QHRDOXdNZEU/cEpEMDVwRUExS180VC07SzR3cXQ9ND1nTWVSU0l5X28xeEhuKUoKemEw
NytfSHpldD9gWHBVZWs3Mi1FIU48aWJ4KD0wZTFOVEFFZVdAQCZ4RG1zSTghP0V1M0h4ZndGbEVo
JWhHQGF5Cno8YCM1U3dnTnpOMDFFKChmRXBiflJ+Z3Rqbjc7NFYjQmcpXzkpVHF5ZkpmNVg2Ujxg
IV5OJC16MUs+bGw5NUc2cQp6RylPPntMUEIzcU5HTEAra28tc0NxV294dGNVZjN1I09ESmBnbk4/
VGpBTnh9dCp9bXk1Wip+XigqO2kmZz8yKH0Kej9QPCZ+PiMwd14hRF56X2RuJl9LeTMyIyotV0t+
eXpiKkZPYHl8aDhYVUFRfjRSdlcmRHw0YV5tUDd8PyYtOEZyCnpwS2ZlQGM5TlIqa3VmcT80LUo9
NCs0YkZ1cVpfYFJEWlEtVV9eb3JsOE0+STh5Vm5RY3F0OU9tbjRrcDc9RChFPgp6JX07ZUNiMklH
N1VuRUVxN3Z3c1BgZmsqS0B4I1VzclZoSlZsUDZEQEpBS2wkRWdLZHNLQ3BYQHhhQChnUWQoKzkK
ejZzLSlEXmp2SyZ5Rzk0eWlwb3YyRTxpJmBUVGArMyF9YmNfN2hOPyRaIyR8M2RPRW9mLVZYcyhY
SDVgbjMzcEtWCnpKKnxQUFMwRDF+VVR3KHAjdUM1USVEYks9SVNLWnUyX2FfUWZpNT07dHFzLUE4
ZihpUilIcilvVD5qfHhjfU1uZAp6b1YwbjMqaHVuNjMxcSNHVi1ObUxpdXJIbHkkfkxVYTBQemJE
P2s4PighZUQpWjVwcDJjVnZtNXJ9Y0A8MVlmaFYKenlyX3VrcVMofkJeMkVhV3Necj97PlhnUW94
fEZ1SVNeJWZVKVE2bzdZMG87RihxREVxWDF3V2FPei1ZJE83RlNYCnpvWmZUNEM0PTI+Zm9ZWWhJ
Z1A3KE97d2YmVj1ARFBWcUZiTVYzIWo0bUI0NDU7I21oNkNxWTVCMUxHdHAwczltSwp6JCojOV9D
LTZIKEA/fEBvZUFtSEFjZkk5MWVvUjVIY21qbERlandLZ2YtKFBiKShQTCpFNUpOKV4/bzMqVjIp
aTIKekJzXnskM203UU1kVElvU3N4THNOOVk5b1Y5QDVCWjclJmIwI2NWcmJxKUlhJjxNRHgxS3tC
NiNCSigoM3o3dXJYCnpySTFNK0VFODJLQilOQ2hPUzBvWTYyQW5ANlVsVHVqfXlzdEZveGQmYTNZ
VHJmSyFaKjhqSkZSUkVQWWc3YElhWgp6UFJDZ1N7N3AlJkdWbkpZVkhxQ0JTaGYkJDtRe2JDITVD
ZjxlVG1nMSFyem9gJSRsLW9GeFNsOzNgLSFwaFolNCoKeno/VmpzKDgtPThCJENZdElLOWhuZzBG
e3t3Yll3Kz5KPjNTdF5iX1kyTWlPSmtAVDEhTWhPckFIaWJNeStgd1B+CnowS2duTzB2YDc8Z1lJ
NXM4MCY7I25pIVJLTlFkbk8wNHJjdGgmXmgtYWtlMXFzdEwjMzIleXVET2R2PiQpZ0BATQp6bm1H
OGlAUzNWM0ZSJmBHWDtsJkRQLWpfSF8qbikzITc5VChGMW51WHFsKDk8dmcjLT5hOFZhbmJAV0E2
Nk1MRH0KelZ0O2s8U0Z2d15PRlR5ZHooXytYeipVK2QyaHM+d0g2Zmd8MXpCOUoqfHZPTzw7SDxK
SWAmU21jVV5jTFVBPFQ8CnowKUhlWUtFJXd2TUA8PT0/OHZjdDA3Qz5LY35LOURKaXI9fVdKemk0
VCE1IVEwXzQwPmxyQERrYno8bHEhWWhUPwp6aC1ZQnMyJjlxQmMlUzZHaWNwUztCZHx4dVNmNnFl
P0JkbSklMUc2b2ljdEFpV2RTbHppYWUkNj1lbGZmJSYtK04Kek8peSlRNj1rJEFHVkpERGNtSiE/
JS1rK2QoWGMhLVJfP209O04ySD80cTlfXi1ONHltR3JrbUFLSkJrVkxgQT4rCnpoUWNgYzllZS1q
QGkzcTR1PFBBZUJNOE01PFR7TlRIMTFvSD84WGNwR2k9PU9haWVCV29qVXBaI3E7S0VUKWstMwp6
aU5vNz1Ufmo/UWNVJFlVaE5yRSVNTkVMNmVAM2klVDUtQjxObVpVfVEmWEF1PEYrI0k3d3doNFoj
dF57MGlGVzUKejI/cDs9MEhtLWI1TExyPDFIPGJYezEkLWZPPjFTKTxFOWUtSGo/Izl2ZlEoPjZZ
YXdqIV5+VmxkfldHRVMheVVGCnprYShaRT5mIVpBNHtlYF5sPUpaYDdjQ2stZWZzcU55KDE1Vm9x
RTZSXlJuPmhla1V0SDBQNFZ3OVJxaTYtOHh4Vwp6O3BwbV5QKj5IbWZAcSlDK08qPSVybVhzaFpU
VmV+SWBmfDJaXzlwcHVRfV5nUzV4THwpU0lyeF50Uyp8LUhffmgKejBHPTRIRng4JWBSOS1jdmFN
anQ2aX4/fGEyYzhIeHkkNFVrS0s7R3s2ZHlQZGM9YHpkTUllZVlvKklqZ0pgTl9UCnowZFdRT2gk
fG88UmZDZ3o3MSlXJnlEKlJvNyU0RE9kMU41UjJvPyYlcSleT3Y5ZD47MV5wNX4yOShXP1RqdGAj
VAp6YkJneG5iPTVfPG9NdXNBbzF6Xkx2c245bUVYaXA8T0REJDNeQl5ubUpIYmxzJGc+SW5oOG1M
VXpfSmk8WUQ0MEIKelhHSTclKTluJDR7NjZXeChCMjBtKUEyelFqWldjWUNTRiReMGpDZFIyajFE
bmQzajhud34wKk9CK1doSG5YNzNlCnozazZHKDZiRk1nV2d0Q2p4e0glTmhXdnVMQSRoREZre0w7
QiNQJCNhTTYzfmttKWJhV1J2UURCRUUpaE9AKkp5PAp6UC1hek9AfmtwZ2ojYjxfJmRQJmlTWHRt
PFJ2TGl2SkgkJFNROWlVaSRoKFh4PTFRN2hocHwxKE84a3puNjkxI0QKekJ0UW1fSiUpWUl6RH1f
NkoxMUYxJFNHRENEdiMkbTFBd0szPVQrZ0p6YjU3KXRCdTkrI0EpIXM3MWxCRkl2NlkrCno0cXk/
ZVlvY2BwJFJkIX1qND9VUTA1SHY5XzZZb3VSN2pwQmtfM3NoO15hfFVjZCU2KU9OSUcrQnZVQGVg
amNeOwp6JTtkWj1Ib1pwUTJzfnBqdDg9NGtDPkRYdzt5blh7TjRfakI0eHRXPTZ6N3d8bWp1WD9P
LVFBMHo7V1RkQDItcUUKel9xSHJaX0QhK3ghNTBOP0pEPW5AdWUqUU9jMTEoRjw8Zz1nKUF7S1Vk
TlRzTkV7bUdxbUsoMEZiOHlIcCNqVzNNCnpgaE1tWV5IeHMhZUJ2fktzQmllTzJZaUZgZV5OJkpX
U21RSHFxcmNSZkora31GIzA8UiNVI20mO3QzRjBGayRoJAp6bmUqMUtTaUUtRTxgdDReaXUpQUpa
PUpkMlpMaUBHQTdtSTttfHxONTRgY15DayZvSWRlNFpvajxaVlojfDY0Rm4KekpzcFRYO2l9NU5T
R0A7UT9PPio7YyM8Ql5BSnRWOHtIQ2ltXypHWTM9cmMlcW9zQzYpd2RGWTsxKH5yblZacSt8Cnpj
Mj5xfSpZdktQbVgkeFRYVXAxXlYpTkg1VFFxNnorX14pIUsraiRRb0ZCYDJ5JTw1RUh8bHFDe3VV
blFlfFFCMQp6NEFocU8+bkVPO20wbDRNOyZpcW9GVmReMkNiaFZ8RFlOLTtYYTE5Q19YflItY2pv
bXhYdzMkKmxtJThQNk5QVzcKenNDJWcxMElJVndtMzB6bWRJeXtjSlA4MzVGO0xCdkd+TnE5NXJ9
Rjs9OTIoSylvfno3MEhBbSpSM1J9P1dGV0B+CnptVlh2TjM3OTk2Pnhnd3EyKXhQLV9LbyR1MEgy
Y3ppJD9IZWpPIWBINXM9VTYyJCZ+bm1oNjBoV3g3LU48I0FSRgp6eHZtXitPTGVSVSphKTJETnZa
PzAofTl5WDF2dGBoKyRTQnlVX3o+U0N2QVJPeEltYGs2MkxpR3UyKk8hQyhyVFkKejNPSCR3Vmd6
VW0kfExwKS1FcmghZEk3VUhDKEVePUVndVFvI0paM2FjZHJfcW0hJlgzO317NTc1U3Y1TjhRU3V9
CnowOXxHa1YyI1FgNVl+QXw0IyQzczc1ZzEjZyNiWVgtVW5FfCpJdChBdjc2PCg/cUU0Qyt0Xipf
RWlCN3Y2R05DSgp6JVhIWXRHVkdgfXU/JX52JjBNOFoqPV53fWpiR3taVFVteX5Ia1JTSW9uPDtu
dXFAe3Q/NUBqQm1nQmFJPCt8QC0KemQ3ZV51dUtnX0UyakNPbnN9TndURDFnQFRCcjZVJmpibD9f
clNPaUdnfkU2cnJWM3orVjl9XmN0VTUqPTQzLTghCnptTD5xO2J5aTAjcE1icWVoYiN5TnR0QUpI
NitqSjFmRH0oYShpXmRGI0tKd344YGQ4SzFRQTJedGRyelpOXnZKSgp6Z15vWGZEUEZjI3Vra1gx
eHE8TFd5fEBwYjZ4WTQ/RihYQURERjcofClPeUk4SDhFSntGdmFlJnBrckB+ZUQ9TzYKel5wSlIq
QDRUQCsoezZjdigoVDNCO1d1VzdkdElMN1k8RzZUTz1HeitOKkFTdT5eLXx7JFU1MGcxTGtkOGB0
NFlmCnpfMnl2Szl0Q2xKbHBwbykwI3FNSmNEPW4kMD9BRz0hO1Y1UklvND9tazlDP2lYfng4clZz
bUQxVEVBQFJ1fHUxLQp6VVEqZ0NxalVNRm4he35YPDImeHhlVWReQWxrPHxTTn5gbCtUSDdqcFVV
cFJiejNIcy1mNz9+PGtJWGE1SnAqWF4KejFwckZHTW5UM3lRYUAleClgeFdpT2t1TFpvcmV1enF7
XzB+M05tN0JXNWZLNys8aEZpXmV2NmxsJmBESD9ZKHNOCno9KDtuPF9SUGlUdFpfUnd0UT0wNmVs
I2hmY2tCVGYlPXRqfTt7WitwbkVEVCZzZjE1MlQhRylsM1Zoc1VAO0B9Rgp6NUBTfXokakl6ajtP
bDkyR0NqJTl0fFVKcXFwM1FqYGVBR0NMaldpUzBMMzEoLVVWUkZnZF8qeDFqZFBxeiFPKn4KemVo
RkJvX2lgT2NjQVJZMjBOSVg7VzFmMDVQPCtHcWtIfmhOa25JRzs+JThNaGNrUEhPNVkmNnc0JEBz
VUB9QXo2CnpBVFRvby1gPVNCcnR3fEBuWks1Nyo5T0QqYHxgd1BVYlZ0TlBTcnZxVEh0fUFZQSlm
V2o1aWZJMTMtYStEc2FSYwp6SXROd0AyQzVuLSNmbUl6akJQOyZVV3lzUUdqQWklbERoQUI+PVVK
bXxHZkA3VWRMVDtxY3thJF41blc/Rml3ZWwKemdMc18zSSpXbk5EYUttYG9wbE5yP3Q3Qk94c3FJ
V2xxQ1c8cjZQYGklWDBGOEt8QmEyZDZLRE9BVih6JmZSaF8xCnopcDMzdWw5QWRBIUZtdklCMG8r
aTdlfk4jaDtkellWNFU4aWVEbEIpN2h1VkMmeWhTdz01SVFnKHxrQnloYTU/TQp6Yk9Qc1EhOWtq
UDA3Plp7QnFmcnhJdn5sbCFLbUU9SGlWP0dgWG5zP2ptdXpvMDZAWTNNdU95NmtzcVFJeXVnfmQK
ej9fK21lX1c7PUoxa2w7ZSgoSmRlNngmVEsqOzw/PlMqflM/PUJycXw+MmVsI2ArRjgreXAlOzdF
b0QpTE9JVTxICnp6WU1UN1NqeGlubSRFUmJUVDhlS3l8dDdweC1RJjZqNzFvSiZteFZNdjFzRkVF
WEQtO0doTStGJXZRMlFpYDk2Wgp6YnUwPGJtdSQwPHI0c09Sa1lNU0t5STh1NTZ3N3FvJEZrZkh2
MjQkeUVaNiU0JWxHNXdXKDZ5OygkS1IyZiMqNFkKelMjPURnUWV2ekNyYnUjWmdnMmB4MU1DekFJ
ayNZelZHRElSMEB4NCgqRz5AOzZpZjw2dF94antfVy1RT0FXeGx1CnprMT9xRERTK3M2Ym97Kmxw
eUNEXyE9VX5Pbyt2S2k5cS0jNEdUQFc2JEdyfn1nRnc8QUpXfXtPQyFrRGJiMjchWgp6ZmF6O1l6
WVREdyE+WGIjX0VkeGA1UmlJVjs8Tjd3ak9HdXI5TSgzWlNTJX0hR258X3FxQn1GI1M5Ni1Kdis0
dzAKejM7QSkxKkFFWmhkdS0jTlJma3Mobjdkfjc3dnBLcC1pUSU+enYyJW97IzBoc3VsPyF5TiFB
SXpwdVkmXypiIVNKCnpORUdMZlAjSHZfbV42azNuVjNebkZJJXYxLT4hOFZQRHlYeHIrZkxSbEg9
YGpkVnd3KUYwbiFTVlJ6JXFHUnJnVgp6RHI8NmArUiNBcXNJOXsxRWhNe2NGaTxAbTA4YnMyejhy
WU1iekhwelFhe1FAeT1TNjJZbDBifjQhREE+X29sTyYKejE1dTl+TzhyfV5hPXB1b3YpblQ/PExw
Q1hnVSMmeFR5TismbXxzM35RJldEPT42M2Rgb2pBQzQmWCNxSCQ1RlE1CnpFUUVkMVliMm9mJCs+
el5DeGt9eFU7RWNpeFdDYH4zajY+LVFRQTBsWnRVR0RLRiF8aCM9LURGMmN4dEV6bz8zJAp6KnJM
d24leklDfUBHWjFHMmFIbnxCc25sbkZ0PkskISZGY18pYGBiRmFYelBCZXkyWSFmYT5MV2ZeN0Z3
MElJYk4KeihvKDQjUzFrWmclXnZ9JStCfCFYZVgwVkpRbDNjPjF+OEUpLTNJJClqRFNuOVBjK2t4
IzxGbSsxd1M1OUBTXn5WCno1MSEpcnRXeWwreD02QCVRU2RvTXh5VjRTSklFM3MpdWxNXlhCbj0w
UyZrUmo1e3ozWjReY3BsNkN8ZjNaUHRMMwp6V2VaTnk5YmtSIzxBaDktKE5raWFORzFZUEw/PlRm
T0ZjMTNnMUt9YmNHVV5rQyFSYjlCUkQ2fChGcSRUWWhzJTIKeiFfKkE2PFQwY3VJXm99a20jUHlX
ZklMaHNWN3dhQjNePUspNHc3Nj02aEt8TDAlU1BJVyZ0Rio/UFowWXlJN3Y8CnpjNlFlaEsqZT9n
T1NXMUU1Vk1CR28yX1FDQ00jSCEoZjFyNjNjSXo0aDNkXmAhOCZ0VGtrKDhWYUQ2KVMpMTFuRAp6
dVRFdD84ZEkyO0k8R3dXPCNCbTNiSDZtMXhtfSNabTglLUI9clViVHg2fVE3R15SNFl0SjdHKHdk
cEpmYEBFdykKejFKNXk9MT5jeTxMaHlXSGBpcHNCJVhsUz1HRmApQiUqOSF9KWZTZCR2eSZ3fE5V
PTFSMHt+UDxWOSpEY0xZN3U+CnprVVQzNVFSTXRyUmdvbkJVNHJaZjI5Tl8lSSp8TUgwSCl5TUJF
eHpyZHt5TUZOYG5DJj9eUDRVTWBWKWhYOXZqLQp6ek4jV0pzellXYW1JfEdSazBGMGpKYH18YGEw
OGtGbmtYS2pUTXorM28tK2JkVG5xdnFOVENea3gmPig7b25SZyoKem51N0xFJnNoaEw3bWwmSjNg
WC1KcFojejAtTF5sXmJ6MS1FdUZhQ0o2dGpodUBySEJLTCQ2Tj5eSGRZSDF7PFpKCnp1eCpIcCUp
ME5rWSttczdMZVZqUTc4eVY2dVkqVHAjdlZSazEjSE5fKGk8Z1VvX14zX0N6eFlMTXNkbl5nOEJN
OAp6OFVUI1QhQHhkP09ySkRxK01GNGE3aT9LNHduNlU1dyE7P3tyUFFxVDYtPmlEdUxvcXMrfEVL
Z05vN3JlYjhBUHIKel9tbFFZQDBYfUlaNTNXVSpmSWJwTTRqK1QwR0BzY2ZJPiRlYj8wIy1yZyM7
TTBPOD43JllEcDhxZTVQRylgVUk3CnpsIWJkV2BNeTtKWTBlcG07VDlveEphMVo8PjhvQmt1WE8w
fURWYVNSd3tLY0NaX2Q9STxLfEE4R0wqKV9rVEwkcAp6eTdmTFhuKllgIUN3fWtlViZVPXM0cC1w
Z0hyQFpfeDh4Mzd6a2NPSmJFQiZ9eSorTVVpd2JlfUV5KWVmPlMjIUIKemUrdV5MX1dfXjs/OStT
Wk5pZl4pe2d7PnlRXng7czJJP09KUGAkd3VOcTJTbWVENCMwNkVST144T1ZjNXI0QnJSCnpydnpn
cGdkNmhNQ3ZLKSlGWXhxdEFfQGRqOWNMN1dObkRXVzZjNSVabVNkZUA1X2VZc2FGVF5kVG1+VlNo
WShBIQp6cFg7b25BLXtQKEdPVTw8UEIyb31xTy0wNm9uKn5tI0Baa2lrc3BTfWdnbjdPVGJqajJr
YFFNTTdlbztWKmUzcDwKei1nb29mWGVKemBlWlRXRy0yPj1xPVhLNmU0aWxzenUyVCtDMmdHVzEh
QjVwKjFXeV4/eis4dlVIakV5RGdtQE5gCnptcG0pLTJnQnJqa21ZKnBmZHNkbVdqU3RTPjkqQHhp
cSZlQzA3ZU5wTUkxWDZ0aGIwXnR7ViVgcDNpKSomMUp8ZQp6VnM3ZCluYWliViV2byY7YjM4d1oq
YEolcD57UH14OHxBVWdUNF5rXlFXOWE3WEx3fkhDPFBIX0UtJTgmUExLSloKeiU7bT4kKklWRnJ0
MjRhRStiV01eX0dpYTJoalpoWWxqP1pwYmJjYXB4LWJkUEg8YEtPZEVOMis5dlg5Km0qeFdJCnpx
cVQoaj4zK2B3XjtXVDlnTE4jLVdGdzAqLV55YUdjZCNWOEp1SjtoaWU8VSZYU3RxLXhjN3hYRXhr
OVRGenxEZAp6VSEpcT9BRnl2Uk5PK0lFaWNVeVBSIWZvfTBCXm1aODwzT3kmO2JhYkwqMD5Oc3da
fnBVVT98RzVuPVgrPG81KCUKej5LUEAkUTxvJihRKH5WZVJGb15hT3RLeVlpKDtUTi1SfXV5VyNN
cj04NU1iSDBCRnJIIWpwdHI2TUZeQjhBa1I1CnokYUkoYk5XQ3NfLVNqSFFlcjtFVl80bD1qTSlN
MHBiPj44UVQkPTI5YH1FamJIOztgenRHOyoweyE/NH11UmFEZwp6PmZwKzYkMWIxei0ybSM9bj5B
fD80Sis8RlRrandKeGMkX2liaXJfUnVFVU5QN3k9UTMwbCtsSmojd3Y+PzEqKW0Keks3SGNZSW55
UmlURHgtNXtDI2BZdGRUdm1XI15UMTJUdERCbUFtRl9jRnJjJDw5Y3Y8cTtWI3xRJDVCb2J2Qm98
CnpLa2NtWWZsMXNPSnx9PnUzVXFwTWcpZHVONXJCRlJxSkVsemcxP1hOaFoyQSZpZUNZRTsrUUNz
XnQkVDhkaFhTUQp6Y2kqY0VkKS08ZGJndyRreVJJT15CYC1iM0NPcChmLV9oQ2JzOy1yWm54Z0tO
USZPcjUoeVFmPD93KXNHJnhRJFcKeiNwVnYzSCpla21HMDF3b041VGtscWxEaDVmQXJUKl9fI212
M0pCJkB7ViNuM3ExakRxKkRmMV9meGpFPXQjN0ZNCnpkMElOPVcmfGctKXV1SCtBcHE1ZXljcWJP
MW9HVzRXMXhDVmNZPkBaN3t9fC1kQi1uYSpCIXMoP2d6M1JLUXhtYwp6bWRPanU8YmBHYXl1ZUpz
ajV9V0Q2RTdyXzduSXB2Kipocm57Yi1nUzRhd30pWlAkalpyJSVhdFpJSkJWN2psSTcKej49U199
RHc2SVJBbDtFe019dllaRDBMamJzUlhRM1ZUdmlzT0VmYHJmZjBmOzRmeFU+ND9KPH42RX5XTCgh
JStQCno7ZXN4XlB6dTJtKURKdUN4RytxXzU9Myp8YiNnNCRTJSRAZWJ4TVRDREhTS15FUk8+aXk+
YitDLUR5XmFQUDF5OQp6ak8mbWItaSleVXduN2dXI0RpZkZQdkNOY2gjYDdgTEJBeVhhSTYhSkJj
VGtVY09FQ2Mman0ha2xqJGY7OD07VFgKejF4RWZHRjZrUmBBRik+eUYrZHFlX2JHbn5NJjxUR3V5
an14R0VMTFR4REo0ejNZfjRfV2goTVZfYTlgcnlSTVJ1Cnp6JDc0dlpESSkpPm9+YkElMURmYmdI
Xmg3Vj9PaTBLOEZLSkV8K0Y3aFlRbzBvJDZGKGI4WlQ9UkchM2NEfkt8cQp6UXhsa2grPDJ5Y2F4
QS1mTFdKb1o4XmRsSzhedl53aiR9R3FqYlBlR01saFhFKSMyZXhyKnxEMCZVQTQ8VHxETjcKeiV0
LThPQilmSGQ2dVdnfDZ3Xmw7JGN7I2hWRm84ZlAtRjRqPEN1eTNNRDk0dTZlbHdhPCFRfDc+PG5o
QkktNUNNCnpvWGVjbTdjaDZ0I21yazxqME42VSZPLUU4dkl5ZmZFWUBzMk9SKElgbEleeSRiZi1P
I3t0aUkpSkEoSTI3SzU0UAp6MGplLTZDK3IqdGRkZElBOFBveCE+ZnhRQFZpaDN5SEJ6VWZBV2l7
Ym95Xyl9Pl9faH1TakJyKTVnYUhZQXAzLWkKem9oVXteSmQpU3Bob2E8ayVGPzFpI3hGVjBUTTV0
JHFkOTtTOFE4ZypkejJ3WGZFVWtFMmJRb1pPMEIwbl5tS1BnCnp6flEkPW98NGFVb3d3WX12fGlQ
a1h0dU84TmBHRWowSV5ZKkMpd0w3a0leeFo4SyQ3UWY5TV9zaTZQNCs9Nl5TMwp6KSFlP0xEOXhO
Q0p5QjdQa0BgcDNzMUxwe3MjN1E/X0MqN0MxIz4/SXhsWClNRVRaMn5oaDZWRWMybE58QUhRVkQK
eiUkYU15cE5+Kz80T2BUZF9aPkMzZFE4cEg7KyM+NGhvKXo4KnY8SWRjKGVTe094cnEwXjdtV0gr
QDd8VHlUOXRGCnpAYjIhY2dnKl5NOzBZYGdBM1g2dTZjMGRzMiY4X1RqUz84a2NeIUsxbT8oN1V5
X2ZYaGl2b31XMylTNkdNRiNVYgp6X3YodU1rUT9QeWwlTTlCa2BgLW9DK2Qhd2pnT1BnYj9lKWdQ
VCNuQ01wNjs3LXAtd0NXXlAleFYlKkF3M2tUQyYKekpweiVtQ1cyMUE0KzEjKj9EIXdgS0VlUmJL
UWJeN3pQNnZZMHRCR3dMK1NyVzExR3dBPDtxM0ZIUHNZV24mQDlYCno+MT9aU2w5QjhlKWwhfEBA
VDNFQHtxRiltZWF0LVohWkpTJiU9fUxSRDNiMHRAQzQ/RzE1V0BiPGFhNzB6WWA9bwp6MGRVRzcp
K3ZmKXlBTjVYX3UlUGMwTDY8WTtJVTNMd35wNmc3Wi00YSNyUiFqKE9laU5YNGIoVjlfPVgyO3ZE
dn0KejFwQSNWKXA8OGcjRWB6d2N+Kiohdj97ZFZsTjNXSSFCKnJIYihSQS0hR0g5cWd+cUx2YXB+
T3pmJl9VKCM0N1JUCnp3UzZMcjBNfk9lOWJfUzVza3JvU0VfTUpDOW1pbEthQH0oc1Y3M1N9SEd3
SDFTJkJPNXN3M2g1Mj9keDdnejRIQgp6aEh2Kj5Gbk1vYnNXeTxqJXZaQjBjI1gpNWJWcWtTMygl
VXl5c3U3WT93Ni08T3BsR3ExWkopPG8qQnVCMExidEYKemxDSTJYY0t6QHVjSUNpR2M1JnxyYzBw
PGNRPFdVWCZoMF8lOT4maEA5P0goeztAOXBXeElCY05xcnpvWHMkR05HCnpgUTdqOSFrIWBRPDVI
NnghcWc7KHZXcnJ2eX5FenNyQ3lnVz87Rm1wPj50NTI0dmIpJDJTPjdOaGVrODQhPXJKMAp6Vj5t
RXBBVUJyWG1MSmI3bF9vSHx2IWN4VDA/QzhabjZLdGM3TnxXQkc5WEVTRF9EJV9kUHNqO1MoM3dV
bWYtQGcKejdzbHJsTGh8Rn1LRXk4NnB5UUFfe2tSQilMP3B1Rkp0ZU9nMGpmSDV7RS1DNjE2UkNR
ZyhoX1J3ZEEwaTU7R2UrCnpPQSZtRV9rfXZ9eFpxUUdwazUmQWZhfk4jRUNNQiooYDZiLUwlejJz
QEtsamNqcHByanpWazxzdFleZG56Jk1gTAp6Sy1xNGpuWkw8JS10Oz0jWnVPJmQlT3hHRHJuQnAh
XnJtT3tVNn5NTXIhP0JpUDxIc0czekNCbT9pQmxPPCVUOFMKeiZSalhgPio0K1NeK0IzO3BUR1ZT
b3E4WGIjS2tCUzZRNmteZWZxcChvZGx0bjlQNU5vT3Yta2A8c2xTYE5wdExHCnomej9HQ180MCt3
d3JwSXNQNSRfPDZaK1I+dVF7NVh3R1p7YTdNMnhibCNNTDYjeVM5fT0yRXcoOWhEeGhKMVJXagp6
YndaVlVGZS1yYGxIMndJUWs8bXN2akclIT5BZVMwSlR+ZUZhdmxlIWtRcyN2P0ZKK0Q9M2FnSCVs
NFlraGJAKUMKelpNRFZ6UmU3bi1zV0JtRDBZMSg7PTRTZEFFP3JiUEQhcEhGJWVwO1ZSP2w1NkNN
SlRvaFZLTiFpSyRDWlExNDw3CnpgWEdRNEFQVm90WiM0K0A9YmluOF9ZJHRhS2UrPCQwMkpScV8k
QUYhUWFkTlJfP28pJUw1dGcoVEImaUswZD9pRQp6bEBENjhVTyNCTGl5M3Z1ZDd7b2NHTFFjdjU3
ZlZzZmY1Vn17eTZXNjYzNzEmMEUqWnJAO2VFTj1Yb08ySUNiMW4KeldDMGdmITFwP3BxKzZpViZK
PVE7M0NrOWsjUX5oc0Z6YDIoenwrcUdQPCt0RDBWbkZQIXc0M2gqTkh+M29KV1Y5CnpHOTxneFQm
N2QzKDs/MzVsPGN5UEdjamotOWIhZGp5e2B5QTFMO01iSkRJbFJTYVkzU1U2bylZNVUkOXtiIWR5
ewp6TUd8enV3fWIjcGVzWHY+QylNP0VCVU9sakJKVUkzI3hzVmFsTWNwWUl7OSplamJKUHVIPTtH
M1ZoMVNvOHFkS1EKems8Kk1KNj43MGN1cVVOcG5oTD0qa3BWcDA3MnY+TzNrPWB1UylBRF9uNiRz
PTBFRUJSMCFVITluZSlYTiU+TWlvCnpXXjtCVHZycm4oT2NsbTU8NU9lNjAwRUYzOW1URm1rNjsp
cjAtIVJTRH4kdWduZmt0QWl+eC1xZlh2MGNSM3E0Pgp6ZUl3Yld7VWgxc3tpRTZDMTduIV9LYEll
Ozw9fEwkPDxNQkJBdzc8KHRCMSFrT0AzV0ZHSnkkNzZQS3kzOXAlK14KejhQdzc3eWdEKS1fWiFF
cTlVaEN2aj5UMzRLeUQxdkl4P0RSMTJ8fnwpRGkyJlczTldBbzV4Mm9nQSplZTYxfHh6CnpVSkZU
cyl7MHt4MzY2KXtJR01SemdhbWtINCllYVkyLTRwJmMxTTI9aUAzY0pVfWAle3Y0PmdTYnc1fS1i
UUB2fgp6aSgjZk8hRnJhM0ErSE5mMDJtbXwmIzBtfTJTSDkxTUpYVm9pWHMjXm1JXj9NU2pTeEk/
dHwwXjBSNW5ye0I4aXkKeilGXjslTlkxTjlNZE0rKFJQemVYbjloeGVBcWxvSmt+OH1neVZhYjV7
M3d7ckRIcDNFTD57cFpfPGklKF4qWXlTCnohfUR6MFdlPH5YRlJHMmFGKjdeaD5YYjtBYktAT008
d2RTdkoyK0dwVjA2ZG5FclMrSXQ/NCZqTzY7NFZ0TEswRAp6JjNyeF5NSVo+RGVTZEVSJCowbzl4
aTU8WClgYDl9aXVNPSVUO3Y7KEY5bzVQIzUjPX5JKEVvLTM7LXNOKDJBd0EKelhLWXcyd3BqWVdk
aHY2THlBRW56bDIkZXxra3w4WnhhMVA7cnlaUllaSjNNOUhlI0l+d1VAYWUqOXFYTSh4YSFkCnpp
VXdyIXp8KVRkRDZtby1mY2hiYmBsV0luRlMocmFMJWpufmtuITA0ZEwtU35oNCp5VGhyUX5tMzRo
akY1cXomUQp6JiR+SnwjcjFBZGdoaEMkdWFVakc/UjcwdntkNGpMVDhld3JSZ2JQekk0THojVDFz
TlBnIXU5eURefD91MlBVZDcKeiQkSVpoPTZ5dX1CLVRldlZEa1VlU1JTRUk+WXFGQDNtXlhiU09F
Y21xQ2JZZWtwNTVZdCoxe01vVEk4RHg1R2ZeCnohdWY8cVhWO3FJJGJ6bmh3NU1Jbzg4NEFJe3VY
S0R7T0FKZXl5S2IyMSRqP2BwaUZecnliRTEteXl+NiNeem9STQp6LWhyOGFaX2I/e0YhUyVwY0U1
Qj8zdyNCWVIwOFJheD8qQEdtfXwkfHpCaGpJV0lJNiNJYDhuIXZYXldwMDhkPVUKejlXdEx0dkot
VUwyXyhDQlUzT2czSUU+LX51TT5kTiRLYV9xPihzbCR1NkgxJjA2WmxDSmFIWCUyKml2PUcobjdx
CnpKZDFUYmZkdWcqa24wWDIoYGhlRCElNmxvZDFgIyZiJUxMJDAkcEFoQiNXN0tWNFgwd3FfZ31F
KlkhczExOSFxQwp6Z0UxSGZZSWBUU3VBMitNQio0VF4zZzw/dUBjbTY+Sm15VHtAWGx+ajQ+RT1M
O2Z4UDN2VjtPNUowS2FnMHppYEMKem5QZXNvSUtrSkc/e2sjaE1ifSlLIXchflV3VU5jI1VjPHIr
eks0ZnRBXmMxODsyb0w7aEd7dyZyWVFoUnFSYkY3CnorfDNoWC0/Mi1ZKGp6Jipxei1VJk5vcDlv
MDUoVnNZPkBpaXAjVj9BMEhSUWJoT19JXiF5KGEpPFF9SllUbTxfVgp6JnUqTyoxXlk5RjhKd1FS
Mz5Cc2BCZ0krRlNhQ0twUUolfDhScHY5KHYtNnFSeGRxSnArKE9oTVd9ITs4bkFANmoKendHZndp
V3I7R1VgPHxXMCV2QTdyPD1NPHNhVkVSMUlEP3MtbkZqZjgzTnVsZDFTeEw8R2RWU3VuYUdWe01r
aHh6CnolI3ZlPHZPRUIja0R7I3NXSSNqTlFPcFEzcGZUT3xHPVNuNjA3aGxWbEIkcD5GVjExXlJ+
SXNXP1dIV18pXlprUQp6MHVQdTR5a05HN1RYNVY3c2MkYkJNcm0lYDQjaU5FcCgmc09mVHt7dlNU
KWhgeFdTYXBnPyh+eTNCKihaTk82aGsKejA4YHxCTHRIe0QyNEdXWFVsJS02LTB1WSFqZXRhUyVB
NFliQzFjPCtIJmR7WkdvQDNhSWdPe0dqSC00cFNgLXBXCnpDVT1UdHJ+PFFDYV80dz1xMVYxUXho
YDg/V1oxNWBtdHdaR0E9WTN7WF8oSVIxVyRFUUEzTFFuWDFDPT1VZXIxPwp6XnBPMFBmJFBXe3dR
PkhKQkNgZzR7X1hnRntSQW9JS1gmcnxjPSslQ2tQJXVpMEMqT0YoXlQ/MGVlPXppNnBHb34Kej5x
Syt4cmk+anM4ZT5wSW0oUU95UzhEc0opaDc+WitPNDZ3VShRTmo7aExCMk1YTHpFWXlSbUdgYmtC
fVcraTE9CnpSISNLPDQpQHdoVHdiKTZ4eFUzMEN0e3U7KllTWjl6RFV1UnNXeSY8OyNHU0VMUzRE
flB9Mkp+PFVHejMjUnBQZAp6d2VVbzdnK1NUYmEyVSkoVXcybEFKIWA3RyheKl5TVXRnQiVUP2A8
Vm09PEg+N3ZYUFc8P25WPSFeWlRJdGQ5RHIKem8jenp+dFQtVUtlKV82YU9HZDMoR0lQK2hYKFBV
KEhKY0JnU25tSyVUR1BMaVctYkkkellpUUJKaiNEPzEkcU9oCnpLTV9Ablp5TWhtSnQjVGxzSS0q
MCMtLUQ4NXFFNUBGJSZxWHdJPWFpTX02QVUmSHg1TWBNJjB+KkFINU1ZWEl1IQp6JCMjT1lhb1dC
Jmp7aHFGNnRDTmsyY0NNZFBMUWFvNVJsMXIqdTVKTk91JmZ9I3dudEokMmJYKyNYczEtXkVgYlIK
elFTZ0NlJDdNVFI8R0BxMnc7R0ZaUzc4eXpiYyNsdlE9SD58TklpUjRzXmV+IWomfVlXJndjT3sk
Kn1VIUd3P2NICnpNaX1OVCkoays/aiRsU0kxeWN8dm11d0F8Zm4lSHl3QWhVaE9tMD5rSHxZMk0q
Y0N4bjlodCpsS1BTY3M5d3pgTgp6SStea3FDeVdRN0ljdzx0Pkw/KUtXUX5BRzFZOUVabip1RyVn
SExrVk9xODNIaE1YbnhHKHtSTjJXVlF2ZF5HMjkKenJmZDZpbGJEcXZkXyhYTD18a3F5MGVoblg4
U0VsSmt9OU0oPHNDIVY4SHJ4Q2VLMCQtWjRpXitIVzBUQlZycUteCnp2biVfQ0dBLSQwVjVXdk0x
RiReazAlSytoPDZzenskWlhGfTEoUCs0SWJOTDQ5TXU7d0N5a31kPD1TJVFkVGtZUgp6KF58dGti
aztMWi1TeTF0I3M9b0N3LUwzOGBQYCkxJXgmcHMtdGAtcWtLUDhaeW1aQnhyX05nRHB9bV45VXRh
LVYKeilBIThuRCl4SjI1cCV2Z3BFK0hHPWpqNG9vMm4+aFY3Q0l4V0NsYUozNzk4QzA0Rl5lQD5M
Q295ZisqJkEyRGNQCnooKyl4VUJRXzBORWloTEUwUUNXXk96fUV3dUA5RkVxUml7YzZjJWBXMjA5
R3F1fUgpIzVDfjFRLVY4SDMtZ28laQp6M2pHbEppQ25BLWpOaFU0dVl0ZDs3UXZwQnpGck80dWJN
e2tweGR2U0Qqez5Rej5LPko3VT4zTEp+Tm9iMGs4cHIKekFKam5KWXQ3e1hKR3UwOCU5bzxkRjYh
Mzk/KyRzfUlCeWdaO1g1ZUo5SStGO0gxaXZYIT8qfiplN2RMNWAjXldUCnp0SGtSWnlSfFBlJW9q
YVBHTXZ7S3R+PFRSU0E5YUYpN2kxRWBvfjctb1pDTTVxfSt4PFRPXml6R2szPHd6bEBrWgp6QGJt
dG57cmkwMCVVdTMoPSVZWmdCWV5kOGotNmw+Mygwa1kwbD1LczM4OSRPVk1tZjNGO0NNKU1NUCYk
OGFIUi0KekBfRE97QDd1NlhfMCRnSyt1RngoYDhpJGtORFI3Pm40ZjRgUkdEcXIqam5vSnUmdnpY
TVNGJG8+LUk4TjA0S3lwCnpsKjdNUSN3IWp1e2FwYXt1YU5XSjFFfThZSkhRam49QWxTM0Nze0F6
Xn1VQTM3b0R8e2p+WXZabzJ2NEJOXitCKAp6UXt1eGN5fWd+WmpCbzN6VCttY0lkZj9jPnQqaDNy
U356e312Vn4oN1BaI009ej9ERSRAOFFHKEZ2V2lfe3ZGWDEKenxLTz1rXyVQdUx7UTRgPDgka1Va
e1ZeYnxfRGQ7PVAyOzV7Y1A9fXBjPGYtWHgwUFcqUiR5Iz5kMkN9I2I+alc1Cno9SmJ+aitZcUZR
YVY/Wk17QFktbmVqNU9hJVhefSVDeDlubm9mXjU2YWJDVT91fTxhaHZZanlCNCV0cFR4c0RmKAp6
JCZGXj0lWEwyJktuYzd+eWxmfDRubTk+ekY9UH5YS0xmOW1FTjBnb1cke2kyU1RhbjxCLWg8X00+
aUx3RiQhXnsKekI9SzUrbV99cD8oZVBPNnEjX1JzblolI25xd2N5IVplVDQqYWJ5RExXalBfa2lD
OEJ4aSZJd30yR19tO3UlWkZKCnpKbTdAY1lSRElRTntrYzdMSik5KmFVWn5gMSFHRFlGazd4Vj9t
OVpAJmZeJFBwfGs4VCVXJlNzbDU5NF4pM2NnfAp6PldlV3k/Uyt1Mj01cHE1RTlKP1lBNHAjb0p8
PWpDdj00KH0wKGlLeGU+bXFnQjhLVGFKV1NgfFdqWVR9KTVVIXgKeiFIRj5TTCp2O00+NHs4VFQ5
alJybmF1UH5QR3Y/NEdubCFgRU17fGxIZ21jKG0kX1k7azFuYHslbnd+fjBYTFNoCnpwcXRiTXgx
SSRYWkRiKVBUVWVPc2J7MX43Z04wa3tWdiZ9VEVZZURuTU9qSSlYelJWR2VKc1hDUTFta3UtUylu
cwp6RWNmN1h5STYhZF9DZm8pamVWTUlWeGRPakVXfmd2MylXeDdnN2xXTDAwMmNsYk8/SCpMKHUm
U1dYVmdqME9uP0wKeiMmUj5JWTBPdyo4WiRVR25QYlRHUEUyNkIkOVJreillUldkTiVBdjFJZyoq
NDk+cHZiI3hPZns1PDAwKVV+WlFYCnohPU4jZmA5a2l6YX0lKSUjN3UkSnFZTnJDO3BjZkRnM0tx
d083T2MtMXtTZyRRZU9vQ0hSV2hraDYpTV4+S3Qyegp6KU9pM1lWaGJyTXAqaFFuT0c1N348Tk08
ZlpOZHhkRWFVdWJQdWh6KGhLZ2I/MnQtaipJej9hNT5fMktzcGIlQ0gKejNaPl5QQDtsbTc7SVg/
cSZyJHFNaFNsPGlpNiNxTUJLMm1KYENYbHc9JV9ObShAMVdWcF5vJU9Xd3FUeV9uZ0A5Cnp0PVFx
Xi0lWFdWQFlSU1o9K1lBdD9mKkk3VkUoYkJMX2JzYTlAVUBlJU9PZDJ7VyRpRCQydGlARikyK1A1
aVZuOQp6T2QyfjtlQSZFTmRuSn1GS2UyRTl3a3YwTEEycmZFYW9PSGohUihJbk1XM1cjb3kzQWZs
UU1NNXdsb3lqSiM0UloKemREJjZ2YG5KOHlyS2JiSGlOSTZhWnh1azFDeUxsOCRhLUNuXnpKdUEw
WjJ1QFpta1lgKUtuSktUOXhscG5WYUkwCnptSm5maUMmV2tKKjMmYHpudVhFJWxSOCZWTm9jQWFT
JDxBIz1RUFB9Oy1nOHtufWZfaTAtPEN3N3N6Xjg7fnh2Kgp6e0NoSSV1WVgxcD9vcWVgfEhjKlF7
WXtQWTI5VlkqRS1wUz1ZVXtATk5+YUQ8X2AyUGBtWUwqcnI9bD5UeXMwdj0KejZgPCthO3xfRylh
NFp4N0N8PUB0N21+KCNNV0xBaiszcilKblMjIXtTYWpkQD5iaiV1eUkmTlRgRkcrOXhIKSR9Cnpv
T1NvcGFSbnNYXl9LMl9PMTJ+VXUyKXpsQTNUeFFzUjNUNkkoKn08cHxMRkp1JXA+X01IRWN7eHNM
TlhhZE1yKAp6YChSOXRjQG1oI2A3YFokJjluUUlZKTFmIW1uZVA+MUF0KV5NPzY4YXJ3V1ZXU2Ze
dHcje0t8e2NpZjl5QyR6IUMKek9PKSVtQU1DPyU3eyF0Nmd0bTh6MSkjUWJeMF5SOEBVUzczbFY0
fj0lQiFjO1U1QndCbG5GJVg7S1YjWnJvLSROCnpVSH5SUHtQSCEtIzRqb01sRlk9TVI5Qz1mb0NO
WD4wVmtlUlJ8fFFGZkt5QE1YLUc8ayFHYFQmYVRjM2RuOShXIwp6bjU2KFNeVDVpP1ZBZiFSWnAo
fFpUZTlQc19FOFo0cmN2LUcwVVdgdk0xWUJ0PEBpUXpHR3VFVzhwKlZkTFcrWTcKelhLO0U3QyVj
KVJnQG1UTWdqdVJCWFNWOUFuZSs4XiVvRlU5enJpTEpZYG1GOG5yJnE8bWZLbXB3RkZERC0zamx8
CnpaWDZHIU8+YHV0ITtxYSRBKUBYX1MqQ3shIWJGZD1FSDdFcTMzZUEtTDFsWih2VFd+QEQ4WTRm
SkpvVG52T0pIVwp6QE9XZjhXbnpDQnU3XjxBemNWQ0NMPSZXZTROUzRhXlZANiV1LVV8NyV7UWAw
KCt3UUozZXNRQ2VEIWU1K0gwN3IKejxfaEw/PCRHcC1YKShheFR4T3s8OW8+OEFDSXFsRjAqZ2xB
JCQoQCh6VnY0ZDhQRWpnY3s2I2lZcyNZTj93Yk5vCnpIV1RZUm15PCVuQSZKSFV0UmA3K1ZDZWBK
JjJyKVdaV01UOUchM0Y1JH1vYmFKb3Ele1NFPlNfc3NmPG1LJElZZAp6aVduKE1xUT9NYkB+Jn1S
bmg1VkNSX1o+eVF1S1I3b3E2PVReYUtuUVdsaG1nV0xeTCN7eDBFclliRyFhZDV8SjkKekZiOytj
PH5AK35kVUJrJXktMnJTXkVrbkRRQWZEbW9RZVI9WF9AWDkjKWx6WiFwNyp0aF5yZD1oODtoKmVi
REJrCnpzfEwobEdQVW9oPCYhQGZ1eUIwOEY5Ozt7MCEjIyt4TSVfYWFPeXFCWm89UlJ7UkZITiY5
TV81QlB1ZD8/KH1Lagp6RlBecSYmJGdCOFJaczZZcG5GK2Ijbnc8PkZUaEY3SVd8Qm01OzwmSEJg
S3lBSDkwb3o0VGJpUFRaPGlFdzNSelMKenZVQmNmRXBfUT5FNW4+Y2VuSDl1MTRZJH5qVmRQQFBm
KStVb1l4TD5je19GSGZuOSZeaHZJcG54WihwUzAjVGhqCnpOZV5zUGN6MClBN3k+diRBMippPWNm
ZXA/UT1hMnBrZUI5P20+eSYyNkIlRyk9SHNISFpleXhge014MEhUamdiVAp6RTxMZS08SjR1IzdM
MV58ZFh5YlY+LXF6ZUliWVdNTDskQnkoKSV9Xys9V2x8dVV+PVEwRStWblB5KzlnQn07fmgKenVV
PEF5X1ZDYGQ/KUxoc0BJa3JmWDllWmRtQnJSMEs9YmpGUFBDbzMyPn0hQHpUaUU4cU5IKDM3JEAq
bDMtREJwCnolJEBRfllmaTQ/ZkRee0NATykwaEl0ZGNSMntpUXsyOzZIWkBKfDQhY2Q2bipuI2d2
I2dpdVRzN1ZhI15Bey05MAp6WHVHe0UtYlI5QGZOalhhU2Rufj5VNnxLKTd6fjNWbShrTXo3Tkdf
NilIdjEmQyV3bURvdF9peGdoWGwlSTY7bWgKelBnNClndG1CVmY1bHBKJXlpUT1IPXpiSk9AQzw8
S0RIc1FpWlF5M29WRWA/NCkhYClCZ3AqYEZmS3lHQkRrcyhECnpnWjBSOCtKJCFmalF+ejc7b0Rp
dlQ7WGY3ISU1IWszXjdlJG5QQzNEZikyRntsRWF6RyZTNllwYCVyZGo+dEw9PAp6THpYKXVGJG1w
cGdDWEF5O2JnNnckNFNEUDA2KSspPTdiMFU1M1FCVl9hP3hTO2RUfnVUWilCUjklUnc+Rz93TiMK
ek9ZPU8qPyl1MX4/ZiowQExSPkAxb3pwbGpjKS1YUE02MyZkMCNeaFVYbi0mYzUoZkxpNEhreWZN
TTBMN2NLJV51Cnp2PD1QSGdTVXJASlUoMVNWQ1hQYUlQRnUzJExAc1VjfHp6cFBqUiNJTiZfKWg1
Y0JoakZ5NGp5VXBaYT9UTDRAcwp6JmVBTzI7U2hfcUlsI2lyX3BvM1MyXkkrTz1YK3huXk1aTlle
KWdzMCl5ZDNLYVU4bzE9ODYxTEh6NF91K0B9UzkKeipFTiMoOzBMPVFMdmFlRDtqPTxVbEBjPGsm
UUN4dj13IXFeQEZjenshPStyblhzWWMtYntBdTReM2FXMD8wKkRGCno/azg5VWJ6fkJOTFJIZkdh
TDB7TksweWRxI2FOc1E5RGdOVlBaajMtayN+eGRfdXpOcGR7UXV5bFlDMXQyJFVLMQp6dj5sUWo2
M2B6fFpXSWpXbCMpKF5va2BORyE+bUdxIU13PWxQJllFWXgtKUU2eS12OGo8Wjt4ayomUUwqQylJ
ZGUKem97KCY8Smw2WWAlbX5CRmAtalFQdHs9MntgSU5waFM0YDxVZGRgRnxgcilJSkB9bUMyMlU1
Z197NiYhS002OG9RCnp2WkZiNilMfVFRLT58e0I0Q1FZND14R3h0UDcrJSpZd193ODNwTzB4Q29a
alpAejVuSmdIeDcpUEx+M2NMdl89Twp6USUhNT9hOy1hPml0SGJFUjUtcUJGTCY7NEZMT2VOb2lq
al9HZ3hQcl93XjF1e2wpK2tBNEN6NWZ8U1B4UTU9dlcKekNoOUg4ZGV9YjBNMkFQczYoT3h2ZDQ1
SU5pQjU/eiFEZio0YlBhQjVESnF7bXktIWtCZGl4NlRSYnJEVmZEPUJrCnp7PWBKbEl0eGxMVGty
MzlxeUZgMEhRX1N8U0shflkwelV2eVZrNS08dlNqOXhMOH0pbW0+eyElPVRaa3Q5bDd2Mwp6UkBV
aT4tYnN+VXAqa0FWOXtsRzQ2dTt9UFN8SHVnX1B1JWhRfCF9K3pOZy1+UGFoaHtlK2RLQ1RFLWpH
IVVJbGoKentOY2IoPSYqQ1pGa219dzclPUJgO3pxRjtXMHV8ZlZaaHV0N091UFFtakl8PDVkfmJR
OWJ+KEolUGZ3OUYrRypJCnpQfFFnQ0xvNWQxREZKP2A2bztLKW8rUD1qJHhAdX5zeFVtNEJwN059
WiRwQDM3bVZUJD55blo5b3klcVZQfT1reAp6bjdfIysmVU1wfk92ZT1zXmAlKkw9JlhaVyQ3TU9l
QVdvcipUdyp3djxBZjY8I1MhcHhmRXY8R0FrfUhIR0dkJG4KelImdX5OcjkxNnJhaDk3e25CZ2km
UiFmLWNtM2QlQ3JuQjI7TTQzS1hfalNNYFh+NjQpNkNfV1hnRGpgSVhFLU8jCnpVNjJ+WkUqPTtR
TmUqM1pHTHpWaWxWdFJzJHQ9ITc+YnRhJWQwdHp9e1BrOXs1VGd3JihxYWRUd2NYMyY+P3Y5Twp6
NykhPjhuaGRZZz81XihfbUtVaFJpdFo/SmJMVDFta19hZiNQfmpSSEAoYSpZaSkzPnUwKHxkXmhY
MkJCJT8kd3QKemkyQzMqP3RYJiUpMyNTKGYzIzB0KGV2PTBzflNVdnN9TTVENEglfGojLVhQR1A3
cHRVanlhTjYzO2EqQTlHPz9sCnp5cEZTVV9oVCN0Vnw1Wjg0ek1eSU5md1FPJT9Pa0EkYzk/TXtC
QFVidGV3bHsqfnxgLXBRWHdTbkE5UXAkeG50RQp6ZWdlU2dJOX5QP2E7UEFLYVQxP30hZjFxaUxn
R1dQcn43M2p1NH5SaDQ4I0k+JmM1ZT42cGdzYWEqO3Fkc1UkMSMKekkpTH5IM2Apakc5TnYmKjZi
MkBqMXByX0hqQntJRFNCXm88UnBDbUFPK2FKPFNqe0ZScFNSTVc8MSVDdCFBU25GCnpqdU93YUFu
RFRsIVc4emZtWkI+big0X3x1MXdVMCZyVWZMdW5fI3NOejZyMkswNH4+Y1hIU05tX3smNjd2OFBl
YAp6Yk02SWMmblMxbEpTbyp5WD8lZG1zV0M9YzJadCp3WlgzTW8pVFJOO3F7Um5KVVc8OHAzcX13
NFpyMTNwYHdIZ1EKemshT2M5aXVkak42e1UmNDhedG5jXnplekpDeXJlX1p9UWFqLV9NJnpNc1k9
MTJgTFRMeXtBb1g5Sn1zbXFoYzU0CnpidE0jO1lGVUx6TXdRanNtUi0lb2MyQzwlOWJVR1ZJcmVs
YEFjPnk/UGZvMEApQ3U1O0tvcX5xMEglSjY0QWhTUgp6RDlDeDdxKF5uSEtKcmFoZWRIXlEhRnRr
STdUakUoPnI8OGtTdVpLbCtDUllLbVpnaTtSU2ojUyVPYEdKSkZgX3kKek5vSn0xNXl8TyRCe3Em
KXpJQCZRZnZvck9OU0kjVUQxcFEobD1Te2hDd0prfntPZWJzY2VsI19QLWBsRWdDS2YjCnokPChR
JTQoe0FLJElMKW8rU0MyRUwzRWc3U1pQajNldFVnIypBcXkxNF9qJUZGbT5QWSM8cH5GditqOEY/
eiVBTgp6UEVlaW95K1NrVjV0QG5PMSFuJDQ9TiZpaUVgcUMxMldFY2dkd1FRVHstSmF5MitRT0pX
KG99QnkrSVJOdHZUODUKemh0Z2R1ZzY7Jj5kclMpdElESDc3SUxRdzIxbDRIQ0ZWRDIkaDUjMk5u
PEVoT3oxSnhuVU1GNjY5bHQoY3A3XnB8CnpjJn19KmQzTnVVI3JkPUIwR194YEpIRnAzOHJlPVU0
aFB9Typ+Sm8oP1VWKnpROHduazc1RTs4V090ZmxQd0xURwp6TWN4KGFybEohVmpwSENAZk80NzB7
UUgqUVZiPXArNk9WTzVtbVRNR2RXRn5tM2M9KU98NHsyWEtSS002amZQUHgKelU2ZSRmMlkoQ0Z1
SVlJeUF9P35sPWBMb3hDRTR2XyhQa1ViWm9pVXdZYn1RVlhiIVZkblQ4SXVOdTJDPDRLNGxaCnok
VXs8LThqZWgrQXBsT3VTMGFmSEAqSyVgeC0jUn5FamVfb0RhfmRVPU5DaGdUZnRuZXVaMU1IMzlR
VUU3NnpZRQp6b2JAaTIzPClrQkc4c3V7SVg8IzEkNSlRIWBwTDdyMEtfNSREWUJ3cTYrfFJweE56
ODYwNEhMSWNyNEwtVT9hSHYKekBmT1N5bjViJnB6WiNGTENlWmFrNWh4T1hCUz44VU4kKDN4Nzhv
Y2g5KFkwbFk7WFZ5Um1wKVVGZyMoemZHTk5lCnpnZkBTNEJhJU8/RmhDQllUdXZlPV44fWJGOEo2
dkY3PVU7bUpZIzRFdXQlNG9eKXs/NDBJQmY/NzZ7NEQ9TFFWeAp6Kkg8IUU3fm1iQEB2O0xyd05n
UD9yI3kwe1A2MCRnKzlSMmR3bnpZSD0zeEE2Vjl1dlJiez4kTDU3UmpAUVkoPD0Keno3XytNMGo4
WGAxSSp5fTJ1JW1ZejZTeE9xKipCa297cWkpUXJ5cGhYaDtBZlJmZ2xRaX52Z3FATFpkTSg5WE58
CnpVP1k4emJ7QCVQaTRsT0p5cl9wWTZyMzh0JkZMZjdpZXkwWVIqX2txS3kzK3pFJDZ5UHl+Uk4x
UnwjZ3pvPCRpZgp6WXskNXJZQV5Ma0luTCtEZzs+YXN2QyVzKztfQjR7THUzQFQ0aU1paEhnTld1
KzVOXlpuZmRMWXpKMj9DTytgS0AKejAhfCQzR3p6VEt1d2pHb2A4SU9HczhRcVFPcShgK3lTVWkq
aGp5PnBzKE5+dGpFVX5DJVB0bVkldEFhYWM+XzRiCno8fFledmx4M0xLKSNPQHNHISl1Q1o3SCNU
KW1tY3p3emI1ZTJrYTlFb09zfWd3ZzZNXyRfMURDXj98SlNRKnokPgp6Jk9CYXNvKj1FOUh+UXNX
QCNwNEltb1A4dGZRQXUmbG49JDFAXzJIZHoqTnBsRWF3JUVnP2k2SztmcWdBNyRtKWoKelptTiNE
JGR8MSg7U1U/aj9zVWA/MmkyNmBefiVYZmFnOXhpdmh8QWFII1BCYSg3a0EoZUBXKjBNZm9pITQo
P2pHCnoxPUF+NUU/UDdrPmN1ejJOS3JTcGZRalBVTGpKQHRRYUhhKmV2fmtUXkl2fnI3ZTIka1g5
YSEkcGhXdEp7Q1Vkbwp6RFBQWVJLWXM4fEBsfSY9WU5fdEJ3YmFxe19jcnFgJE96MTZzWWA3QyZq
WTkqPH57djdWX0dQIztDKkRsUFhWYWoKeiVvOW09UmdtbjZidCsxKztERlFKKiFRZWNURXMwNUlG
WmxrZUlaZEM8NTtMdGRqbHVJPHNTZWpFcDlBSjApZUxoCno0YTV7JnojS2J5Tk9tJFQlNjE9JXdW
fkdrNE99TiVqQHdSRjxoX3JSVComLU9pUWJldFAyKVNMZCtKR1o0cmxnJAp6XkAhJXpmcHRRelF4
OGRZVjRVekRyYEdXUjZmZV8+PFReXkJld1hEME11OFdDMntzVSZkdT9GZGN2KChZIVIjb3AKemQ/
Y0R2M3dAbH5JdT85JDhTflZmJitJUzI2czxfIXJtPygwT1hNentoZkpydWIwfEI1RTt7KmJKYyYr
dUMmRFRMCnpxJTxKVShTMHFJNVJNNXo7SEFCUzFzY0pLWjZVPkM/V0lgfjdgSUdNZDZ3KDFmRH4/
STlkV0RAJCFDeip6ems4Rgp6ZWllLUpKUEQyQEhsRm14eVVaJkFofmZZYjJYcU1CQztgd0F4RGdj
biUjLTBOTCNjWTN0bSFmVnB4KmNZX182ZU8KeitPT2FfTkZ1fl97MVFBVFohMzUjQTU/TGBpWD12
T2wxTShnYXt9XyhhWmRJdEttPGpPN2twWkwkdTl3blRRclJCCno7VT00NVArdGppezZhezVHdGw4
VDBVISQ5ZE43LTdBMEVMKUlCM0MpUGczYkV1djRiVW5YKkkxbC1vczclPCFBYQp6TFVkLWIkWG9N
UnRubV5JVDMqNEA1TH13PXY8KUM/ND1lV0I0Kig/JTM2SUFfbUhHaXg7a3Nma05tbDV3bGpYVD4K
eiROail3Znc/TEkyJnwwTyEyQ3AwWnVvTi1lcGlVYGVBMHJFSjsoeTF5ZUp4UUVidjlPOyYtU0Ne
WXJReXdEQTYmCnokN19AJjVZPlp1aENQWDklVT8kOCZ3Q284SkdJTUtMJHU2VWIkbHtMPmlGdSlq
TDx1fll3IXVsKWRNemNVRyZ8Mgp6dV5JaEV6V2VVRzBhVCs8QmxgQ3JJUS1qaHhlaHhEI1JRTlZI
KlZDWnNmKnsmVEN7aUQ+Z31oRlkmeGxQQHhYT0EKek9DYHJCemJpNTZrJE1IPzg3OCVqYEJ3S0BP
WUVNdm1EIy1sYzxLaUcpUHJJR1EyY1ZsbVJBQlcjb0gyP2B1ellYCno5KzJXT2BqR1IkTXU4Y3Vp
JHJjeilTRyheKFhUdH1xTXBOTy1jP0BgKypxMzlUYSpeLTcjcj9xP0N4ciVyRWpReAp6PyMkXzxk
JDtle3ZVYyhNbH1qZ3JnJklmKGVVZU5DT3c8U2REMUxzRkZvZzVwYjg7NnglZkVnRkpfKD5HIyh5
ZFQKejwtfUptOWptUk93OShYMXtqOXNBZm45Y3JQa2VKI2VBQzAkdGhlYEApNElWdF81NWNUc0RD
JHJkWXw8fiVvN2hkCnp4JGBBRXA1S1dpSjJId0ZyaHMpeTBDKy0mVH1IR2FsRWxGfWFwMzc2MTVo
YnBKbFQkQzdTe3hMeTI5ZjgpRFZ0Jgp6aj5TXkc2VDBsOD9lPylheVdMPVZjRUErOGpiKiMtTDEp
dHVqP0pLOCV0bXkrd0lVUmVZZHdkMkxZWWkyeH5jJTQKelN8SGljQFpUb0BPNmFtOSExUylXanh3
RFBnYjd4UGxCYXBHMW0mRkVNPVN5ezNOLXFvNit3d35mfjwreFZXblhnCnohMSRibTJeK15fd1Qq
PXN0WVNYYjVlYX5IZUc2c2VEP3dKJGtyNHFmcTlrd3hTeUUwRFNTS31yc0Voa1hhcDlGJAp6NWt7
I2FKREtVcnFoayZrTj17ZG5Ga2pzakVaOSgtTU9qRTdJZWl+WGJwPmVmZ25gPnZmI25BJUE7KEd5
YVNRfVYKemh5QH1hNT5IMHNKVnxfSnM1ZU9ZMFBHTz47ZmcjeWU0cjhuZS1lUWVjKCFPOyE4Y1Nf
el8oT15fVyR4YkBCbmRqCnpmP3chcHF9I2ExMy0mPlBOM2I4PDd5R0tmZWsrTmdxMzEjZ1NTUHhV
MDF7bmEzOXYtaF5PITA0aXs1UXY9IVY9Xgp6MS1ZKmhhdiR4bEgwVUhOMD81YipMelJzYkArQH41
Mz9lP25sM3xFWHo7TlF8K2lNfjlFI208eGJUISVgcm9se1UKejJEPHZERnZDLWpPOzVzZjR+ZnFo
e3dQeiNDczIlbjwyaUtpVTdVPTgka1NNbV9HfWgqYXstSU5PdTswSiloeUZ+CnpCWkpBQzxzJVdr
JE9+UjZaeitJdURRcVFLNWU3SUh4PVhOcCpSMjNpa08xQkhhSz8xWG9ocHhqPV5QT1ZqcmpYJAp6
JX0ybXc4OUtvI0JHSClfJjFGVEFeeElWeSRUfjZpdW5pITs4UypiQnEqdVVpTXZ1Pykqb1d1ZEA7
MXEwKSQxNmUKek1iN342VDc5b2ZEUig/T0tIY0tYODFJfE1od0l+YU4lNzNLcF8wPDsyUHw4P1h2
bm1BbExrKGxHV05VQyF2X28pCnpDNXF2e2xnNXNueE9CblA4UVY1M1MkYXJ2XiMpfm1pVHlWPDR4
aEVUYnlEQmdfTjs1UHxKOWk2WHgraytSRmxTPAp6WT5Scz5NYl4qVE82PWFZMFh6WG5AeFc4NXtt
JXFZZD1MZFdANGQxN3J4PldlbE1uVGE3JHx8NnsxYi1xUGNUcCkKejB3XkFjMClQXkxDOytNR3gx
QlcrJnNyK085QGRvdkhKNEBrN1RyeTdOeyRiO183Q3drRj9GPVFyZTw+VSFqWVItCno2KnM5VyVQ
ZiNSdlVgJW0jKkwjRUVhMFY/NkM/RXdPIVl4YjRuV2lfQiQ/eVhfTm1BTnB+P0pUZjZmO14hPl95
bwp6MHVhVDglQE80fmItPmltPSRDKX12U2xPRykjTyZ7WHtwRk1USW0+T0J6VDU0bCpaSU5Ydzco
ZXVRfk5LeipHMFYKekNVb0VsQilvZCt4PGdURHJsOChRY3JeM3dobjtzRj0pOE1oSDFDZTJKMyhN
MyQjOzxQRnotKEFFZVRWYEtreiZLCnp4P0BAZFUzWXg/b0hMMkBOKzg9MmN4b3prZ0hoYXQpI2Z8
I0JzK0IzNntsSDJ2Tkt+ajFmSVk9NXFMX0FCKn41PAp6M0lMd00xPzx5THV1akIyQHRHJXFZP2xQ
cWlJKnlWMSFuT0pASDs4OFNvbkhrb2UjcmtFWDVNZyR3Zy1JT3BJajcKemI7bjUhdD9BX05zbF5E
NUNadE5ZVzVfRj1xPENGK01aOGM8JSY7VHlNQT1SaE1aamE4c0tmNGs4ME0+STliQzUwCnpeWlE1
O2hlQDE5dVJOJG5tbkdqTVBPJGBhJCt1V308UnduN0JsIz5BWTFxTEFZYXJFJEF5YTclKCFtS2hP
JDZIawp6fEkpJEgwOEp5Zmt0ciR8ayNZZVpDdnxrIVR9Sy1DdCY8Yk1QUihGOFk3M2IyKWZKSEVI
bklTdDlXMjVFVjg4Kk8KejJ8bDFLUG5mS3xreD1kQCQzMChCa09DX35NYDBPP095RTJ3aH5HN2FS
Q09MZTBYVkBwN3k+V3ZpVVVRdzsoO1UtCnowVXtXdSVZKEA0ISlJM2xxO1opSCkjVVMkPCtoeDMx
cVA8ZkE3Z0wpO1ZuYXoxc3Z1Y1NBcU5SM0k9UWZTS05MZQp6cD5wPmoqNSlZZ2hzMVpmUFk0ZkNS
ZENOdSZ3SEdjenttPyNpUXwwX3E8QkU5aXA8JnN0Xn1fSTtIKFZDUGF2dXwKelAhQDNuQyYybX5M
b35ycl8/SVpiVTVhSkdiNEZjJGFoNipWcHxGWVQ/RE4pSCYwTWRGIThiT0tsVHBuTyRaMVUzCnpU
SEwlb3A0cHRGSnYkYDN5SSEwRUFUXiFjKFZvTDFeY1B9NHZsdlVZVCopI3F1c08kWjZVemZ3RHNi
UHlmdXx6Ugp6b3ZoR3YyUF5PWmh5bnxoaXtafDlRTW14fmM/ZkxmeDw1bHlTIUp2P3QzQHx6USNP
Sio7Z2BEeThTZnJ1QWxeZTQKekNeYTgrKEQzTFNGaXxrMSpQX2Q+R0sldHx6JXFJcz5WZTdxWkht
PkpTRnVKKkFCWDc5PmhRZlh4ejxeMkxJI0ZDCnoya1htQHc4M2JjRH5kYVlPN0JAYVdXRCZwVk4y
JFM0eFRQRGU0eXltaTZTJVIlJFU0ajxHTXd3PGNAOUpiTEVfcgp6eXM2JWE+KXYpTUhaaV4kY2hW
enRRd3RMZU4tSHlyVGszTW5BMnQ8UUtXaXptZUdUQiQtQk43WmdEcnApbHw4Y0UKemM9ZXUlQjQ3
bjNpZUsrcHM5c0RJbmFxMmMlaUZrJkQxUUIqR21xRGxAX3o4fWtJbH0qJXQlaG88QXdmcVJGUkRM
CnpwX0pFcVVMRyVDXlppcj8tbCFLfDNGSkhoMyZqSWIjNig1KGZQdzBValJIKG0jRVVrUF5+IUA9
WUtqN0BPWWkjVAp6PGZnYnNDV1BDJWh4Kj8oXnM+TDlZSkI2fCFBb2M1Izd8MV5TK0gpITsmQlVT
JW96TiFIPiRVXk45VVc1TE8yRUkKenFGP3pHQyl9TkkxXiNzX0BCO3V2OVRvSj0wbChZPmxAJCZ6
UW9uRnd6cDRJWiY2SD50cFNxSCQodDhhbCYkXm1ZCnpVbXxfez9TQlY9ZGhkQT5uOG9WPW9+cDkj
QT0lbDBiK1RaJmlEcUQoT2pyaHQ7XnxRYUVFVHtoMTtCfGI0bXx5MQp6MDRnfllvflBoekVFZUQ/
JUk2fEY/VVoyX0tMTmlKT3ZVIWRQcU4qTDRrfmVPTXFJdiE2Z3VzV2EkUjNFX2x5I3gKeitZN3pH
N0RkQ3ZvNU0+S2Y3QT53NlZrK0EwWFYmelZhSk9ucG5xSmg2SjxJOUpQQXpWUHRjKTk7T2pvZ0Vz
JFgtCnopMlRWamxKaCMxVj8wUDZ5MnNNKHc8QmswNEtqeG9AdWEjbGxlbU8laVdzO0VtV2dKfURR
cTlZUEghRTs8aEJmZwp6UjBvKzMwUDMxRkxMPXFJYVZCVkF0KTw5RzVAKWcya31NZz8+NnlOZTB0
NFpQMn0xYFRkXkklUj9WWmZWV2ZjKTwKejBAJmJ5Mi1TT0Yhfi1TLWRVJW8tWE1pUl5eTWU4KTA8
aHVhQzslZilsSmVXbk4tJXFgKms9Izc8cDI8WFI0SVdiCnotK2hwKmFKfG9ORmZZNE1KOEBZR2Zh
KUwqQWFNb3VrQVJvbzBYJHczQClxNF41Qjl4fTE3NihpY0wyRDgyeztLcgp6N0opVkw1ZG5Nd01E
WjlZOSRXUWNePHVjVipVYmxrPypKZng3PWJZa3lkaWxVdT5eVShoKmR6R0xNcXMpMVQreyMKem1+
Q1NMJGg+ayM0d21oP3NRXiRERmpmWCpafXtQeVdhYytHaTRpaHFoPjtyNEpURmFSe0AxM211cDJY
MmpLTiUlCnpYdEoyNFN1QTZCP2JmaGQ9U2A2QUJzYyg3PFZEUVhaVm9gQElCakheYzU3TE4mMSNs
cmcpVHFLUlY+U0syUXRWbwp6KllGTn1WZSM8ZTtxUW0hSXw1TTtZR1BuNmtMTzlrMDlNckcoMWhQ
IyU4UjB8KEs1e1VMKEQ/WVUxeTJ6NnN5JjUKelZ+aUhPTDJDSlB6YmxqNG9YKEgwdXV2UzZyWUFH
WE8+T1YrWWxrLXNKR09uPGtacDZQM3xjYUoqdWRFe3JjN01BCnpYIWV3S3lTNlFwUjghbn0pPHwy
JSNNNF5FQ21+UVhGK1Z9U3lmVndRdHMmcD9RRVJjKXRNKmQ2P3pSJSE5KTdYYgp6VnB8M2YjVmRm
UXA5aTNOYD1XU3EtY0pMbC1mODgzI31EO2B4cF5OMHMyYGhgX2ozVCRkcFdPejUyOWN5aG8zZEYK
ej1Vemg7RCpBMCNMKEhxTCNefnA1SEllc2ZPWVlQYVhaalNSI1hDaVpgUUNRNkhkZmNzUWE+Wjdk
fipOUnQhcjF6CnpuTGxITyRqcTVEMlQ9ems0WFk8X1JCdmZkRnJmR29ZfUNLKlkkeDJhYTBQemw3
NUQlXms9YypGQn5WQmowTXhmOQp6VyVrV2hKfXRkbnxON2FwdV8xTyY2P3ZpQVo4WnReSV9yfDNi
flBvdkNMe1UxQ2NjVU1rSGtQPlI3KSRMZDFAJkkKelYxUSlUZ202cWpMX3NBIXs3VkprMzlNNVZm
aFNefV9+MG91a2BKREtzcVpPVmhZNGdtJTZILW8xMTdVTDRGWG5WCnooRXZ9ZWo+dmJpK3NUc2J3
Oz5ifS19SWZnVntZN0QxUn4wRW5MMmZsS1BjYStxWm5wITdgJXgmZEpmNiVCX3pBbwp6Jm5UalIy
Y0VjV0MkN1ZlN2xfRnZpS0R+ckJ7SEMlYX4qYWlUJUhkWGd2aFoybXxGKipTOGI5M0R+LUl1XjU4
djYKekx1T0twI2EwQTBGMmApVDF1IUxKMWpefSZYcklVWUlMO1ZPOWQqMkpJI28keklxZV5WZko+
YVBrMyZXfUdtQllZCnpTY3I3KVdpMFU0U3s3cno4QkUkOVdGfD9vWUBic3NLUyZ2SysqQVA0VkVQ
N2xCNEVoTkIlOz1PZkQ0a3Uyc0hIcQp6ND9NNlcwOEhvfTE4XnpAbT5eKERGJUhGa209T25LZUxn
YWVheStDbGdjcCpSQlk9ZXN7Nm0pZVMlaiQrSyU2OEMKekhRdFNtejh3aEYrfDdhdnErbkx4JmpS
JUswZURFVjBLTUkpVUZpRFRpUTBrTSF+RkYyQkRkKWZTQUtkMm5jdk5XCnp4YkkjVGFCQnw+eTB3
JHRHMSFmTE53Tl4qZUp0JHVLXldocTV3TGpfOWZRKCUtVURGbl81PDhWPDUtU2olbm1aNwp6Kz5l
N3pJKnd5SzBUNlY4YSswYHdDYSVDYjVuSUtSN1h7MjNUXyExIVNDenAkSG1uU2gxNipnSDl+c2Ro
ZVBWND4KejlIcUdURUVIaiR6QjxkOEdtX1VXJiZ8UThuZHVsYUdafnt8a29iLWFEUlpRb1RTQ15l
UXlJc2MoWTVFUEs4WGNmCnpvNXNSKVg5R3loWEd2eURTLVNOfm1oQzdHQWhpK2wtRFpGJU5PJiVy
Uyp7YSZReDVBYG1mZFFXZiV+TGNFQCRjUgp6UWVeQH1Xd3t9OTNkYThPPSZOOShPa3AmNFV+S15V
X1ctNmtBPzA8VEpDOT9jYXcpbW9nN2ZjSHB+SjU8U2gxKFQKej1TV1lNXlVqX1clUVpkbSN0WXdz
LUkpRXpfditMKENzbHdiZykjQkJqKm9He092OVRoZHEkci13dDN2KWdCend1Cnoke2kzcGRpTGFJ
MSlhPEwpJEw3QVRLR0dpM3ljbDhsQTBaKFRVd0U2KCVPKH5Ad21DYj5TYiVPTz9QeyNFdSg1SAp6
dT5wOVpgV1FlRmh+bHdQP152aUdGaS0tTXh4aWRiME9+ITZgWk5SZXVMZS1QNGRzR2kheWh3SEtM
ayszTD1sSnIKemZXa0hrbDNxK1YzYjY7I2tvNitFWUtxe0Vmfj1SNzsxVkFkV2ElQj9WUE44QnQj
I2ZeVStzWUkpaWRpYURXNjsqCnpiNzAkcVpSP2tmU1V6dndmTjlnRmVNTVA9eV5aRUxwTTR5e0Rl
VG55bH4zfSotVG11VjtRI0h3KmFNblVGM0p5fgp6MUF6TUt4Yik3K2xtflRQP2JMfWRlKyNxMU8j
aF8xdmdxZDRzYHYrOE8oYCFRd3hBMShXSVhEP0wtIXI4S0dBdHMKei16emxwMlo1TystM2pEN1Vn
c1Q4d2k2Vlk5NiNaRWBXRk9kd3NPR2ZKJE5HTmojd3Y+P0NKXzIqfT4+cWshNmM2CnpKNGtsS0pT
Q1gyRVAtVkE0bT02aUMkTFZgYW1TQTtOYWY3cHozWWJeY1BXdFgxZkQwNz9QQzBCRURNM0IoK0l+
cgp6JTM+akJDQlc7SGoxSCtaJElYeXhiXiR6cjZ+UmZoM1dIK25sUERiMWhDMnp9dVpgcyoyRHBm
VkM7VH5mIzVeSFUKem9DZzFMZnRhWWJORXZfZ0AqITkhYyU2Xn5NTTBXMCN6Zz8wQ31ndEBHOWJr
dCZAOGl9SklYQjA0YztydTlndjBBCnpGJVFrOWgkRVBaYER8MFRuUjEld3M9TGZMaCFnWDQwa1dP
P2ZsKE4kSkM+VT5YUT9gJGxqKiFNP2otcDNFKjR7cgp6IU55MlN6dzBpSUVGPkFVQHRAIWYkVFh2
YDZoKW1+PCRVU3Q5Y2JkZjFIYn1ie3YhNks2IUthclRIcHlOYVlke1cKelNlT3o+bmdwRFhGfmtp
aCZoYT5lYEVaOT1xVE45eGd6c20qeEFybCY+ciV7NGVHZkJMLU5sU21ifX1QbjMxK0NZCnpvIXlr
KiFMKDJBVnclVkhGaW59PSp5Nkl4RV9STEU/ITxOe3lLOzBGeUw/RUpzVTZ0TSl5MEZUTHdsTFZR
QXV8Rgp6IzIlKHxZOFNoNGROPW05aHV1ME8kQEc9PkdER0c0JT1xajlXYDFFR3ZyKDV+aismQ3BP
PWxtKiFXPzlRIz9tYSgKem9WcGhlMF5tVzghQDYpR21vJE99SyhHezEwO0s/bm9iMzIxPy1pZSE7
PDBlI2xfQyZ6MHh9d209YWUtQ05pN3F6Cno1S3xvXyhZPzQ2Zk5tP21BeDZ8X3VWaWktQFR7ckww
NWRnLW5KWjJ9e0RCQjM+elFGbHZsV0lsSkRuRzAtZENvdwp6VkNAKyZuJEtZWEYpWTxXakFoeV5Y
VzkwdjBHIXNiVCp2aHNmV29qfjRuKkN4VUJmYzFTRm0oMlEyOyhIKFErTXQKenwxUGolTjY7YXUy
cTJ9MlE5PnFNcShNOCg9OUNkZGBERGJOKGhSPDQjM0l4cy0kWmhgMjdWOGU9ezU5WjE0TzBTCnp0
bSUkN1NASShFI19ZJENeRSNZV0N6TjlGYXRjNkhrb0t7MDR3bnkxeF4/MDN5ejZAQkh5QnZ4OTw9
Zj5TTVo0Tgp6SXY8cjlifWdxYztid0p0eD4wTD11S0E8cDA/VWBwTU9KVGAzb1hHczM0cWg1d3pk
Rk4wOGMwWjZaUFlBLVZaXlAKenorQz1tSHROSFcmMzJPVTFjazBWZnV6QGwhTmFebFhDN0JQRGV1
JDZoWFd3JVEyfl5HKz4hVDVJUz1feldHM2dBCnpmUTJHWVI5NzdVNnBDanNrM2oldSlhI0MjJFko
OXA1ZjIrbUx0Q3AwMHhPQyNkfiZqclRfWTFDWStadUFqYz5Xegp6PiM3KnZ4VW0yMT40VTVHP2NP
d2QlZXV3bT03QD84cWB9U1B2bjRqXzt9QXw3NT40a0peKigoKjk/JGN5S0xaTSUKekxBVjB7IzBx
YyNpaGg5IUw9aDlVYU4pdSlfR31YJEU0Z2pjUWRJQCVlU1U3bmRSYS1INW9MTHkpczV3YDlydjEm
CnpvPEN+RW9VYFVYQWI9X1orcms7Zkp6eTRoe3J9bmYzb3RBMUcrUHchPWw7KDw9aWEkPFdfcjQo
ciMrb2MoaCg5WQp6NUcofE95U3FhSHJCTHFmPyhYakg/KFZLWTY7TnA1I1FwdVJfeEo1eHdKOUpX
PjE0WTVHfEJUbS19YiVCKmxWd34Kei1uOUA+cHh9M0U0OGZMTkFhenZ4USE5R3g5K1R7WmJTSHRR
Mjlmbk45WFFGKUtNNm9OayZ4fWNKfjRQSU8qTno5CnpMfHJOc1g3S3xFJEp7fm5fJDEjSHVAPUZI
VGQ/dFROVzdUfUBQcyMrPitwfTwha2Y/aU9XM3IjKiZ7XzFwa2hTfAp6I3paSjQ3WGI3QiF0VyZJ
SkFIfD9hVmBxfTFtMzhSSThBJjQ2JiZjb3lOQWNQR1hsdkRUWHQ4UDFDakclRFZ+ZS0Kem9RaXht
MHlyJVooaV9KU0lHPV9Be1A+Pjw1KCsje2U8Wnk8KnNSK3Y0STlLQWt0b2pqTTZzNmRWJiM0VkdM
NWlgCno0Pk5kMkNVVGtiJjFrNjUyKS0/ZVZMQWA5SDJaQF87MWUxRmxRTjgpQT5sdF9GQX5kQmlY
KmEjMDR4QkkyR0ZQMQp6cE1JU0IoJFYqWlZ9RkpjSyEtQXBydlgzISZLTnU7YVQ1NCgwaUZ1fGoj
ODQtVlN0IX08ZmdUY3RkI2VWLWwxS2oKendTT21fLU1AcCo/QTx9aStqcjhAXn1BQF9pcnV2RGVh
eTxldn5TZ1orUHw3LUEwMWU7azlJSExOODErZnJ3I009CnopNWlKeFkxNHVPdzBZcUhUei1IS3R+
KkY0d2pRTEQrWVpwXz9mZEVVaih3IUVZZEAqJkkhSV5zOTN1VEEyZ3Y7Tgp6ZXpISGFrS0E8K2tp
WVJFM2JRKGJ7eWVaJVY4NXpEKn5mR2NleGskRmxZKn1jbk9AU0AxI2sjWkd8V011czYmeHoKelNS
YH0kPGtsV2JmcFVNQistSm9NOWRHZjAoUEN6Kkl8QipwaDwje0VmUylkV0tOYjZLcGQzYG9Cd0Vk
LTVQaWY8CnpwbEkxeVJLe0BXQD1KKDZjIWk+e3Y2cEszMjR5P0VNYThiT3NtZ21rKWR3dTFtWE1f
WU9ZYylCZksrJHZNKFBENAp6KWc4Qil4JldkJkJHKjluZCFLM214Sm9fMVZFTWQ8NGI4UmE9LVVv
bzg+Q0FaJjlBXmJlalQxZC1zLSUyOSZoRmgKenFJa25vJGF4YFBxTkZuN2I2Nk17I01qQFF4UTgw
VSlfcTsrdipmRk09aD5nOVRFMk5kKjY4KUNBPTxBRGApYlo7CnpjR0grJDxmaXAqY0RVb04oJHJ3
cGhPIWoxdUNgSyMoVjw0SyttfTIyS2YyTnpeY2dfWVNDSDwkeGpxbV4qWlZfZAp6IT42VEBTZzB2
QmlXdz12Tzh3fF4tY0pwbjBIUV99UV83I0BoazZgOUZeSisxd0NLJGYheXhNSld5Rj9URXtDTDcK
ekAlN3krbTAjVnRUPjFJIU9YVk5reEtNZkAral5IN05ZI31ebWdsR1kjWTZ8Iypfcyl1b0lISk9f
b2Y1ZSpEaEdUCnphTiZ6Y0ZOZVlXaDV3TG0+cGRkdDtsc05lTUIlK201ayZuSloqOS0tYHVzY2Eo
fC1zNEZHbF43QVBOOSM0UHlHWQp6dHl9KSR1Qnt2OT4hPSp2a3M5bDZSYStYTCsxSGxVY1dKMlgz
UnRJKUtLTz9MUCs5bi0jdl4kS3FffjE8dT81VUwKejNFK2dQaTlyQ1QwcDdHcjVOMmBWY1M2MlhL
a31WV0NNeF8rdHJZLUlHUEMkMm9+UTIocHF5YkdtdjdyYXdpNmpvCnptUTxjPE01UEhAMDhoJU9X
a0lxeXs3JkA8SSY2c3NeQXhgd0w1SnwoZkwtOH1ZeXFBaXVaZClGTk4oSXFfVVhOZwp6NjclI0tp
aHd6ZUtybGBtaHpac1MoRjlWcTZDXnZfPTlCdkAqJHR4eWtHSmdWdV8wQVBIflB8UHlmdU9AKU9i
O1UKemZobzEyKX0kX2NDcnNpZiN8MlhuWSVtTWtUI2BaREAoNVMwYU55O2k7QkVSN2BzaUs7Nk5U
UDNIQXE2SlIqNWl3CnprQ0doTUxkTSNMdVZYKH1AMENQWVdNN1ZzJFkkYSNJKTNBcU93Izx1JitI
MWA/Qk52fWY9XzVqdXUxR2dWdWxGLQp6ZzI3VlNGQFRDQSFaNihvPjh9PDVwZDY8MkIwcllQNHBF
LVpHME8yaU5kKkRPJGNvVEpwciMlKkNMMitHdk1KUmkKem5OdlppRn56dihrY1d7NSo9ZWVnblRq
Z3U5I2JacjwyV2oqaz17dmwobWJqYHN7MXJaWH4kVlF4bDVCeT9iUlhXCnplUmB5TkslWjAoPlhH
XihlTnhgNVBiWVRoKThXbjE5TjhqYChvUXs2IUVNZVEjVD9QYVhwX2J2UDBVJStJQ3pINgp6OTVf
UnxDcDVASk1VNT1hc0YyTkI2fHo2OE9pbyhMPFlqUHpnM1hSbTZ1P3h4e1NnIXlHZ0VlcXZiflF9
cDY+fU4KejNePDhpSzRxJG9RbHJLPTRTWVliQCg7PGM3aVI3TEVFdSp+I3VUUF8tV0hWMGVKdDxz
X2Y/VnVocDxzTmtkMVZCCnorPW9GNypVWiRoPXt5S3NlVFlGd2FSOVN1eChII1ZVPjl7fkxZalJJ
K2pfNTNGdylOPlNrXk9wOW1VME9RbSo0SAp6RHNnfENzPVhJYkwlPFNoNHB7fnV3SGkjK2RnX2VF
TTZESHxzeEBve2ZZIVNKVDw7Si01NFFXM1FIOT9zdSZMPGcKeiEtN0Q2SzdKMyU5ZllpUnR1djBV
QlVrSk9EcV5ATTx+a35vdUMpWFNJZ2JON01jXmh0UjdkPXRaKHVDe3JxWXsxCnopVnhwOXQ+M3lJ
Wn5YZD1hRHo5YDJrNmV+M05Udkk2NmR6OUNwVFBhcSRYWU9hen1+dnQmcytnazFsb2tkfnZ6awp6
fEVudUtmIXwjMzUwTD5VS0ZVdSYzeElsN0lkNGtKZCU3UiQ5fHU0UUhmam4pZnN2fkdgWmgtJVRy
VTZnYG5scUoKenFrWHhUYGRkPV9UNTk3ZUVBenQ+KGk2UGc7PT4mRCFvMUI3SjZtWTNGKzZpfSE1
UVRQdVd3cXA9PVlwQyRPfXM+Cno+al8yKjNHJUZmQFB+Sz5aeGswb0U2UkckeEFsSHtKbjtNKHpV
T3p+a3lMWDI2dWBBRUQ7RipMe2chbnItYyhhTQp6dl5GLXhTLSZoVkJEUz9RclI3M2ooSV9fVjkp
NTdNbkkycWtwdTFOJUx7cWtYX3IlUytERzUqN3g+Sjx4cXxMaXEKemxOKXltVFgmcE1xT2ZgUWxM
VGY/JTY0ZjJKWTY0MzUjWkBFWmB6QDVMaD9JPk5vTWduRmkqbm9Cbk1CRFZPJDxsCnpwY3M8Kk1D
dEJaPlJDQUJzWEE5QytvZUxiT1ZGZkopVXM1N2Z2QXF5Qzc3cHs9KmByYnVtPz1VVmV1eCY2JlJO
cgp6Sk8lU344PS1gfUNISH5vdm0yOSZmTUUjZDk0OFRzRGVKS05RaDEjbiEwUUJ+SUN0M0hsX2F8
bDBKXndwPElZRnsKei1uM0hpTWl2T0tsUCZ5NlQxZGheM1NaQ2BOPU5aLWw9JVhAcTBTLX4pbU1k
Rlg5MCRaU3RwWU40NUQ2eVQ9ejF6Cno+U25ATXZrKTYhQDUyd1luVG1xSXJiSHtqJGMjNVZnaEtM
RzdIXklYVT01JHlrUmY2QVdgXm19ayklMEVtWVphbAp6a1o7dylZeDQxWHMzbUYjUmlqVUAmfVM+
OUo4entKPitLWTF3M0VEYV9rdllBMW9gWVpgST8tZUkxZDEoNyswIUgKel5gbn1zNU5nUGFxPU5W
JGl1NzxKTT8tNn0pVXFWZ3Z6QkN9WmJoYj13cSY3ZVBxeE82V1RvI3lYNDxZfmJqRj1iCnpHKEV7
JipOM2JQe2N2M1gqX2o1QXFqP31zMmpYXnRXVHE4SnJkazBRZjg1cmUleW9ScCghaUgmakQ1JmJw
WU98JAp6O1g7TlFQTmM3RFByOWRWJHh6KUkmdTJqditOTlpwWmJYS3NeLTFyOTRqRyZ7THE8eGZX
UDApeFMqUiRIanJzfDQKeklEM01ld1UyfFQhcTtTVWY8aTQlUW9QZUMlSmUqaXgpLUZDTTs/Ulpj
Tjd2T3Z2NFFpb3IydVFLcWA7cDZzOTU/CnpxJnpBMVFsVWwkKlowRnstVW9UR1RsbTZgUSt3aE87
WUYobS1IcVBCP0ZpX149QU8rR199Z1h5SmlQKE5AaXB9Qwp6eSRxayFVbnR6KkhBKm0+S15lOSlz
bGFJdFJkfiphJCRTd3QxLShiQDtWWTtrVmlrMnAwISY0KDFxLXpqRVkmaDwKejQ4JXNDS0xDe1g2
MHpNXj1DXyhFZ1NTdl4jNkVObjAjcH1aVlc4VExFO1IreFJzM0YwMDY9bHNIR2U/MykrejxICnpH
OEBYKEpOQHZwYjtSeFlyWklIPUg8aUIyejk/e2NgOyQhRG5HZlU0WFdrQXNvXj5fQ2U4SHR1an02
eX5CTXdjfQp6cilre3BFSGUzTXNNaEs4YjFtTHFrOUdLZWVZcT4obzIkTFNiZ2hwa005ZFR1aDFk
bVZxMiUpejh9KTUrOV9LP1QKelc8LTVnKnJyck97T3hedCp3N09wbzY9XzlnY3c9Sz02NDJjQkht
eVdqR21hTTJXO052bmluem5jVVExYShqWl97CnpIZEFzUUdmX057XlJUVH57eHR5OW1sST1VcElw
MDhkfmJaSDtRSU4jKz4hcCklO3dJenFAdyFMPTsockVmOUlHJAp6ZHU9Wn1nOTg9QCVCeXk3VFEm
MiZfWkl5NUpzOGI3S1QwMEwkeEJTJVFWSGBNTlBXKllfVUFZTUBBKGMpJVleI2IKenw1eSQpYENg
em1FMCg8ZF42fHNfbVcyQSpzT0Z7dzFsRT9zUnR8VU40TmhGRHgmUHJtNDFqdWlRTHg8aUJuTUIt
CnpLMyhvaHBmTHRkTkskNi0pUWZ5NGp3b25EQkAzSXk4JXlRRE5lLVQqb1RuY0twcVBEZk1BajJK
P1R7e0JsND1Vcwp6UEtRY2tQRWk/PiNqOFRNUUdNNyhZS0NtcjBaRjhmbko0JlBNJDY2Y2k1JWJ3
Vz9QWioxbUBeTmJkUDw0JXFHcm0KelYlYmpXdmluTDMjc3ZFJFJqfmoocF5BbEJyd19TYDFxSHl1
P31USj4tbTwmZDRiSzt7b2QlMW9NNDRgN0BPSHteCnpUUFlJNjFHTHtESCZsZSFEPFA1cWEtSCEz
JGFVemVXMncmUWZDUWVMbCkwQn5BIVZWcnRwPjNNUDRPb1ljQnpBSAp6SXR3QXlqb14pc3g2Rm5p
RHsrZVRwaCZwSiMrbiQ4MkVheXxqQiUyVC0lM0s3PnJGazFPclhQSG9XTmozQDFVbHoKek87cUst
aiZrdWxAaXdhfCZ8blFZc2NqXnFCVXxiMG8/V0R9XjhuPHRWXz1rWSRsYnp+a3xTY01DP2t1aTNK
YTtaCnpzKjtLX15DYD9YOXNtY1JON3Q5a14jalBsMEQjQ1dqOWwhWiRqM2Q3eXhrSlgoPmFPVTlh
Nn5LQzd0fWR2TUFVdQp6bSU7K2BESSZPbHFRaTxQR1BzRHMwfTNnYHd+JklvM248N2Rqey1iJERa
biRFMD0lOyp6JFgpcmxTPU42TiN0WjUKemhzVGQxT1QjY1MpZD9iVkolNiQ9XnU+NlJ6UGRBTTlK
OGE3ZG9BaGM0a0ozYU1UWlYtSSFsSyh0ST82SSUzISVwCnooV3paME5wKzdCWCZxRjhebW0rYHdU
QEd1PX19NjZoYnp5VWVeO2JwPGFWJWZKKmk7bjtDbVdHZEdrO3slWTBKTwp6YDNURlNAPm1BM21C
PkpnaGg8VmByISsrcGRLY3VxUj4qdFJrZDhUO0JHRzA2aWs9Wm0wb0t0MHo/cng4eXBiYW4KenRi
Pmp7PEpUJDhAPVlvTDgmdzgycz5XdmxIM3UhQiozZX1EUTdmb0JXLVVNejRDZkltMGohbyZMKlRu
JnFwdUt+CnplZmlHd0RhVXlNPHYxOyZhK0UxSSNVRz5JOUMpS0Q5TyFhJGtWcT1PMGV7clo5QE0z
PHZBaVhLI3MhRnlSbGgqSwp6P1A1N0U5ODhxWWxDUUJYXyQ3P3hVbkUkfWBaVSZSe3dHO3B0M1J1
ViohQExRYGwmRDUzLXJHM3RGcnJNcSFGSH4KelImVG8wPX0rVWAwQlhIS0c3dUg0eihSYyZmY2lF
JEBCZHI/cjZ9amcqKGtfKUBXRy1pZFlzdikkfWpKWFNBVHtOCnokeyQ9aVVwakdWdTt9dHxkdUNn
R05tTzEmdFk+SjF1ZUY3PHdlflRrZ0Y5RGpVQjdEWHJsbV8/O0BsYFVuNm8jRQp6SH07LVQzOFI9
Ql48M0tmQDQqRG1wWEdhZTJPYX1aPihPU3VYdlUwUiUlNEMxazROX0puKE9Pb2VsJDdTKTNyRHwK
ekdgRnVjditLcmE8KCZ1RDhvcyVBd2VGantSfX1KfXt3XjcpcnZXSUxWSF9LR1M2UX59WFR4e2Al
O0s+JDBgTjRACnolLXxfbDAjOXJmaGlvXnNYe1FMRHpBdTEhUkpJZW5jMCNyQHE+Xn1+aV5vOD1p
JExPYipmeiohbi1DTVExPms4TAp6SypXSmI9ODNAKnIjSWdvMkotfnc9dEQ0MXBGWCVPRjs3U3Ft
JHZNOSE7V1A7MjJVVCs9YnpreFFUI2R6Zkc+aHwKejhscn4/Iz1MKFNvME8zM1pYdT1vM0ptaCtz
QCRrSSZsbndTcih2PypmbE1iPGdPfnc0QSkzSE5nezhTYUwkWjRqCnpUWGlwaGVma3F3cExodWRA
bUVse0c3QkpQQXdebFBwZSVSOTVyRHlIZ0lUI040UTA3R0ZvUEdPTWd7QldsVypZNgp6RSYoaHRY
ZDI4b0NRYDBCSi10NjIxQlJeXiNrUVNeMlQ/d31BSlFldj0wU1ZHRy0zMTJlSyh+ej94MSs5RXMm
VkQKelBAdiY5XjM+VHVqJVc5Zmg0TFk9SHohRXpzNEFVM3RPYmU5a2p5bGxEOE16NnZYYit1dlok
SnhZTVFDTHdUbylYCno4ITApcWtpMS15JGtpYyUreUhQcW9SUl5ZKGdCalBDXjlzY0IxN15pOTYl
ezc1SWB4VWdrbURmREl1bmtsSCNpPAp6QzgzKHFsNH5lNnAkM21yTHk2SGZsbl8tLUBzWDdqODst
JGtWPExHPERJJkNwTElWcFomP2xGQ0orakVsSWkxYGIKemxKUl9yYz5afHVhKlpXTj5qPChrMz9Y
QzkwTWIrVUNNeygqSSh5UUkmTU1pYDg2XyheZCVfZHwlU2d6RVhBYkwtCno/KHdyXmEkMTlJSEkl
X2hETiYldzVzST5nOFF0Kl4lOU17bD5OYCRsQSpUXk9zdCYpfDhPVVUpaFJLa15Id1V3TQp6dnlX
TG5EZHZJdT81M25Ye0h6M3NsQiM0e1FPOHBxal8qREVRUnl4I0M8YUA1Sz9kYHxMZTlxVCM5Sl8h
emZQaDAKenVUZUNJYUdKZCMqci1EMXhtNHgjNCVQV0RxVVBZRzA4Wn5pKT8tRiR4ajVZbnpaNWY3
JXZjcT4mWmopKmRHSil0CnpxZTc0T3NWcmElS3BTJGIoI30kVWt0TDFSZDRpNGRoWXQjfThyYX5n
VjQ8IXdjX1ZEbzF1NlN4MHUoYUg/bzI9KQp6VElrd3U1VnJZRWYhbCh3a3p3XiFsSWAzdHYpJGhO
c3hWLX4qWDVDV3pvfTFBey15KUpoa2NiY0crZ2Z0NUN2YVYKejJaQjRoMF9hSylAfkxEJU58TiU+
PT83b2IoLXxtNTBRSTw+Q294YkBWeGdXP193eDZ+S3cpWDtCQ304dTZRIyZOCnpKcWJYO1NQdC0x
ZmQhKDlaK0hOcHpQYiU+KVVDMWQ1M2lwcXkqRDxIZjNkJE1xcklVYnVDelFhRUgpPl8mblkzeQp6
QHI9S18qI1R6QC04SV4kNTUwWUEtfVlDeHR6RypeXzszR0gmUGQ2RDZ5Q0BGbXV5PilmZk5zZXNP
TGNIZCVWRnYKenp2KWw9OWU1TiNBPjw2NzJMMmEqbmc5Syp4OEN+b2Z0e09RY2VYWCQ5VDh3Pm5V
Jjt8Knd2OE1ib0VAPiZITDlICnprcXVJZEtiamkrKE1USjN3PVF2THJXQmxjYHg1QEJXYj5ySk9u
S2trVzFEeFFhX0xTVW9HRjxlQ29iZW9qP3tBfQp6JkJTQGB4Pk19Q2xYOyVkYVdeNUc+N0ZPMSFR
fnJ3WSMxTDBjKUVtN3hudWEwSkpKP097ZiVLVGlfNGZOZy15RkEKenV1bHlvM09QP1EhfXllQkhf
YlR5VTl3JHs0T1F+QzlifilHZ3RKcjwxJUZFZjRDNyV0czgpMjYhR3d6aFhvLTFKCno2U0NjU3Fu
RyRKRjJFQ0hJe317VlVqKn1YMmVLVz9mSkwlNldJRn49eWsqQ0pDazlVc3VEfmRNOSFCdjJgcnZ2
ZQp6LU1gWEljYVh6IzZXTEJ6NU1EVDNXPHphdzxFbno2REEjS3ZxP0BHX3E+dGo+dm9NT1F5aDdI
ZlM3RmQoM1pJaVAKejckPThRRk5AZk1OYU5YSjgheUxlRTB1O0dwfUg3SUxDTDRZPGA7VyUyNl55
P0p0JCVZYyQxN2I8flU+JDM+NG57CnoxXn1TPzBpZjZ2LTs9eF9BJm1mRU5MOC1+ZkdxZGxPdTNL
Jjw4MSshakpIOVcrbTNDeG8hRUhXMS01QX44SiMjbgp6TWtofl9rK00xJnNwPiQ2R2JRNlF3dmZf
WEFmeCReSkpfVzdASHtGbFhyU2kwWnRDZTZxO3JGIylYX1JYTWZyXnMKejN4RT58ZkQ7KjczYFZJ
Sz1nVE41d3R+YDxzd2dlN25vPCZMMEc0V1R6SyR8ZDh6PylZayNlI2NES0QjdUBeaE1UCnpZXkww
ZFgzOT9FWGAteXVNI0BaU3E+UGpYYXJeWXRkUCteSSNiVz91I1oqeVRSMyppUG1zMzxJMUZ+WEBr
MUNAMAp6bV9qXiU5KU1kOGAyJTJpeVFZeWx6P2BjP0pVUUQkayVMdGoqK01jaikkdC1kUlR0NyF2
WnU0aEUjYSMmQ2U2ZFQKenE7dkVQZlRKPipvO21AITU2bCMjSnxEPEA1akgwJiRATWhsYFQ+eEti
NWMyYTArQ3dZJWtjOz5rI205WkZzR31GCnpiYVImYXF+WGhXMkMmYDl6QUUwQllsMjZMKntHc2A/
VEJkREt1TERYRGJpRXwqOGJYKEtaPCt6QV8xZ1ExUkZKKgp6JH5AKSlDQHB8PSQ3fmQyeXxETUY2
Q2tRQlkjQyZ9ck5UMis+QWpHTyt+IWZQISg3VUNTfTJPOUdoSjY8NkxGVSkKelF0ayNEI2p6T3w+
JUVYYTdBRXF8dUNAaz4+TDk4MU1GTFUlQFdwaV55dDVJV3NCKWlXLXlsaS1uKypIODAwQlklCnp6
RigmfkY4bjZsPC1LcFJ6MURxRzF8WiZtdWZMLX1wWmVnWDhma0UpM3QqejtBWm0oPGRWLXQ+cXhw
QD1uUWt0Wgp6PFVBP2Y7UEolciRMbjZDcHZgQkFIPCViZk8xWFRfTz1VI01yOTJfJGViMFFURE1S
X3c7dGRgKGwjNmk5Tmd5PzQKekQzQD5OTnVEVHhDPUJGMDBpcG4pelBkZUwxdHpLanZSKVp2ejJZ
bjlkLUZ5SEk8bEtPWWcyUlUlVlEoKkdYZm8+CnpMbWJjODdeJntrUTlIOHk9PkE9Xl95ZkJ6bnF5
bSEzISFIcktUMG1eJC1ESjlmT0Y1REo/eEVvek9ERHU7KTNVbwp6eyoyIyYje2lWPG0tU3o5e0tk
OXk+dDNgblJeUkNEVngkKXo9XldCcG9taDJ3eGFgV2tZeE9WPik8Rk5Se3MjcTYKelNlM0BRQGIl
JGp4JitWRFhyfjA4STlhPzQ7SGotclcpPzV3V2JyQjRaWmFmdWFAJFRadUhhYiFsdVdpbSZRb1Fr
CnpDNiVUP3d1eyVIO148UlU1KD41QFdHbUhTPCt9OyUtQEZSbTNzQXZma2xZYkEtc2wwQEUqOVZe
VWprMVBlRz5Cbwp6QGJ0Qmk/S29BT1dqayEhcTJLTiswaU11aGhnNU02KGAydkgwfkVVNk08dlQk
Z2sjPUJ4JHJtPSVnLVpHb0dVQGYKemdMYTVPJXhGe0l1JHV2cF5iI19pe3RWI3NmKFhDbHt5TExg
ZTxzdHpGT3clS0wxTjl7clVMZ1JSRV5pJWw2YURPCnprPjUwc3I7RFUpWT0qSF4yWm0jYUtAeW15
MFM9PGY7R2p4b291cVBGVylKI2doSHlAPE0mZE4mTl9iKnxIYypsMAp6OG9aV082bTduV0poYXg2
c25SQW92dWBeb1pRVm9yKkJxcE1ZZnNTOD9QdXVwMFJ1MktSLX5gdE9zNHVpV01kV3oKejsxTDZj
Q3pabTMzTW82aWYkRlJLMGlIJV9XTjRobUZXc2J9ZnBLYzZBRWV5dVI/MTJUQEpSOyUhc0tTUTAy
SC1RCnpLfjVfYjxucHYoK05tKEZvcigpT3NJO2hxJTFTekB5cmglTE9GTUJJUWA4QjdDUVY2eDJO
aCRBV0spUF4wcSlDPgp6bGJfUnUkOE0jWiV2UT9nPUslbUsleHxXbSFlKDVAdWMzKzMwbFpRSCl7
KzYqNjYyflVJLS09cXo9UT5PWEZ5c14KekJ5KzxrKG9xajBidE8rYWRCQk58P3l7bzgrYWRYRil1
T3smKWskZlczYVJjdE5xV2FtbDh3ZW1WTXZkI1JpYm5jCnpCXmJ8N1FiWCkxTlY5QT4yTzktPloh
bmktSjstfDs4TnElakhsMUA/eH4kNCgxWFZVSDBTKkNsXm0wS296KkotRwp6VlZMIXwwekByQ1Aw
d3RBPW8jYj1ZMWRpIyYhUVM4NjVjM20jUi1GWG5hNW5KX24hfkl3MWA/bS1XMzNmciMqfmsKejhM
bkdRPHpTLU5MelJ2JHpJWV57TjFEdXtSRU1SNF57Unk9Kl9uYVloMUA5cUohSmB4eEFIajVsPyNY
a2h7QWA4Cno1JlcoVmZYKGNSLV5vbEFsXzlHdCpLc2IybEhhQzhZbUQ3dSUwPjI3MXA7V0J6PjBS
REpGeT5Xe1VjNHRuUE5FKQp6T2NZR3pQbll3KTYrbFVCbHN2SX5JKjU4MjZaUThDcGcxRkgkYEFF
ajAxQlhxZnMrYENqU19NbXJzYGBSeWd6KC0Kem5gT1ByUlVjbkZVcF9JYFV3OTc3Tk5vK311e3Fn
RXpQX0gwaFdiezlTZ2xZIXltSTV9KW8oMGJ5IWNQYyhYQlRkCnotbHpwS1N4KyVMTnxYfT1NQiUr
e0kqNUE0eDRZKnpkO1Q1eGFsWnFLPURmKlQ3WUB7OVUzJH18bUFeTUxRaERGVwp6UiREbmR6e2I3
NEpPLVI+QHd3WlZZQ2lfXl5mXkcoUzloO3E/UzE/b2hrO2BEPV5BMVJ0fEJDSjlOVHVJYV4/eCgK
enNpekwkc21kUSlie3RiNmZ1fG59S3ErP0hSVTsmbXg5eDslN2t3SUBDeGpkVmh9NDg0RCtpU3M/
Sj04Q20kNnMpCnpRQDlsT2E9bnxfTlNjIUUmfSM9VCgtJDA3QVk/bV5EdThxK20rakRWJEgwbWMk
VW5YZDxfUyNJMUYla2FGSTNSUAp6VUBsJGpOfSUmSy1xZjNLZitgbHw0K1pYa1FHN1hhZk15SHUj
TkJuNE1fJi1SUENPI2QyXzdmNkdZSEpvVFMjJSUKeiVUUWRxMV90LTdzRkZjI00+LTdPa2JqMTlu
WjtuRUdFQl9PSGY1ZD16LWQ0WE9MUnZkTjVUeHdvK2lrMm9De1BOCnp3dWozNmNPck9sSktqOUVQ
PmtoZjNOaEpDZSk/ZFlHPFQ5VUdMO05aOXdWKHxEditfeCgmXyNCcTtrbGR2YCN5YQp6ayhMKShu
Rk51ZU8oYzBaQ3k9amE4VV5gZ0x3WUx8a3tiaH1uI3crRVojaG9gZVY2RnM9bldkXnpmQVNEMH0y
Mk4KejAwczxfMWZzdyFXdyVnMTQ/cXUoOTYqJjcxMl9ycilJfTkjVUUpfCkreSE3SU8tVWdAKVp9
emdhVXJJRnI8MDAhCnpAO21XWjQ1flZDSXxnRE1SOGJDS1J0JTdxLTtVPk0yZzQtK3RWe3JedzNJ
cVpOP18peWwhRTtXQW9wZUE+cjVkVgp6KD5PQkkzbnpvS2Z1eTc2Tm9QK3YwYVYkTGBZfCg3S1dh
I3QkOF5jeXEheVc7Und1aSZzXm4jO09rdmlpRFp2SEMKemIwMXxZMn5rQiZqeWptN0d1WG5AIzVO
dXp2K1QyQTNEMDZma0NgYW1oe1Bab1ZGWCltQlBkaUpMVHlmODdIfEJXCnpNKDhJJTZmJmdKVC1N
PENVQDFrUVljQncwKExwZXBodj5iNU99KkRxMlpNclF5T35IYXBGQD1aTiVqNTwxJkNAMwp6TWRT
aDRzMUVwe251RmheVEhsMk5MfipgVURzcmFjJXd8JXVeKmZYZkhZKDNeb25TPVVRbyYjcm4kcjBT
SkF9RXEKejE1RWh8NTgmbGBTR29pc2JPOWw8NEUqfWlqdnw/VjJtMVRLVnRGbTVKZVBNVSZHdjBk
d3coYFZZZFBpblpLUUgrCnpnNFNjMXAjdk1CZU8wIVFeSVQrfUNfSEFqVCtXaz48I0pRYDYjTWtf
YyFNVmNDPEtLKlFPXjUmV310b34wQ2wrJQp6VFk2UHNxcnsqO3dmNCl+N3BwKEtjRGAoNFlAcCFj
MDY8aHJid1lrZ1BIMDN7dmFmeDdnc1g7Xm9CMil+MyFOMygKejhpKEhBekpBNWElTkgjODFJdjJ5
TTAwdDU2bzBfU1RqMkM8ejJ+eXRrQmJZUUtpYz5GNHYxfCRNKSZlbWE/cSomCnotPG1heHw0WmxX
dXw/KkZzdDVmJSVxJU1sQlU2VUViOS0tJlJeN1hHdkZoVm5tdXRSY0FDeDVISipvRkBgc1VyIQp6
MHlDdiVATmVJfGdKajNEOVJsSmU9UkNHZENUQStMOzNuanxDJm1AWCFaTFo9aj18RnlOXnltM0N6
dlBCY25XfnUKeiRycFluUDhYTjRQbXR9VFo5NF9PKF9+Mkl2Iz9INU5NP1AzcWIjYng4VlRkM0JD
NFBgPkoqaEM4PnUzNjJpMmdzCnp3R2tCPD9kVGloOyNPWVc9UWp1NUtEeW8+MGsyWSlOQyUoSGQx
QXgzZUFgWno/ZXo1KnNBT1RvXyRQTnwlb0JzQgp6SzYtZXltRl4paWVxdGJ0RStkd0t5VTk4O2I+
V2phajVqTDg2V0cyQnF3cmpHcXJIWkIwIVZmTU93Mm01PWdBZ2MKekNueDFzJHpOfEN3JXR9PnRz
WmgrJj5vUiYtSlF4fGs2QENSUTQrRW9oZ2t3TnVfK3dqTnp8YUE/bkxyQjBYI3ZmCno+cjh8aEpa
M2sqKkc/KystM0hWN0NXXlAtMnBgcEVuOENNQHh6WXxZUVFBdn1rbXdBUVBMWkxDQ0s7KzNWSSQ2
bAp6ajNMak5APHlESSM1RFExckJJTXhIaWRgZSFFO25oMzkpNkUzZ0p+c1BwJVZTaChTKCQlPlo/
X3BRbi1HRTdhWEoKek80Ul5XKiNKdy1gbEtmfUsmSW0oPFRzWSMxZWpfOVRodjBpMDVsQXVte25v
YCNqSTAjaTN+ajlDOz16ZzA0JFhWCnp6JStINDA4eHF+MTVeQjFsPmxLP21IYiM+dXlDRyU3Nllr
KkpPRFNhUj1JZlhJZ2tzcCgmX34oI1MmbS1YdTByWgp6MV5NUVlBMCQ2ZD1WV3JXalVnTkpQK15H
SVJkYT1CJUFQY2lTZGh2LTE1KD9zTWNSbURGZ20zfHdyNVYwbShlTSgKelFZUl9ae1dLSz5zJCRE
aDFNSHkmcTl4NyhBaSt9dlIlKXRhUEBYUihuYX4rcjRGVnV7Sz9aRDJKY2F1bkx4VEdiCnolNWgo
WGMjSFh7QHxnbj1eKE58SWtZPXYpSXo9MTVMOChZRiZ4NTJfNG9SO3VVP0heeEY5Qz5SSGZvdVdf
ODNJZgp6MllgdSFaenxWJDR5Qj5ZSUxVR0AjYXFteUk3P25nU09zUXU4IzI1QXkwZWdkUmM0OEJP
Kml+YTA3eH5zJVFvfEAKekx8USM+Ym9SaE0qQlpTUUVhcG1wczNueCtJQTFWUD0/KTlBdEAkM31F
IUdQVilzVShSQ1E5LXxqV29LXlNpMjk1Cno8cVY8fW5XKDMyPVJ3Qm5tKHQyN15QeENvUSNSaSU9
bHhqbTJEMHU+WX48Ykt0LVEmTnlzNTZkJE5UYSlUPVVyagp6SHN5WShESCg0bjglbXhKSDVzPGFu
fFVuZE8pXm5jVjVUWXNoezZaI3VXeVo0ZVNaNjU8JWMpTkQoX3d5REh8VWYKekVhKUhWJFo3NnFO
WEBQKWp0RVhvXnRLQX53Xk9tVklKPDVDdThqLVZ1VXQ5Zi1GZnB+MEJ7b0NzTDk5IUVJRn53CnpM
fHpIPUpjUlJtelNCUnlgQV95OG07X00jJWdIT0hZdTdJTmgwMk0mdiRacjFaRlJCTCg8I1hianpC
N1QlbEpzPwp6JkZmPG81QWpGdyNsNVNqYH5WQn1qez1+c0ErQTgkd3VfXjRGcFQjJSFTbHEtbGFU
RXNARlo+OVZGWTtrYVI1e3UKekxOY3FlWklDYy1NeTFGbUR2NEk2Ozs7a0FGeHJaaHtQanB7VVYj
ZFgpdV9oVUUhT3dCfEx0PEVHciZfZy05fTNECnp5XkI/ZERuTGprSldvPGM9RXQmYUoxSHBoPm5+
QnVmXmZfKUs4MC1lIThROGk/Z2l2Ul8wWXJkWDd0JXIhfUM7Mwp6O35tbDFhJmk9I1JARiRPJlVS
ZV5BSmFeRFMtPnZBPnR1QmRqMXptRSZ8X3pXTypgdmpGQ24oekhIMlk4VnpGNkgKemc8dXxkeU49
NiFuWUd9fUleTik3JkBfO2F7PHBNKVY0M3p+eEhrXjZvb3VfVkEwZH4kc0dWVnt0fEA5YXp+V1hh
CnpAPHokNntkeVJ9KkM0NVVFdDAlOUJXUTk1OW8+OUBqX28pfSQ5SUVtSSVHYFJEKXdYbzUwRE1F
PGVjcWJ5bW1fbQp6ZkdEOElGbkVeV0ZHXj5CUWx7aWYlRmhNcCQlWjVjYUZpcTFCdVI+XjA5KH1E
Rmk1PzxXN082JTA/XlY7OEVGbWgKekluQGNEUSp1MGVtMmV2OFE8TGZpdW82SGoxOUJUNGdJT3FN
bXNxa1pRdmdzVTA4bzx2TmR9JUkwTSRKO01Lfj1WCnoyM3hvZnpuPCFmWm1PO0JyWWFtTyVEVkJt
LTJoVTJKKHcpbkZ0QjJfaVVBelVpRnclb1IkJGZtWXMtWWtEbWZtZQp6YnBYZDh8NktUe2xGN20t
aW5MViZOJV5vRnEmLXtPeVRPREdZfVRWZ1RrKlp6cWVBKmhyXnl4KDR9UWk8NnpjJHcKemwmPm40
aHBXU0xiT3MoY0UkWWVFMjhoeERoe0REc3ZyaG17OUJ3TGR5MTFYT1NXalo0QW5PZmN4Rik3OWF3
aXBnCnp6WW5Ib2s/X3MmSGxfIVg+RGUwPGYkJlo0KVhOOG1zYGoybzRQY15MZil8NTxWaXQtd15e
aEhmQkx7TXBkQkljOwp6Q012fnA3RmV0cSFsV0shSGl0Myplb0RQcEI0UG8zZHlvPihWKy0jaDxV
N3RseVc5dylJWmxzTlNjcEtAS2BiY3IKenJXfUJlWlpwKmV1QXBNSzF1JmA0cmN+Unhsd2tFWENF
MF9TXjRTUEU/O3RmSWtGMkI2bTxGbUg9dj1kPjA4dDNxCnpsJHB4RUUjQlorMG8wP09zM3wkYHA4
IUNpZmRVTWFuN2RGWFdHViVnaiMjbSV7cW9NMG5vbDleSj4oREtXQnRWPQp6VTUlLT1yTVkyZ1k0
TSZPZXhCeDlYVmVhRiRGfDxHLVBeWCFvSW40fktqUXU5SDtXZHtfe0g/ZDB8QkRJTW0tUFYKentL
K3VFXjlUTU8tK0BVMCNWaSM2YTt7IUlAODNAeis1WDFxNk1JK05ucm9jT09aV0Jkczg2Wjcme3VH
MjlHeXQ0Cnpae05SR19qZTRTX3x1dFc4ZlcwZDgrWVVWTmZQdEsramFtP0pAdnNOVTBoXjVPP3NZ
dzkwMWkmPXEjQTB4X2skIQp6Zm9aJVYmNGZ5akZrVFgpTn5JQnAoVFRRPUR1ZFI7R2AkYHJ0bXxO
Ky1WVX0jMzh+eUQyRjRvJCpJNyZxcXlxcHwKejI9bGl7NylLUHJteHZAX3p7SzVsVSVAIWVWMlVx
ZU5zbTJHVDtuM1o2RV5LYHBEVShvSjstLUxFSkpeWjlXYFNzCnp0Mn1yWVd4QnYpZ2VeT3R2IyVt
P25pSXVlNm9IczUrMVp9cFNPVFBvWXROPCN2cWppYFRNMXRaezhAUDg+NGMySwp6Q1VMRl9WZC1S
dTN3SzM8RT1yOVZNND49ZTBJQWYyZl5xNmIqPk90QHE/N1BIUktiamUjfTIlYVpLSDdXP2N7SDsK
emxVJWlTayZQTXtye2wqLXtlVVZZSXZ2dERaVm4qZTI7ayZIYnszKEs9aTxwOVVaN0NLMnQ8YUp6
PGtYbj8+WnJNCnpGLXlkTENJKE9XSVRFLUstWEB0V21rcHpMNWRjdGlNR3JNTTROK31QS0xBTlBI
dDhBd0s7U3Q3Y3VJLWBmV3FuMgp6TTZna35KUmBMVTAxN30xMEJWd2o1PyZ8PFFZXmNISERkTmpr
JTV2a1FSNFZDMDQwSGAzSU1uJnlxPW4+OSZ4TkYKej5rJEEtMCNRPl9oU05MKGZYTj04bkpWXlY2
QHNiQyU/NHxoMkczTXsxdzNDeFZDMXNOJHRuZjA0QUc+ZzdMMDheCnpGTUtiWk4lZzF8U1NiQGtK
THI8MyhpeVQ7UllNZWw4Z2l4N0RCTjAmbEhBbE8kNnBPZzM+czcpZV56OUdePH5RJAp6REgoWDtL
RWVgeF5iO0JZTkVyYUk3eT85fXAkPXE3SEtKNlMzISMlOFIjMiQlVnVZPkVxaFAoNiRkM1hPVyVM
Rm0KelRmUmooa28xWlhVcl9EeTRtQWNYaFFhKEBmRn1TY19AYWNJMlhJdmVJV05heTRsPF9SNmpF
VGNAdFlLSEhrKG9xCnpyQkh4S2cmTUYmP2M1Y0pUQV8zMDA4O3BYRiRNck1SJUhYOUFwND40bihe
Vkk4d19yOTxSK14yVFNtcTEzbjxHMAp6O0teelpKVz14fiF7dlEhRHNIQXk8Z0NARnMjOGFpMnxR
OHViUGkwXiNkYTlmY3s1S2lRQnFGU1JMSkkmO3RnYVEKemN+NH1abyg3O0VFZ2stREthfGB8RX58
TiZ0YSRsNVd9cUdlUHo8Nmw8SkN3cT1mJEkxNnc9cHpjSVJeS0NzKXN4CnotTXJBM0tpdClyKGNE
eS1sdlI9dzV0TnFYWCVRWGJweUtPbnpTQlZhXzxRUTdfUlFKNmQralQpenlBN2ZGfjgmYAp6QyVM
NWUzTzRuPUJaVHZOeWFoaEw+R1NXdjVDMEF6ayRld29UX0VIQVkjd1hPfDh4MkI4VU1PKGB9JnZu
P2JeNysKekx7RGpkUis2VjxRJm9LYVYwK0grPD44Vld3PVkkRkAmRXdwLWN8VVpnb0laaWpSPyhA
JVhmLV9uY1IwKkxLRW5fCnpsZ30tTSZBVy13MHRDS2M+K1QwXi1idTNFcXRlfXRrQFUlcEoxSGJ7
aWgxSXcwJW8yJShRQylkNk40dzdDb0BscQp6YVJuXmZETjEpISlod2RaUENmdW5FWnVRRTMte1lx
Vz58PH47Tm9aJUZpKGZFWVFCUmlQLXteV3Z8OVhRLS0ocCoKemVuPyZYJF5ULXRxYk9BNlVOOX5P
PURhNU1HQk5ZPzwpO3MmVnFoND5yQTw0cVBMUytBfEx9KEpNU1hse0w/bl93Cno3O21JfDdzfX5j
Y018K2dLR2Nvc2x6UX4pNzVWfGQqZXlrNyk3ISFYRVNiZW8wRXxSJiF+SzZFOC1PUUlqbl5zNgp6
VjVZY1R6Vnt9Q0g2OVEkTihjSlhkSig/SndJY20mMkE/I0Q5fDRGdWllYTwoVlNwJTlrUjxJI1Yp
Un1fRzMqM3oKeitKQHJjJjByfXVwYzhLXkledVNjNj8pfiZsI2kwfT1+SEJJYFY4cnZHOW4jPk96
Tnc8QlFHaDRvRkdtNGRaYlpVCnpQITBmNzI+Pz9pbjR1Wn5oSS0xJVYyS1QkQj4qUXlSd2YmbF45
RWQ2YXk/YEBGaTktVVZjNmZxcG95NnRXX01WZwp6T0cmNSlafn1tbTRXQ2EtVml9TFk3bFNZY1Z7
SDVlaHtCT2ctfn13X0YmaVpfaitYK3xsbWdzezBjZV5XYEROblIKekdkWGY1cz1PNHlzaGp+K3VM
Nkw9P1RQYFVXVDEoVTAhJTRCKjVxfH5VU185PytUcEthUSN4PHwpbCpfQEhOYDtZCnozLXYxP0tl
c0ckd0ApU3FiTDNBTTFZa3Fhb3BldGs4c1ZTYFkzJGNTWkgrYypCTl5RVT5GYlYyTEg5RVNEfXtq
MAp6b0IlYmRpOCtIVEN7NjBsKVB9Yz5CfEspTjBIREE/RipDfU44NG9XRWFDUWBMPkBfOHptPkdG
Z3lwZnE/ellAJmkKekl8JHVgSHd0b0luRW8zU1pITlNPdEdCMkNRWFNYOEc+OTQpJHowd0JVc047
WEo7Nmt3QCtBbDUjWXRlVVYkaWBDCnpyYXVFZj5AQUE3MVEwQDtMUnNKejFoYXpDJSpFPmdoI0lY
I0lXWWhiKlMlYVFGJX0tS2VuYHEpMiVjPllVcipLawp6JWFBKkAwRGg/MWx4VF5ed090NkhobUFq
TW8wY0xycCZ7YzhicnFZXlYyd1JwWHo+KUFkRSk/NHlxUEN+Q2BybmoKekA8cXVqVSV+O2RxKjBY
ZkJ0TWpWcDB1NDhPRS1waWtaKjtOY2pZfnJSe2t5VjI5dGV4QH4qc1Q7aEstZ2NfP1RgCno2VHs/
KWp5emRVLWVrcWdxWkBnKiN0UUludl4wfjNhI15mX1ZvI284U0RxeH0hQUxGfU55QGBFSFVwX35G
aX5Lawp6Yztya0otWnZPVGVUaCkhRksmKWllfFltayNqV3ctdmhmUmpCfFpKXkluXkRGc2FYfDhR
Mn1XUS1sbmVoYHAzPFUKelJXfmF1P093Y2E7aGV1TFNUT1Nzb01nXnk2eCZRRGZzfkBHQ21HRzNa
fGVQVUViI29FS2oxcXMzN3tCNnV+QmN7Cnp5eDshSXd6Y3A1YXBSaWhiMkw+Q1pjZDdFSExFVTtO
YlBKJj5sKkRaN3s3aDc+WjZDKD47SH1jbCQwe2dyZzM+bAp6Q2Qrb3JKYXlMdnFuYnNeZDN3WSFK
fUtLaEUkYHtzMGhJN1BGP2QyO0wwTzcxbUJneDNRUD5lQU5DUSpeO3ZlP18KemdiTjAqenl7aGpt
fHpjeXRmWShoR3xpYmU2YTReQiRZflBiMzU/UWIwN3pjfUVIVWRPdX0+YDdAdW5VOFBMUytBCnox
dn5YSUN5UnJyZGNldXpWNGYhV0dpYkVscFNwNjR2RElgSyFIOT9gdXYmfkBPcU4rKkEkdyN5aTdG
UDFAeGQzIwp6MndRZn1zJjchM2t0Q2d6YEVMTWxJdyhxdUlvK0JpbEVHfEYyUzE4PGg1Z2kqeWM8
bEBKXi1vMTA4aXw3a317bioKemRaOWZRO2cwQz1FQkRfLVN4eUB1JEU8QD94RTV1KytlcjhEZXBJ
RUxBb2F0akhhVEhMK1JDPE1hS0A4Tl4rTGZvCnpCX016QDMlO2dlTk9hV3pPWjh3fTtBSlhsMmVA
YmxhS05AMyVVV1FBKnBNeUUqS0U4NzxIUWpIRVdzczFqdVd5Ugp6U1MyMD9RNEVVTSYlfmY4MTkx
YiVhUjUtVVF2ZlAwa3dGTT08Ti1La0ZtU0A9OTMoVGJJaFdRIyp7S3tgZkdzXi0KekNPfWprWntO
WDQ0dUNVIzlzeGElMEhfey1vKnFidXk7TkR3O0hnZz5gODxPczJ8IUphQktRKVFtdz5HVF9eSmVC
CnpSUzV2YkA/U040UkYmb01RWmIrY3U7YlU0M2tFSXw5PGFwZGEpZj42ayp7a0MoJGt+Sk5XJXx4
Ryl7REVuPjhLVQp6VWAlYDA9K2U8bThsLVhIR19zfFJrKD1ITGluTGR6OTZ2UnhqNjkzLVh2bGcx
UTNDKWdMZT93TjEzUVdsSyNJb3oKek9BYmNwV0hkbnV2QFVnfGFtNVRPWFoqRyFqZWE/ejRyVTd3
PCVjPkxVbGJIYHBJI2IzUkZUVlUjMkEyeTNTMkJVCnpAPnRHZUhtV15yRExAb3tAOEZycmIoeyVQ
SVJGQDw2OEx2RFEyNDU1UW1Xa29jJnwzWXlMQWZCWC1NYT1NTEpxIwp6UG5UKlQ8Jnwzcy17M0co
Kkk3MzFQU3tEIVZRWjx9OChvWnVPSkY3fS1lTUwtbloxcDgzfHhra3tmZ001KUNfLUIKekgrdVBt
c2t9fHYld3RwZXg1WFBzeT9IK2JLKmgpYWxtd3p+RHVBZCozV3I1UGBRc18mUS0jQy1OQzFqS2x1
WFdwCnpVbHVHQjd0cTVXUmZ8byUrT09faVk1NHIhKXk3WTZVOTcpJV4/Yz5rT0dDdllKJmw9X3JU
TExEay0+S01LQ1VKagp6N04jbVlfVjNAaWFMYmw7Wj5+ZXQ3PXgmI09QNVgtNmV+c151IThiQFF8
fHtMZmFpRGx0Ryl5MSNqfjBPUTRGOUsKekUmOVglYGArOEh8OTBKcUM5a1FTLW4kfHUhZHw7NUQ8
fjJ5UktyTWo/KWUqSWxeO0J+e2BiZzBOekJ1dlkmVmRvCnpBbHJwZ3VhTkN2Nz44YGYoXlJVa2Fy
WXd0c0NxQ0BiQEBeYGE4KUxscnhhfTUjYzVKOyNCbk51ZHt6b3pRV2RuMAp6Pk8pcFJ5NHdpej5w
X0B3a3VuWjEkQ1lNWkw8fVNXSmVBTWBuN19IYG1qTXotNV98PjU9X0B2aGUtNm5HVTNhYGAKekM7
VSRMTWdnOVhAeDttRTA4Yk1gZEdJQC0lZGdmTztLX3VsQjJPVTBYQnxRKW1xMSNYMS19eXt4Pko5
S1JMM3l8CnpGT3JTWXRKdCFlTDlRQ0pEYT9jb3g5PGJzWko8V0BUUk19RWhgSlMpPklTcGZBUHok
fnZyTzxnXns0Q3VmUCZgPAp6YSRUU0JJSSUkLTJKP3VXc09zMjgqPX0zJE0hSzFUNVBJcE52NGJw
P184YENNSUI2ZHtMeikwaWBzI01yRER5eHsKemNRRE0qdkU9RUpNdUFCNmokKGZrMDhrZFBta1JQ
KTA1Q2NMN0dTKEM/KnhrXm5Za0gyMzl+aUYwfDN9Q0sqfEpyCnojQWF8ZGhWeHt3RmBPcF9la05R
bS00M15iUkZ9LSkzNmwhdURLIUJBM2ppcX07Rz9BQVFQemszUHFfZTg4RE9XZgp6QEhue3VTT3N7
X0FeXjh5MDV+YmUwNis/Q2x6Ymp4cVk0M3hXSyk3ODQrQUE7cChASDRKVzF5blNuKWk8U2psY0wK
ej90fCtYTURndDxAWUV3QCQobC1sQzsrS1N1eHNWYVNne3cyO31fVH4jWGhmQ19AdDBgNkApWihT
RX5kdipBN1JXCnpqMn4maEN2fGQ8OWxUTHk9Oz1lSSlOeXEoUSZrfm5VM0t5fCpQdktPNFJyOG5B
ViYld3NXXkN+UWRyaFF2T0l0aQp6Y05qOCY4aWt4VTNJSHtWUXRKX3heeCZXQiZPQyFueTw+dnVP
bVNGK0JJKDdiZ1A5e2RQMnV7bFE+K09+ZEtgNXkKejJPRF9yZlFmPmZodFNQN2ZGfWwwJXRYfjhM
eUFGRUNnS2ZaVWBGU2hzWCgzQWtiZUZlbUwxLXJSOCRLVWApfGtWCnpMUSE9MzhFb2twM3BWT1A4
TmRgZUF7cGNqV3V2TUZLKXhlKEU3Yj9CcTdzalZseDt0VVFta2hLJStKRT4haj5MUAp6PmlOakdz
PShgUSVFVSRAT3pJK042SEp0M0RwJWFoZHNOUFE0eHB5JFVBfil2ZEshUWRBUFV+N2BtWF8/O0Uk
XlIKejxtU2JpMmlNMXtDUHNVVTJEK092WUhDYTQoaEdDS3s0PGgjTyNeKndse31xe3d3Vn5IelBF
cVptTiQzcS0xTzN0CnpDM0FuckNCP2lvdUU8NmBXbUU2QHclJVVfNXVWQHErcjkmal54YHAhWEgt
OUwtbUN3KVYpNUtSb2okJHlvdj1Xdwp6UXlLQXxlaWVtYldxc2AjMTI7eT8/K1hiSmBabWZYVyNP
NG0tbkBINncmUlVFYEZ2flYtU14rVGxWbSN5S3dhVF8Kejc2ZklFQXQtYUNKc1FrWXhMfUBHd3F3
KHtUKCVRWTF0cyROPnh8Pl9qWE5SVCE4QmVXO3REaldDXzsmZkxpWFl4Cnp7dFc7WkUyJD1BRXBt
QEdoJFE2IXtBMTZiO3ppMGhzJHtzOHt2bCFxSzBAVVJHZiFPcCVXUldpb2RCTnJKUW9JWQp6S3Fp
flRLYml6aipvWl9lJU4ybTk7UitZKCRrMyhBQEZTR3p3Z0tVWE5SaWY9TiR6VXN2T0I+KHIkMGxr
ZGtHPCMKekZPd1RPPjtldG1wOypLZFdQN1lmbilwdDFxYTc5JUQhcEtvcSRtUF9DaXQ5JFN2KHpu
QyFBKnFrS2QjPzFoWHEpCnpGRXZLcyU/T05CejZVQm1BbEMmT1otUUw2bGBLeH1nSXNoSmJ0Rmcl
S1dhZF8lNjRSOz9NP087VkYtXipwcFhEMAp6ZlFKPVE5MmdUZWIrZF9eeS1SdD5XR1hJWD44JXJo
MGI2U3JXP1NSe2lYfVl1RFQhZzAyO2ZHM1dVJDIyOHhObigKejtrK2pYU3BaYU5AbkVUOSFCOWNJ
T0haczlBZDRrQm1kKXlfMkM9bV9neUd8JDA0NGMmajh4bndnTWspcW82QkdlCnp0WEJ+anR4XlYy
aCRzKzFpWTJ7aXF2KGUhaFJueUsyIzZSTU54KHxNSH0hPG1nNE0hbkRUaHlySnlWaylzIXs/fAp6
bD89JDM0UCE5SnVaMkJaYDJPV1gqMzU+eW1rSjtpOWFLeiM5eSNRMG4/aVBtKFVBM21AdzR6Q0Vs
N0szayM/P20KemwjfFoydW1PMzc+QD9LSy0mbG5iOThiYipqJXVGPnU2V1UrWm0jRDZoKyt4djBz
eiM3UWJUfGlWfGIkd0NzMmdjCnpkMkZ9ITA3TmxFUjE8TkszTHBXZUtuampQOVpaPFBufXxBaW9r
Q0RkJXMhX2E3YCFWeT1LKE41JlZ2dCV4QVdTdAp6b3lYZ0hFYSNPVlhwPSF5OTYob3k5JDJpaWV9
VE9HN1lhM21wOSNnKjlDYzhHQFkjK3VMfSNFYj12PVcweypLSlYKej5wMkgwWnhFWlRvVGIobDF5
ZWNMLWN0Q1h2aEMrbXFRelNqWFU9bG9Wb0cmaDNJNyo8Wih+blRPTzc3KG1SciRxCno5bFRZe0xA
ODloZTRDdGk8RlVUSD4xcE5EcSYmbk0remBXbEQ3aHlKTiMoO2wzMVYmeHFzbTQkSC19TD1FU3Ny
LQp6JjhjdXI/I0UtVkN2VzNEPnFlZzlIdUZAI1d9WE54bWR8WT08NiRtTkM2cXRRTSYyVTxuP2xP
Tk1qbzVXV2x8bioKelo4SG1YY08zcy1pN0A2bTxWTXg9ZH50aWN7IUBVZWs2PHZMeE5AJUk7Xjt0
Vy0jfHhSTVBwNDtRZWtHT1BnMGItCnp2NnF3U1FJK0hTKkJtJm9lWmpnRkRfKXkxPDQ/Yk57cV43
ZFFWeWN7ZU1AbXVQbzV3M0pjUlEoMFF4RHYxQiMpVgp6bFdfKktYYURLdkA4QjJvPStQfjJkVkE7
fWoxNl5rJTFpYWo/cnV1JHhOQFE3NHM+bTk9SH5nazBaQGBgaGl5OW4KenA1b35vdyRCRWRDR2da
PCNvJm8kSjclNl9JWnU8fD45NjBzZCg4S1F4UG41JjYlKypUTjFGMiVEKUN0WGtPQW9xCnojX3sm
SjlWbWMzRTtmaVIpd3hWJkp3M2VBRENEP0whN2hDJXE2IzN7M0hJcXpmVHNebzJuX0hmezcmY1NC
ZzdPNAp6PUlMUyQtOXBJYl5gMnl1dlUqWmBoN01KUj8xNjcmd01kVFVIeSRWV28kVE91dlAzd2hf
M0BYO3s/dU99KitDYCYKemN1S05nMFZEOGNzKkJoUVdBSEpsP245TE1CRUpiVC1RPVh+bTJLSGMh
SSoza1otWlJkN19rR2YxZT1nM3lAcTFVCnpTQ1gmWmRhX3NGaWxwcDRAWkJpVUB0dkE8V0lNOG9q
PVBldmJ9JVlUNT02JmJZLTk8MU40NDBUWVhHQUpXKE5qbwp6aygocnI5QTMlSDZTbWVNUnEtJjA7
P0A3Y3s1Rng5I0xTWmJPQnM7ZEdRcXMkYS1nTVQ8ZChCRzk1MkJCQzY/Zl8KeiE2SWRWYnhIdyVO
JnxxKGZWe15FOylQJnNzPj1KUXJEMjVIbiRLZy1pRE9NITl+aEBMTnsqPW8ybSFiUWtqZXNzCnps
PyU0MzBNQjJIJDFUUWxtU1ImKjk7KFNLa2JJY1lsMjAqQ3xJbUBYOT81N2ZtK2A2cXFeZztYIXBI
JHNJY34+NQp6c3NjYyswLUorODxAaTFwZ0kmdUBXQUlvPGFxdms2cXIxPDtFKUF1fmtvR2tGVV5z
VW1tNGc7d3JIdHM8UiY3JD4KenQzbD1gUG9wbTk3KTRxdVFIR1phM2EteW1XMElFV0kyO0JHYnE+
bzg9T0UqO3NobUx6R2Z9KHxjT0c3KHAjbllPCnprN3xmTU0xX2JDTlZIbWpwdjx7b2w0Yzw0OzRj
JmdBZUMmK0YkYzJ7YkFZVFVGajFUbCNhbnFEZDt9eEtsYCEwfgp6bXUmfng0Tk1mNTg5UmJHPD1e
RVhXS1lHSyY3KFlrXjsmcUR5MUF8ZlFzY1EyNlZWclc5O1d2WnFeYmBoUE5PRmcKejNITW1pc1Br
V25ZXndQfU1vY2hnSWQyWWYkTUMhRnczNzBYZkxAY05PbHxvRilDVkB9VCQ0TENeTHp6fWwxJTBE
Cnotbl9eQ1B8cEY+RyZWe3hxNUx9bDZvVipjcD9EWlhGJmlhZ3EmfmxRdD84NHkqQlU8QEtWTmx1
dXEoZTRDaUFrUQp6b1kyVkZQKilwa2xRU21gYldkK1JlU0ZgTjRJNVV5eF9SfXhGS356SnlxOH0z
Y2FBKCp2fW47fUlrQnU9PDlQX0AKelBsK0MkS2xhWmExNW9ebiQ3VmY3X2xGTyFlWnxFPVlrUlAt
bTElbXNkdDdUPlYqVTY/KEtXPk9CYkJgSkUxMVJzCnpxQ30pVzRDTHJvNlQ9Ml9EZntXQ1hQYDJ+
ciFOTGlxVGRkdGFTMSVkMDZheHQrYiU+VitpQH1RYmxMOCZYUHxpRgp6UDlCejdvc0YhZ2JUZ1I3
Xl54X1lPYSZxUHNsYjBMbUd+bk8qPyVSeyMjYU0kPjskYFdST0lmazM2QGlxWncrUHUKejJ2eVRa
NmFEbT1DPGpKRzNzVDB2YFZ3WXdfQik5fTs5SDA/eEQwa2BTZnE8VEw+Y2ZzUDhMVlQpMX1yMzht
Vip6CnpjKyNiY3UhQ2FMRjIteURgRHdwTmp3ZkZmO0s+JjA7KypzM3Rudm89WHdPQXg8cX1HUSlL
VW1QTklsWTsrZlljYAp6bitnQzB1YW5yVzFLVHUhWG85S1Bod1p3M0ZvXz1rZHYqWlpiLVNxKW98
a01GREZvOWBjYXo5LXZRZ1ZsPTR2TlUKenYhWCV6RHVeUk1AVEhFYkZBVTw1PXp+aXw2aFNgSHcj
ITdfTnAzYmAybjJZTjtzU34+NDVJaWIyVDwoeVZlckh1CnptVGFKQWBIblpgYz03O24zVWZKVHBx
RllaMmRLRmI7SFR2UmIrbkNBUzB8emkwRThPQUNSTV5pI05NVFJGalgxTQp6Sk9OMGghIU1QRkJa
STNfSllRWDlLUS0xNFFBXztAd0trb2pZV1MxI2E5dlVxeTZAMD1taldQX2o7Kn5jYyYranYKejJl
TVJGMnludShuUDgkNnJVYSk7ME9sQ2JAZjc4RUtZYWtNaW9SdFNjdWomUm1oI3ZTZzw7PyUyQTVS
O0pQODBMCnpoNV4qbmw7UF9aQVBQKWVDY2dIaHMweFk+RT1CPXpDYmA8aWkjfFI+YnVUKHwlJFpL
QHdnT3VTWmB3Z0VHQ3I8TQp6aiVRI3BIJkxablhMWlcqSkJ0X3FFZCpUWkFYWSNaPkdTJUteY1kw
M2x4SVIwRTZmMzRPaG98ZnhnckQ2aUNCanYKemdrbyZ6V3F8Rjh1fjxrIWtkYip3QTsjbl9OKDZ7
dlh8MHEmNmFaNkc1VnJGV3hYRSVKcFJWO29qRGI1cWtJZ0khCnokN1lAbnlqMCQye3Z5VS04ejJm
MkF5Pj4paEdGdiNwfEV7T1MhWkIzUW94RCROTHo8QHViPGBSXy0paEB3d2Z3Xgp6eis1M05BPkMl
Q0ZxTHl1TFkmUUYlSkFHayNpMGtOSGM2RypAe20+elUpNEYzNTBBQ1U7fCg0S1FCdSZSV0dNZ0oK
ejFFXkZQMTB9SWdRcEY0Qkt8TVZhPmhGYnRkSzVzX2VSSm5aSnhoQXUrYFpjSF8xJnZZVSl7YWR7
Tj5IQCtJeUVyCnpEbFpUQjYhdiNFV21lUF8kMHl+ZGhqPUIkY3A4V0wrYTkrdlNLcHx3dEA1dFk7
a3xGSUskYGhHTkhiQEQpVTAzNgp6NV9LPyZqTVApNEpeNmR6YX5TYWFKTWRTMTJqc3M8bGQwcSFy
VEB3K3p4Y04hZHNlPy1YUWo1KiFfaVBQS0VmZk8KenApJDR2V3N6ZUROQmVsPFFwRmVPS0tsQUQk
TWA9MnE1ejw8YkB4K2stZj5WSWp9KTNZPCRMME95TmtVQCtlU3NwCnpVYHFzO3J4M18/UXF+aFFQ
aCM2bmsjI0RDWSRxR1Z4fFlVYiNpfHhwWX5SVnxrKUF0ajtvKkZKIUJramdXZF5kSQp6MEdeNnMp
VHVEITVLQHBncVkhc0I0QXJYPF4wJTU9cUJlPXB6YWpMR2phRktWbnU+fE82alpFfjB+QkAxRHE4
TiEKemYtPmRkbkQrc21DZzY5djFqIUVJPkFKTE8kNDJ3cEwlOWdaakclIU1UZ1dWYCp6bnRmMEB6
aFppSSE/dlRvNmZNCnpnPUJHU0w9QE96JWcqNT5NLTxHWlh2PH1nX2NsPlVBWmpxOGt0bSplOU4+
d0s7RT9GeGFibGtuTS1wJjZmdFU8Rgp6OyZ3QFVzNFdKYVcjUVlnVWNMbyMlMF5AV1o2SFVydHo+
dik1Ml4xdkVJYyh2PmMoV0Q+cChVcEs0NkBYN0xKTSkKekY0bTA+Rk4zKW9LdHlDWGFlZm12KyNv
c2VyV34qNkd4TmslQz04LUY4O1E1KVNoQWB0MlM3bEU1PVJOSmUzI0JfCno2NkNhazkxZ25kZiNm
eiFUXiQkYy0wKmR9Y3lXVHAkOFhkMVlqPyV6cH11akVOTH4rI3R7amg+JWwmbT1wVjl6Xgp6bDJI
aUVRWFReKHU0SmkjSD50aH5LJilYezBGenZSdzhZNDJOe3B4aUBCb080dF9CbXVBUFAocjkhSlB8
PzRSUDQKemFmTS16UjU1QHtrISVYe3gpNDlgbG1XbWh7RlcoVjVHRClqV1JEZGEqVU9ue1YmS0hY
PTUmQ3AjfE1sWiVYK3dmCnpEWUo4JnRgNStia0w7fTZiVnolTUshXiUxQiFCa3xhPCsma0dwJGg0
Sm5vR1VQRGZKU1pBS0B6WDw9JipWVnYwMwp6dihyPjJlK3hCQV9CZX5rMTEpTXkpSXI/fXs2X2Z6
RVJnUlFHPnJpfmphNUtLMH1GSmEpQ3xgXzdESWhaTkFnTGsKekxlWEBOYCZ4Pl9CMTRxdkpPUUZZ
NU9vbDVfNy1LPyU/NDA8bmAoVHlpMT1MKlpAX1hNN1pCSEBKRm5QSDAjT2BgCnp6IV82K3NfXms0
XnduMnVDTn07UyFXWHFkQjxnYnNAJkUhcWh3X2tOZ15rd3BOTEEtaFQzJmtTak5POH53VXIzJgp6
VCF7NFpJVUBaJCo3UGtmcmllTGtTVm1jJTh3SDR9T0daVyVIdUZTQTZxcVFFSDwwe0xReUB3KS1h
cm5kOXRCZW8KejItb0QxTE49IVlIdmQtblA+KmlwTzwpXk84VSQ7OCQ0MV4leV5DRFJFMClUSkZD
a2QtNTwyb1FsbF4kbHhSSiopCnpvLX57eiRpczBzU2JuKXVrN0dVRTI4ZCFYYj8wajEqU0RgV0st
T3pgYU59YSM/SkZiWTd0WiZVYm9SRkFTSmhWfgp6Q2dpMER5OU19ST5BRzdSOU1hU3t4clBePlJ4
ZSFtbW5CUDx7QkhLMlg4JkFsPmo2a3t0fDFjd2tBYHJmVE13SigKej9FUmcjd2Y5JU9pOVd5Y0tr
cytvRiN5SENjbnFUVVkrVXt1NllXIykqX21tYzI9VFJXdHxeSmd5M21fNWN5cU11CnowcD9TYjIh
SGpyMVdAZElWKWx1ZHIlUyFAYk9GNl9MIz5oMitZayFvREc9YV52emAhP0RHY0wzSzdnN3VqbD1n
Owp6bVRXK1VTT3cxeUpyMHhWNHM1QHpxR0hlWXM1KT5aUjskOytGU0hBV1kqaVJ2JjFmN0FeRWJo
aS05XnlsISl0QWIKekU0VHBXM0U9N1RQZWpLWnZya19AI3syQX1uLWNTTVlZMzhFN2Q9NDYpN3xy
PlY0Z0RRc3RDdypxTHZoT3RhKSFuCnpFejQ1S2M1fXExYlFrNTlNOD1jKHArNiQ3MElBfXF2REt2
VTdEYnZacC1nO291Ujs9ZlF+Vkw/TXh5dnxGNnZoeAp6JVE0JjNtJU5rdWxsS1lgQ0h6aHpCJE0t
PF9RNUMpeGclczc2XnI4RzRka2JAb34pSE5sSjNGMXFfcTc2OW9UWGYKeiorVWtuVEpiPDNaYThY
NGt8LW9GbSpRZnwxPj9rXmlPdCEoTWFSSTIhSUEoPjA4c0xnMTFRY347XjBkTFE0RjQjCnplZDYx
JmUzdlFgI0ZAUTlIQS1uOG41WGtKRzxjUCtVQXNzMz90TXJQS2xxcUZgUSRVWWZCeiU4Y0k2SSQp
bTc/bAp6OX4wbitKd25WTldxXlRWYUZofkBoeSheaVV9JV4qc3NWXjwwdSNrQFNQdGE2MWMwWjZA
SmV4SEFlOW1XKDhZMmQKemQhaGlhM2IzX1QzP05zNipDSFI1X01RZnkzVVZQVUAmSGhZMGw9OSlp
aHptJWxtSm1JUHFOVitRempURVd9YypaCnoxVSFONUQjdEt6a2BEdCVfRDdZWSpSSy1OWG11SDBE
PmZYbjV6M2l9cjFLRTMwJj1sUkJRd290KG1vTURyfWpBMAp6ZnNOKkxYcDBgNSs7eF5UNHl1cmF4
KkdZeFdTO0IrVXRmcWUpeUE9TFRvPntnVmh2OzxpVyNXVWF0aTx7RTc0YXMKelNfKkZ4V1dMVW4o
XlE0KG9Ae2BxTH5PeEA4Z2k3ejgoQH1aUEAoYClHcFE2bnNTWjdQVHMkbSNeSEJUM258aWdsCnpP
enclfGozezEmdW0rcHoyb1U5ZypiTlR4T2I1ZU42fUI0enBHZTVoZiZgN096dzw/NHE5OHxlc0Iw
ZzdwV0M3fgp6eipQUjhoKWMpPF5BJkd+aHleZlZhVitLOHplaWJLbzJWQEVDXmNxalEmKSl2NFB2
YCpsc29mO0E4S2tkPz5UX18Kej0+UWFpczVAOEQqfnhQYXxJU0ArYHNWKWltYWlWJVgjNFcrKXk5
dSpVOD11eGVZRUU0VX10Xz9VM28lSU8xeVYpCnpSR18xVWlAa3g4eTdKLW1ydzs5MXcwckI7ODdt
aHBgdSk8U2JBR2phX1ZTLXw8YmoteDtgY051Z2NJRioqZj9ocAp6XiZDTGBeTWFscV5EQlBASyo8
OSZgND97VV41eUBqcipgTmFHaE85OXpBaT9sNn1oMnR7Y1JiWVNCOHBqVF5sWF4KekBZZHl1Rllh
Q1crYn5jSm9+e2leKGpDVlkkaVkpelcwKXVoWm1wMk9sak04KWFSSFBSbWckNj03SHImUVMpPTAp
CnoxO01kckNAPF9kPHAlNSkjaSsmSiVjO1Y1bmVhVnojTztLeT1tYURXTC0/TSE8MVFLPGNYP293
bmdwfU5MNzQxJgp6VihJUW5rdTEpIzloZkhwb2B3T2tJPGFZbz0hbytyYmZYc21uVDxnLVJBeGBE
WD1mNDQzRlptbERhdiMlNEM4TUEKekptQyFuKHcpNSRaYHsyXlp0RDItaiFLcCZeTEh1MzZ+KEo0
NU4taUA7IVFqNTUpKUFiaCRJa2xVQ0pJQjtEYGQ4CnpYNztIRS1GI2c1RTQpcjlsK0FHNzB0UmFu
ZEZ5VD8+KGplUD1nPmlUb201SFhmRlllZVkpNktnelR7e1hQNXhkUAp6NmNKS0B0LTVsXlpGU2gx
Z0xlb2FrYUN0dTAjVlgxc0ZGX3N6ejFJQFNTVlJDSHojcylZKFh9Kjs/ZSt8NjUoTT0KemlzI2dE
Jk8rKmRNezBuMmRvSShKQGpHPHEmV0gyPzBNd19TZW51YUNfJGw0Sl5NUFFhTSRnQCN6UnJ1KFFh
NDBaCnpraVpJSTklbXF3NGpHUlA9R2cjQ2c/SjhUbypKcUxnKCo3PSZsTU1qVWJAZ3FhZzRfWiY9
bXN7SV99NVU9UnA9TQp6JW1NKCtYN2VAPVViYDZod1BhSE9uUT9NKipxN0E+QGJ9JXJLdWdZQzYj
O0EmJVpCQl9RVVFgPWdVaWRyO0pqPX4KemFiNy1VMEVQXnIlSkthYTAxOGA7PCVvdFQwMyglJnR3
amNpQT5LdmdYYGUtUSN0RXA7Mzg2RWBKeEtNaUokfGxjCnpiYjdCWXMkc09yUWVCKGVefGRKNk12
S3hzd2IxM0xpMnpQKkVHXzZFcTE9IzA7RElfMV9VVTQhQl91cnkqX2Vyewp6bV5PZVlIaCQ7KFkh
PCR8RnluV0dIO04rKUlKT3x1WlZyX3x2YTF6eDkmaElAMk9HNzVueXsoST57TjtDSmZ4TSsKek04
NEUoPE8md2JgODR+WVVkSEx5REJOVExkaGJARlM4QG05NmleKzZkQDMkVjkpXnJKMVc5QEBqaXRR
cClFZDU7CnpZVyZfc0tHYn0kUTFDK215djFBMDYoQjBiWCQ5cDQ/NCY5cj9sJld1eSZJYy1CTW1N
eFEjcCE8OXxLWUgtbns4QAp6LXVHcG9vK1YldFg3VWw5V0hEMmIyNWN5d2laeXQkcTVMMCpmdG43
Vz9wPXBYO2hGJFotYHU7X3tLZWc/JjdhKTUKei0wPC03Tlg1bVd1N1p4JStWcy11O2BxM24ldXUp
WjJzZ2JAVSkhVU9SeXJIaVBhakAqPmdjWEZ4Mjs8elZoPzd8CnptS2RxMjVLZElXezdlRTtjb1Ro
SVF2NzJnaUdUOVBkUDFuP0B9SGtSekkqMUcoKzQqPSt2dURyJG4qPkRYLXNhbwp6Rz8wSmcrRFAk
ejFaYU1LfDAtdkZ1biVnPXwxPXF4YDMjJFBIIXRNVFA0d09JQ35FWEsoUlV9RzI/V0RRR1ptYjkK
emVIYV5lMTFVJXVQZWVJejkxWFdjM0ZmSipSeCp0QG1yYTRFTjJFSTs8Mnx9eypIR2U0KG1YeHlp
NnVLOEllMjNCCnpzUzNXUUc2cWxhSSNkdlQ1fVE0Y0RgMXsyTWghKXw/fFcxaV8mI0s+dHBGLVZn
Zn5PLUoldnFuKzxpMUwwT3tgUAp6bDwkZVI/TEw4UV9XX3RFMT07VFlXcWN8RlRYaFE9UG5WajVY
YHNsOFQ5UXRxcEFINERfe1RyT2NuKSVSLVhNMlgKejxVQT87aTV2aSl4RSRDT14lfXRqWiZRTlph
PzExRzQxQFZEWUt9Y1hKQDdrbSV9UmVOPFRga3AxfFczXik9OXtBCnoyV1RqYktAYEFLJW5xc3po
N3s/ITlAfFNCRDl7a3lic0FnQT9Cc3NaSmFodFl1MyN2UkIwKmZtb3M0elJSY0QoaAp6SUB7djBT
KGxibjRkN0d7bVdjeGBDOWpqemBeSGZPUV5SIzdAP29JRkJMT1JeJHxNJm80QC04YiRaU2ZDdCVt
YDwKemhHTF9UI0VuZCtsbXM/e2NUeXwtUE5VfjwoIzskOTFxPTFATjF0RS1xQ1dWOTl6T2gtWmNq
WCpAciQ9O1daKCpRCno7SV9pISNNXnMjVHBvQHA7NENHVSRMaGRURiZvN1oxfkM5bkYoRFA9Nz5r
SnlYRV9oWGF5RnZsXzJscW85KnBlRgp6TTZzTzVLJm5zLVVifTRhMGpNUz84KHU2LTk+Q1JpTytJ
Y1RYUkhiVnJpJD0mQClUb0FhSzNiTTA1KTtpKU9vTn4KenhLMkska1A7YjBtOWU9VGQwTGYtaGhS
Mn17YWRfZyRaUSZlIXF+NyUzaVQtQEZRO15KdSF0cno/TGc4fWEpclUlCnozYXBkfnNpOXwyNkc1
Qy09cWRDdUpWV3RMWUx4NExoTkAkPHM1MS1aYVJ5UD9oYFVzMmZkUG9Cdj1WYjMyNSt1YAp6PXx2
NHRlSm4+RT5fb352cTdFU0dnPC1RVTJ5en12WThlUTxFT0MzQXMjKHFwU3dAfGFFMiN9a1I3KGl7
antGdVEKempQcUA9TmYpZzluKXA0cDBUWDMkXnZ+cTNmIzZNfWQ2NHMjTEMpSm90JTtETXZzQSRM
RGcjN2V2Zno8US1iWT1yCnpvMmU7dTY7PTJ3cDxHQ0xYOyR6PEFzO0huNnFROSozbj5FKFNzYFRi
WUhTaj1mTFpIRE5UKUVCVj41NU9pfGJ3Iwp6e1pOUUU7UFQtPGMlcGJAejk9YlJiMUchPkk+SSZP
cXU3XnNhfWNHJmdFNyk1WnNpUmxCVDgpTGFyclFCPHc9YCkKemlyRys0LXBISG9obXcxdHpRcXFV
aWhmWnNpbExmJGJRPkZhVmlaQyhyRzdrX2dhPmN5P2E2X1oyaFp6Tk4xaU5MCnpsZV9VYEJaWGA3
TXhHUmBEVk9taTNHWSFVazdjfk9TOXY1QjNJR2EmTGlEUm1ASjYrS2RGTmA9PWVOY2lAODF9IQp6
eU1GYVQmNHUmNXI3YXplUyV1WGwzOS00VUxDenQ1d3B1MjdEdGs1NmtGN2VnWXVEVWAzbTNrfi1s
Ji1+WGEye3AKemUpWCQ9ZU5xND82OXgqS2RoKkRGZXt2fUJ7TEI5Iy0reytNSEs4ZzA/Kmx0R3tw
SU4xdDs7TnBSZ1l6LV9fKClNCnokQ3IoQ1duQ0JfRCEydm5fQHtwaDBMQVJuKXhsSVNQZjJ1PFAy
PXFgPShoX09vK2shUkUjLWItb2gwVXx2MUZRYgp6X2FndSgyMmFkQlJpdjkhYWVeTUBOMiplOCY7
ZnZfamc7JHcpb0pmI1JPNjQ7WSMzTyVWdUg4WiN3c2s0X3ZEQVgKekNyJW5pTyQrOzs/ejN0OXVF
PS0jbEcmJEVLYWBsS3lCQT85TT9mWitDclAjfCFUcih6ejlNTTIrQDR5SjtkdyVeCnpWN2xZR0xi
bWZjMUFobylKNGJ8TSs4K05DSHQkfDB1ZH5SfmZwSXQ5aExnb04hWXEhfT9uRXZGbVBIZipFY0lp
JQp6dH1sXmd5RkRWP2lEZiVKX1FDSmVvZEVDQHczK2hVKjVpfTxZVnk8RE5PcjIqTiZtPVJJKHo2
OERJZEAhcjJ7cXEKelBoTW5oNyk3cjM4N1RRSjAoaHpoVExlSVlwMVJWYVI+Kjh2YCR1ezxTRTQ4
YXM1fTVBOXl3XkBWOztiVjsmOEFmCnoyVkV3RWFmKit3cW5MO3E8Vjk3WlY3Q2cjOGdWYG9BZl5f
cShPfn0teF9zJDItQ3opUF9YR09pcCMtOG57cSVHQwp6UHxpa095LVZqSF9xREB0Jk4zWVhsNjt1
YWJISFg1MF9jPihRJmJCPklaSlRxMDclZ3hoeWUoT0B0VGpBU1VoaDYKem8tLSpMK2tBTFUldEdh
K0ErYkNpOXdQeXdXQkA3KTA3XkZiMDgmI1UxNWdhMkZ1QzZ7ZTBASCVSV2pCfSZTKXthCnpSZk93
YHJ3P3Zke0RkaUNhM3VtajhBUmMwMWM+NHo4e2RuLV8lWXppJDd8PkIwZE1RWWhMPSpQZS02MDs0
NFlfJQp6a21eQVhJPGVFOWolK2NmZ1g+VU15ano+aFBNc2tTZVB4UVdRPUBFdnM5Rz5sWlJyM1Zj
fURPPG5QREwxRkBRb3EKej5fenpmNyliR145K3Z+eEJSWmhhZS1+SnZIREhleCFtc3h4ZHtHaTMj
QnlFPCVYdEF5QT4kIXo3QSNhcEk2ajB4CnomYTN1V05Pe2lhdz9rVUZwWFJHI0Z+YTJGM2xodFVu
MnVvbUlncztLejttXmVJK0JpM1pAUThVTTRjOGFSQnpIUQp6WUxDTC1MRDJnIXVmSFJiJnklczQk
TnM3cVFeWHRDRlFyVTtQJCYtRFBxaXMoKUxDcVhxO2R5MzQtaj4hTC1JcFMKelpSSUAmUCFmcHgy
PzVrcXtKU1NjMCNWRkYtTWBXTDROSDB0Wm5TXj9hSDh8JDgpTmwxRSh9elJeZmMkUil8TXFACnpX
K3dSaWRiP1d+Sks1P1ZIYEckeWFPfmlvY3tfSipldHJHPTwkcmh3YnVpM0VAd1Qya2ZLJT5gU312
dVN2IXRnZQp6Pi1+YFQoQzdGMEM7a3BSMkI3ZVpeez9CSTBKfkBWK0ljMj1Dd0hSdyhXYXArR04t
cEdXI0QzZT96UCl2V2dxYHsKejB3XnwpMytXRSoofENVfWYtKTF0I0AlM1pxfWFHP3RLXkNuSGpU
Nkk+OEFsdV4pbTNwKHBAUWhQWCRydjZibjh8Cnp4ZDspPV5JU3kqOSFzZ3g/fG9fdlU1IUEkWjhW
VUhsMz9XSmFGaEl2P2lpNjR7dCNpQTk3cGc0dyhHZDJNUmVMPgp6SU9waztkbCVfTEZqRWgmd3Fa
TERDUUVwcFp1Rik/d2hOQDtHRnVlRGE8QVBVJTVadVF8THt2STslK0swTER1LVEKemglOWhFe2dT
OV8yeylPS1Q5KV9WI2FjKHpCSTYwKjJ8YWIzO1VzZE16Jj9wVU9uNXslOUozZTRKeztTekRjQkgo
Cnp6Q1Fuck5HOUtpUHhsK2lNUXRObEVBS3tEJkBzfEhxRTZaO2pZKEl7a3FvdWAkPHttdXk+JCRw
aW1fbz1DQSNJZgp6e0kmb2xAc2RLJFMlT2NmNUNCOFlLRk5TbUV+S3hnNEZlfmhFUCN7TE0wazt5
QXAhSG07MysofjNSNmlESk9ESyoKeiRaMEFzPjRsTWVqRGBWQEU8bW9rSTY2VnMwRzRqdzArMGQ9
I3E7cE4kOGBWaGhyJDslZzQ9YXFXM1JEeDgwUFVsCnp1e0ZtQT9NaXM2WTk7fHg2R2J5biF9SVYm
MjEhNkZtZ1QmTllENjVjbG40MVExI3Q+Xm95PGZQQjJ1QTFIdSpVNgp6YUxtSGdibF4xMUBVcUZs
a3c8PWhgWXxzSEtucyhQRE52WH5mVjFnU2d6RnowMjNZYEhWZ1JEcD85Un4oZH1PWnsKemdHUFJ3
MHtrbyhNNnJ+YWhPKntfczRAIW4mTHdCN0JyLWw1TDBUdkwhOFc9QUx8TjBSVF8mVj9QP3Q8anMq
fCZoCnoxX2ZLT0h8aC0xX08lZ3JVO3Jre2whbEFWO3E/T3hSYkA/PWMmY3IxdzR0RlFCa0RxVVdu
PXMpRGhre0s1VmExeQp6aSk9MlJGRjtIQGEteT0zKjtNTWVrbT5gTVFXS2FjMjJ3Mk5IM2x2flB5
aGhgXmhyY1BSME9fRDcyWFRNOT0kRjQKel4xUmV2MGVJcEMzNENaIWRQJkg2Vko3Y0RyZH4tRUww
aFJRMjN3PEdTX2k+RWFtXjY+X2AyZUBRJWc5aWw+RlpuCnoyNmZKeGlaYDhzJXxQXztTPGFfS19A
T2Y0aGJvT2NMWDg9U1phYDh3Z1EoRn51Z1E+MklmIzFCSz5mRF5EMWZMfAp6eCtqMkMrdCZ8bmM2
QGJieSFuR2BWfDVkd2dPd0t0SkJuSWNZdHNyIWkoO2Q1R2VleD9CUnFCZC1LYEhlVElzTFgKeklk
Z0tzJmRxQ0ktPyh3YnBCNjcoezlpOTJfQ1c1Qmw3cHllbnxqWDs9S3NWJT0hYnNra0EtVVRGV0t0
Vk9NYlV7CnpefENoJUhJQT1JaWc3VjAlTVZVIXR4MEc8LTs7Z20pPiFGPl91K3hNSjY8bGZHTiM4
RE5XcSFkO14wQiZvcVElUAp6cCEqS2VvaXleYE9kUVhIUWwxPWFpenJCVUVaPDN7YVNxRmI1MiFh
MDszKmF4Y1FCM0RoWTl3SG5JfTFUbDkocjEKeiZtRChtaXJgR1NibXN9ViZPPGk1YkB5eldjUCF1
NDx2QnBRTHMleCpyPXF5Q2xuY3slbWZ0USZXRSVqVW1Ramg8Cno2MHZwSDdRSUV0V0Z5IUw1KyVW
TVZlbWE9IX1ydTZnPU5DYF5jOHA5ZUotbkpMMUZOeDA4Y0ZJRj9oTyVqMypBcgp6eWZ1KFg8MUhh
SFNZbDBXJDskQTA+X3BEZk57VkxpZ3EzYmpiPFRRdlFHaDJgbUFAY3cyWDc/a3lpMFMkQ3ZDNykK
emJySEwkSEV6Rm5FcSFiVlBYV1VPdU0+a052MkJPI3lGUCVhWnNnezRHM3lpcCRxcVI/REtATCVz
ZSkxYjxXQFNuCnpYQlZBMHBvQW9BRjgjRzhWO0lIbDVReXBObm9OUGRJYmVpSkRGS0c7Nmx9RnxH
QzA/KTxZJEFgTDg1cHU8aCNOPQp6WX1fRyZmTVc9eDl5PHZqSiNFPFVsJEZsKUQ9bEUzOFl2RjRT
Iyk/YzA4PHJ1QCpwKEBSIXxyWkt1c2NtM34jKE8KekJaOG40NWVBKEFRb05ObipuZ0VTakBfYkw2
QXkpPG9JJXRsVjVJbzticnthYUU9PHJzLXhYP2F6NXYhfjVXczFHCnpZQU9iaEBJOFJYPnB+U3dH
c1E2NTE7RURPRExrLXozUGJAfEI/PjdJVU0kPj5Lfng/PFF+Xkt+MTFYKzcqPkcwWAp6KU5zTiVZ
R2BEV2pVJGl6e1BkJDdQJS1HclJ+KzBZZjclcV9gWHxqSyY7az8yKHFhKUdDcWF8IWFiI2RHN3ZG
T1IKelFKTHIhakV8QFVoJD10O1hDXyhjI1VzZilncH5KcmlYP0xlUUt4cm5rPFFWeFdUfmMzP2dw
dzk8OCtuXkx2X0pLCno4S2JpZkRkaGtrbSNRbz1WNHx3SXlBSGl8MiZeMzhPKmlCJkg2PCNlLWVe
Q2l4XjZfcCR9KUpPPTI1OEwzQH1XeQp6REJFIV5OYEBEfTZaSX4mZ3VZTG1RQXFFSEZSQnMjczRB
YURsbkVudkIkeSs0TWlmXlFuSUM9O093PTBgWVY8YXgKenFXNyo4OXt9M29AWmtXI3VlQFEoTDlv
NEdSeSQpaWZmLSVfc2M8cDJeNSMrczclZEwlajRfITdIZ30kb3lLQGxICnpRNHk7fE8tTnk5S2go
SjxIez9TaCtUYnhNUGNhYCNsSmFoZGZzRHRNRkpkRTRueH1ROy05KSZpRz4tO3NLRGx1Qwp6U15a
RV94YU9rKW9BNShqS3U0Wnp6SDF9el9MeUE4bFJgQ2JMJm9FZ3Emejk2TSF0PnIqaGIhQ25OWDY5
X2VlKmMKekxhK2NATDhaUnQpSjdmfiR0NSRuV0dIYD5nfVFnR2cjaUBneV9Sb3k/cCRxd0g+Jm1I
aVNlZH4qRHV5enk/bX1fCno9PT94Z09Ke1ItWmJmbD9TWHp2cVUxKj8jaEx5U1k/eFAySEU8M3o7
KTlpSzJtJXNTeHRGUWhpbWxOfipufHhEYAp6NGQlalI0b1BvMHlpdDM9TXA7U1NkZTQqMGU8LTUo
QyVmTmMwMUNmTXxINDZLM2xffSF2KWJ2eU9KYyg5KSQ9cGAKeiEpaSstWUtKPkEmUnJpWmV0N3FD
YDhXNmo7YHZEZClKKl49MjJXUTNvLVgkJSE4OUkralhVLXxGP2IzVjgrVDJtCno2NyRxcCF0Pigt
Q0B1XlojXz0zR3N6Nm1zREwhbyVMQEduVipvIyVANE1eZiVpTEpZTGt2VzQ7JmZ5eSYtUih5ZQp6
M1FLb1prblJITENWS0FmamE3bk8+VkB3SyglbmI1MSRnPWpydCF9YWxGN2BJQjZ6d3pRYjsjcDd7
QSZjTiQwUl8KeipNe1dmJHs8dnd4R3FEWUA7cChLO2ZjTzVTRmxlR0ZwWUM7MFcoaF8qaTdPPTs5
QGBTdzhOK0ZxPU51WWNtcU1BCnpfK1VDMUN6a0NYWFl8N3QhZ1ZZST18e3pEWkg/WVpePGtWUzQk
MDBFbEFZRUhZfXN3NXZ3UWNfO1o0VSRYfTFvawp6OTxlMVlSWD8mZWl6MDgyYlRDZHUwOFNOQG5w
YFg4R2pafl9FRzBadzJCSGRiMEghY2BxNkM9eDx+VF9sPj1JPEoKenIlZmluTkpjNm9yNmljZjtk
XjRLaiU3T3JQYXkjbjZ6cEc0QSttYEJHc1FyeHhfbSVIOG5CI0sxMzwqdmQ0MFgoCnpHJlh1bWxK
KUw9Z3pkYn4+NyRRNnIzWVo2WnJ9YUBrcTM3S1l0YDkwTi1hJWJxeVdOZHRBPzxwKWBPdFU3Syk5
aQp6cjZfPjUybXEqMXwxeHlVbH5WK09SMXs+ckh+X2syJGNvSERGXkl+Kz50IWpBQ3BZY1UkLSNM
WmBRYEhTKnw+fSsKekNrLUkjTnN8dFMzWD9tMWFORkV6bGF+JnI+Iz16UHNMQkFGbD5zSVUwOEQ7
KzI0bXY5ODJwXkBHaHp2b25ZTTdoCnpHVipsREEhfnl+ZlQlRTFKS19acFdseDg7OElqVTFVM0JX
NUFebEAyPGY/eSQ7I19wRiYxTUtEM0xxKkV4bHFgfgp6VzlnMSNKMSRsTUx9NHhpT2ZlaFBtIzBV
SzJgVz8pYXVFS2JqYVd7MlM3YiMrMUlRIz4mN3ZGdXE4M3NeNUxsPikKelJoWDVTX2t8fl8pTUVq
cSEhczN1dlNKVWxtalJ3JEFjSzg+QnI5Wnt4dX4rN0goTX5ZSEtDaVNHalhwLSVeIWVfCnokNm1q
bGdsKklueSV0fiRvKzxadEQ5YVhKREJqOTUjTlVxSW5fJEZYRHRCM2Zraj1lUm0yakZgMHJtITEl
NF95Twp6PkZgdnYhTGAxcihxU25kPk4kWCNqNVlXUDAyRTdrRnBAS1BmfjNibHMrR1YqZWUrPFY8
Nz1MS0hgK2hGY2ZJfD0KenQqYjNKJEEmQlZJJExycEQrfVVOdlhYOzYhdm1jNFpBfi19OHx5MnQq
SEFoI2ZCV3xKRlluKkZePj1JNkY4VCVBCnpSMldEdCRJe2QhbkVLaHpVXjQlaTA4JEZGLWdBR3tL
TiVxVXpGKTIhSz1DaCVORzBjRlNEXkE9JSRAdCU/XktvYwp6JmtnbDhLYnt1cj0yZXktUk1eezsp
Ty1EMDtUXlBiQlQlI0tZa1ZVND1CSHd5WmtffUMxb2BlTncoYn1fanJKdGEKekZubXZhQElBMzxv
VGEtZC07KUEoYGpIcVkwaUwrKWpAaFM3T0d0TnlCQztTaTxTQEYhd3hJdVExJnIzcXNvViNLCnoq
QzZ+dTl8d1N2Y31pNFdOTDROSWJteEs7Uz9+IThmTFc+Ji1ZMXNzNVMrO2c7fCFpWTVWRD1iSmwq
S1VifEpSeQp6TSM+JGk2WG1XfDtybDdxP1J9Jj4mbGpFJTRqMSZtTXZAeTB3SnVvaV9TTThjeypk
aWJBVlU7RHd5Tz0+UE1yKiUKeig3RCZnS3VIOCt2U0EjPGVSZzE/eGJtVm1gMmhPdyhBRFIrZ3xl
TDJCSTttMGQxYEpYaXhabmpAOTtzR2hnSW1yCnpFKDApNmNCRlU0cERjfUkkc0k9SGtpWV5NeGdu
dD9Wem5QTkViQFIkUDZfQTkyQUlsMEhBfTgrTTcwWHsoIXNwVgp6KGowQE5Dcit4d0pmJFokM3pL
KlBLdVI+MkFlUVd5ZDFDTXNnZzE1aEBPNWw1PVJuUGgodGduYENqdkgkZCNNaDkKenMtdGE4IzJr
IVltYlVjbi1+U2xLYSFKO15pfVRtNlVgcjFNXmRUQC1KemJZek5XWHhUPypWfGFjS0VMOSNkQylQ
CnpLbjQ1NDgtKFcjMUNXWFVrWVlhKzhfTC1XbD53UEM4KHVBekBfMklhSDdISXQmaHlBR2xiX0dS
V2p4dWJFVDI3TAp6MEZ0dHcxZ3ZufG9ONG4yWHYxfjZKaCpRQHo+Ozk1QW5fSDchRkNfWmcxQWYo
YTgyR0hFRU0rdVg3Y3dSOzU5ekgKemhDPWJSZHBxV2tnSzA5RT18cXJAdkpiWk85S2M5ZkFiYGA1
UEh4dmtgbikhfD5naUlYZ0ZZQnBMI2x+MHFNbHIxCnpiaz49UUA/V19wPk4xJDklUWcwM3NMWkg0
VGM0VmUpVHRDOEQmMWAoI2FPKmR1QCgjUDBSZ293bWFgeiYlfGp7aAp6VmdhSTxpSVBDbjNjKllq
MU5AfWYlb2E1PFBMUW5gTH4rTD5nRDdXfVMwUTF+cWEzJjhofkMmaEV6I1NCTTlzaFoKemVNI0c/
Q3ZGMjZ0KEFnPkRzLTdrOFA8XlNPbEUpcWRtV1BYWT1tcXNyOEhDXzZAKG4xOHBNUWpmPXdGJGlf
OVFPCnotan1EQ1F2TXUzZU9EXl5VKFl+MjF3YXZgSk9ZM01wbGJpPi1wJSZVPyVpbnBAWT08T1lv
aTB6TDthbWFQM15UPQp6SWFOZ287bn1HbjQpSVo1bnRtUXVgejtKS1J+Y3cxJXxFaGxgPlUmdzlm
a00wfDZIS2h0TXt7P1ZOKns2UTN7KVMKeiZ0bmgxRlFXSi15IX5YUDBSdCEqQkw2cTBKZTd+X2VC
SUMwY3UhUTJ0ekItS2NXT3MlZTlNKkwrI0FAd2B5QT14CnpVdCskTnZyclJ8P3Mjc0EmTzIhKUFt
TDQ1eUY8KlJkPyVPaUFsKUl7P01hKD0wejhkbSZ+P2FuO3spKEwwWCZVQgp6eTZjRFVzVDttMHhv
TW9HSjJ+c3IxZiNmbzYjTVFQQW1QY1N5R0NyP08tfUsqWX5LfGxGcTZTazBnVTVkcFVQOD4KenNX
NFUoKHchMXpXMX1kYGVIRz1uRVAtQH4lJV59QSlEblRCVTw2WVJCTmgxfns/V2JPNWd8bnVUdFE/
M2xFZksyCnplZmJIMTZOLVhBfE0paDJgdFhYN15ufllXM3xsSC1vXkpLMCkwTmd4OFkjNnlhakZL
QE0obF5iM09QQ2VQdkl6NQp6NGJYWkc/OSlyd010WWUlKUwpZmtKMFY+X3cpNVhZYj5YeyZlOEoy
VVpgIWUzKk8kQi1yfXY3bSVwdV9rSVNBUXEKekZMZVUhbUVrQHFjSSZ8YXRWRSp0MV9XZDdBbXZe
QU5vQnR9c1U5KiM2Xms0NG9yMXtMQV80aE1JUkcoNTZjYnJOCnpEYWR6OWdXUXdHV3htKkM2Q3N6
ZiQ7MkBXYSoldmorVCZxVUkwR2Q0cSUmQWpvTWRMNmM8Wmkta3wyQEFNYj1Vegp6T0xzRXg2ekUk
PDBZMFVaIT9Jb3EqYi1ed0FOZnJISzc0LSRYVDBmRjNTaVgkV35yfWRvR3g5d08qZH5vNmIjZzcK
enBNNVNFc1NqfWFvJlp3IT1tTE9MRksqWFJIek0reGt7fTs0YF44ZFdwbXp4Yzw5Un4+Q2MqJXVx
NTxnR1BAVzJxCnohN0xPVCU5KH1ZVk0kTU12VCZZOWV3cTl7dnNecWBERjlNVzlJJGpMMDlLQztL
b0BUUilKZXY1N3pTQWtre0IhJQp6V0BEMzJuOU8wR1hKYX5wRDFhLTgkPlFnYkpzIVYpT2NzNikz
PUdyb0dlYHU+N2FkIyVBWFJgWnkpPzJqTCNMaSoKejBKYCpDPkclI0MrUCVfe2omSWNgdHdWWmJy
S1VySDdKOEtGdDQ5cnFgVCtsaTA4dnVhM1dLT2lWNCpJdHVjKj83CnomWHJsPUl4e1JxWGkhPGBB
PEZkRk0yVjJsTUJ0fDNuXyF9NSEjRjtWRCFtdU0xQks0S0BLdW9XKT0rY2szU2wlYQp6MXswTTh3
a2ttVEhCcHBwZEVgJW1pODRDKUMmWUtXaj5tYk1hJEYoJTErRW9RMjdAWDE4JVBHMk80dip0UURD
OGgKei1Ae3xTTGp8YW9OcnNkY3VLeXwrKyErWXpvSlRSJTA4dCpCc2FXSmc9fjdwekJATlglTmgj
JmlxYFc4UkxydlNyCnpsWjkoTzhuNzlTWmFmflRDLTJBRiRtNTxvWCV5NFI2KnV4JiVGQ1Z7WCZk
aitqWFgpaGxNbmFmTEI/WSUjIzEpKAp6P21RQiNEY2k8RkwmYT9sUyhhXyRETjEtI3BfPUgmUWBw
QTRCTWE4TmI0OFgzQzZuPil2Nik7OXZyc1o3Tl9lN1IKemNldjRwJVVadnxAaGgtV1UpO09hX1Rs
WC1aRmdeOFlRQjFUeE1wQ3V0RXsyRERKUXEwQ19XQDkjPmQqciotWFg4CnpSQzk7JmkzM1lsRkkp
RDt5WUozPlZJSlAmVz8pbHEtZndeVkZIYTJNb0hDaiMlNms4VjVhSWNre0I3VFhNKnRLWAp6Pl5N
LTlPP044Q3chUD9QcXJFQT4tTll+eyhqbF4/R04kVkNLPSRRWnFvdG4hSlRaditpMnhNOSg9Zkt+
eiY+NS0Kek9RaUQlJU4mR3MqOH1PVWdNQ2poaldAfG08Mzl5fVYpbSk3ej0zS3w2a0xeUWd7P2Fz
JF9xYipQdWNxcnpfJFQpCnpDYTgmVVNwZkQ0VTNhMURzNTU+eTRkJHJSQ2ApJm9IYT9JPl9iJH55
eTZZRWQ8NmsxQzs3ZkdkZUdVbmEhUENjRgp6JnZMQ3BWeEVRemdsdT1NSiVUUCZ4eGpGJTFATj43
eTwlJTkjZGFZaWkjSjZnR3FYP2JrblkoMyM5S0AoUyNVXlUKems8U0wwWFpLU0Y0QzZndW1lfUxP
dklURzFeKEE1M2omcSh3VG1lRWY2WmhramBFSkElWXtmUjtNcmBiQEJrTDJaCnpOZE0zX1FyVUJ1
NHNCUFooKlJHSiU1RyQrOVpxKFpOI3kwMDNqO1U2MHwhZVlseypkMDZOOUh6dG8pfHwjNV4qJQp6
RUZIc2YwNmN0fUNydTNBbX1RZlM8MEZHTlpEeVckXkRaRjxAKk5sdVdgSUojYH4oOExfeWZySmNA
PDklMUZIbXAKejd8Qm82Znlac1p7Y3ZBZyNzRFo0VjUkSGZzWENNZWNYd1Q7UTVlaTg7RVZlQjxJ
bWBgUHJ0eD9QTT8xQTE+THsqCnpGXnVROz0ta0xuWUh1QipRVyg9eUBMMjQ+O14qLTVFVFJCQlp4
RWg4MVZBYmhtJkpqZFZpfUxVUCNrTkoxPWZhIwp6Q0I1Jk80QlNST25SdVFiYkYlUHdKUGU4aTNr
M2tocHM2SVUyUFgxZmFURmpiNkREPCoyYnQqdE5Ycjd+ViZFaG4KejI3RmxueXFUUWRqX31jeElR
WVNrVkQ1X3FiMEAxZkdFZmc5cjlCP0I/Ul57Q3lUKik7WlpSTyR6MW4yMHAtckstCnorTFJacEwp
RWMqKUQ5M2VRakRBXl89KDBVVUA4WCMjZDheZmxeMm94LUpmcW4lfUh1aDl0SUhRejZ0ZH1PWWwz
NQp6TFNlSm5seDh+ekVEPUJ5PlIxPiFHNE5ATlNQY2U9S0BeckdvYWR0LVp6bFBuYmVJazB4X2th
V1QwOCMkQ2hBNDwKekpvNmdOPjJ0NzIlQ2g9OzBIPnxnbn4xQCZKOVl5QSs1Nk9oMF5AUnxwPVlB
ekNDMkRnM2UkZyRMYyNFYyFiY2NxCnpfZFg+MFR+ckNGdV5Da19KJFVWTURVVShhcUBsY0RvKHVJ
WWtwfEJKKUZVM0s5fEooS29Dbnx9aEpuPW04fFZrVQp6KzQwU1RvMUlAaG9hcC1VO1k5YW1jZG9T
R3kqQWJ+Sn5+KjlOfD9PemxEejFJZ2VZJmZQIy0mOE17Q14hK0dtY2gKeilIdUVPP1c2bSl6cjE3
M24qVW42WHdmZWdFTGlZd1krc1JZPiZnOTVQY1dLNHVZLUF4cnlsdFpKT1pIajdsKGd8CnpjPWh3
Pj9vR2U5R0UhYVhXVVo/ZjljMW0qUCFkcnYrTTlYcSMlUiZRaVA3UnUwaWVHNkBmaiR8SUw/czsl
cyExRwp6dlM3Rl5udEJAJVMte2RBPVJJLUtfKWkzJjxrRFNEbypoKlI+Q1BCaWNVYXZISTYmJDZi
ZWlTOWw1JC1aUTwyKzMKenMkdGBKJXl5Vm9rQmgqfSVre2k8N2ZXfElaVHh5Q3E2dFFrP3tyTl9j
Yl5Oez9sUWBRa3VhX3grYzlgeiF9d15HCnpHeGdAXlEkeCVWRClMQFM9PztzPG1KKDsrYTY3JVgy
SU0+VnBTYlVpV3hGSzFXdW0zTjhleEpSPShYJE5aTXpnewp6JVpfQ1dfQzU5RSg+SSZQSWhuWiEo
RnpVV0pFXz1iOCg2RE42cmpJWm44bnExWSRMVjNNXlB8KW1Yd2N9bGRpZk8Kem5IejxYdndiVDBj
d35jbGt+WnopUUc9MyVtRz1+TSF8flB+Wl5FVE1WYlhBIWQ+KnxYenk9X1JociFZIzFKSUtVCnpL
JDY3clFCKW04ZztyQjJCKG9xSGM9R2l1IyVuMj45RzNFOzBrVHBQbipxPlRATDI0ZDApUFVyaUhu
cT81Nz55Rgp6MmxJNGdTd0gmbk1ybVp8SV5EUkE8Wl43fmVmWXRyMCFWIzs8RT5pe0FAJHYqLXRL
WDlAQ2BzM1khJmVkVmVubn4KenhEfUVnbztMdWBBTExhKztnQXd6ejx3b3lBeGozKGxTX0hiK045
JChlNG9pazBHUnIqMkglSEZGI3UyaUw9MjlZCnpaN1I7P0I9Y1VSbkQtJGw2cXw8dk0wRXAxQXUy
KH1NOUQhRWdFPENLNDRecFBBY3JlKFNmKSl1ZjslJDQhVUYpSgp6K19LNVdJRyhnbGhTMV5kOSZ+
N3tKc3NYXk1ufF5sa29HWmNhP3NKRFA8dCYoX2VEb3ozPSt3K2l+KkYpMT96TikKemVOWncwYi1D
NkZPc2dnMkpfRHJjR1pTQHlHN3oxP2VSbH5+TkQ4LV9FMk8kMio5OGN8VHErRlV0PkctP3RyQ0Uk
CnorPE9VU0luMU0yQiNWMSN5aGBSXnE0Zjl1azwxUmdLc0VxV289N1pAdnpVaGplZX4+d3UwZlEr
SV9pIT90eTB7Mgp6a3V9d1YzWWkpb3V1eDhqSEwhJTQtMXYyb2t7K2JAN1dgMClDPmNeLUE9dDUr
V09aci1sUXg5Y0pLRXdVezdfT2gKemw7bmp7bDx9bG9zT0puNj4+V1FUMU45VUQxdDI5cjZzR0l6
YCFfbTJ4cVlTbXsqODt4KlQ7c2NgK000bz5LWkgzCnp2bnZZWGdFTFk+Wks2VjVIVCpyVF9GNVRm
dVQoI0ZhMU9genRYdWNxWiNnPigxajReQGM5Z3NoMkplKnJeWkI7awp6Ykh3eTQtK30qJnZvVG80
PDZqO0lRSE9WfGA3ZUVxQmE2LVRsQEFBYzhyIyRxZ3I9VkJPN0Zja1FnSFlCWHdnVTUKeiZpTH1x
V3B1USRuUzg3bWwoMWFGbGVYX0I8LTE3PFB1amtfaUxFPk5PZHZje3pJbiZlOW1mezFhaHhMeSNN
VHtwCno/emtrbDNxNSEzc0FfM0orSVNPXiN2NnJrVCVQJkZzcEY5RldGem1wPEtyYEotYSljISM3
ejMweiY9JUZUVCFXeQp6P3o5bkVhMTFUPVRQWU8qbWRybG95RHA/TXVmQH58PDlKVzxLe31Vek1y
PDVpWVlVfVlMKW1uSHlxLVFuV1dpQDIKelQhKHlqNlVAXnNGaSUke0BOfWh4P2pzWFEkYVktTWZ9
RSVHbH07IX0pcXcmMDI7e2c7bHkxS1dMNHpuXylxZXh8CnpIeGhXX1dfd1MoUyVqYiNCaVZqQTRD
N209MkNgamlFS0lXSytoZm1AQi1gPH1vI2clQ2JhRDI5YmZaJEhFcVdXMwp6QVFke25kTCNMMHRz
eyUkVFM7eF9VZlEkajJwIXcwMTxCNXVedEY1LSorcjEyVFBsU2tSWGklSjFZbzI+ZlR1KjEKej5u
NVU0anpMczEweGZ3YFdGdFNYYyR4Z1Zzb09MTmtSKlZUIWlmN2FhfEEkPTI7am1kP2codGIxcF8y
OF5UZmMoCnozcVoheHdFJTxBTX5wdiU4Sk5yQzBKZjUxOEdIZWQwV2MtUHpyXjUrPztGbCs1cjdW
ZGFkSV9FVzhGQyNrbVd8UAp6bmZ5fj5GMnt4KmpPTSh4I3tqRHk1ZUxqX0YkKSQ3dTtrQGpLdDZh
cktSMTlWX2hOKWptUWZVKm1wd3Y+Y3k5SSEKenJRdnliUXQ9d1QmIW9rJVJRQlVjZE9UT3ZAUEd8
VjsqMldKcmpwcEZAfWZRQHVANHx8ZUx3JnlXfX1MOElHSjRuCnpROH1zWTA4WXI+VmdNI0gjXj1K
Ym1kOEd9Ymt4Xm1waGhSRGhUPGIodFBkPEI1QlE9aVVAa3VrYk5RKSpvXilpVgp6SFNPTUBDbChJ
MFBpVF5yPTI7NGApfWJeJWVYNUIhcUJpdEo0aXJpODJLK2F8UVhYJXBqI2IqeGBFcU4tOUklfEgK
emhGKFhveUtkTTdnYFkxRG9wbF5Ea1pGcn0xNHdvYWgmTzE0QUYzbWchTyZXMjIhM0NIczJxU09X
QHk8RCRYantGCnoybVVBbERReEhZViEweU9XKipgWm1MTGFlMSRELU5qZnd9NWlpU0JJOEIrfWJp
PmNmTG8rKmQ3QW16PVZOSkZJZQp6VkBWXn1VPUdGRkUqRjNBQzZVTGQwYmEhMzNQX0kpWmxkWiU+
ZEZoNjFXfUl4c1F+fmYxWihvIzs3dlQpT2EqTG0Kek4xblZWP0A4TnUyLVh+bUx6cEg5WWY5bW9I
Xm1AYWJORmMrZDdNcnptKylqVjkhcShUJGEjdHpjflVvP2U1TnxgCnpeNj45PXo4RVB+UTxfYFkk
ZGhDfC1wV0lAJVFKXit2SlhsZ3M+dkk5UV5BXmR1Z0dPUT8hfVkzQGtCcUt5eFFmbAp6alhXdEVp
cH1LSEtAYG03NDR7fmEweFEqbCRiK3NnRmB3UEwrNDwzfUR7WiVLVHhffkBYfUc/QnByZnExeGkm
TXMKekk0M3FKRGFPeXopNS1qbHclVy1wcjtxUGp2VG9oRipJc305XzIwN3BtJnBUYF55S3FNdU84
a2JwTkRXaDMhTTFwCnp5VWlxa1ZpdDtqWD9DdyZgd0xhMlUzMVQ+OU5GZ09zSDxDKzlUP1Qkb1pM
MShuMEVzcD5meXgyO3hCJG8wQ2koVAp6Jk9XN309UHByZi0zYGltP2lmNl5SeHRiSUN4TkcqM1A3
PiUzRzdwT3greFhMPnJ6ZyozVDY4MyNwP0IxTzBgRiMKenZDQVUoRmMhbzZnYzgpKTlxOFVWTz1E
JW9iZndYb0NWRysobT88dmA9RF5JYDA4dXcyKiQjbH1nUkEmTTJZOStZCnpnbnp0SER0eF4maXBK
X1omfiVTYTs7MzR3NEJQfjcpcTUwZzQpNnFYWWFwYU1VZmJxUip9Z359X3QkfnNmS1RjOQp6VWg3
M2pXOz5YdD9xcW5MY3g0K2g5Um55NGtqZDs1OF4+ezNTSGY7O2pAa3ljWXkqOzt4ekJDYEtDeTQw
R3JSV0MKejtmKkl+JWxse1BEM1loTylxS2R0RzhXKHxqbHV3KWtgcFReSWlWNnY0a1JsYGNnWC14
aUxuPn1zVSpZKmFGaFVwCno5c3p1MD1jVVZASmM7NlYoaiktciRjSTZiZD1lbT9OJUNFI2tuV2d5
ViEtNE1BbWlxZ0ZVQjM/PDZhMU1zIWFIIwp6O3Z4WCh6Jl4xdyM+WXRibD44eVBgUXlJOXhENWot
WDEySW1nJD9GQy1JcytnPmkqcjJndD9xSV8zcTtJZz53QHEKejYrU09nIXhAeD9gandOckxtcWta
XkVtXnd4Zlk+QXRgdWhTM1lme092OHsmaDFBezA/aGRqeU9iNWRlQjRnQU5NCnpSSj5qV1c5amh7
MyZzOD5tZy04dEtydyktRjJqfjBoSmpRQyZYK05XJTlUSj1VVjVobHFHU3d8Mm5tSnBLUTlaMwp6
Pm5JfTUlWTttcyFlRkAkQVBWNXJ5QVhrIXNicHlvRFU5Vyg0JXBHJiY0eXM0KDR6K19Qd2xXNFMh
P04xa2dZeXQKejF7aEkhajQ4RWVGJC1sJDdYVT1Za29KOEU2NWVIaUN9eUhLc2xRSnw5R3NAfGtp
Rj43VEwlX3VBdz9SJE1KWk51Cno1SWV3ckN9YyN6UkwoTTlYWUBMLVFMQTd3TXtOPyE8fCk+NVFU
R0I8SVUrcXc1d2ZZWl5MTTFaYHd2THhmMD0/Mgp6ayZ0VGhIYjR9ajV5RG5NIWRwWEtoKTN2KDxq
dWFOUk9fPDxBKWQxVilaVV80Vn0jSVp7ZT1RX2NgSSlyQnstfV4Kenc4MVdIPCo4NlJPentJJSp2
ZX19ei1GZihLb25SZ2ZHN3F9JmpIbDhySVA+ajBPfkdlSlJUVXo7ZnM9aDZqJiYxCno+VURxZiFM
NlJKOSEmSW5fVFgwY2hqKmBhK2BUJjVjd3dsIXFOQS1neDImYDxKfC0hfipVYChfTzRHc0NhSWNQ
egp6K0gkNENkKjM+RWFPWD1+d3lnWCQyWE0tX15gP2gjR1JnMmZnITcqZEFicjxZezF8fVJ2d0hR
dnBWKzsxaFZycHAKenRETE9Qbys/Y0RfVjI4VnVSWShCYiROVSFfdWo8Q2xGeHJFMExBUm5fMkNT
My03KSl3dC1DSHN4fDQ2K0Y/ZWJ6CnpYWjh1a0B0KzdsM0ZDT2ExNkFrUGhgYExlTkh4an5KV1Qx
SCVzd3JyYmhgeXE7STsmem5haWojWXktZHhHTWBgXgp6WEo1emxqITVCV2RUXnh+VTNQO0tgXjN4
PkpXI14oYlJCPSMhdDtiMDg8XnMrd3VZYzEmbUV0QE9fMjRaTHsrRnkKeiQjK3t1c2taWUc4YVJX
M2J6VCk3NF5NOyNgWEZKUDN0M35XUHo9bCtWOFBwe0UjV1hpR1NMSHVqWE0jSkRJNEtgCno2NURu
I2xwX1BERFJLdTQ8Q2BmSCtqYiR3OF84Q0FEYF9DKD5De2RvST1XcWxfSFZUJkg2P0V7I1QlbCNP
OWxuewp6PHh6QkczMVNLPTtkUUVwelgtbWtCelMlajAybHpHNXxHSDloPj95R19+Rnd9OG9yKFV3
ayhUSDR1QShzYnZ6ODMKejxQIzZaQzxiWmM7ZWh+OUBFck1nNnFCYiowbDdObmxNQkVNazFLOzNt
d1pUVDU8clIkMGwpKXIlRWxYaUk7MXF0CnphU0hUP1p3bDhsaHpqc3p3dS1aKEIrcGJPdyhVQ0ZG
TiFUWi1xTzJxe1hYM1JCZ048MnUjSCFPelBTYElJdC14UAp6WTsoIU9LOTlWZTNkcWw7aD1NJiFB
PipPdTE8eDU1ajt7QEpWS1RyVlB0eTBDPFk8N2RAMGNXOXwxODdjRWQ/TWQKelJSKkhpMmdOS0A1
bStkZUBUeTlZYileOEg5JVo3czBoa3k+Tm4zcyolTDxWTzk3Jk96aiFuWmZfT3NSRUB2SEltCnpC
RkAxLW59Uz9vJGo4RSQ+fnZrcEstcmQqNTFOdEVVSzIyeDA4LW9aTiVOPXlTISlgU3VaMG1NZDc0
bXB2PytEeAp6VjU8I3ZNQ1okcFJMJnF1JGF6ajtNb1BfKkJjJSVfTj0xT0VFY31pcVN9eT9qbk5K
eVpaJlJNKitYNV4jZl9aOT4KemdsckJWKXE7KD5kVnJ7VzdsMGpuOzBWLXVVMzVYfT9TJnN8Klk4
Q302anZKcz5BVlJ+KXFKVyMlfkRHaz92SWVwCnomSW0zcGV2Y1peISZsfD9IbCh+K2x3XipMSmwk
N09Hc0MlM2IxQmpzUWw4NnREaHhZSl8yfiVNTHtSNztHaVJJKQp6Z35IKTA0NUI4YkpjWFhUPU0y
PGpyT08/YEtLLS18KUtkVHkhMyV7PXk+M1cpSnpxViUpJHtyTm5fWnVQams8bTEKekxldTM3MTJx
RihaQUNUcCl0UEF9eHA5SCUkLSEzUHA+Qz5mJlE/MXVPbXRTTG8hbWNiJjYraVRlKCR9dmd7O1Mo
Cno7T1VoeCYlSUlLMXQ8UmJ1NzlLI2tJTlVnQX0/ZTZpV1NKdSp0cFFqUC1TbStxTmo2SFdue0Bm
VGd2JjF7Vy1VOAp6anVuNCljZjFVTEZxfXs7MSEjV3o9QUE0K1F6MU9fPH5qNz1veSF0aWNVT243
aThnPSlaci19JSRiIVpRPlNwUCMKekRpQzNyOUdJIVZLNTx6dkIpck1aSjklJj5XSUhLNSg/aVR1
PWlRVG5HYlFPeDhhOXFRUWYpNTBQZyN9LSUrI1crCno7Tno2KXdTIVYhKT40YFN6PkVFU0QpQyVP
XiZ4OWU3UUNBVnZRKThZV0p5PD57YmB+PDRXe3J+VkkyU0QtbCZsNwp6S0t0OzcjNV5JJjtRbUdR
MmFaNzJNNkMtO2VIVXc3WG9PUm1RJUBwKFU+b0pUelgjdDNPc3BgK2hORmReS01pd1QKemlAVnhp
JFheQGdUQzk4THBtdzQ+WGdmXmZASEFvVHVNYXNsZU8kd1daTSF+fT9ic315Zng9KzFaTU8laD0t
YTgxCno+dENFVkFoQ0hoSWNqVzE4OERjcUV5dzhDRSomfn56P017d2A7bm5lRyYkTylpQ1VKMyY9
UUp8TDlibk03NXFTNAp6bl5LNEVIZileJUxAXlQ7QUh9S0ZrYVR6ZWMqTXhnJEtqfHJAen5fejtv
UFFKKy1+fT8jM3NMdXhFO0pwKE9gR2oKemUtckB1JmZDMlJpUlRoe2E8YT02PEJWfjAlcTM1LVFo
dCMzIWZ7KWMwSiVDUDJPeD84OWZLYlJQUUpMbUhgcFVUCno5R1M2VlgpcHkkUldZe29yWlNeb0Z1
KGFncT92YWg4PitJVDQ/d0lMVFgqSDtWeDI4T2xvdFM7RkNIaHpxWGReRAp6b2prWjI+RSFzQFdG
VSV4KWJ9NS1hZ3BDWDNBcH1RQ05ZV3U5SjYybVFMJktueihUUChvRiUkcSRhc3x7e1FeWXMKenY5
aD15RUwxPF95blpsST8yR0QhRlJEaXtSezVNNGd9X1p3YjtIND9oPkEjcW5MTCRRTmNmPFZBX14l
WEZwMShsCnoxMVIzWDR4NHYyPGc5Tl5DS31mME4zXjBOK3MkZUZEbF88Xk9pQXM0Ml5rPjAtckxs
ZSh0TTFtRjQyVEt6KGZyfgp6Jkt1KjVEQiswJDNzdlZWU2dHP156ISlxdDdKWk45S3wydmd1bVYh
e1ZvSWB7T0d5P3AwaEgjOFYmR1BRcGY9OGsKemZ9R2JIdXxAIStlQ0t4cmkxRyRnWVgmSiMyTWlR
VGN9NTNiQVVtYTM1Q0psaUB8QHRPTEtIJCVARz99enBtel9gCno2MTE0PXtwTTRkYHk5JSFjQHFe
Y0ZxNyt7T0FeXm9vS0Y+SHhzKT16d15MYVIzV3U/aypIWj5WYz8rX2srS34rPAp6dyh7Z3NvOyk5
RkRqVnZWe1pRITB5TWNaQG89MVo8Uzt8OTQ5X0VwYkpoX3d5SXElVnF5czQ2NUE+QlBlIWtZPnkK
emUpMn0ldHViYHVqWH1vNEpRQXVZdyglZ31Ac19vJEFDSGY+RkxBSkBHPj5mTERQJSUxaD8zXjc0
Yl94T2MjQDFLCno0YjBAJiU5Qjc4NyRgQjJAQH1BcnticlkjZHBEU2s+aU8jYSY3THBzLVIlREt7
Kjlnd1pqRT18eGlaIT9jNDRUIwp6ZCFWRGRzPWd7Q0J7dzYmRkRsSC0lKilBMk4kMmR6Xjs8Vj1u
Nz83dyhwUy1+X2lPZT12OCpRdFFIbnZGM1h1b1QKejEzM1RyRnctTW5AblptTDRaX0NPRkllITBI
T3JVM1d2cUY4Vl9KLX1NTkxzP1IlYihPfDdjJjwpdGVXSktFV1JrCnoweVh+ezBMOT1iNlUtQXc3
Vnk/eEdNKD4/Z1lPQkUxJENqKyFNPjtSMDlqekIwe2lxTTB4MCVBSDU0SCpsZWd9Jgp6dFdYd2dF
Vn1OfWVmTHE0Xkxqe01ASSpNRVFvYHthdXVtfHdNc1pwMkYqO1hkZkh3ZGIkRlV7SSNfPG4/YWVQ
ZCQKelBSdX1rZzUhcmJkSVdmND00az83OCM3Z3g+T0RqV1lmc3VxPFQzMylrS1BKPSh3LXxTQ0wj
Y3lmXmA2eihFYTdCCnpgTU9sbVZ2SkFYRT99TlFjWnJRViZVKSR4UCNRJGl2Z29sKC1YI0dqIzF9
QXQ7KmlYaT12YEM/Ung4X09CWlpvNQp6QVY7LXpXTyNmUnNxUTtZMmV4WGBpMzUxa0pNOURUNmlj
PzI+Rl5vbDE3THQlS356Q1BFTjRBY0JBMk5lMElDKWwKelBWb0FHZy1BczVjcFBNJElEez82QCpy
NEpqTz1fMmo/dUU9KUFIK01hMnJrKXBGVnV+PFlTMV9zQlF0ZjZEa0sjCnpARSk7YiREcWw8MkFN
PVEqPHpnU3ZlQ2xfNUN2ZXhGI3t8a2Eqe1oyby12cFRnTVd6YEN+dlM9P3FIQlMwRHhFdQp6XnU9
WGQzekgwe3NzSX5sYj1BRDNjV0UtQXljSDUmMXByMUd7NnJ6fUoyX2Nxa3FlJkohdlFqJE9DYmRV
SyFwTjgKek1GSyFZaFg1M1kwc3NPO3trUXtXRT9rPHBYUGtKKm08K1YhS3E+X3dEaCtaVGR6JVUl
KD1pS0dRUVJsd0plS2V6CnowTDYwTmZYck9wM3ByMFJtKj1zJG9JXzZtbztYLUQ4TTE4KDd8RkVJ
RUpfYmRwaUd9WSVKT2llOUFfaEp0ZUhgTwp6cjdieWBmUWVGZHJXMVB7WTNvWFIrT15pMjRzSjUx
NldkTTVPd0V7cll6Kk5lR15GWnlXOXJOezZCJHZYKmx1SV8KempzY1dscUJ0JnE8LUE7WTBwbXxs
SVpBP2ErKlpPK2oqVUIqI2t1YUs0MVRFazBHOHZWJkFnODJfMCQtR0U8RTMqCnokZEJUPGsybEU/
YEIyNkhQSX1uUEpHPGxlV1ZyN0lhITJlKHkhbVZAYUNyeH1UfS1XXk9RfERsRFliPHhyc2x1fQp6
UjFGcD8makkwQD01Sjd4QXBqSTRMRXAxRDhsbWROWClXYTtKLXM/bmgxJjlzTVhiU3Y3U0dBOUpP
KXV5MGhgWU8KemxuQj1SOHZgZj9RVEc2JWM8JGUxQ0pPJXMtfFBYOT5peTx9SXxFLW95dyg1M3lf
LURgQyQ0bCVUcDRYMT9kel4rCnpYe2dMQkQjKHRGUEtAeiFATnVfT3ZvTy14cHtKJDNPI1JmK0h9
fnc+e0tBJGtUWWstSylOOE4zQ1BGeW52ZmcpPwp6JT5VKylMY1NzUHFAKD1CZWNOckd1TiolNmtN
Tk9IYXVJUWxaRz9xeXo0aHptaXgkMTJyKyMhPFZ1WGBVTnRSIUgKemI3ZkA5UC1wdHMpJDtgKGEr
Q3FgcFN9VX1ediFvT1AlYDc5RnBlfHhscjZ2JE9MeHBYRj9oTkY+MjliTVRYemxOCnowOGNAWkAy
U2ltdllpQjtudmdneUY7NzNmYWw4YFhzV2lvZTNnV2NFSntfZUxfYnVxa2ZeX0VxX1F6PTxnOGNB
Xwp6SERvPD9CXzJSb3VtKE8hK3RNeztIe0JZOWFyfDw8a21eMnJhRnNxbU5HNkE4dlh1OD15YiZS
cFZDRTIjY14lYSoKejxCZVdvd1l4ViVtNzFiPFFIOT9zTD9TPmd1JChEQTBmI19GQFlCUyQ5Vjdg
fT55RV82VGBIVCNBO1VHcjh+fUphCno0QVZGTzZ2cXtTYVQzRUBjUzU/dTV5bylfUHYhbndEY2Zt
MURxYzJgZ1c2V28rUHs8MzUxaGNab2k/MzNXSlBDRAp6MnlDSnMwWUgqWTl4bDFhU1NsNihEbW9u
ST5uTVB6NyUpNVcrO2RrV3oqQk1AdnJnNlVDeztsd3QzdWMkMkVtZUkKeldhcCFCakZiKFptUn0h
KitpPEcqXng/fVZBNDVEMmhpNnRIejVvbXFPTCNERHlGKSY2dmR0bFR1dER9I1MhOVFDCnp1K0Fi
VW49RXAqJT84c3tCbjtnfXglfXFlRSpLflZSbEdzUnt2e1ZNTk54Zl42IytuJWZNdnIqOEIxX3Jq
anx3Zgp6YVMmJX4oPG45Nmp0R3s5SGBrY1cyP1RAWFY0Z2AlKTthSig2XzdYWDl7PnEyMU9PQGBz
MmEpU2F1Q0hwPmM8PX4KemJwVTJPRzAhLSRWWVFRQk85RTVLYWYpSXw0PEhJcjFeSGw/aXR1JFk4
Jnc3eyNUJDhMMXJpRy1GO0l+NGdjcXRxCnorQDNjWmRCWlJ6MkZ6MUxEUDt0dlYmZ05JTipvPWkj
S0RYVD9lKGFAUDZJaCYjdVE9aU9rTkpiV1RfV084cHIoVAp6eiFxPVh4NnpzUXUxQ3psSSNiZChX
SkdxX2BWQGx1V2NWOVVicGpJMF5HI2B9KmI9IT1OR1hUPkVkZU1PTlpRVUsKellfbGdAbzA9MENN
QiNWWGBDYV5OJW0jcChMan0lbkJkUG95NW9JdnRoZ3ZOXzZyME1+NDs2QGZDYFomQnVeO059Cnom
ZmcwOyZsPV4hPj4tUlpuKn1DbjlAUm0qWVlBUWcyNUtSLTF9fnNHLSs1SHhpcyFJPjY5dmFfejw+
QX1gQ3hHKQp6S289fk9eP1FfeG4xdiFwZDM5LTspV2dQaXl2X15RJURWKDlQeHpzRnIkRSRISmB8
aERlKyl6VWwkbCVAJTEyLSgKejd4UnBVXjdFVnZDQ2BTKyNBJStWRmlAamxwaG5xOTRoRCppPG5q
P19hPlkhaiN8YEJZMTBeNFRDflZ7MXhyQWpJCnpXSXwxe1B+KHJYUCpTV3h0dD1BPzlpUiRrQF44
ejhsQUZuZXA8Rk9mNSh+eElRMCMtYyRBKXEtMDhsNyFYQWxKZAp6MXQ4VCs0eyFKNWJuaUYhQ3dk
WFUrNENWbClTZEFRamJsU1NSWHRyVCNucHx+blc7cyZAcVFAQGZmaUFyOTtkeHIKenRoTzIlWCll
X2BlU0dHfGpUYD8yQGJxNngwaStaZXNjJGl2RGBKeXBlPCVKQ1o+amhLbzxAOzk9e0FhOEhobGZf
Cnp8R3hWPkBFQ3clbCNSYFZVb016QV5BRm19TjlJUWQrYlUtemRqIT1LMjNQakFDSmtMMyZWUnNC
MWB9aCZVO2kpdwp6Qn1zUkplZDxyNFE0fEZheDVaRkA2U25TWkxqYXkyLUxkYmZsJT4wJDIwJT4p
WDZEKmNTKCtLOyRMVWdMbUA7SUMKei1UM3NtaVZ8IVZQJHQtP0xSYWBEZF9udFRvMkBfTkIjbzlM
YVU5MCtuKmNfNE09UVpUYiYweGAkI1VSWis7NHxKCnpAQyMrZ2craVlubjVRZF5vfSM2R0YhIXdK
cztscntCfElHSSpmdlRxMU4oJGZLYkchMVZJMjJFPVVwQF5DZXE9KAp6RCkhdyNeKypveU47eVYt
PkJtRytDTm9ZUGxGMjIoZ0Joci0wSDZ8YTF6QDlVTCQ8PjYxbGk3VDRMUFc2Q2U4aE8KelgjZWA3
YlFJZm1zPmlISlRmK3hZMXJnK0FwRzx6PGBKeG0hQm1uLU5BYXVXbGxtcDBNVF58entpUXZkK2N3
ZkxnCnokLXpAMyU1fllPRWUyKzlwMl9sRWRFdX04aTBkTUZhNlRPT2QodjxAQFo8blF2NEsyVDBJ
MEdfME9iZjRoPUcleAp6V2hTLStyTG82cEMjeWBYKTxhZjs2diFEenhkMjNRRm42PX1pNnVUYXV1
bzFseCRzWnswSipecjw7fE9ZV2lZMlIKeklEO0cpMVUzcHhPIyE/QFQ7OXcxTlNxRUgxMz09Nyt1
TkZEbEF+MSl4aU5za2Q0RGV5P2dCdUMxMypSYzA3Tm02Cno1QDcwa2p7SlUpQUhsKX1PQjRCJmt6
Y1FQajFFQ31BY2pGI1kjNm9+RzRUPFFePHB7ZDBmQ3VtK152VURPXzt9ZAp6NlIjQlY5Um4jbyZ6
RVBYdzFhVktnO341PW5DTyFyJDBsSjVHZFZhSChzMmx0K2dNVlFmZkNnbDktfDc9PDVYO00KejlJ
VUFrI2t6UD1walJeM3hfQn0/NkdKTTghfENWX0FLSjZkayt2KkghfnlER0c+X0BRU2d1WE1fUFIq
Jkg9dCY4Cno9az9eVnZEe2lEbG5XM0EwQ2wrQHtjfjBKXzwmKUYjUkAlWWlhU2lEek47d1A7Y2R6
V2ZYWUlaT09FM2xmVGN3dQp6JlklPFpFWCtpO017KzxXbmdRR3B2VDUtYXspUyNnS0djaCg0ZStG
fntkWilye3teeD57dHxoRVJaMjlVMl98YmsKencodTRUX05nc28wV303fEJqcSloaWQ8JDx4OzFh
KUZAUXFTelpVI1pfeTd9d3QtTVUxP05sQ25pZHFaNjlBa3JVCnoxY3ZnOTlleFBkPGdMOEdOZnpv
a2ZSWlBhfE5RX2MkYW54JTV7THFEVmdTWGJWS0RDbDZWPjxXbyRFY1FnWHg7TQp6YTtmZCZnfjdW
Nj8kKG1aYHMlRkl7RVI1P3M5K0JSTXtEQ0YjQGM3cz8lbEN0SFlCfGwtPGRKdkg9TDZ3X2VNPU8K
em5lI1RnJXcreUk1OCN4OEJZcShxdDFlYXUqIylueHRvKG9UMyswaW03NHI0Kz09SkZVPlRpdyZ6
Wjx7JiYyUkEtCnpmUmUzb3t1fkpWUzQ/RkZgQil4R2pDNkRAJmgqWGdZRTAtSEFJIU44RSZLfXJz
SVB0cWZSZmxKRGY4KTRaO35ocQp6P3IofnVwODhQdW9gTkxzQnojWGw5ZUAmUDxEeDlzbVd0N0pt
bEw1KnNzNHdOMSVzNztedmZsfWdPTHNZTTQ4dlMKelNmNUBrdX19RyRATmRgdzZvdTM2ayRmMShU
VHNnfk00dXdfPkdLYjZpVUA7O1J9dTYhUnNuVmpBaDlja3R+QnxJCnplejF7ekV0dD1iUCtqT0lE
Zz5qSWZqNU9EQnFHT3ZlRzFiOWZZUnBCJSlkfHdkPmc2dT9AfGYrP2RsX1RWJmV7NQp6YntTfXom
cGF5SXhXbCNgMTFSQnBmKUAoTGFaVlUtaVB9TzFvKlBrOzNmV0cxOXFBcTFpTnhzUmtYRnZwIUNl
LVIKej9MNWlNSTB+TXBXTyQ2U0RKKzxRMWRfSWNQKzVYQ14+OW8/Rm58OyREaWxCfXliQDZjJW5r
dThnLThYdlZ2eTQkCnpBTVQzZDttZ0J0YEQyNjJMJUNiLTNCejQ/bE93OElEZ28jbzF5RGBeUTEr
MTE3JnV2KldzdFJMMkhCY3RrVWJiOAp6anV9VipuXllfcXMxNlpiOzBMQ09uSlg5amRAeVdhcHF3
RHowV3xTcjJsYGUodH1Nb05OWjdfUCNKPnM+QjsrI3EKemh+bU5BQnQkaEohbDA1b2EzMzJ9WDFr
Y2REI1o3eUw7eHMkWkRFMF5kWFleOGp5I2MxOVdaWiFrNTI/SG47UGpjCnpyalB0TnJYUWJsK3NX
NDwqZjl4IUZgJFlJPVhAKiNtQnU1dUdafEdiMDg1NDBvSmAmJFZoJmoxJUxlbjU3VCpkRgp6NzRv
JEJgdjVPbVFiLVhiPj1lck9oQGV0aUpFfUtPcClPVUZAQGo2VUR1WTgqWHJUO2QpezVmWUwtNzVB
b2EmZmAKempIb295UzVIRmFPOSZtQD0xJHZJVDchKTtyUV5GJTN2XlZBOVExVzUrU1B6Y3FLdjZB
I2Y8dDI7RF9TQUpaJEElCno1LWdNfXo/OEUlSnFvNiQ4IVQ7bzFXVms9SlZTNzgxX0N6STVxPz5P
TnwoQW9XfSNMQUt3K35FNWU0anRzKWsxQAp6LXtvekoyYUR2WHt4VFd1fEQleGN3MEhqPT1KRyNe
ajN9MXB2Z35HNHgjIXpwcDV9dnZkSXZ5aTlAWUI3c09+WUYKemFfISRqKGVVZE96JGBGaV5nI1dZ
NmFvO0g7RG9MYClWJFFlUH5Id2hJb0dfNUJCNU1qcCN0ZElQaTgyOCZPbVgmCnp1d3A5dF9ocTJ1
MEUkNXJxYE42TD5RPikza25fSE5jemZXPjJlJGA1eUZielkhSHZ0RUheeFI5RjckUip3bGBMMQp6
PWpFbkhoc0godFNxSjtNREJEe1laODFFbng9MjsmQExNZUZ0eSF+SnV1PHwjN3t3NHluYU54Y2xs
LUArVmJrUn0KemYjQnIlTEBYPXEtbzVEbSNyYzAtemtkQ3tAcDFGIWRIO2dyfDA1Y2VDRkorUyRL
YzEyJkM/e216ZDNeV0o5cSg7CnpBV0VKR15+KyFXQF96JEp7YXBSejthNURJXm1sfiRuX0ZaaGRj
P1FhI01FQ0wkaHRPaHEyTXp9Y3diRDY3SmtoUQp6LW5UJmFLM2QtKkdtY05AanpHRXRoME1scm1o
TURnQ05pSCF5QXAoUypIYlNRMS1HSz5QNkFJezdBekc4SCRCeiYKejxiflY4STQreS0mVkomfENu
QCktUiYzcElTK0ZJZkoxeHFEYVhpVW0yaVRgSSphVSpLIz89eSMqc0E/a1AjZUhXCnpBSzBoIXI2
dkdHVVA2fDtIJiFLbFA5TlZNNXVUP3tRNHF7KjZrbVJPMjtkMzlucGEhPWd9LUFjVXFgUz1PJWRD
dQp6KztAZk97WXRlJEdyVEUre0o9aGlBflo4aEFLaEg9S195dHQwfXh0O0g7YFNfOSlDYTxSeyo5
N3o5KjQzRV8mYHsKeitqanNfWS0rQ3ktOW57ND50SHh2UGl8fSYtP3lEaz8+c18+d3ckRk0+JkB4
LUwwOGZ9OCR4IzAkPmlwb2lEZDZRCnpmRXhJRTArRjswMX1lbEtBY0gzV1U8JCl2aWRpWF5fVl5n
YUtuVXNKVnZ3fllBTVQzZDttYnBDYEQyNjJnOHs2Ygp6RytZIXNJaWs3KzYpTHspRmZtZ0VBbWpu
X3dsaWNuMmRpdj1yY0FPak5mKlFIa2JefVFtP0Q8Jj5IIUFlO1FAPXAKekBkJHlxdVAzKFZUKWBh
SzB8Mj8+YlB5Z2w3UHBJbCt+KTYlNExibE5jVzJJK2c0eGBvNEJyZFgjZHNtUyg7RVFHCnp3Rkor
WjUzdDZiRHtUSGIhSG4pdmlyY2BQNGdraVdELTxJP0BAZV5tO2sxMGhhWEs3ZT5gND1iJWNvfVFL
OHA4Twp6ZUI3ciFodk14Z3BFbSNpNTV1NDtEd3RVKjIxVj49TFdORXVTSCpDVkYmTVdEOEYpJjdg
OTcrTjY0PWlMPH1zZVoKemxYbjZZSShrITtuSkcydVZVPUhQN3hrV2FwUEpSVFE+bWN9ej5HTzF4
X0RFeFMzSkhDI3JRYkB1dEk5SkcwN3dZCnpqVGxscjhiRjc0eEZGciQyNGhNYGNJYzcqWCM7WE0y
NWFTUk4oRXUmKVNQQlAhekQwZ20pcWcqZ0Z6SmdwKW1FWAp6Qkk7bk0wSlNoRk80SmEhNkhMQDwl
NjNHZHUrMXoxa31BMEJCP3l+IVQ9anh6MHxyc05yQn5eKjIjblBuKVUmKW4Kel85eT5MTXlQcFZR
fjRRWXFIeCt4YERJQXVadmFIaXEqQXZ6KnU8TWhPI3lGSHozKkpBX0NeQV8oQGFYU2d6dTJxCnpW
OTBefkl5MS1AQGdXZn5sJjUpWnFmKVI/VD1VV21mWDR+dFY9JEQ5Z21NSyNgUXRTJiZsYSRHNk5k
N2VZJGhMIQp6bF5NI1ZPc0pkNGdPYm1hNGR1eCZsJjRKMXgkaWNWLUAzcHVvK1JaeG8oQ25EQH03
X2gjbm1vc0NUQ09tX3NvUXYKekc/UVBSJTdiRFZANSF8O2lrVk9ocHlWS21QMl5LWEA8JHsqZDdP
ZEZPZkl9b0BURT5sY2BeVmNLb3BwJDJlPGsjCnprbnw/e3pRT1Y5YD9tJV56azk3MEFnYmZgckVA
S3BoSSo/ekkre3okPk1GQW5PQUNAYykwNHVDcXI8I1V1JmslQQp6ck0mcFdxMWBpZkxlXlY0WFU/
eWZrKHdeK0BxNEppQnxpaG5eUnFxd0tkWVp2e3A4QStCSTZgeW9kbn49WXpSbEsKenVVPFh4LWBC
NVNgbTJvX207WiozT1AyeHhCOEh0eWFBby1uKTRmclhrMjgmLWBwTGhUelhMJEBlUDY7TzBFeilD
CnpaeXgqI2VMPjFjX1BrKGtwfFFAPk5tblp8KyYtfG1HTk4+fUZYUTZQM2s0dEhrTGZlYVNLa0xm
LTlUKUNUKU1tMQp6Z1RUeW9XfWhOWilnbWhqTXFzOFMrc1ZQeFBYVkNoIyZLJlEte20yM0pQcFMy
MVNlJEMqZT9AM2JnOTt9QFFEfWYKejZEbkpKJj83Z1RjVUEtZlVoZkQrLSg5WWQ9QD5sbXcleH5m
Rk14Pn1yMkNmfCNDMTJpIThgI3hVOC19V2I0ViloCnpObUdKcGU0OCskN3JISD9PbmVkKyMjT0xT
WSNheyhmUW11RVh8bU5AMEJ3dEBDVX0kWkpvVGtRdyFfQXFASGxiTwp6SH5gY2p5NnVGQ1QtSkhs
NnRSX3h5JTl1Y3d9UU8yVkhpaVotSnVOIVk1eWo1TD1+OVB6OCZ0UXN1WWE0ZjtmUE8KelklblQk
MDF8fkZYKj9KYlVYVTtSTDZjSnxpZ2JoaGN2IVpRTXdJI0RAPCNAS0JsYUJlMVN5O3JtK0BvQlpx
SSNvCnpAKEpLPkpKfCVubGNZRVN5Z316UDEpd3x1cGpfPG9ncHxnaCRyM0NGa0Y2PT5IT3AqbCpj
QSlVUWZXU05qVWVOKAp6e0tPdEFtZ3R4e3ZJQnRmYUR7bXN6JHAjdXtmUkpHaGt+VkhLOyNCczxZ
WlI+Y2B6NkxEbTtmeEtLeGMtdCpyQjQKenRqezRVYX5SaWctcWpnfmJXWj59MDRSU1MwNmFmdCQo
WVRXbmpvQjNvTTQ7fTVkKipfQUtXKVlIby1XYE40bmtqCnpwSFJHcENyeVlpeiNTJmtqe3pMT2x0
MUxhQWVRI1BNbnk3XiFnZGAlUSR8dTdIdGJyI3g7MjhXTFZgTyRhJEhiOAp6SHRqTWYqViZKMWpQ
PEVVNi0/Kko0YipwUjFAIz5RWGk/b3dgNmgtRz1OdzI7OWBPfEpqa0ozSG5JUipLdztzSykKekhF
Q3ktT3ZZTGZxO2ItWlBWOUd+e2FkVlErWnJQfXh5UDZjbH0qVWEkUDZJTDkycnJGRlVZZmlBSWNn
VFFCcSU/CnpASXloJFY+VzhFKz1fK140Rm5UYWlfbG8hUjgxRSQ5Xl5MSGA2M154QSRZbHZAa0M3
djt0ZClAbVEkKE1BfjQ2Wgp6TVN7UTBGe0c1a1BfRGVgSD5BR3hjVnZNckojVm02b0lham9LYSor
em5pfkQqUWlKYXRzYEhyeFAmRXRTM1ByPkMKelB7UzIzJXRFPVYwWjE5bHIjUXpvbHBCMTJzIT43
MSotKm1gYyNXOz5oNE5FfkgzJnVgYFNnX1g9SyQpRlpNP3EmCnowM2A9ZTA4YjJ7MWMoQkYhblIp
ajd4eU95S0RtOXBAOE9Oe3VJcER2K3N+Z0hZSGFVcEVpYjk5JTErNDFqUHJ+Tgp6XlZZTEEpN15K
az5FSF5NXzE9NSR5KzUrbWcrVWEqU01xek5xTzNSWFhIeV8qOGoxNkwtPUR3cF9EPSMofEFTM2gK
entHdkc2WVhBTiV6dmkkajZfckNYTyFRUHtJNV9DZEBPNXsxOXFXZkxkVjQkaytSRG82PVQ9dGd8
RWpGS2BDcV9OCnp7VnlJRnV1XlBVe3gmeDFKNzQ3ZyE4ZHBlSyo+fGRrTH1zYDh4dz0kQDdiOXRw
OXVHfWJnQy19JHYpcW1LNzQmNwp6fEd+dWghY1Z8Skp2KUZCdT8zbFFXaVUtaGNOYVFnOUIpQ185
aStSfk8zQyptMSFuJCkwSUpYI2d+NShnbTE5ZmcKelkzNVh2cGlrSyROLSZPWnI4cnhGQ21YTyZo
IXgxUGdYaDhybnxKVSY0UTNwdDMjRzwxLW8pT2dNN2pybSgrNk9tCnp4VSVJVnE+TylmdnlVRF4m
YnhFMk5YbUt3YzthJjVeWUJhY1hSRTtYdzNuJl5SKjQjelk9Xm1FcENxezswLWxRPwp6PFVWbm9M
PXVNd3FRYXNRey1+QntibElVTVcrK29oMEh5KDEhWi10e3BeVCVWOUpxKCQzZ1dpSVBxbTRYP2Jl
fjkKeldkJktDLWkmJmQxR0g8TUdWUi1mWUBSKCVxO3hjeGJtMzk0Rjs1ZDRjWWRDbj12ez1vQl84
JCVAc3ZufHE7RTBlCnpKVzcwSjxJbmpAdllFVWJaPUIrYEZrU05tO3s0PmB3dyVldHdeaDhhOX5o
I14wYSleejk5JDBYNkpPXnEtakdaMQp6aEslNHdOTzhecExpWGxhV1gla2VGJkhRPzlla2MrM1N6
SmtteEtDfU9hTFU3PEFVJmJvLWxwMGdsN1hGPE8hQjMKekR4I2lwNXQ1bUsoOCQ+Nk1oWFR5ITxY
OXdFU1ZaKmhfTnVxQX1pQnV2STZzRDRlKEBSbk07bFVTUFk9TjBIQXo0CnolZ0dsRTZAd0BxS2Ip
U0xOfU5XQnJ4PWM1OzQpJXFuQVBHNTFPUil8JGdsc3RNQDB+KGNzZEJMS3xVY3EwQWBwXwp6MElL
aStsciNxY0QxfnU2MCg/I14qK0k2OWc/VD47WS01fkhIbD12UkEhe3M8JUZXRUVVRT9zRktsbVB2
OURKOTAKejQ8a2VBPXFqbz50Myg7KjRpeFR8T3JoUjZjeD5jakxEbWNnWWJieTwmVS1qITB6QFR7
NSY5SFdrTmVWclpPKmp1CnplTT1iM0UkUT89YjIyeihMRWRLT19eQEoxXit+M3ZkO3kzO00lMUw3
MlMzeiFvdHJHTis9aGxaLVhQJlBeMnwxMQp6YHchYyZQVmIwcHMzSnJnUkhOI3BINX00PDNfMjt7
aVE9NTd5MT9aQ1M/XkdrQHRkZVdkUlo5Q1JXfD5ZUEgrNTsKejA4X1JBUmVvbipwK3JjMUM5Ym1v
cUduU3E0KipuITJOKjhMdzxyekZhSV9KbUphYGdhIUNIQjFnTjNwfSlRSU82CnpreDxeNHR3VmtB
WW5eTF5ad3BmMXhiUTszT2IjalVJZT9PeiRsLSQkQ1VPTk1JbWEzTm9kQnFOQEl2dTBmTU89PAp6
IVItTVkyZmxmRGQrX1RBdys2cXdjV2RDfEpKJCM5LXglK3tjN0NMM3NIPnlBeHVHVTZ3PWdGekNf
M0VOKVdea0UKeiQ7c1lnbGQrIVdKNCNBUXVmYTw2IXM1az98QkpXdlNre3d3PiVIPWBTTjwycjB4
PVd5NnIwaEgweDlIZy1qakB4CnpUKUpiNGpfRU5SZX0zbDdzWHkhS3NtLSZvKE9uaGo9ZVJqSklk
RTVRUj9OUG5fPmN8JC1wKSYxdEBMTFo3XndXXgp6KVMoQEohMHJFJkAzVXNqdHA4OCRseEg4Nj8y
QXpKT1VWSiVsZXwrdSRgfCghXmRSRXJ6Jn50OCZpc1FIc3BSWHwKenw0UXhqLWdrXk5rTD9RWkZm
XiZrNEB3d3BPWVVKRylPQnAqT15vRyNkNTVGXklyXldnVGQ+SyZ3Sm5uKXZZI2FSCnpQUUgwfVM8
eUktJSVASG0kNksmPCRJX2kjeldhNnQ+UGZPND1SWUN5TnNKcnZvcEBadU5WMSkqdlpYKUAmOCl+
awp6PTJIVUp0UnBwMEtlMytAOU0+WjRkallgSEowa2F+ME4jdCpBVj51OEs4PGk/M3J3JXEqIXdo
YGdKNFc0X3Z6ejEKej1MTH1Camt+KVNOfDZiTGFeVGlyQXhFNDg7Mk93THFmWHF2SzVQP21xfjFq
dyFkeExtRiNFKXhnZF8wfWJ0c2FACnpXNmtDdWMzX0VVbDVkWE1mJXx9TWZAeiRBOF47cTJpYyg7
bkxvQF9IKXRrSEB6eiVUKkFzbSNza3BjYGhsSTV1bAp6cTx3ZlZvISl6al85NHtwKm5WM3VQcmpz
Y0hYNnE5QnJxKVM0Rk4jO2RLNiMpcThMYkZsWn1nV3tiMFRwZ0xReFQKenUjN2Yyb1VKcnthSn1O
fio/JS1TeFVKdDQ/JkhISVp1dmt1Xk8rbzYmY0YlUkBuZikmK1oqem0yVGI2dXdxU19CCnpJNTcp
bFpJU2BNNFNZfkl5MT9WKT9fUEBkZ0JyME4kNHJQUDxUKz5ELVZPbEIzTHVMYXM5M082MXpAVDJ2
Mm02VAp6NUVUZFQ1Q0RlOChZQW1MXzBxKGM3LVcjU0YraHxWKmUqLWxBQj5jPExsTD5UbCNuTjZK
fS08bkskSClGNUQlWjgKem5oS2wtXkNicEEzKiNwbmU7bWMme18rWEg+QislJDBZNn0jMkZMPk44
c3JtKig+eV81NDVZd0hgTGV0eEY7Wi1uCnprSHl3d09ifGUqVXBBJD5NTiotUzMpTDl1UT0xMDdj
RXtHISNodnFMLX5nNTxQNWA4OTlIKHFVR201dGZwa1ZtdAp6ZzFpYTwpVEJVRE4mMURLNHN4KWNN
LUk4I3JRXyQ2S3cydGNOVkBqezFMYUo2SHJVZ18mREx+c3c8VEdxbl5DWmgKekY9WW9EUWRPSkA7
dGl6RXlpcGptJDcob1c2USopKHlSamVZMHdORShHdFc+MSgpWXshKT1gMVNHSkY3OzRgVnJeCno0
TGxiP3g/Pmg8d2FnRS1qKyY3PVVWO2pqRyVSTz8+YW1wZjVAfTsyUGlAT0Bhcl8tKnkrNHFIKHUp
Knw0PXRJPAp6ZT0yc0ppRWBtdGglPVppZHs5TCRHYnpYSkVkajlqSFhmPWtpI1UtYGxMZzRYTFBF
TCFabUw0OEs/bDUwe2c0e1oKekhGK1NgS3J4fFF1YDc9fF4xQEsqQjQ/cXY8fFJUbGs7czRJaz00
NWxBcm5mQlYjU00wIyhQcEdsKV5VTmxRVz9kCnpEXy1RQWNvfnpNYz1COCptaHJAbDtAQGM1e0lF
PFlxPl90R0pPKXJRNUglVFRwcFhZOEdOQll8VTBCQkJaOUklcgp6Pm1wVVYrYGFtIWpLXk42eUhg
MDZZTzI7bm8oQ21tTFBARlFBYD9vc2pWR2NFPGxBX1k4K25xVVRuP1pmMGEzakMKemI5PDJQTyQ+
bU04djVlaSNOZW01dWt9Qj9kYTNLPz0oKk9oO3JfYkwmZXBQJGBzJSNjbEtkMyslJW11VHMxVG5j
CnpacTdDdk9ieVIySTxSeHw+JnBAUyE/R1NMVn5VWG5WelhVbEhKV0JMfDU1eD0oKmN5fFdzXlBX
eml8Ry1UMnpiWgp6PjFuPkBVfUx6KCk2QEQkTFJeNFdhZWtzemJ5PSFnUERaM3JTZktrVUNtYTE4
MV9vKj9QOTU3YlhWYSF0Rk0oZUIKej9iNC03fEFRcXkxX0lOfVUyPkNgO188bigyTFEjST9JZWk4
NH1SXzFNWlkrX2NnSV8ma00zSVFYME19T21nTilMCnorbkNUZyl8K3xiK0VESnBvMV4oKEpRSU1E
ZDdvSW02UFpzUGFuIz0mTWNwI3ZjdkQkYCVyeVFpNEFjKDtRMXhKKwp6PmhqcTxaWkJkQmEtKn47
RSR7Pi14XkpUeHRTdntHJW9ZXzg5TUQoY2pVRnpAWnRRJjsxc0o7MDxSZlpXP3hCKX0KeiooUSFF
X35fUUtJRFBrZzNCVkpBR0M4Z1FHUT88Xjg4K19Kc1NDTUhPJWE+R0QhcT9ZP0Q/V1BnOFIyKEFy
dFZZCnpUdXZVM0dVRHpvUjc/MS1yNTBASF4rMn1rT1QoTDNgVmxkTVY0UnFCOFVtMFNmQHlwUkFn
VktkRlRtM19EbmhfIQp6bG8/WFNSa283S3VBUVdgPm99ZCpyJGZnTStLP0pkO3w0bG1XTm5jSXUj
Z1VPYishT2QoeEJfam9kK2dxWV9vYTgKelB4UlA4QkotQXc3bW82Z1VwOUdVdSFHXn4wckBFMk0p
QUkwMDdzSnBAWiUqTEhmcjsqe057X3RAYzxQOz5iP2M9CnpAZDFHSFYhc21uT3dJc0hfVjdJazVN
PX09TipfYGxmUnF6aENVPncrJXY1cGdmU25tTFJWPz5xZj5we0MwRXopcQp6MntOOGFGJExIeyVa
OGFjQkR8aVE5Zzlne0o1YEw0ZW1hO2EwNFZjWk5QbD1OZkZ+RVFQd3VYejxsem9xNl57JV4KekZf
X31obGo5RTczKipKWktudnB8OH0/WkY7PVc/c3pfOVYpWW5+Y0R8SlJLXz9tc21FWWpfPXM2V3tA
bTx9bjRQCnpuNlk5SFIpakNncUoxK2MtWHsoUVk4Ul40SjQxcz9Uan42UF9pMWRgSjlLSURvNzho
KUhDM3ZlcSU+MW9pblJgKQp6RnZrU0VVSXlPOVZBdlF5TngmJjB4TEVXajJLI2FCMTQyJiQpKHky
MT09OSsqK095R3pjQ0t8cCg1M19KU1k8YCgKemAlVEdDJVllZXticFdDYXMyLSk9Z040WTVsN1ht
ODQ1STQ2TUIocX5CMGgrNFZ0LWU8RG02cyEkNzAxZyVDS0szCno8bj07R2RBMHNhczB7Jnw5ZyRx
dXZPJHl3KlA/MnYqbkpeX0lBPiR+P29+MkRQdXwlYnpvUnFUZXYxSyErVyFYdAp6cW5BK08hbHY+
IXNuR2M/c3MjSlEwRSReRF9DbHB3VkkkOCN3dmwpQ2JxWD89RW94cDtQJlFsP2FnLVhlO0wkM0AK
elJ4Tzh0ZmB5Vk5sKkBDV3FfV31YMFAxbEQ+aEJYa05tM3A+UTI8ZXBeOGxnLSolJFF7aiRob2xG
JGhfJnxLWkltCnp5JVUjNUpJe3t9SEBFazhSNzJMd2lPRVFiYk97T2EpTi07bitqSHtSIUZOfSRV
ajQ/cUA0b3hPSk1YO25PQWdfYgp6JVgqM2RvSEE4UmsmKmhWKCpobT9RMVZWVHJvI0F6dGFAa0ZG
TGlXT1c/UHgtWTs8P0FJK1l3Qlkqa1U1OHFgI3EKemx+UGBrOUdhVUU/VUVjSFU9a2hhcjRrekN5
eFleJFlQRS1sKWdvXjx0R0FyMmo5KVN9KSVwRnw2RE5Ma1l9Plk8CnpaezUxfWZBaXpZKnNjRkw/
YEo9SWxFbkE0Wk43Z1hMZ0AjKylXLWw2ZWt1TmE9Y2QodklsT0RfNShvMSRoWVFsWQp6eX1JaCtz
eipBfkU/KndWejYtfGJ2dTZRTl4zWTdxZUh3JUppRExfVElQKGVLcnh3SCh7QzVEVEk8UVoqaCVJ
M0cKemotfFYtUC1STjsrNlJ2VmZRWkZITEgoenJMWlNxbmNsQUxxc1YzfSkwc0poQ3Q8dlRsaGhq
ZHcrPD03ZjQjOy0+CnpWNHB3KCEhJi1ZQTRTTF8+amBQYTZfI01Fa1EpT0spRHBkd1k2SVVGcE8k
a1NXPHdyJDFGOzNLMy00MUR6KkMkVgp6SHUwPzlyWDFKaFIye21WeD5IWGU8eUBIdEdJNSopUHsk
elVGJXh3Ujk7aWR1eDtwP3IpaDtVWkxST1hhZGgkNUMKemc+O2NKekpMODtJPUotPTlZMGBCJHx2
MVBTMkt0IyYwPUFNPURlcFk3XkhJbm9LUX4hME9mXihVTjN9QWRMYm16CnpeSnhQcWpPOCNNa0Vl
fE1gc3Fnb0U+OWMpRWY0dj91PGFvbVB1IWx6bn1ITGFpQH1wTzhAJk9iSk92QWRHOyNuVwp6MGl3
VkBGQFVuZlNRfD09bHJfZkVBZFNyUVFwaSp7bUNTSVJzVWQmZSNTezxrUXlIZ21SfU43e2A0Q1BJ
UVdEbm8KenkjT3FYXmZTT2ZySVUkYUNZaFZDYmU5TTM2VERZVyNnT21kckUpMUhjWXZQaDxBJSVS
PEwtKjw8PkxteGg0R1kpCno3bWkqNFZjeGpqK1hjWGkyans8Z187JH1XelBSMTk0MStnaj8xRTZ6
OU9oaj5GJi0oRD4+NyRxUSNZekkjKiV9fAp6Wm8wZkBBemp8X0hlQ1N3R18tUipINkd0ZGN7JkNa
V2Z4MiMwOGFyZm5GMV5geUJHK1dILXJIYypyI3dUQnQjO34Kem89eFJgVV52fCFeVC1AT2syNURA
PkJ6MjcrUGxkSTBMcXkqRXdpUiQrc3NIJCRxLTVBSTxuMD9pR31LaWx5fE9OCnp3d2NGTFVWe2Yr
Wmc1OVp4ZVd+IzcqSj1MM1JRPmdxK0hpIUBJenRJMF55aHk/MWMoXm0pY08lIWU7VT1mVCg2dgp6
ejB+KzRVPXRzTCFWVFhkTTtPV3QwaCU8aW04U3dmbHFTSEc/ZVJZZWlIP156dlRTRG5JM2VOeTk7
aXxQczFtU0gKeip+bz1yaTlKYUI3NGs8ZnJOOGJCTmFWOC1ZdyRqMDJrZlRHQnowPVpHb243UVcr
RTRnU3R2Kygmakhqd0NJZEFjCnpLc35yVTFYKWlFKnI/JkpBS1ZgS140YFNvcj87O1UtMjslaWNJ
a1pFNVZyTWRZYiRjbmJGPD84bDQzKVJ5Z2VLYQp6K2dLUWBHdEBiPTtNQSFqdWtQNWZ7dHZ2WiRL
ODY8UDNDeEt7K317SmhrP3t6UDI1WmVRMiNlR012VTR4WntmOUgKenpWXlF0JX48cGNsQG9fJVhy
RURDWD1TY3xJNXxHaHlzeylVcU9+RWZzSTNXZ3ApSkszb2g/TzQ0ZlEjfUhDM3QzCno2fnpoMGBN
RUxic21WY3lCNzs0KjFiRW1peDMkb21yPnVQSl48KD9DeX53NDMldWV3KC15Jm9sJHRnQWtpU0pv
dAp6ejh7Mjh7PzZ+RDctPTlfSz16KylVajZQMW83UyRGWkRYcGtFaG92e3VETDl7YUcqSkhfK240
UyY1ODUqcFdIJjIKej1FUXxPZ2xhOypvMFJhUkBYVlZjSTgpbFpsWlIlPzZVU00pWVpJe3IlcyNQ
czkxQD01X1Q2NipwNHFfQ290U0J4CnpjWmUtdWA3Uz8zbGhYWjxQYHR8KXc2TCMwXzdaWW1rYklv
WXNwR3lWNDM2QXs+P0l7U1UmNGpLbyt1MVhmY0wycwp6I2xXcEZraGpyOGZUIyFLTyNvSC1CQ2Rl
NXB+bGNXZjQpZHQwSEJXZVVET2I9M2ZuPThzbn41RUtJUCsrRXdYMFYKenEjQSl3eDZ5ZDY2ZmpS
WVpwKjEwd0pTfEFgQG5YY3FNPllNOHE5K0NpSzdjSjQ0I0l3UFFWaiY2akBJUEB3ans4CnozRTJy
YldoOzRWWlh9YXF5WGZUaHFxS0V9OHR2SStMYHNMOD0mWDdtV1R7QjdEVCNQOSREMUJ4N2pPMyo0
QytaLQp6azxnNyFJZF88VHJMeHxxNDExN2Q8Qkg+eE10PVNEcWJ0REF3flpVRm1rKTJtZEMxMDcy
QVUrYEIhTVJuRmk+dFYKemxlMSpVaEhgdGJPZzhXPlNweShoOGw7bTJ6Pj05PkR3JHt9bGFYZDND
Vyh4N1FwZzAtb0lBfG9AdSljfE07fX5tCno/SyFIaUo1UC1iN2Jwa297MmBGQ3RTI35ZR0ZrNCE7
SXk0fTBsWklPcEJ6ZzdxRG0kfjZheSo2YW05SzB4SDtweAp6JHc3PClmUmBBXmVgMFhqMUswQy1W
IVV3dityfUgkZCpnT0xXUEVUeGA2JUFzMmFtfVU7Rj9kTj9pbSMyblNfcVYKejA0bFB5TFFEYWVR
VyhVfiFSdkgmPnpnI1heS0klbXhRclQ8NVZ2dHdnXzRYTkRBKnlNe0dCcFRZbSttWD85THVICnp2
NWhJKSFWSlNVWFBeKEIyTFFfKktSYXZxJUplbW9OIyRxXjlvcnAqOyRlNSV6USZkZ1pMPmhBdDEt
SXRedks4Mwp6bjk+OHhzWG9QdUk/ektvU09PVWp7dnV8Y2dyVTZOOWIwPHY1QFBkaDAzZk92ZXlI
KypqcChJWmlVcDZ3X0BKfFoKenNzTiVTREchRW5mVCVYYThnTiFyeCVheXdVXjQqbUFvaF4kY29S
PCpRbDhxQC13SWFCPkdZcW1aVEVgIUskR1ZICnpJUzteemhlMUBIMU83SEdJR3l9ZXZFYnBTXiV7
QWltb21mQENDMldYc1d8ZEQpbn1rNXVMS3tLa1A5VmVwKlVEYAp6c3dZbnxvdClYSVhAK3UwYy1P
X3FXSVIjckJIelkpZD9XNyRIdTl1RnNIUFolWVZzJXFZZmYkQ3JRK1kqdzhAYkkKekhOUGNQUSZH
WnU9MXxSSVFTYjg5U3tEKGhJWHg1VnpvRko7UW9AcjVZQVN8bXZWPG9eOGJ+QWdweVU3d0p9Q0E9
CnpWR3g4bzM4SUY8TikzSDtaKGBgSHlPOHpuVUxTbVRlWjElOXJFX2Z+Z1Qze3dVMlBSYjRZZFcp
ckc7ck8+QiYpZwp6VlprMVV0KnJGZFlHXjNXS2VUKUlZazI/czlvfFFPQTx2SWBRZyMlX0Z+UChB
QiFCaVohRypeRjZvVilFNzhuRGwKem5KPil6a0RaJH57cEhaITlnRUpXRFElQ0JfQXt5fE9OKGw2
RX4qKENzQlhEQHB7M3tRYz5DYlJeRyZVVHtnc3RuCnp0JWNiUSlvRD0kU3k3JmUoZjtPUHs+fn42
UihpWURtNTs0Ykk8a05NXzYtfGVnfHpwM3JyTVQzQklNXnx1JUxobgp6NzUhM0FsbGgrTWl+OSQ9
KFBJRWdAfVJ4Km5gTyk5e0tkbEgqc0FteFhYRU9eZmJfMX49PGY1S3NhR2I+PCRaKi0KeitPTUFz
cGsmQEJZfkZGLW8jY0l6KnIocGNhQjReNXhhNTczenwmNitwbFpOQVJjMmE0ekI4clZhMjUzMz9X
UT5VCnpSaWRtbiMmb1hlcXZJe08rTXFTbWxkemtISUNVSShIUF9sZz09TllISi03dCM2UVQrcFVU
TEtWbSQ2PVpwJlhHMAp6REtMIShpaDdGayNkLWloQyNlVHp6QVh7IXNvSGw1bUFiIThnKVVPZzM8
RF9zV0Ura3hwQlBnbEFVbVUzSzZ0Qj8KekdAY0JHRGVFKjFYUD41X3RkcSFuSSlRPGE5QUlpVlRM
fkxeTjBBQSZVJDlTRXVHYDYxWnlPbU4tYUBDaEFEfSZKCnpSY1AlfTFLUFJLaiFxdSZmaC1qVFEq
OzczK293UUkhcGdyVjxVMD11TTB0WFZhKEJqeEsyb3x4Uz9ARTlHajgqdwp6YXBCQ1JDeVg9Uksp
LUVWYUp7Ui14QikyZnU7KztabFlIRWYqfkheIWh1NFo+RGJMWUQyQklMLUZAUTRET35LfEAKekc4
dnBuQnQ1bHc8UGp5MXAkdFV2OCtrbTg8SUZyVWFCNkc0aHpnZitEbFoqXndBVTx2NCtBQyNKOGJS
UTZvN3B5CnpnNypub1E0RkJ1MTBjbTw+U15RM0t1YlE1MXpqPDJkfUowJkhnMzR5NFVneEpAeFhR
UkB4PHZUalRkaEpyMThZJQp6KTh9Y29vd14rSURfKH47eit8OXY3RGMkbFFHIVA+PD1hfFFsZz4j
UklrQT41P09SQSFjRmQmZjgoeU5KLVNlc2IKeilFM0lvUXdGJU9xO1RzJUBeSiEjPjY4bWxoZUJy
bloocW9HOTJ2bjxBYTVFNSFAU1N1e2psTmEmN2N1cW1wdVRmCnpuTy1MOHN3YjEkdjJaJUo3Zkl6
Pz9DSFJFRD59VD5sdXFxOEJ3SVoqaWdkSDRsMzA2Y090KyluQV91eHFYJUVvawp6MVA+SWxxMWFG
XiN1YjtfUUJUJWNAai0qVmZ+RFQ/UUd4M19AR1o/bFMwM3RGdSErfCM0Q1J1a3lkaWljZkVFYEgK
enpscDg5U0lGWSVwOCVlSU4yZlJjTSk7eWs0KnJweDBpcl5ZIUlvfF9nWXVvO3E5Vnc1NDQ/e2Ql
bWZSU1dGZFhuCno7aktPPTwtZEB4RXtlVko/P3JDbDkoYlhZc2pVRE5GTmpgWDdLKGZGcmFKUGJa
e3N9JlEyJVljY3N+ayZsQjdJbwp6bjI4I090T3BRdll4dGBOeDZYZmxfdll7P3d7SHlJeUshfmsj
P18xNj1nJG9geEF0XlltREg1eSNIT1cwK0l6WksKenNUJTJALUZFdTs7VXlxeFVVfmNOd3x+cHFk
Sz9XakolcDJTaGRrRighRCMteXlpd2xAcGtEYX0zak97dDt9PmgqCnpkKypQeW1NeG9tPGx4VExW
TEAoWjNpOUZ1OHRaZFFoeCk1S3U4bnRHeW5DemYmVyk+YCpUJkl0YjhmSkB6bykmcAp6ek9nenp6
YnIzNEU8WmlvRD4+VE5KVCV4ekJSSjZFVjQjPUgyMldSdWNmRExxPVF2dkZ6R2BRdF9ENmt2XzFf
I2gKenZpK0JQX05ATio8OyNVfXtyX1BtPj1gJXR7PXNuNFEoeHw1MEUqPyNTNl9ZZ0tqK1ZYYEh6
TT0jfSp9bypfPGlMCnpAUU1adClpQmhTZTFVeVh4M0d6YVRxdlpIUGlMU3wqfjA5VFoxZTctMitp
Y2F5Q357SC08YEMxX3VtN2NJQztEKAp6K1hqN2lyYnIjdk1AX3tzPGtAVlpYdi14T1l5SishbmE+
Zn5Qc05fZzs5SkBaeCRGcW9Cel5ISV8ocGRlLTlhSm4Kekx6dTw2X3dHSnFKTylwPDBJSUlIaGx8
eH4tcUlWJlFLZW80VGVlNFVMe2BsVHNfXjF9O0NaYDhrX0ZQPnQ+RFV0Cno3fj9rfS1PWW14aGFf
Y3FKR3hSJVA7V1h3UX0hdTxDOXFIb3BxUGJYNVhEQ0Yld3NUP0FFTFU1SnloWmt6bjBaRAp6dlF5
bmJyKzRoNDFNNSVGX1NISkh7KFdvT3lVaGN9QGVvd0NCcGBlOzhRVzstMDhROWZsWXU5MWszNng3
PU1EelMKem00T2NmQmxOdkYhYjl7ISN0QzVPTiNoOTZHY3w9Y0VnJEp9Q3lYPDEqa08yTSZRJigt
V24hPjJlT3goR0t1akp2CnpCWU1FbUJBZV9HYzQtWUolQThIJCs5X21zNzlkSV41dmtabzt5aHBP
MXNfdSlSYDt0YWhwRHc/akN5OzxYP1ctYwp6SFAmQ0NPak1XelYkSShSe3Zlaj8+O2F3fTBIJlBt
aXZAXiEpXlRDTEJfRGc8MEY7Sko9K2VqXjNtXj1xVTJ6P2MKejheLSshPEFLWE9hSiVtc2NMeDkh
aks+cGE+aSU4O3JNYHxpNnlUVWFrJmUtbj9CR3AjY0dnc2pPczc2PFpDPjN5CnpocHVtWmdUfVlL
UEdnJjJxeEoqS3NSJX4kU2FTO3N2R0YyNXlKJFFRKlY9SG1wZnVoSEc0O29HQkFlNUx5cygpRgp6
SWd9K3JaXilDTFBMTXRFbncrYyk1amx8cTVTMm1OWURnK1M3RHp8LUFsaEtOSih5QlUrT3llfGJX
VTU2aGxMI18KemBaYGleajAzZX5Jblp6IVdVKSN8ZkdFeX0wKkohai0jOTF2PE1hP3B4VnpJJlFG
QW9SKzx8S2wzOT1DMCFudWV3CnpLKH00VWBfemVXTyRKYXNhVTU7MTdFSk98NXElSmV6Yyhqejwh
U0h3Z0o3WEo4JWxjQHE3OUN8ZmJpT3YxdUw4aAp6NVhIPD51YD5jWUYqI3RSX19BMEkqTSF7MV94
SUFvTXhNbnxPODNCME5XQGBrJGtkQDswS080T2ppYXNKcVRXVTcKeiRhQFo7Qj0rZWFtNFNMM0ty
eDdkbHQmTm1vZDVkNG9wV0QzeE8zdDJgKitSKk5EYmU9ZGIjKD89c0MhRzlvMlEhCno2KjxYaSR6
ZExtcCszNjRVTT5mMEVEVG9ZPllrbEB7UF4qfHRYe3EzY1gmVmpQblB4QStidTZDUiMzcEVafGds
MQp6dTZRYmRkUUJHUWAwOChlYD05ZT4leT9ueGY7bHNgWihnPDcpIXlgSVQkR1BwTDJnVzlkc3xg
NnJMbVJeY1coQVIKem43R356ams0fGJ3VHNReSRJalBYODB4Uis+RnA/Sz14UXp+Wm0tV3VZcE98
KXNIO3ImdFMqaFNFWGp9MyV0O0c4Cno3OG1OZUJoYzRzcks2NFVMVCZBJVoqbytee3szNWokTDhy
Sk9RWnQ5WFZ+UVhLUGpZQntgMkBCe0RZTklqejZDQAp6PiF0dEYqRSU+UyFxNG5QWDF1ZCtNWlNN
PWVeWSRsbTckekYyK3tsazBQM3JvN2puUGhKfCo3M3lOVF5QbWhUdW0KelU0d2pnODdBdXMyK2JV
bl91YlhWSH1CLV4pQXh1akQxbkp3ajBae0tuZUprdyV7eXJ0aWdeM1ptRmZ8aURhXytZCno5eHU8
WnBuYGFQJF8hVCotbHJKNVJUT1NBNF9rMD0xM2I7OEVRZmg4ZTZPYXEqeGZYb3FlNWZ3R2NtZ34o
VnFzUgp6Y3JqUn4xfGk/d2deXnEmamR3PUZ0S2xWWEh2K0Z6QTMjQG9FRXVLR21CUWQhPF5sRXpw
SnNEcD49T3N8ckM3Y3gKelZobmdLeUREZlNidER9VCglbkdqRFMpUHYwejVIYCNXTWkjKVFgdlBo
M31+O1k3WjZwWk5uU2pNKUtDKE4oUlVGCnooMURGZFghbSp6K09AJXFjNUhJUD0zTX0zc3ojQjhh
V1hkMSh5KTEjMGZ7YVh0UGBYY19AOF97VmUkb2c7RTZYdAp6Y1gqIXxMXiVQcCphTWhNOXx2NmFv
ZGRBckBQeDRrKnBaSXw7c0UzYGNeUiZFPG4yMCk2VUllMDQzSnpvejtmRVMKejtKa2JvSyhUcTsh
NW9gO2tjaypYU3dZVFl6K3xTQUR2bm1UJW9lYyh5eTM9bUNVdz40c0klaVQ0R210V2kofEtgCnp0
N0R1PlBeY1NeZlhRSTJfcD1HeSZaWkVyeGxwaUIldH00JEk1RnN3NUFOP0k4JU1CTygjUmpIU2xy
R1QqWW1odwp6VCVSeSp4WGNaPWA+dGBkMH5uaCZaYTZRRTlIZTFFeiMpcio5VE8/YURJRDhyWmQ3
N3NOWEAjKHNaVihlalU4QV8KekgjZmdSUzJuKiZCUmdoT0NwPUo8TjtAZjRNfjh4fXl+KVFtZjs/
OyFATEV4Plk9O2R5NmdlfTxeI3EmYzB+eW9MCno0Ukg+eCppM1c9Y21pPHBXUn1leWxCUWlMZXFJ
Mmk3V3Z9bVY1RlR5biN2SiRALVJCe2NEVHtqd2YzfWVnKFYlfAp6WWVQb3JfNWV7JWw7REhTKmFV
bShEWF51JVFoTmNTRjRiVGdrNWtJbzQrUzd+OXtFczFgTVQ3VmRYZ0Z0TzNOJSUKemt0QFBBeSV3
VHVjcXozJnk1blQ+PyUwaDBRYl9VLWRZPyk/Vmc5ekJPK0tofEYrS0RyKFVIZmRhJj8lPl58Nili
CnpiUSlXRXhfPVE7VUlxWURBKSpXbCFBNWJVTDlZRnFsI0dxcFExbiF+UGoyTUJMLUJVK1E7eSRH
cyFVWCtfOTZARgp6Z1Vvb1kkeTN6M05GOTA3SHJ9PHFYKSshKkB+KEBDejsrJUZIdH4yQVdqeHQ3
cDB0c3Q1VWU+bzZ8REo0c09BJFQKenljRWNIRWFPUjEtbyFiYGNWZ3Q1Y3YzZ3M0LTNecXBlREFp
Uy11a3otYkY1eW1rbD1ZY3BMQXc7eC08R0Q4KSNGCnphY3QjQFphbD9NT35xY2tkYTtTZW9wQDMm
OSZnfUReR3ZEYWxjQWNeZGh4aUBNSyk2c29+K2A5WWhGMGcwN2kwWQp6ejcwVH4xMW1OMSZIZFp3
MEhuPyVeNUVSMzZXNTB4K189KHpeVWBTN3gjOFolcnEwJWl5cWUxVmg/MFVkYDs+JlIKekdyPDh+
YHkzb2hSdmtYUGNRKWRjVVMySmVfMU5Ebi1gMTAzakE7IWsmKHgmeVF+PnFMRk1qY0ZjbXd+JU9U
WWcwCnpmNCV3ZyVZVTVsXjJAS1JUKUo/VXU3PkpYQ3REK311d1ltM24jIzE/XkNSXkd3e0Q9PD00
UWBGdzxvJGt4cVkreQp6bFV2dDJBS25+cXk+bzU2YFRFdDFqaDhOdSl9NmFKUXIkRHVRJiEqR2t6
ZCRjcE9Ie3I2eiFYeTtBYV5nPGYhaU0KelhuZXA+UzdwdH5xcWBSeitQIXRnK09fWmZhcnRyeUVp
d3prR1QkYHcqS30jYDJXeXptMVQrOHBadUFJJTs7KTtqCnokQykhPF8+VktuMlZNX3kpN3UqcFZD
aGhoPzIqPTg4e0srIURFa0pZM19lRStgSXBsSClENHNkVW1LUj55R3ooJAp6OHxqRnJ6OXdkJCFY
ViFUUGgrMmNBXjtgODZVXmc/RS0xbX5VM1FjdkNIdFNDU20mKTJadCpVUGR1TClSWlo7QkAKemt1
UVVnJWV2NXcpUmxhZyZKfThsYUs5VSFRSFU8YyF9ZVhkMDhrSUVwZD1WPClRejR2WjA3bVYjVlJ7
VWNlO1d4Cno+VilqcTZ1dChWS3VocWNfI01jMWJFeUZUNWM5VEF2Z0kzTTEyNUJkQ08kUEljZzlF
Ql42TzBwJVk+fGBBeEwrRQp6YjsyLXM4cU5XejApWG02ZnBCTCRLNSsrYWdLdVJjMSk9Qjg4Z0c4
OGRrP30+cUt1PyoxS1BMVWZzWDkrQyQqQ2kKenFfM0hQQjwoYldMfW5sJDV9fWpXaDtuc2U9PytZ
VTdmam1OcHlEayNQazI+MG03QUYtSjRqPkckRFRMZXpINlFVCnp5Y21ldDByMUYyNWxsXjloVT5Y
JWd+dClZKGl7KV9vTHJGbUc8fT9yKikleC1QIWZwM3tXPFV3SyNGfSkldCtaRgp6aW9nelUqcDlm
KTEoSUFDUW5fPWBiSnRYTmYlPHhgKCYmVz14XzwzRzRHLVFCZXlFKTY5KlQpPkNTTmNxd3FRKEgK
eiM8S15JVms3eXBqdzViNklrPjswWSNiMWlBZFVSNzBIaGRQO2QmbHQ0OE8rZDxCSDNrMWd4ZkM8
XnJJezxOVTxvCno1SztnJWZMOTs7UkVsczZyQnI3KER6KCg3Y0NBQStie3V9RXk+SFd2RXc5bjdI
TlU1Xk98TWVkLWJHWS1kP1JJUQp6b0pQRWNKJGMmMztkUHxvYiozVD5LOCtrdjxtYDtaYWFUTXAx
MmhrTiRjY3tGS3kpWjA0KihfKUpGc0NHSChVNl8KekZtQVNCPUozNkEjP1JVa28wSXh5PDRJajlv
RFN+dnFZVyF1WCEkI352PmlhfCM5bHx6UzlLeV44d2JoYHdGMylmCnowfXkyZ0wlOVFGYWhDRzlE
LVNHR0o8YDlDdDtXIz9nOVVvajhoO1NrWUFkUDRlSUR2cjdFcmExMWZxbkw3clJNSgp6dE4yQCM+
Ul5QU3tNMVhMPTB5e2MyQiU+dCpNUEN5NjREK0FZPSVSc1czYUAyQzxhaTQldFliQ1BsaCNlcF4o
PysKemRxIVVMamczNmhjUFBiYEh9V19hJTgpd0NZI2AtOVlEQiRAKVI4QiNQfHBGQmpEYDk/MnRZ
bCFlR1dfJTFgIyNACnpRSVBkVXpQXjleIXNxdkhvJlYmeyNLYEBkKjlOYSR5V0RyfntCVWI/WElv
YFhTeiZyO1lHUn5TcHBUUTErRyhZPQp6eUxONHp6aUlYQXpyYTU5bi1eWXE7WGZFZXY4PDw5MmN4
ajVyKVYoJFBUNUdGMTB+WU9uY2grYVA9RVF1QUFiTUIKenVZZGpMZDJoWS1ga3tUaFJfVUJNYW4j
PTAmQDRZRUdOIWspcS1sSnQ+SDc2Nj9HTnJ1YmJvZzVjSko1c0NWSVpTCnpkJGE1Rkl9QEZzK19+
UVYoWnRvKDR7blMlLW5vM1BadjZafSNaWF5vVk19e01XPkl4PFkrYDxQeEw7UFh6ZkY5VQp6bmBU
Nml7bjFjPW57NlJKN1J4PGQ0Q1h1QVlRSmYwdG9EK1EmZTdrV0lJO1V6K3FOekxJV3Rwb1AkbHpE
RzQ9TCQKelF6WkNUVnkodmo2I3N6djJkI0dFOzdjeUhud3RZJF4kaztfOVY2UFIhbUcjb0dzb0ZU
JkxIYU1gOX5TMz5teWtKCnpQWj1+bWtPdUVsNjQ8OSQjMT9Tc0kwfU8rQ0crQHt8TEc/SlB5IyRU
UWd5REsqdTJYT1FLb3Ake24jdjhDLVBrYQp6djApUSRKX3tqek5IYFh5ITheYlJvdSYoQXJaQTZ0
ISN0aXVjZmRYfGZWekxOMjMwTVVmfDB0fjhZRjViJktEYSYKeng+RkktVTJEYFA1JDBDfkBLZ0A9
c1RmVn5FREt+SGJCNDJAa31TYklBcWNQPmwwIXF0OFdfVE5nTHdqMiUyZ0VyCnppaCt8SEs9Sjgq
V0k9VnQ/KnFgPGooVjVQNmxTYEtZP1lEc2JaezNQK3BkSTleNGhjO0ElI2N4Ykp9PHE+N1l1KAp6
TEB4PVVuRnlTO0x9d2dJY2tRaCtBdFU5JEkxVF9Ndlk5dzwzMShtVFJkYEZ5ODhSRkw4KFJQdTh2
cW1lKnkxIU4KemJAVEEpQ2wybnpfblNVOE5jV2JIRXZJfFNYN1Z5ekZNbiklbWdFPV4kJCpoRnp6
K2B0cXspJDgmJHAzWiN2c1c3Cnpla2wzYTE1RUo8QEMxZy05cjlUTz5QJkpHVGhRRHZOJnxoQD0r
ZWJJYlpnPVI4WExWdTlxcEg0RSszfVVsbngzQwp6dFB2OFBFI0J9TU5aRzxuRSk2R3wlTG1ebFRz
RDJ8YW9PWnA7azBaWHpiek9wK3x+aXReRWhJaHRQcShuSWVaPyMKemlaOTNReklfMTFAVmE7JHRw
VXUkQE0tQlgyQjAxYD0+UjIzQEd5bHlJKDdoZih4Vm89ISEmWW9IUW42eDdUcDUjCnpiWXVPQ2JZ
PUEpc0RKQSRzeSkxcEdTIVkjaklJZyFvQV5rOyR0REFASEokNyVRYm1jZ0JPY2NvLXk+JDErLXZ9
cgp6WXlneVNiWDZEXllwX29rUn5yQiowckNwUzFfMEx0K21ZSThhZGRRRkN+YVF0MXB3cz9BbXYy
Nkh6RGtHemEhYmAKeio7Qk5LRXRTVD5vMFZhTXR2b3YjV2tXZSk0Y0dfODBFKmVEaShzWUJtcz9P
Kis5XyVYLTtCVDZjWkd5az45djRyCnpkP0RxNWgzYm1nS3N7aWdJdUw4bjNedXE3aFZuJHFJU0Ey
d20yOXdxci14OFkyMmlSbmxyeH4+Tys2MFM8WCVkYQp6P2VaTk5NOXF7b142PXAmMFROI2JTZzFm
YExqfEpaI2IwKzhNY2VSMy1hZXtNTW5RTjFgdSlIe2FsTVB3aztmJiYKeiZqSGs9alE0KmFmUCQx
cTU3OXV1SzxlUyQoWFQoYUh9PSlUSjdiWGJFX2AoTilgazFtI3swKzU1NENuNyQtS08jCnpHQisr
S0U4WnpJJl9+MD0pbjw+NGd+PHZ2SE1MbnNfdzlRYnNRfHhZZS1zQ0JHODs5YGsxYnpqYF84Qlgj
VXlmKAp6SytjR2E0ZGpme1VpJFMqfE1rYVR7XyVHJntebUQtZGl+RlRlcyMtK0hTWm9pdXllY0Mq
Xl9Ec0YrUUdQcCRkQXQKek4oUlR5KW5Be3UqNzREVUpBTUN1X1dsQ0E+SH07MGgzN2x4VDw1JnNj
ZklHR25SZT5sTFkpY30zZE1ATWd9NGlHCnpIeGZkS2hZKXg3NU8pTE9NdWEzSmdlMWZiO3lDcVU+
JH0lfj87UWY5R1M0JEprRyQ9NS1UbStVdzxKWE57X1ZCeQp6YnVYQntJdihEYj9ZTXQhcnYyV3Zz
a1hiYmxQeTFBb2pDWFgpTDclcWlRJSk7IX5JcEdnT3wjP2RNPXprY2owX04KemBHd31ab1IpXm5n
cj1JNXB0XzFBbSRGbVFtVzckWWhmP0NiV2MrPlh3eihjUHs+c1FtPDVPa25KJlUkKVU7aXA2Cnpr
TWdjS05lTkQzMjc0bGBeT3N0Q3pwRkkmPyp5VEwmKXhhITZJU1UrZWlvYypwe18zWG54bD4wI15j
OGZeLWV9Twp6YDw8KGRJNmN5bEdkd2o9XmV5MSZyPHVXYDJjajA5c0N+IVByfTNVXzhpbW4lcGUr
Un1UTWBoTzg3LWM/PExDbGoKejhWbyUtZUo5eX0kMjspS2B+QHclXlh8OTlHZXg7aVNRP0NYd3he
T3pGP3B2WlJHKHJVSCZCR2xHNzdoTlVzKFVaCnpRJDBMMipOKX1BeUBlKSVEU1FJdkB2RTB8NVJ6
RXxtRDVlK0p6ZVdCcV5iNWVWUS1oPGR4RnV0R2dBZXI7UU9kNAp6YTxsTHhVSX0+T2VPbnlOJDg3
K0tfYkpeR2Vra3dOUjIjbVBTYHJVbiZtRj1zKig0NEM+bnFUSzl6aiUzbztzJVAKemwmfmIydDUx
Nj0tRTl3ZjhTZil3bkZGTjBQWCsxRGg5dEc/MnF7Vz9rZ2k0JGNIUEMzdDtJPlFLYiRVOXBxITVa
CnpxSz1gSjEoNVBVYC1MYSZJMmU8NnppflBeQDE1aTlCe3A8KG1CPHk0IXdLOUBmRClFNzxSVFdR
ZGpGUTNhR048RAp6PEh2I1VjPU1yKktiQT1IX154YVU3bUh6dFAydyFSSmE/WDNjNEE0KzJ9ZHpC
QHpFNzI7dypRMy1WK0dJXm9IKiQKekNMQnJTKiEkSzUmKG8jdU54RDNDZ0tre15tZDN8I1A8UXRm
ak9Ee3JQfCEmK1Nhb3Q3ejlVej47NSEzZTkwNF4+CnpnN0QlbW1XdT0wUTQ3Y3c9YnFHNHg1SHoo
O0JqMVdiaT9nZz8kQnw+Q09pXjxFRH5TJD5qSCMxaH4oeWdwQzgxUgp6a0teJlZJX0t3QEtAa3FJ
QEclOFl6TzRnUVRqPGpUVjtMSUkrKGhIM0pZQyFNN1JfdmJva3E5Nk1aTWI+UVBhVVMKelJJSCZ5
MzEpVF9kZjExMj80c34qTzJAdyFsfXlObUUxQyE8Yj8yfHc1cyhJWElzJVp5SSlTNF45dUR3N3Y3
QiVZCnpwdkEhRGZ9ZjgpIWIrYDhHVSQqPkpXMX5rcWl0KmJYdmFuJCtRVUpjZCk/dU9hd1Q1fVhI
PHRCdjNKZ2kmY20tYgp6UTBAWVZJeGhJMXhDJGkqRmcxKi1aK0Q/N3dXY1R7cTs/MEBna3RJcnQt
NEE7UjczYldjJWdWQVotP05BOys3c34KekwqKlUrMCtwbD4keHJgbkl0bHxoZCFjbFlRZmBpZyF9
ZShIZEZpfEBLb1U+aTZ9V3lWUkV+S251TCRrO092SH5RCnorNDluRnRhZFNkcFMlcWFhYlVaTyh5
X2d1RUNLRHJUPHBrMDY+NTtwPGNLdWpEaXBXekNPUjNTTD9BV1VDQ1l7Mwp6WCp8KEgtbEkwMldF
eEwya3RkcVFvOTVra2I4V218MylNX31ZIVl2I0tPRy1xS2k9PXlpfXpIWkNoeH0rQ2hgITMKeiUr
cSl5TVJVM35RWT9mZWkqeT58QE1LOVZ1TjNWKEpVOU5IN1QjcUoqOEkxbmwxbDxMWiVxOG95P0Uy
dWk2PS1yCnppTn1HTyt7UDB4NzhaXnxgJVdeQSROVFlFO3o+TjcjKUY5KlEzaXQ4MU5CSXZEd0dK
STdeSD9DLW5sKnVaeGtUdgp6K1ZHRnBXKElDZlUrSzlySHJVP1YtX3U7Ki1kM0drVXZvTyolJjlE
PSlaYGRGUGZ3VHFIa092X3c2cyh8Kl5LT3sKelB1X2w4aCYqOEtTKWlUd25eNmFrMFRqYXNsaH42
MF80WjNJejVlenF1UGsydmBSOEEzKnwySih5diFjaUtwKHRaCnpxKCZyRm04Q2F5YzlhaUprR0ow
WDxfM3BpVF9qWVg5JHVlcmV7Z20zYH55Xj1weXZDfiYkQU92S2deQ2RlS1J4Twp6YUM3USV7cGBl
Tz9abWBMJkVTPVJeNnJzS1hQUGd5N25IV3RyKU81NWoqbHFGMnpIR09idSNzRUY7X2xwcm9CczMK
elZnSVVLeVM5QTFZMGE5cXhlVWtnP1E5NT57S014PkA7dz1hQEwkTyVCfXlnN2w0aS16Zzh6TUxZ
Q0ImdkhCP3ctCnpZcFNYYzY9M0lod2o/WlQ9dDQmQ1dOKlJrblNzSXwwOHNibTB+QS1FIz0wX3Y+
UWlzKU4kUEJmTWVCfmVQb210WAp6ZTt6PjFpIUp+PikjU1V2fEt2IThhUiF0RD9eQS15N0sqWHxp
WHNrd01pRUU/JnA+ISlNSWc0ayRMfmFSZnJiIVcKemEyZWpGc1M4UEgteFVpQmcwQ3w/XiNUbUIl
NE5KTU5hVEFlR0pAfCg5aEQ/MEl2MkIqJlc1YWBZUUhacSQtfTl9CnpxU1gtbTRtSzBzcikwWWln
dDYpfjBoXzIxUDs/PCg3NDE5bWxwVm1TemZjI182RmBjZz5KcXs7SWZ2P09sb1h4dQp6LXZ6Sk1V
UEtuaWtsWXEhSTxRJWZxPDA9aD4mfWZkbUhvLWdBUUhaKGxqTHdENi12aGhVTTR4JkF0JmkqSHMx
WW4KekQtUXEjelowKVc7ZjE+NG40RjNWc31eOSY4JnhSd0REaTMmMX1JMGcjUXl5Zj9VUTNrZlEq
bGheVz1vakJhc1hICnpuSUtvODlWWmdRa2MoSitVTHQtbW8pYWdCaXsqXmdvZkc3V05QXj1DIXtr
O3xHJThFXjA0TyQlR2VCTHJhKzdZfAp6YGtyUUhacXdsNFJsMEN0b0p2YzNDPW5CUkMqYkxFZ01y
KSQwQ21oQlo2Xzh5SlM8MVozMzhxanpFX3dzVzRZalYKejU7XjFZRkFFU2dAM3lZRT8xcnpeVGBW
YEBWXnJvP019SkFZWiUhbF52MFV1fFgyPGFKIWBDS00teUhLTypkWS1eCno1eCFKcFZAdmdCbiQq
b15hbTV2TT9aNXxnZWRrK3JiSkdobnglbX5xKD52NiU4e18qNXlDX0FeaX48amJsOXlkUAp6eGck
VCE1aTQxb2olSjhwOVF6MFBgfE1eOXUoTDt7aSoqZCVGUn1RdE1ERUElYHl8JEoyYl8wQVdza3A/
d2dxSG8Kemx9bT0mc1c2a3IoKkV0Q3Z9PHohWlFJflFKMnY2PlNpeXp0T3IwcGkmNElHUTlqSEZq
ZnFKa2paP0Y8bWQ4aiZaCnp0Tn58MzM1SWYxcVdWa2g9d2h4dVQ2eXdSN3F2c2tTfVhIaU1yVDhq
M2wrUE9FJiFmKkR2IWtwPHo9YCYyVWBIeAp6QDhxaVNoN2hXJHZyQStzeDRfYjJON1hrZShDezUk
TjtiI28xTFVAZXE3OFQ9a048YF8hITc+c2B8d2h8T0Q8YVAKemtlfUh5Tl81Km9NR145LUxoKzhn
cWU3Jj81WHxJVWdfMkM8aTZINl5mY2koUWJAQCpSUH1jeFooNEZmO2ZeSl9NCnpkVXpXVWImR1h2
X34rWiNONTh2eWJAPE5KPjRDfWR2OTh8MXpCYVY9WUlEej0kX3xQTUB3SWskdX4jLVJHMSM8eQp6
PEhpcUJ0YSR4MXE/bUtKTS1zZCNOaVk5Qih8UGomWU9lQ307ZDNBVVBwPE1UZFU0VG51bUExIW0p
PzIjPDx9T3kKel9TIW9pengoYmRwTVUpUnN4MkdXP0tveUBWaVgkVT93XzM9ayQ8a0N1eXU1eFZl
MHp5MXRmQGUreWd2NHlmTT5HCnoqRD4wN1pMKmNGQks5NDZmSilTWj5yPjZCT3I1KVhiQEpUTCpR
T2hPeEhldllYWGJMPGpmdFZFc2dkNSZ7ITQ4SQp6WkVmYCNtMW9QN0dFZTcpaGk5ZXU5WiF3LXd1
fXZSKWQ9PnJKTHFAWmNJeWNAXk9jVEFeZ3BxK0lQfFdHaj5fdzUKellCRGVHLUBvYkU/Yn14ZmAq
MC1YSVF+WCgpYEtgUz5xKVFGem8lMDQmJHtucDA0MiVnbDlwY2MrIyQ3bnBCWlVOCno/K1cmXkdP
STJRTiRmcUooc0I3eC1uR2c4Zl5YcjB5MmsqOyloQ3w1PExjQU0jZE57QClPe3wySV5jYnAtQDV4
fQp6MH44eWBZdGchXiRpfnsxRytXQXZKVmVQfWB2NmFDREdFTUBzS2NNWTh9Unw8ViV2S3l7MWhF
MjJoZmh3JDY1KHoKejhiXno2MjQ2ZXh3X3xgfWtlY21Hcl4paz8hbWg1dEduU1o7KTQrWFhzVT5h
KS11YlJhXj1UemxCRFNDdXspdG9ZCnpRNTNxdF5NditZd2k5dz85RzJpK0BSIUszIUd1cj4qMEkx
aS1WTmg7QU4hcE84S0NxNFdjb3I1Nno1MkZXaCFDWAp6TlFPIVJfaFotSEUoQiZDQVZYOy0rUE94
WGNDNUZjZ0Y3OXQ+Jl4kJnIlPHZxaTR8ZkNvVXFLKjtZYkV4RGliZVEKek5iSSZsJj9NNWtKPlZf
IU1WMzx0ZkdHbHRYaylQWUJ0OUN1PDFtS0tZMlk2MnM5Pk9LIXZOJn5GQT9rNXpmMVlKCnp6ZW87
JUFjPkNRdlAyR2lvbWojaUl4enFfOVJVYzU8JXB2b0AlNXIzS3hfZHk7QzN1JDxUfC09Qj9mK0BE
NkI1WQp6IT9hejQ3QCk/LVpfPUdSS2hWe3ktX1lnREg+a0lGaEg3Z0VDPj9GUTBRakk3cU1UN052
OWx8cnFtVnM3aElJXmIKejBJKWREc1IpLXZhPFkzUU1faEtxe2E4LUZBIWw2ZzA9YklDbXN4ej9g
TihfJCU4clFTYk9heT1JZzV8e3hkcXEpCnpncV5VQEF6JUFjM09PMnckdVlvXyluUkhoS3tTVFdF
KmV1QE5qTFd7cmQhKXpxaWRVQXJrU3N3cWslMU5RT2xtcwp6c1ozQGdXb1cyVHFfSEQ7KnY4fVEh
UzR9dD5gMVp6O3x8ekMkVWhKTXtIfUpXcDRwK3wjWDVSc1BPaTh0a3FhKE0KejxaNiVlZkdnKnRy
LWJqKkZgRUxrbktNWDdFZVZ5PUQzYVA4TF8wUW4pMyVMUl4+V1leT05nRHcjb0NjI2VHb04qCnpE
JTZEeyZXM1ZCI2ZqVF5UIW10UUApdTB5TC0tcio2JjRRYlY4OC1+P3gzfVJDe2EzamF9O3UrSUdz
Rmt0MXl2dwp6SzVpPypIUDwzZVdFdE1iZDxhQU1CQz9XdzYtSUo0bGZPKWNMUEdpTDxjVX49N15g
PEY5Zm9vYSp5TCRFN0VqVWcKelIzNSh4M05jd3NFfUMhU0A5YDZnYnkhQ157KEdyQkw3a2NrdGYo
OTkjKHUxSztafmt4QjJRIX17e3hgQGNLfDI+CnpxRUx3ZkxfTkhIVzh9ZXw4PjBgdHhpeG5HX0tt
VWN1Zz9yIW80KFJ9V3ZJOFV0KTtvVHhUR0t9SXdMKkNJWFhJNgp6JEhVRWVtJFIrYURvYlBDNC1h
aEx7XzVgQ3laOzhXYFR5YzEwMnZ0fVVnXm9lJT5gZmdCQGlWNTZqd2YmI3lFaUwKejwoRlQ2N0JL
U1NFM2RyckRxNERQRk05cDs1MHx8RSZhI3pYZTcwV3lrZ30/aXl+Vk5ja21KJGlYSHY/I0ZJTXpW
CnpqeUIoITlkQVZoZDs5JWNTMjtMSzAjUGpoc2I7ITUoZSNqWVpLQ1BId1RXfjB1VDNgSXkqZzM8
KTdBMCVAMjVzPAp6em5LYFduIVZnI2M2cCQ/eFVjVkdWZTdeN3h6IWglRzc4VX5PLSpqQk4oYCRo
anF5MDBBNy0xST81JWUpJTJnclEKeiQ5bEs+NXU+JTFDVGghYylUR3x1eT9nV1A4I2pMVyFwZkIm
S0VwWG0laD1DX3cmVzhJYChJbVp7QTlLMnA5TTw0CnpfUDliU3hud1VNIXtEWSglYiU2b3p4ZX1J
Kn1kejArKU9wZ0BgSilVOHh6aEFiITFGaz5CK3FmZlZ6N1hyQy1WUAp6OWViYUtFfkxXeSNIcilo
Y349fHREMFE1KHBSb0ltXihaX3VoPzwxKE9qWkVlYn1Wayt7WmIyJEMtM0dALSN5eFcKekN6YChW
cHNHQTREb01sSW1JTzBPNF4pUXRYKi00NjBHQDFseW08Ky1wRlhBe0Aye3ZuWVAmRykpXz0rekVk
eClpCnpXckBTO21NcD5sQnV3Mypse2VLRWkrOH5vUyV5RH5lTT8+R2FAM1o5NVh7SThSMlJHby1s
czNIVGtBOHlKNWhgJAp6VHooU0gwWCpmb2VGcEUtN2dYWkU5eGFEYGglTW1FQ3Nkak1PSSZmMVJH
PDBfMFpfPC0+ZEkyMTQoITlMaTlBU0kKejl7YUhDWmEzTCROUiM/KmI9dERoODBgLWBjdD8odGhH
R3lJOUV5VCpKT1Ipb3N5LWRGI1IkSm03TEUqMXMycmc2CnohY2hVLXU4UiE4VnA7ZnQ2MGwlNTg3
b2VydX0zWmw2KTZ0QUpkU0JQQ2o/ZFUzS1Y8akN+fXFfREchJD1ucyoqawp6YTdQelpLRiZXYUpE
aWhme3s4SW43JVgxdWRrbWpQQkhtOVlOUE5CTW1fSld3NEl4Mlg1R291amg4Tnl2JDdiJGAKemtR
eVBicGFGKlFaZ2AtXnVpVChKd3x9N1AqVDE3bG44fUJTdWhGQDRxZn03WE5zJj9ZPG0qPk90fXNh
MztfOzNFCnpWbmlUP0pSYF97b3tsakxofilzVjVERC1wa3U1SSZoOCVJZEJmZWZJaUV2KmgkZE0m
bl9wfV5yeHNuNCZ2anhsdgp6NUNzNGUrTG5OKXFiS25AOVlTZWAtUlpRTUlXXzRrUT1pNWI4ZHEz
QnYtPn13K3VMOEk+emlNcUByXklqO0QocCEKens3eiZaJCE/XyNPO3c2QXV0cjcyM2p3OV5jPkg5
MXw1TkN3TyR2VUc3eylRPkQxNDAhYWNGN0k9YD0yajEpeT5rCnolZ09FeFVgWnJyeiFifnJEMXRR
XktKb1MxbX1pa0deMThHJlZvMz51NUJ2QXsoNWBLNkJ6d1JPRGYrSHRydDM9bgp6JlRpTmU7Nygx
cyQ2K1lQZ2oqJUlAbGJfMjNwMDZ4cEhQTTN5P0h+SiVJaGdNJDBWeH4peCVSKmdURnpwS3NBUEEK
ekshWUkpdT84MVU/aCs+UThZNEpYV0VGLSpLMHw9IWArfEFnMF97Nyl7alVoRUpYNUp4O2c1T35m
VjQ8M2pkUjxNCnotdm5fTE4mcVB3R1o4fSlpUUZocC1GRmFhQEcoVW5UfWkxUG5eQT81cXVMQjNZ
T2pFSTN0dU88QCs0O1JAcncmaAp6PG8ldmQmR3tgbnAybk5rI3pVWntDYEB4K3BrXlBwXjA8QlhX
RDlTOHNPSjI9YyNrSVhNQUxZcHk/QnpIY3pvcE4KemEoK1kxeGBzV2MqTWB4KVY/RVd2bjspd0FZ
a1RwWVNTfnlfamZiNmg8RTs3OWN4VWwzcnR6PkJAQT9FTF41Ji1UCnpuIzZuWT1DJCNybig1fEwz
LW85d29AZylMP2BZdzFuNUgxe0krdiRmYyVtI1FOZ21XPUV4YWN4UHkjPzwhOTNzegp6WjlVZkwh
I2cqfTA4P1hrWihTZXg0aUpSfSNlSjdZaEJffHhifmU/dndiVyEqUn43fjRYUSRhRkJ9OGIxMWJG
VD0KeilZMTd1UzY2KjhDam9HWEhMcyEqYD5me3xVPjN9WW55VyVkbUk8P3dvWkRsOTQrPWQodzJA
eEg8K3Q4XmBRYFdDCnpkaUIqTUExcSR7clBTYE5gP2J7LTQzNjVFOU00UCUlUSk5cSZecHZ4SCQ2
R3Bibz1ecit0MFZKYWk2b0RaVXxLPAp6NWtPcz1KU1AlXilPaDJBKzN8KTR2c2RjeDFFQjhCVU9z
I0c+WG94VSZXelEzS1lPTC1fUkx1SV5+dXF5blRmJSYKeiVPbX0jZGs0QTsrQWcpYFI1ak99JXF9
a29rSXFpPEl1UkdAWHl4cntyZTxTeFhySTJlXm1eRj9UUit7cj8jc3BOCnoqUk9iV0lTZ1hVMEQ8
RFFHP0g4PzJ+cXlpJTkjSUAwSlZQb3IrP3UqdUR6U3FlZVB+PUFibCNeLUBDT1l1QlB2Tgp6PmV5
Jmspe1dfKiFrX3QlajtsYGBVQks8VFUhMSVYIV96KyNwdzBySUlKJSVIJCYjYG5eZUQrb25qLURM
cmE8I2cKekM9JTdETF8waHdJJTVZYHo8TyVKTHxuSmZ6Ql9fPHhQaSFpTiZ6KEdpVTB9OzxsTVRP
O0hrU1J0ZWlNeWcybGNuCnpjeWl1TEV6ejUpSzRjWFprfEZ9Wj97ZmVZOSM4Q2olRXBzJDc5dERT
cGtDXn5oSDR8VzJAd2gxTkkzNjlXPmc9NQp6aUpeJXJQcj95VSlgUDBsI1NDUzVzJHs3bz1tNXBx
QDU4UlVKKlltKGs8NFp0YGcqeEZaQyZkXnZVX3w8TT5VZCsKemI+bEpOYmR2MD4pOUMxN3RUTTZB
Z3RHQUJoWmpDbms9U0c4amp7NyFmS3FHfTdSa21uUHxDP0IlRHtNa2R8VysrCnowOyt0eTthUCMx
b0JgQDZVTkcmVEJVcURTMypVKyR0VTdybHsjY3xWSG8zbmJuMS09aVpvWHtzdjVpPUtkSCF8MAp6
aHdqKChfKyNiY3o5UU03cTlNX2QhKzsqaG8ma2owVX0oaksxPW1uY1IrfSghSHlAeUctdSN8c1ZK
NHFJTVhJOSUKelo5RVJ2T20zbEk8VStZKTYjcDxEYCFGOGM3VH59akJ+bFVLP2BhKGNTY3JzKmw/
QEFEMUFpU1g+dEVMflRyVVc+Cno8Pzc3QkQjVXFfPjw8SXZwa3BAMDAyPkFwNGkoTHo2V0RoY1Zp
IVNhKjNNTEJXPGNsbFdOMSl6MTZgTTFMVTtETwp6TVlwJVRMYm8/UU43RVojMDZlYHk/SGt7dSU2
KHJeaE1FJEVuYzk9THI0UEFVaEZ9RndFTFB3byhOWEpVOVFwVCYKemV+KGErd0Jib1F2QD5udDUx
WjN6VG8lYjtBcHghJmtEUzVwQWQzTUN6aDdMQCF8JGFIMXw3Xno2WD1qdTclOWpoCnpwP3QzITlt
Rks1JXpAKmlyVHwwdlZOV180Z2NVT3gtcWMjP054ZnctWHJ0O1lnbGtId1ExQzxYZ3goTWc8ejJi
agp6KVM5cGRraEc1SyFgMSt6QFAtSVNWSXVHM1pjT0N1I3pmdiRvTGk2Wk97e0Q+dlY9VjBkOXM1
UyR7M1MpOGFyU3AKei19NXJVSEQ0em1VM2o1ajdFaVRETGI9IW4jbz9OfmJlTE90M0doTSVVP01O
YjZma0FHbDtSUD5uO2lmelIxKSYzCnooOGxaRlRxc15MRUg7eGJKZHlWWUtuWHNtfEhjMyVLLUE0
cVhiZUMjaEhCSzx5Km9FOSEoPX04LU9jTUdIP0JfKQp6UG1ob0dib1g+TlNEdmpjT0ZMRE48ck5u
bFplKEw9dyNRSU1iQ3JzVStgQW1+JjYkK3ExYzJXVVB+N2ZmaH5oaTQKek50PiVzOU9lamtkZzt3
Sy0rVGlnd2RqbyhVO0pSdjgqaEJSO2oweH1fd0MhTnNIZGY5ODUhO3NVUzY3OSozbypwCnpaQDh+
fFlJZU5reVBMQlkoOGc8ZmN6dnBzTWJ8KjleOGt1d3VRV1VhSmMpSWRqfU5ZbnBNN3hrTzZgTnw2
THQ1bAp6am8wM1ZlIWYwbF5XRF5GI20oYC1sOX1QfCFyQEQ4UyM3TyNDIyZqOHFIe3xOTFpiYFF7
WjZGQ3AwR2BiY0c4VXcKenZYdSsrdyVwPEVZUCF6RFVoaXt6UTxWPkZPeDUxaDFYVzUpWit7Tnx3
IWZATFdyfUA4a2BPSCFuTHF1U1hYLXohCnowPno3a0ttMyEobGc1Kkg4PEY2P2UkfSR+byRhKUQ8
Zm5UJSl8VypUVXU7VjFNSE9tI3N6M2s3blcySipGcG9jIQp6d0N7UmI9VEZ8djMob3V9MCtmKlox
YkN7JHlWdWVUWTxgYjVybkRlNmlnVnZYVllYbDQtNkotdlcyYHkjKmU5cUEKejBlbkp7e1JDaj87
cjNtbkJhTlI2TjRxVykwRj8qUmNyamg/Zz5mOWFAT1ZRIXI7WWRJMGRtcH5xRGA9c24oKEF1Cno3
cWtLa05mQXdlZ3sxc01EKnpPeD98M09gbWglIWk0VEV9aEN7fDJobihqZ3hqTl5jJHt2cmNwTTtW
RyNXR0RoRQp6bjhfTDkmTD1CaSFicG5wSm9pemMjUjBOWksxZHEtUk8jUnJXN0BqPEREQnlOZnxM
I2hxMiY9dnJVcj48O1UoaW0KekRWMSFrKCNhUDQ7QX1ZKWlQeFI1cDl0UDJVISs1YTIzMWo5JXZu
bHxaeEhzd3JLVTZzT0xjPkItV3htVispI21YCnpLdFNhWWpHV3NkU0JWJHdAfTQrQnlmYmMye0lO
KGpmVUFYLWl9TkJLbytvUXVYM2FteG1uRkNUclE+MWlKbHlBTAp6KjtwZkVORnBtLWg4VT4wSV4r
eWZieDJTUldvTlltcG9ScDF4YEdQU1pGcno9LX5Me3hMZTArSHAmbXBVKVlUMTkKelBIcVE5TT5t
b3VjRlFxNTI/RSZJOzMhZmQqKUVfWGhYR2ZEMENSdkxKQTZITXtCXkpfZV9jbSR5JiZCN0RESm5n
CnowSlY1cm1ZbyRVViVDNXVUVylqMClReHRuLTtzQzxJfSQ9RVJ4VlUoWShRPGdRWiVUeG9+QzYh
ckVtQVZMRW1uQgp6NXVUXiNYP0ZkeUc+cG5xYF97ISZ6M1ZmfGs9c2VwK0pAdzFpT1EyejgxbDBz
JDtLaVV6ZEpuMW5Td0FAeiZMKjkKens1OUVJXktMdGF4OGl2XmgwREpwOCtnZlYwOU9EaGg5X3RF
cig5dDBjU0s5cy1ZeF4qJnkhQEpBNUZeMlNUPW1YCnppfXZtSHFUTT9eTm91YnIoI3lSbV9fIzBT
JE41ckNyV2JZSz98MllrIVZgRjdzNnQmOVNFMU13I2xzJUcqZ2VeaQp6aEFHJiU/TU5YMVQ0PmA1
dHZ1fC15TVE9QGl2WHpleFVMeXFzMHU2ejdnb0dyJERPTXRzIShYPFgjJHxRM1QySTQKekNed0Jh
Z34kUykkbTk1dEdndm12MDlFRHBES2VzI0FlfGc1VH5MSnp4QT1nPDVyR25SY3F5SXEqaClvRiUy
YnpVCnpOI3sjPiQqYHg7IypeZWlKLXM5RTR9a2pMMzd7Q0YwOGtJVnhwXjVheSh7Oz55Kj5XKG90
eHU3VTdIIWNpcG9SKAp6ckxMQnk9RW1CYih2cElKbCM/K1F1fjh3aVVoZEFUbTZmSTZWcVZ9JSlj
UXdseXgpdkFuNGdDSXw4TnpHYkJIKCgKej5pT3JOZX1VVjBYempnKXclJldWe0s/WCNPVitNbXpo
PHwqJXdBM0o2Wlk7fHNVY31xQzg8ckZaRCQ1MU1qQ0o0Cnptfk91aDU3WXh4cEl8NiZyUnltNUYr
ez1wMVRfJlZQKjgoZF4qRk41NSYjTT9SbHtQS3hffFhAKSFvXiMkeyhnaQp6RCEjY2dhT1YxR1B0
b3tiWFp9RTZkLWpFJV9SUEFAcm5FRHlefm85TXNfO0kpSmlAeSlIXkBGTyl5cF9CJXQ8QkcKeihf
KzdlcXRRa2FlV200XiRfR0F7K3JSeXR5JEk5ZG9UKzhZeEg9X2pAcm07dmVydDVgVXU4ejBpISkk
akpiISlmCnp6NHo/QHlYdW9xcDh4WDhQdjFPZHQrR0JkKGNRQVZGZmdzOUQhUjQ1RXA+RWFBbik3
aCFUYmsrci0hM204NG1+MQp6elByQD9YITFeRTl2NG1DTiFvWGhTRCtyWD8/ZiM7TiZDKjk4cHsw
VSF+dlFqJjJRbX1mLUBWPVY2IXtgaXM3bFkKeiRjQGdWaWxQZnJkfVMlZGNgSm9qRkRHOWt0VyZa
MTc7dUIrYWNwaXMzbHIqdmJRUzkzXzhzMm9QTW5Wdzc2aXxCCnpCV3c8PnlCUT4/VXVnO3lxNzZp
bTE9dlo0Qys2bTt1ZCZTWkUyPV4zUDZTViUzUUl7I1U/M09iM3k+amA9TFZsaQp6O01adX4/Rz9j
MlZrWSs2cD4teiRDP204Q2pqMGIxI2dFJHlGemJOMXlhOT5oNn5US2MqPWE4d0g7XlZoODZ7SE0K
enFlSFNndCFWIT83bnNMPTVsUj99UiFCVVZxeHhpTmlXTWcyc2JwPURNdSlONTxTO01QTUdLQjYt
OGw3fG0pbk5JCnpgeEZ+cE17JntoNnB0Mk8weEQ3QVZLd0NFVGFGMWRSMHJVSDs8bm1oPzNOUCoy
KHp7aiRxRXFsX2JDVXI3WWlASwp6UiReSj05QmJ+bnh5IWpZMmY8fGcrcm99REUwTF97JDt1TXZB
UkI8cFFMYU00UjI+WH0lRX1hWnBtXiU7M1ZjcyYKekI0PmMmRGlseFQ0R21xVG1YXnpPcmxmflhv
QF55UXw3eGBHM0lSfXNmVn4xSlUoakoobWRGTnw9VlhQO2c3Tl8kCnp0VU9GWl40TENMXiFFeilK
TXhQezcwZVJDPVV+fCU9RGUjY2E8QHdaSmpHenVoJk4+K2RaNUJraHVYOWIoNVRYQwp6bnc5dyZv
fkwmSlBjUEF9UDAhS1BoUUhDc3kxIUEhPH5PTiY/PXM0ai0lNEBuJUgqJHFuNEhaMHV6KSFuYHZh
ck4KeitBTkxebjxvTEp1dXFUXi10alpCIXtAWktMZ25vIzczMTdPSSkoRzZQYHdmWjZzbDkpekg8
P0Y0UHUlVGBENn09CnpNTDI0Z049OE5ycT4zdSkhR3BvSFlnWWhtKzJsKnhIaEUpRyZ6RD9tezMq
dUlwOTxyPnMwaig+eSt8a0B0bnZefgp6PGlRSUNjcDdJdjZrMkJlckhBMXMpVyo8LTQwNzFFVzlu
YC1USXdzJiN6UShlX1R6Q1Q2dTByJTMmaig4MXM9OyQKek55MD1QQH1LT0tVTUYzXjZVJHVZNip7
SzsyNj58ajYlOXpAbUtfZypsd3NMJGpzSXI/TmFiT3BLciVkMUcxbC15CnpuU0RzIU1qdWhzdjJ+
T2NDezJ9RUdKTE1jbU84ODVYfUMzVHRfdC1pU1d9V3Y5KnJyeU4wV0Z7Mi1CMms7WlYoYQp6ZnR1
WFA2SXl0WkhsQkRWLXRYRnJfZDhtNm40c248WVN2PmR5ci10e2NvT2ZJTE4me2ZMZTg0RVQ9LVgw
JDxlO00KeiFhQHM9aDFYd149Q3wrPXN5VF4zTytpZ2BReExjRHhQQUJjd0QyJkFoa2JZPXAqdUMj
IXUjZERjKSM0ajZKPGdQCnprcD5iWXh3d1RWWVU3fi1DMXtLUVBYdWA0WVNoRFRaaklsRT8lbGRF
YHJYeXBrPWU8S2Z6aCRDb3xlQWV3eFlJewp6YGsxPF5Haj5AU0N1T2I4NDN7MXtyMkgwZE5EK00w
bjJnNzNAIXU2YEFYR2ppVU1ScW5QPSYmT3VYN2EmPVJaUD0Kej9+OUs9eyYrbk08cCpwbTRKPD9h
b2tLRUMyQT97MkhtNG9JbktPVzx5VnNeIz8/VnI2JSQkZHp7QmVNfmhUZmAzCnoze2o1KDZkPGFH
WDJ6LT4mVz0/LW0+STJuMEVvSldCVUpKOCV0LWw8U0h+KjhvNHJ6WVlqJipjPmc0ZTBzbWxZIQp6
Z0Z7Xzs/TEJSJmJ1REtUQH5ldSY7eFpGR3l5SFdUKzR7SmQ9fiRVNEFKa0hwLWxCWVA9YTx7cHRv
VSZLYFkrI0gKenk3Y3sqN0B8SjtNQzg3b21uWmQwLT44MnpLPUJWdjA0Vi1CQE0xKmhNT3pjNDx0
Zm4peGBwV3tCNU9+RlI5fFhJCno+WWVEI3kqKVhRY21NTEd0T3I5RVF5PSE3JEsrak85NDdBYFUp
JUR9MX1GfkI2cnV8WFQ8RndFR2J9N2NiYi1maQp6SmtoUGtLQzkyayRNOVlGcFYqdTlJYUxTWm9v
WU0+U3tAUiRANmFMO3J0ZjstMms2UWNUNmRIMUs4QEQ4MTluV3sKelBmfGlRKHwmND4qKDdYJnVN
NVVQUS03byhLTEpvfEprNF92d2VLb0p4Ni0qcHRaZDF8UENIfndha1dYUEpPUTVpCnpQbiFVc2ow
OFdfQzc5Q0JDbzU0XklKVkF2P3hhWVlKIUcjYk4yK19aTk4kJVlEZVNXK1ckNj1geWJCfmxvZHtI
KAp6UDw9OD5DSlZeaUVRS3JwUUlfV0VmR009YDA4cElJI1FXSSUwWjl4ez8wSmZnc0hJMzJDZSNB
YEUzbzZPTTJIJSYKek40dDtQYStiSStpeXdvPG1vNEMxRzVAPWlqb1hXNFZLR25xQGQ3ZTgmJXRk
V2koZ1ZNdGBvYFA3YkxtZjNiMTMjCno/S0QoODB0MEkoR3hHdWZZRkdkJEhqZHhDYDVsYnAze2dK
X0FqTVV3JmR5MXlNSE1QNT5qREpAKk80N3NPKlZLOAp6RTVMJlZWOHt9KDB0e0klQVM/NUhlNGto
Vkl4YGszWT4qOHUrYiRxSktQVE1CPH5NWk00RGcxPng1NExUSyhqfTYKeiY8KWQ7VU5EUEM5UHko
WmleRWlCZkhacG1JWUd3MCZGeXFXO1krJStlLVp0Iz5sT05MPmtJVmxyZjJFZSpVIT8oCnpgb0JA
ditVS1psOD4lWEQ4ITEqdDFAS0A+dTB+R1M4O0lTQnJWO1NiI28rZXw/Tz8kOFZYVlRqIVN+c2dL
Y0B2Kwp6bkhIJE5KKjZVP1RTJno/RjlJdkJQO3VMakNsZylLOShII3tPQncwLSZRNGVhZUpxMWFP
O2JvK0Jhc2VEJEkkbGUKelZZR0hsQWd4KkRPRVVaWSRWQE1RSlJKZmtJbUM7cSglcUA2IzA2XyFq
Pyp3IXlhPjVhM3tYdjJwTXZTVUF5a2NmCnpQZyY0S3RWMyFeKnBEbz53V3RiemlTO2gpMVJvU2Y4
bjhHWWluaiN0THwhJW1aOF41VTEtPlZxJG0zVzg0JXA8Uwp6IT4qYDhAJWszZFpZd3x4MzBJVkIx
M3A4UThQbTEhTHZkd18qRC1Pcnh3R2JDM2IwJjNDcnw5Nmw2VmNPJDlrNncKekBJbm5YMmg1OCE7
OXlPVzdpeX1UKTUtcTtzSFpBV3xFJlFeKVhLWDloIVd8XyEjbFNHLVQmcyEpWCgzM0pNK1Z4CnpK
Q2lmbHVVX3QoeWZTZEV6cHAqNnM8aEM7XntETTtiMz8tPVg0KjxHJC1vby1fV340eSFyVkYkYVp+
X3JISjxaQQp6YVRWJlZ4OEN8PkZ9elM7RjhnZVl1Nzt3UGxieEEhYyVWREJCUFVrJWM5c3JLank4
VFhiTEhIUlMwYEtWLTwpbE8KejdmUkh8bFRASTc0P3FFJDk8b3FAZE4+MmtVYW9wQD9NbWd0PipH
flc8XjV+cG1HRGlLe1g4PlRkU2ByfmN4TDJNCnotYmltLU1uX3ZpUWNaMTFjdEtmVlYwPU5rbXRS
ViglZHl4bkpDcERyOCYhWEkpQldCYU0jeGskYDB8TFFeMmIpagp6YV97Sj8/fFkzKWM4YV4hezhl
V0NkWkVTbGchJWx9ak9ZTDhIczRkeDY4IVpATyNPIXE2Xy1RQCooaiZSSS0lTzsKelM4JWEwdUto
fCsmYjcmYitgRlVROFRiMyFsT004cXlyVnRfbFhucTxkMFl+bGBPZ0xANCRpRX5NPGAkUkZ8K3s7
CnpESj8qcjsjQFo0MSFvbG5uU1RsbyFARWN5aHRiPH14aUNHfm1NbFk7M0psU3thfXB2NzFwZ0JO
WTZjO2lsVzUmdAp6TDc/VlAqJTI3T3dkZXZTXjsrViMhRWI+bFh+MHUkOzF7U3NWSVA7QFhRKTJH
fEFjcHxYSE1gIVFpTiFGQVBkUnwKej9Tdj9fNUteJnsxcnRNO140YXF3dTBDUD8zcXc+ZFQ2bnhq
eEQoWj5oQnlUKF5wVD9ZcXIxc05VeTRsU1JZP1p4CnpUQkxVek0lJkg+QDZQPjV8ND1CSThBYWcq
SiZDTD5sa296ZDApUj5kb1RUQX1KX0cwQVQ+JWhyVGgwZ2okcFd5cQp6RUNrVTdWZW1VfkUwNGor
LT1gYzRlX2BAUHMzcVQpVFhCM3BiSkdrIzdOITZ2JFEmez1oNEZWem5Zakc+V29ES3wKejV9RCZN
b3xOZFp2cWR0P2BBd1BPSFZhOHxVa2ctIzRnLUZVR0MqKyFEeXhIPG5udmduVDZHKl96eVFWSSF+
biQ7CnpjfmV0SkNod2MyKjQ4VWpULTs0aihNe3h4Nm03bzBIUUhybmZGWDBwMDx2NXs3TilwUEVL
M3NyQ31hZyRuKmdMMQp6NVRCbkQ/cX5nITBBWiQmPiMjWDBLPipRWFh3a2FhQnZQUEY3KTlIN1FJ
QDRHKWZsSyF4NWhUUUJMNDs1SVBmMCoKenhaYEV8WTBJPHAmQmtad2B1ZX1wV3doP1B6SjhHIUhA
cnMweVJpJmNYJj9DOzc/UHs7UTk1ZW1LXjh7QXNBNUxxCno3PjZ2ZUIoZ05kP35uOzlrUEwyU3NK
YVA0TWViS3NnekZfTCMkXiNpOVRneDd0emtDRWJObUYtJSQqU0s+VlF5QQp6ZHJTQFQ/fiYlQVJG
YWNWcU1mXjxYeCtNQ2BmOE93P2M0MX5odCMrLT0xYnc4bz5VWm5vTFVPN1oxfVhoKmliR2AKekNy
MVR9TDI4NXBaT2lUSFFsWVZzPEpLNGpVbXw9XiU+YnpMdjZ+UVN6YDBQezF3JVJTJGc5RWY7bz1r
Y1VLfkxNCnozNUlZaFJHdjdfZkMwKTN0NnErJnlpV2R6RylTfSs/Wl8pWjg/TyFrI1pAUy1HUEFL
ZjY8WTtET3hgNiZePkBoRQp6YlNXaHUoeDVuIUJNc218RTNwQFJQPzlSdChAVGNgMEkyXlIwWkxN
WkxKTjwreSkhfUkrQDUmdyV7Tm9geldlcy0KelBxJU1SJkNXfkBfbD1FUVlWNXcpOTgtMlcmJj1f
dCV8O1ZGeV5wTzcpTCM2MURvXyMtbTx3fjlVeGt1UDxWbVZmCnpzN1FUPz5weCQqPGIkO2AyWTFS
RVgpQnU/Y2QrKSVQN2xwJFpPbTtRPSZHQz1BM0EkJGNILVI2dy19Jml4USE/QQp6TDd8MCo+WFMk
ZFJpSjhWN0d9NUVGe0RxPTJAX2RKUnN9I3xTNUZsI21wX0NhVHBjVUZLUlpfWCk3MD5wWnpsJGUK
elpqND5abjtoPVM4U0hPUUA5Yl8oWk09QnlXTGFCWFR5OWZrV0oyWlg7SmBDRWUkS2dSQ29HYnA5
SkIoeCY3QEJfCno+dW96P3JNNm1FYE17P3RheSNETGhnQ0E0RW40KjRyLSpVak5qXiE3UGFLRF5r
UEg4eFFKSCF3bTdEYEw4S01qaQp6JC1OdWtWU1hVVy1eUldtPHdPIXYkczVNSHZaZzBgYSgpYD1P
dXZXUnJ3ODVRd0ppKSM9UERsMGV0Tm92aHhRIUAKelhRRmwyUkVxRlM9PClET3dEN1Mxaig2WTl3
ZVJOYnpua0JfdDB7RCZ2TWRLV20xK3l+eEhjdHU/eClEM1lxMTk5CnozIzE0eSFNbkAla1A0MXpJ
YlNAPFYlPFhyUj00IXc5VzE5RmsyaTs3Ty1tfXghdjhlWWhGeTFQLUhsWT8tRVdieAp6RnJ7fXNW
TFJUJWV2UW5obH5eQ0s0RGhyUjVRUno+bz9JRUFjbStmOztPUGBicnE3QH5TUGBAVlc3WWBHJXVv
a0IKekEjb2hSbzRod35mVThlOTNlX2lndWUkSz1gMnpPaFJmZndgbDlMUmJGcHdmazF3flJ2PnUl
Mm1PUlFgO2hXd2xwCnpuN1J1bFEkdGpyJXdxc09pRClhR01DKiNIUGs3O2p8SCVkaEAqfTd8SVU7
ensxMGs3eTAzYCt9aDkodnAjdT1Qawp6NW5JNXlPbT4pWlY/VUU2RG9ocTtmRio8LXZkbTJZUG1t
ZDgzWWpkWjQ0anV9O29DXlNpJFRjQEZVJCtjKUNCT3YKejB6e2NDczJyUlpYJTRtbz07RHQ+bDNa
YGowTEE4VlI2UFFOWXZGQ1cyc2ojfXpXeH5tWHheZTVIeSNKNThUZzxeCnpNeV52PSpBIUokXnV0
VmtwMWlRKiU/VX1gSFpXfFAwKjFeV2JJMWFwaGg7Zlc3Sk9iSlZfYiRUQSo7dVApfS0rUQp6MCEm
I2dDeyg7bUFpJExzU0ZfTVliO04/YDwyR0BDciQ5PXdhOzhFdlEmZ1VtMSRkZzJUU2huY3pmMGZs
ZFl5alUKemBhQ0w2JiFGPTNTR3V6MSZ2YT9zYkpWISRPKipzVjE0QC16UG9YTWA8Zj9CP2MxRXNQ
elUpaDhoR0Y9OWlWOyVtCnpFd0c1JChpb0xUezRBX1pRRUBYeDMtZDlkdCFlc09EI0M0MCEyP2op
bmlydnMzOSl3ekVtNnMyPGBHTyUrUTclZgp6S1FuRkoze3FCMnA/eS1adzBUUD90ellqP2R2Xkpm
cVAjYTU+M1dpdjt8V1ImSX1Tcys4P19kPVZeNXlERm83cWsKekxoKGMlIVlnNFdBMz9iMDBKWntq
V0AjZU5aTVY/QVlrXnYwSFZCYWhvQ3xkXmN7ZUlqazlPb2BWbjwlRSQkTXpxCnp5LXBUQERCaEUy
MiQxNCpheUZVQUFVSER2RTB9bi1PUmZLPjB6fW9+QDB8YkViNUxFNXcwTXUpSTF8ZUJHbTNYWAp6
WWNPfn1SaTR6TTx7fSZGTEN+JXdTYWJYJEA1YylsMld5SGRQPi1ybXpZP2tgPzhSZUFfVHFeckAj
YjIxUGZYKTIKenhFRjghNnlEPXxAdmliZHl0JG90emNHYTt3RDJVN095WiUxJDY9WnluOEplfD9a
dGJ2NkhsfWtAMyQ1VSpUUFdGCnpzdVQyIUV4ZFY/YyNwTzR4USZNYUcxaVRGbFh5MlZJUURkcT1L
TDFrezd9dWArcnJ+T08tWlFjMHhpN2puOExlMAp6QjUwdSYtblh+TD17dnlGX3VvdGNwZUZCcWI5
Pzt6K2N6ZHwlfWtGQjRFQTA7K3VUQF9UflN0ZUpSPjw/I25NRTcKenh3Zms2SkJIbENMbDxhWDRB
TyNBY25laWZ7dHBIUSR4PlNlMl9ZOD5WOElpNHhjbngzUD5XJVRgdU4/cS1kZXRYCnomR1BMQmM1
UEtNJntEQ0MzT3ljQ2VrITQmeXtWe3d1JX5LZj01b155eDM5SiUoZzFDfHpYUERJVWFrUW9SU09i
OQp6UkhheElJOUFaaVhnU1N9bU8tVHRYR2NwTyUjNClXcEIrN09jWHM1PVB4JCF6dDBTa3NvZiM+
e2dqJihtY3dnU3cKemE5M3RtWFVvYUBtZz9CenM/KShxeG9Ndk1rLV5wdWZnWismanpfYzxqV2lE
SyZge1hFPURea3NwRHo3cShMMHxtCnpVaWB9UDw/bFokezxyQFJ1fXx0PjF5S0FtY2BCOGhUWHx9
N2BgJmM1KSF5cGlXTjRmYz9IdGxuNW1Bb0pyej5OWgp6dlZJdDlQeC1tS0RlPUtZVlFtWFg3eDNE
YWU7cShvPCs7JTVHJns7cXUqOVohSEh2bEpBJFhyY0VrQXwlNlBeV3gKelhKKSY9SlJZPGo5KkpH
bG91ZiZFczQlZlBiKXBzVDRwRGlVTEhsbF5JWkUoRTRJdU5XOCsrOzZrdjg1TzRMPWohCnotUFEh
filaTTRUeVZBMmtwOT5KaDBoO1c2RHNUciNWTi1sWEFQblhhQExuWCM7e00yYzUtTHhDQyt5aTlJ
QXd9VAp6NmFjRXdLIWBOQjIqNWd6e2EmWDY8dGYtb2Z6MExRTnAqKU5Ob19DQGpOYG4zUlpaUnhy
ZzV9ZTdAaUt0MGhBSjkKelkoNUV5TileRXFybCN4PUwyIShkeHNmakpnXjxodXw0SVIle0Urd0wx
R0QmWGMlbUZ8SnNZO0k7Y2IjWWxaZz5wCnpEI21+ejlFSG45MDRLLTxHUkJNUUJXMipTTkpoQXdN
M1FzISZsfmUmO2wzPFckWlBAZWNAdns3ayZMdFB4V0E8PQp6Kyh4MkR3PjgzeEtGYldQQ3U9YzQx
ITFaI0E0JWdFRmxqZGt1aFpuQFoyX1J6MlgqVGZ4OX5VPGlqJkUyQXoxU28Kekg4aE0rUFI+T04y
fFl7NHZGR2d3Q2YkcTswZCs9ekhPTCVhOF9ReXolPXhAVHhVSVFaN0MxZjx6ez5EeFNzRFNoCnpv
eyl0UkRxMlEpZi1EKVhQO29uQWlPTGd4LXVgeU1YZyN9N3Y2JiQ/Pm04JjQ/NmpNYWA7QCtlU15W
ZDFGUURARAp6OURSP3ItT1VZdXJTWXxZcTI1KmhpPDtOSE5UcTFxVyRhJTs1JVBRSmd0YHZkPXNK
PSlqTX1GOUwxZTVTTmhhe3AKem5IZDFXQGlQIzw5cyV8Vzc3KkgrIz1vVF4reSlTMyFVQWtUUnQj
TiREUW1PPXR0fGBUZ0RXQm4kay0mR15iQiVQCnpnfn1pcWAyXmF6Q21hd0owNiZ5Qk5sQUgtbno5
P0Y2cHZIMWp8VVljOTtkVX0/eDtkWlI9alcoaWdUZD9ndWghMwp6KzhwNipDeyZVPTtEdEptSDFn
SiVqcW9ZMSE9eC1uOFh5eFlXaUwkU3lZVi0/blFCN1QyKzwtalJ2KGNFUj1MPD4KekI5QndhYjx4
Vj5jbXBAaEh6XiEjSllGKSlgfCVpez5oWDhwNVdKS2NMWUFTcnswVmpqZXQ8fVdNSEZjRWk3PF9x
Cno8R1lQWTxDTGl9Jnd7JGRuTlZEWGRYeHp6Uz99QChLc3tOM2ByaVNkekomK3N5VzExPSEjN2oo
PDlFfldMYGBEdAp6K31OJEYoPDc2RXtURXZzPiNLNHlRV0VeNUxXN09ILVEwRnlDK35YKXdyelc5
YC0mQytZaEQpQVo8QCZHZ1ZnYHcKej07JGFVVnY4IzxZX3xTaT9+OE14STlRVyZxMjc0dXJUNT0+
YFFeXyhnQk5QdSU5VlRNNUFOMFVhPEA2Mm8qYX0+CnpjXyNUPj1sTjVFPDBKSnFGQDwqeldeeCRI
JnRXMURSajRUIyQkejUpXi1CTitBQ3YlM144Z0EhZy1Dbm9ubih8Pwp6VW9MJWs8NFZjSFloITJi
VSVQenpNYFVZIUtoYytXYit7e0lxXkk+e1hNMjc4KnxRYTQjaWpXXkRNamZnTE5YR1oKei00WXs/
U1ZqazE5fTQhZWtVNEl2d2NZaW8jdXxHWW1DdFByUm8qbylrYjErd0s7fWhtQG9+YEJaaUlEOERw
VU1ECnpUN1hhJkA9XlY2ZEtMZDUxYn57S08zdWM5UnEwKT8qcUVyU3Y5blREalNEJkljSl8yPXt5
PHltQEpMNzZ4MlFoLQp6KVklYUstfiFnUm9VaThPQHFhQnFScGRCUGFrNGRLTTtURilrMzI7aitl
SDRScEhoZjlkPUhpJVFhcW1jM0pfe3AKejgtXzd3cT1AJlJHOSptakhIRS1IaiNVZEMkd0N8TjNn
UWZnJTh2Pkw/fjdAJilRVS0tIyZEN0VpNmFaeF9yJmk7Cno+aXwhK1h5WFkwaDFDeFE/dz9WSy0p
Z0UzK2UoZGJRcS1RTmpMQUorcTNTZW4rN3YpJGZ5P0ZzSz1yfjgpckM7YQp6XlR7eGUkSGBJbDJ8
NG1HUCRKRGVuN1o0ak40d1dzQS0yR29fSEZrZlJtRVUzRl5vZEJDPVVMZDFXYnYrQE92MVoKejYr
ez9WM3plckYxVjE4ZDU7O2lqU1lfZV5eTFM5OHNBYjJNQ35yKlR4bmVnTlJ8MkA9I08qblRDTF9a
JUdCUVg5CnpFVSpBYVBpUV9VJkEpN2orZXgoMGNfViV0SyRITWReUG8ld1hBRWhnXlR2aCVHIXxh
S2pwaFUoMDttV0FwY3Nvfgp6V1FnMH53aypFQU0zVVFAcTF8UTg2TEloezEpJX59U2xDNHU7Yyom
OW0xKmlSZk1TVF5YfW9WfmRpb0NoUTglZnIKej9GeVlmLTl2SGw9VX1kezBmP1QkKk07ZzlWOTMr
fWFFMnBHMCFlJXs8TVkyTVJJdmFHXkpSe1lBQlFTezZGISRZCnowRSkjYEVMK29idmJSVmtjZEtY
JEtKMUloRmI2OE1GaHNfYUVEZmx3MTNZfksmKHF1Vl5ZJDAlPWdyVTFjV0IhJgp6SldaXkJoV2dl
JU9SY00pcjN5cUFXYmEtXlFPSkRxUiNxa2xPKjFtcmJ0aHhKS3EjRHlea1RfR0Y5fFMoWGFORTgK
ekw7ej1MUklxPm1LU3NaJEJIVHRJKFFQZE5UXjBaO2I1eTN4UUpGRn5GRDVnezcrX185JiF3WkVN
TXxua2JXaz51CnpjSkI+QGR9IX1KNTBhSH0hYEk/TGV5LWs+N0xIfWVzaC1xVSMwIU57Z3t0dXND
aTFSZVYqcHA3U1lyJD1jKGNQZgp6WThUKkJKZGEmPzB6ZzRSQ1JGa3NBPVpHfmNudU5qZyRpLTkt
NnNAYXhRTHc5VU1GaXo8U3teKk54ZWMmPmFTQX0KeitJUl89Iz4+WlFtbTBpVHN0O085amlKbHZU
PSl0c0Y8dUlmKVdAaGBWTHpWYjV7azI1S2BITDJMV04xQWpifHQ8Cno3YGArdzZHe1k4cUVPOTBE
cDJCZUY3c2p4ezx7THlIfUYxaj5yT217aGVeRWdkKzxVMTFidWdIV0B2aWlhIT5EMgp6VXF7cFZt
ZkVaeyNrb0c9TEIyKkYmZHZ3eSUqfEtxK1BMdSo8VWw+Y0lnPDB6JHAwPllubT5eejd8T1lZIzhz
I2wKelV3cllvKklwQ3QkOXZeKGVfUTxhdEZNMGl7LVhDK2UqVkZkTyo9TWlJJXMzNVhDM1Y0NVNw
MTFSTWMzTGJza2x5CnokeXJwUHUpK25Rbk1mal5aYmxgRl5QblZjeWVDX0RidiVpTyVHMGtecGlx
NTZpRTspTkRFT2JhM01KXzM3fE5OQAp6Xn4pbTdqK3tidT5lUmpJayVHSFpnOVlEPl92UEd4KFJ5
bjVWI2FWXk17OypoWWVIKmhWfC1Rbip7Rmkxc18+TkIKekdyXiVISWJPJGU1P3BNT3FMMWlEMVh3
QTB5Sl8hb3Z7QyFvJTwka0JZRW9PQC0/TEBRVGllenllUUV3R25SITgtCnp7N3J1SHpoQiRTX2lP
JHNRN1NxNihmOyhPfDlqRCZ7dl8tdmwtYXJkTWcycWptbF5CST9GO2pAd3lyNGpPWUxlKAp6P0Nv
bnd6S3p1SkExPkMlK34/clQqNk9GKmNmWSMtP2lYOGx6QyF5PilXWEJgb2dpOyZDfURYfnk/RllM
NGRtcm4KeiRFWXlUajUwIzhTXmxeYmgxamVtRk4yUkwqejY7VXcjSVQkYDtVK1p2bGApPEpFIy07
PT16Rkcxc315a0d4a0BaCnoweVd0bGtIcW05Vkg8b3VEbio8TS1qPXZXMitUWWl7M1RqPEphcT92
ZiorejktWTE0OXUwKWskTns4UkE3OUliYgp6JF4rTmFTeG55WCo3eSN6NzVKU29TRHBzWG1fdF4k
WSQzRC1kLUhYdjFMcEZeY3g5QDxsVyZyZkVGSUhRQV5CfkcKejA4Z2cwXlhzRnViSz9uOys3bSNr
TzVxcyYjdFdXdDA9ejs9RmpkMzxnIWxxMGN3Kz5CNT83eWB1KiQ+KFo4fjM9CnokQWcyYjBhMkNZ
P15sN2lmLShXMT8yemJmWnBMamhoTENoVFd8fDtGSy03WW8yVEYjM0VRdChvZHg7aTAmeVUzcgp6
Q0REUiMjKmJ9fkRIN21sUEprbXJ1PmAwUnp6TT9iPHxIe2M/fCQ2UXYlKkImNWt3Z1Qhd304QCNV
Xm9YKEBqbT8KejVqOz1+UENTTGpOM0tZNTZeZEpWWSY1VH45OzZJUj91Q1pkIT9TWStAUHJtMlYy
MSg5NmZnOEZ2dzFTcj1rdmNNCnorK1NaSihRVkJIMGpkUCQwPEpfZE0rSiE2ZlkkSiNJaHJUWDNG
fmtLc2RgYldyNDV5czlpbkZhMUp1dXpDKXArUgp6JkF6d2t5UGREblBpV2hIaHN4Nyt3Q3lJPXtS
UXkhNDRxJjEwIyZibmg0UXcyTH4jYztrZEx3KXB1bXU5NCV2fjMKemp5RDxWaE40OWxqVTJIPTA4
fFJUQ2JWdyheQmQjPXIxQWskNjJWQXNgMT5ePHVxK0cjUExNZXUkXyFPMFEkVW9kCnpYfFcmXkdy
JWM7JUUrWEVeem09ailKYFU0d1A7a0xmQCF+JEFNTWBiTiZFTDVDJXJANzI9TlN7TlomeHBrTjJa
PAp6YENqbHJvdUh1X0VFY1lsTD5kSSglfT0xUEN2T213dk9URWtjNGxETUJXVncrUHUkOHxpflY+
RVBga3gjSmIrYSsKemY7OXVhIVgpbkpzN1N2anE+eXRpbD5UMGs3bTlzUWw0LW5icndeJExAZyEj
aG1yXyZNYSV6ZUUzWmMweFU/JUBtCnpjcnpBYnZqblNfbUxnZDVPWUZ6bk8ob2NtY2Rwb3VJeDFi
TTU5P2hYV2tOfno8SU9qY3xOSGpoSnI8fXIqVFE9fAp6UkM1TTxAa0U7NiFoMUI0Y1hiR0BKUndY
bzU3VCFUb19UQnZrSGEpMmQtMDBWcysrJFA1M1JnV095aUFXRkNLSnQKemxtaig/ZUp8Y013IWE3
aE1FeGN9b3JPJlhsWCF3S2ckSjlCV1N6XisyfjZTZlBDUXtSOT1Hc0JaTSsrcHZLT2BTCnp4UEE5
MU8hSm5vNF5PLWtaKkJfal9xNmFYQXcta0lHX2U9JlRDY2MkX2puNld2SisycTxUVWJPQXhNK3E+
RHlhdQp6OV9QdXNELVkxVnlBUFE5OV5pQ2lZTkJeeWM8fHpkJkk9OHZZaW1tNVA4VmpvcV5IQ2tA
O1R3VyZDJU5XM3VBNVYKemNYcTg9Xkgrez47diRJe3AjSStDaHROS25eV2kqTkdXQEp+JD95eCRG
WEQ5YT1ic2w+cTJCbXgoSk9EUFQpa31CCno3QnhqX0VnTiVmciRDPSRhYzJ0U0U0JGxJNE5aPW0j
ayFWO0FGZlV8LUA3cj5mezhyI0xqQl9haVhqUnVKT0ktZgp6ZllmT21TKktfUURYIURRTUd2UWsz
bUBZMGVOPnxFVUw3Zz84TmFBTVVMREUqWmd4MkRvOVZ1c3RLKz95WHpgYD0Kel58VTBNIV9LJWZS
ajImWmluODI4bGNTRWYxJHI0OzlDeSZ0RmdLSndwZVZJPCFAKFYhenUzQmQpJSlEeTt+aEYmCnpu
VlQxZEBNezNJa1AtYmkwZzVMOHhEUDc8c05MKD18THgkTzRJZTRWP2ZSTjAze1U1Sk1fO0ltPkY4
PXF4UEdCTgp6X1BoNEZzUWJNNFBQRHFeaVFSWDx3bXxxRjA4cGl3WHkzJmVRZmh6LU1MRip4ZX5Y
cG11S2d8cm5TNE5UaHEyY1IKekpGJmA7M2Y+Z0E3cjlJN3MwZGpMb3tDQXQ3Y2Y5Z3ZfYEBFNm9U
czBGKExEYi1fNWREPlRDJEFOPHZeSmNJUDIrCnp5YkB5YmMjU19pUCZoSWBhUk5DVFJJNVRaUSZX
TzB3UCNAUkUpVH0+VnBBYlFZT3VyI3ZJYW18M0lOckVfRlk/PQp6SUBMcmVQX2Y/dWltO1U/RDx3
N0J8RnU0Q1UxTj1mdElvN3toYWJzRWdfNFNMSDBrSWhraUxFcjg1b3tLYnB8aGQKelg3SF84V31A
bm40S1BDSkE+cyZKdSpUJVhpQmpATTx0YTNAMXxVJS13RE5wVmc+dUQ/STZKSURGI3x3eFRhTGo7
CnpVb1JDKCF7ZjU+RihpUjFLMSQ5Qk0/bGU+I0o3RnlgWHxtQTIjKkVtZntnR1lKdHV9TUZ8Wmxu
eWh4ZSZUbzU0MQp6MDhuSEFhQUdsMzg1eExWaTBjalkwOX12fkU9eSN7KkZvJUF2ZkBZcGdqKXMm
KWxwR2xIIWA1NlhsKFFiTytOLXUKei0tJSZMYll5WClLfnZLaDZ+Um0lOCsjNUI1TT9teT1aWExk
eis8OV5Ic2UjYF45eDg5PU9vZlk2PkNuOVpmbEJqCnpCSVYteEpiVnM3NmF5NXpWeiVaZjxZNSYt
cHwqZjA/NmZPNFE+UEJTb2l3S0xDMCY+UWtiYzx2OHJ8TFl5d0pBJAp6VmF3bT4qMlpVMWRITzUk
dWxfVGdVLUs7MGVFa1gpWk5oSDEtT0RMSmJ7eyF0PSN2JVQkeUQybzQwSG1aTkkrQ1AKejA0ZkR2
Q258eVhjYlczbjBHYTlNJmw3JUVebllGRTIzWE18bUlSc3ZhNTUwZDQzfHcmbGA7V0RuVjZ2UiM0
LWd5CnohRTchLTYjUTB0c0RkOFNqVXlISEZwYCFGcHE7ekRYJE53bClVZk4oKGo9NjtVQlhkPzNa
fUM7ez91RkhMeGFebQp6QElyWUQzeD5Ja0h7S2o5OUVZbzJ1cVYkLTd8UTVLbEB8OG13RiZeVzg3
QV9iMDRSPCQqYlpPUlc8KG1TTUp3KEwKek47Pik+MXRSOyY1JFdVeEBJVjxLOzg0eGkkWClBQTFk
VDREYll3cXFKVl9scWs0QG4jPjNsUS1KSkg1SjxHbD03CnpaJWM1MFJKSVkhOCg7eVRhQCRQIzVs
VTItWjklT2k0bmhANXZTOWQxJEt5VUlRSXg/UzA0MXRFRSMhZ3Z1TWJlKQp6LVJBZyQlTVcyM05C
K35xejF3S25PPThKI1VyJWR5VFdqXntsMmg1QztofSs2ejkoR2RUXiowRShOSSk7VFlrQDsKejdo
cWxiR1oha3YtbHlOUyU0TU0hQCVkR2d4Z0J8KmgqIUxERUFNPnsqRitWSG1raHMjU09jezNLM31y
PGdTQzZOCnpaO3tiYmxRRDZ5R3hwMyUzQz9PaG84MzBoUlglbGpzMUFubXJrPzskNTdFTVYkTjxI
WWN1JCtpfE5hVjsxZlhVQgp6UCYwdDE4Tn1XKkpQRT5QWXR9NHB4RT9LbnV9LTRHaGQwSXdBNl5+
Snw5Tl5hPWlBQT90USRqfXNoOWlDQ3c4XmgKek0+alFBMjk7RDVkU0AxOHhKRzl0SShSMlUqd19Y
ODcjanctOCEzQUA+K0VzMChPbDxmdEAod2VyUDdCc3heaXo/CnpZd21xbk1gOEVobCtmYW5reS15
Z2Q3cTlYdFchKn1eSysodHVhXnBJVF48TGhtNTRMZ3heP31jLVA8PVVLa2lfcAp6UEBMaUUtJjdJ
YWh7JUc7KjRwUz5zNjU/Ozl4bHxyYCk1PzMmVEBGQklLSlJhPlM2ND8pMWl+enZlLSgkMSMycTQK
ejA2O0FnSG1ONWE1dytOPWY7VW5OUW8kS3VoRHotTzl8ZjsoOEU9V2V5SUNaVCE8Z0VTRGlMUXN3
ZXIqKnJ1QXc5Cnp2R0pXTlBmISg5alclQUQwOGdUR3JRVjt4YUxVPElEK0tSVEUyPld5Yjk2RGAk
RWBhSCMzV2RZOzBlSWk1N1Q7WQp6cCVNMXBZMTZycllJR197ZmxqJntCdWBeYEdMJUYwPjEkS2t5
NTVmVlk7IzlTYjA4OSVCUz0qeGg3S0p7QVlJKWcKeigkaFopJmAzZGhELUM4YG43JW8paUJyUlFe
JDd3Q1U5bGs4KCtkIz5ORmV3MUQ8ZCFWS09IWHRVfTBKY1N3YmR3CnprPj5XQmZrN0dgRkk2T2Zs
ckJKdXJUM1c5QHYmRntBdzd2Qz1ZSGo9a0x4NWQwUUFnQjN8MChaYkJ+U2RfNEczRgp6XyMla1hO
MUtqaXp8fD1SQ3JHJElVaHI4R2ttOTJPPyNFKWtrfG0tNklQQHxvNUd9bGQtdiVnMkhxX1lJYiF4
fGcKejttV0UzTj1hISRlcFdSeXdOUU9BMjI9b3xqQ0R9NG4ta2lISSp7JSFoXzkwZkFaNUllYm9l
bkRyfnBgfk00OTg/CnpYIyomQkt1V2lWTUpOX3N5SFNSZkM2JHxOUEBEZDQ4ZEcwTUh7ez1ePyso
MDRLa3N+amUlfHRvVT5McyVjJChicwp6Mz1PUCVoVDIjRW0xXk84RCY3cUwmZCQjJT83KEpuUzVQ
S3ZPKUR9IWduZV9gLWxWNDszZEkxVGxKTlB7Z3M7Oz8KejdoaSllZWxIK1h6NUlEOXp+eGBwZTg3
QEdsS0BVKUBHPUVsODNVcT5QPkNgRUw8c14hOEtEd28zPmwlN3I7b08tCnpIaCFub3c0d259cHxs
T1RQQEF7PGsqc3RPPjFha0UkVE8wbntsY2c7SElPPD17SE87SSNaQFMtSSZtOXN7MlR4Wgp6UlZl
bD40cCFKPkkwS08qVHNlayR7Q3YjVUZwKjxlQngjMkxROU9+eXJ0KElGWmtEMnJteCh1MkIxOENG
ZnwxLTUKekVqJWBvSkYyfmJfVEQ+YV5TdilqLXFwaFEqY2twNUNpfWlkZmJMcVYzfHZYNEBNYkM5
QGwlU2xNIUxELU4zYVZaCno2RG1sQ3M/eSs3RTRIT0JSSkopKFEmTlNKRUVvUD1DaHtIXyRPWCtg
Pm9SWXBPWWJrNCRwNUg3e1lPPXg/alEkPgp6dDR+PHpAe21gI2R+PFgzIUpTKVVLaSNARWRndURw
ayprd2VgdWg4TlROfDRqRGh0YT9APE5pNkJDWUk/OUZ7Z1MKekk8IV96UDJ2NGJORlY8WVR7ZWEl
anRgcEd4fGAySmZBX0B3VzEpXyh7Xj9LdVVrPXhOe20qfj8+KVM4OUBjZ1VLCnpKb0MheTlJcEI3
JWtSRFZKWFhCQ3gla1ZDdDVAJlh6aHtmR3ZBKEtST3FmU1JOcFY2JllnMWx0ZXxQIVIpTDZySgp6
aCUmJVpWY3YoPTIjQWBXMUJEUHg/Qm8mSmNmWm9Zbl8mWXZ4OTw9YkNUaVdHXjJGbG1sVGRrKjBN
dUxzM1JOaVYKemk1bkB6YnRzOUI3TllGUURpQWE/bHopR0VERUheLWYkWjxjYCFhNGB6TGJVKlUt
SWF7Z0BtNC09SUhqJHJsXk1WCnp3VmBKayReJGEwM2NSOUVYU3ctZ0NwcD9ETSVXbGZfP2ZCc3gp
fm1EdntsKGBYUmZxVFV2PHdYYXtEKkRCUTNyMAp6bUU4I0lUKE0jaW1LKHFIfE45KzVvZVE9M3hN
S0J4YXRuYFhuQT4+Vk84eFpIUHllIWNfM0dFeHVVaHI3aT49PD8KenRSIzIwcy1uUjFoU0pjWGJM
Qy1JVGROe3wwejVyTF8zMj8jY19faiZMb3JvezBMP2pKNF87WjJOWjVWWCRpYk97CnpGbnU+Q0tV
YCpeYnl2ZGo1IThzYm9rKSt1R3dhMGdSRiZeYSNZeUlyNXUjNDwkTTtnJChYVE9QezVjJjVLIXV4
cwp6ZkZ4bGdnTF5IZHZrX2FWRXRUN01NbF82X1Q5K0ZHUUd0clhsVz8lR0dHWWklIWszV0UpUEN7
K1Q2Z1AoVTNYUWUKektKbGNUUDw3KHpKM09JczIyPSYkc212UHk8K0ZAUnl3VG5aVHVZNnlGc3Zk
Sl5IUlA2bDlKKGo7PnVJMDRVUDtACnpzNk9GYjQ8WmVDYHRFRjtEckk7b0F4fW8waiVjY289MFNh
PWphJCpxRWU9OTV2d35iT3NWWWEzeF9UXlcwaWQrQwp6bFRlOHwzRnRgeWFHLWh3MnJAKH5qd2or
Y0dRYmtTbUExVEc3WkMrK1h5dilVSVBRJDhKQkJBLXJeNU02KzxOMVIKejZXP0Q0a0R+KkNueSkj
aTY1eHM8T0RyKjkzN3xGcXtPYERwby1TWlhxSXJPKGkqcTduaHtQWlRTa2VQZjJ4NmNECno5SV5D
cHlgQnlwMmh0YVY2dkxGaEYwT356XmxpYWVPR3BPfjN9QXJqcUFzLVgjendFQjAoQmRlcmY8PUA8
MklnMQp6d3tNSDRAO0RvNlYmVyFVeC1eWHspRnxjVmM0OEd3SnIqOUgjdU9ZYyFPY1BQSkR9fGxL
bl5tfW1JIyRHP2NXZHAKeiNwbnFjOyR1VllZfio8WHVESlJHUCZ7bXVMZThkPDxaST9mRzNKaHhZ
aWRsaiN0Mns0LSVjYXl0NUE5UjBQeXElCnp7amVLUjE+MnZhPz1+YW4zQklUQ3ViLWlRaE5wR1VR
YSRwWFBIbFhIUVc+NzRIajx+RDRCNHlibGN+bHIoJTE0dAp6MVYkan45KlJWM0VTP098SFojKEoy
YVVnbWM+cEI9RGJXJHJhPSlRcDB4bERQN3QwdGopUTheKlAtU1JYZ3heKWoKenhSP3lsKHFvWH5x
YU1EJGhYQzhFVDFnfSY2R0t+JjMkPWJARnp3a0xNdjhkelY1fUVHek9HQEU4OzlNUWcjcHhZCnoj
eiQhN2pxIzI9SGpeV01nZDwzSj5GYEptQ2kzdk5ifTNJMjk+K2FHYCVWO1B1bmlFISFKNWQwZzRq
JTY2fVRGSAp6Tlc+Nz5kXz4tUT9+cGFYJHdLOzdJKmUzdVpzfmRIeWhaV1lqZHUjVVpxQCFAUCRS
UDYrVHZoTk0rPWJpcm02eH4KelFqWGcpME1zWXN1SmI7SCpzaHs8LStmZXApaDxvPm1VT1l3Z0Aj
KUljNU5YQENnKjg5YVVLLUJQfTdfVClqaHVvCnpCPzs3d04zZHFSN0BvdWMjU3FubEsrVD9DMHgw
YW8+cW5AanBrTGFIbXhWU1N2aEJwMDlwcnNASWlnOXRMQTNCIwp6Oys9U3BfVHU2N1lPYU5jSH4l
T0FoXkZ5KTY3VFBBO3FmaiEkdihYS3Q2WFp0Nih+Xl5PMCpNQzZzRWF3MyRHRWEKeko4dDJMK2p4
PmQmM3xNSVp9dC0xN1ZHITZAYjI2Z0xmZFdfOGY4NXwzLTJEUFBke0ozSSgmTnlpLWQ+IStxPTZ1
Cnpua3dxZ21MP1ZDcTxiVktMPm1TOXBPNyopKT8yQmdydU0heGU4cGQzYnNjKyp4em9lMXgjSHw2
aVNPeX0yQi1PVgp6bjFpU3t7YDRteVR5eFBnJnhqMT0mcHIxZDhfSGpNP3p3ailEXylqLUBXRVBT
TCt3MWNmMHg8YHg1TXRLTmRjTVYKenJ4VGt5U19fOUtoUkAhSG5meUskMzFnWFg8SFBJIUxWJWph
bDE4ak1Lfjspe3RSZWl1Jlk8QF5KKCY5dDYpNHQmCnpuYz9odnYlfWR4VW1lUSthZHMle3lYaz88
Wj5JWHdaO3kyK1B4UUNOXj47Tnl3NEpMQXRmKHlWJXF+Y0VqIXVvWAp6XiRQYmpKPnFzdVF9Mmtt
ZzFvV1RwNnY/ekg/NUxBdT5Sdk1ZZ2ZGNUtJLSRJZSlgNT08Xl5eQihobyVQSihqZmoKekIqJikh
aWQlLSopJGAmUE9QMEtTKWJofHFPeWIhVlhMe3ZUN1cjRzhwOXp8MXRfdTZVeGhtb1QhMEJIQ1Bf
OzBaCnpSd0ZCPjkwdX0mSTNyNStSfWhsTkwkU0pySD5hUF9jP1Z2SDQ9NVkmSFlATiUqYzV7JihN
KG1MJH4wMnROPn1nPgp6bUh+PEBRNnRFTVYoLSZNXyRYUnB4MW58U3JTUmxnNCRxVGx0cGlXcWVM
P2xYVSUoNW9PbnwyfGZVOzhHNjskczMKem0wKFY5Tmp3TlIhcD1MaT5HKlJuSlBuckYzSU4zKV91
X212ak9DcUs4ZE1wbk8wa1lBV1VzQTRkYV8haXhYJVFZCnpyejVtPzdnRVAlZGBMfCNsciVNP05r
Y1ExR19+UlpRSGlLVEJ8KnN8WHtRM0owNjtwYUxnazJDWSRre2V1KT9JQgp6b2pwUGo7ZCF6X1d5
JV5tP0hJNU9WY2gyMTNJYVQ3PnhpWHxxZVFxKWRyb1Ale0M1YTJyN2V+WT8pT09QeEdhKGMKenpJ
NkNAOz5RK1UkNnAlK0RBRUIpdT5gMlhJWUhYRXVVTDlHTn5FakoqOHk8WXBUdD45MipDe1N1YzNu
Yy13I21KCnopMz8jYXlHOW87UEV5STRLOGxaTnJzRlE8Knh5elJHamxIS1lvSHllaUUwLT4lMExT
aEZCVntHS31vTDFRMzczagp6RyZxRXxxKihmZzBKNEJEVzMoXkxRQXhCemtmbzJBRlU0OGRRLVFm
WSlmLUF2ellmOzJzREREWTxyZFJWYChCfVkKekpEIUpXezVpeEdwbHRfJDhpKCh4N1paMnEqWmhe
dkJDPz0je2ZtXmpeKnhIKnptX317ck85NFpoYitfJjw3Oz12CnowJCticmJIYnJtKGdtcEtBSHdp
fTBEcmxGQ3wySDZHU2JOaFdJWmlvb0xmakh4X35DZ20/Z2ZTQXBweig1VCh4bwp6TUNxZCVXZE1q
V0txWlBuJF5nPGEkUntuYFR2RWFKY2ZhJlcrUEYyQVI8RGJzRXQ/fHxZWT5TNmlVQGUyIVlMXiUK
emdldFFHc2ludlY+RXd0cnM1dmZMR1Ikb30wMkRfWGozR2lgNyZ8TEA+YXtDZlNfRGpoQyFxPWpr
aCtNRUo3RmcwCnpeKTY/VE9rVSE+MCZsRTdwJjtYVCRzVW1nKjBRZ1c2JTZIOEdGYV9gWH1sPVEj
Wi12bGtWP05WNVQzZ1JoVjskMgp6P2BFfDFId3lkcjNRdjRWUTI7MVdzT0VBP0lrQUlFVzBrMlA4
IUtrWTlmZGY5a0BMYUFZTGBDJT5jMk5ZZVMyI0oKemxYbWJ2LTV4e1Fffm9DIXk+dDJkbmR5UCkh
TT9XNm1kMSs4dmVVV29EVCZiempgc0ctTSoycFo1Mi0xQndya19BCnpTMml1Kl55fl51K2l+VElV
I0djSEYlT2BBR2t5SGBrayNDYUozcUx2TV4wPWdVaiMhckN6UVlPIVY3Tz0kSUg4SAp6Q3x+XjZU
UHI/KHw5dkVzdVJkX3RMZjxNbHolZVc8SFRZQ2haQVNaV1UqIzBNUChOYVklVXVBfWdCdyRnYmJW
NHsKekJMQy1CcGN0VTAwWmBLYnIpZEc0MWI2fk9MQmJMNTNXbzhuVV54NVh3VU8rSGU0SEszZEkq
cXVGeDhqKHtwQ3heCnoqTjU4VENvWXxmPmIrMUcoJFpNc1VzK1hmQkRYbCpCX1MpcEUre1M5I3dq
Kyklc2tYdlVuQSYqekxieCUpfFRWUAp6bClyU2VsSzxvPSFhOCt6ckMtcmctdHhTbkJFbVkrOyop
SDlvQFlSUmEldGdINik2N1JiRmVBTE53NWRZIWRVc00Kem5CWEpFUyY2UVJyIXFZb1lLakFmNVM7
bDl7Nz83S1JmYVB9e25JTkBISEdkfWs/VFpmKHZNUGhxJUl8VDlpKHQ5Cno0aH18cWZ1SGZtY3oz
eDd7LStOcS18YlZYTU1gbD97MnJ1X1lvVm9QQk4paUpeMkZZIUczP3RLRUlCTk1YMTFNXwp6NjNZ
RFNkbEZpN2ZHMVdwK0k5Xmdjc0NsbFQhPUheKSpTOz5uSUVjRCE1Z3IpMXk5WmhedCZXWC1YWEdw
dDUxa1kKelZELWE1LWlMRStiaUo1JDJ2c211d0NffFg7SUtMd0RRSkA3OXNgb1glOWRUKjlCQSh6
NTBhUGoyUnd4WGx3dHIrCnphZSR9PEM9dXQ5cGslUjlhNy1hQnRyWGwmMVZhb18jJVItN3BjLVk0
bF9fU1pJeCRvK0puNW5HI0ozWCFWNDlRVQp6b056dyVjTDxOOHk/XzhqaGFgSUpgZ0dpMHIxP041
Yz9Aajtscnx0flA1PnYpMzN9YHQtJlpXMUx4M3I8XyVoM1kKenQyc1B8a00kQDFlbD9VMmZNT0gq
Q0BOND4zc2omKWxfPTRBN2hXKlQkPmFrQVNFO3NVaHwqS3EkPXx5TU4hbitHCnpUcWEjTDBHbTMj
ZTtUTkc7ZX1vI1JLOSpnYkZjLU4oJEBrJnV+NU0+I0p8LTk2K1JuLWN5Y3N+QVJpTVNOLSh5aQp6
VmsyIzhHKDFRPmhjP2koPlprT0whclMhMmZtaUE3RjJLe2FYT1N9Z0hAWFJVbm5kKyEwS1RYOClx
a1AwbjdBdjIKej88cl5WK1o0QyEzLVhpUjJfdio3UypseCprLThKPHNRYl8lXiQ8VzVlMDJFeiha
JW5KekVEdl5XJGpSfDA4dktUCnpjfjhrdUowRiNAcik3azUzIyRPPFFFP0lrYUR3ejlKKUhzb1p+
KnxuNUxIRW5zM05yTzdAfj92QUpUPFV7ZzhlaAp6c1I4SnU8Jik5RWk9KGVNTWJnJS01d3ZTWjd8
RnxvQjlUM20haEF2fktQaWFuYSh0PD8xcFhvbmRXO0VYYS1QSVAKeldCQD93Tn4wZ25CWHNrJElu
dz09c1dXdnlwbFBRVnBrTzl2ZklfNH1kJXtqazxIMWJzelk0aWRwSFlPeGBAJHxmCnpKMWlDRXk/
RXdtPVEoMEpGQkNvflVkek40PUNoJHxnb3AmOEhIZy1KT1k5YXA/WW9CSmomUE5HRiRHeUpxdlll
OAp6PX5SUmEpdSFwdWBPfGpQaHBeOX43RXY0VDR9a2piMXlJNW83Z1V+REZwO0JlSCsmeTB5bkE9
OTR9V2Bvd3RzZUoKenZTKU83c1FyOWZPSTE8JT43MXl7KUh3U2ZlPWspbkhNT3R6WX5TPEF3KU59
WjxlfDZecFpvQkMzWTh9cSNzJGpfCnp4OzxRZGE+TXxhKmEhWjU4MGp9fUJZYE1rd1RTUXVRSDI2
TDM5VVRkbFBBTylWQTFnNkgoKTQjVzZ7YzAlYT9BYAp6UWRLeH4/MS1VTGMjdn5rSWEreUxaS25u
PDReLWN0OXpGWCNBbk57JnNVYHB2eEFEWSNASzhkOzRtPzRrM0A4ckYKemx3PzRPXlBqfSt5V2lj
eTghN0BZNiQ8YnFSR2BGX3J4XmcwMDhTe1NxV1VCcFhORktfOW1KSHg1SzY5dG5HYV9NCnpHOUZH
dGxsYGY4citOV1YtTnw+eEleJDxZSV5yKCh3Pys/S1lLckxTczAoZHNzfTg2PFNNSE5yYklMUUpF
WlpmaAp6Rnh9QjVHdUZtM0tGQ3glXz1LTVBpRFJsZXRjflE+OGZ4IWVzd0JQUHk/dEIxY3h9cztQ
bzc2PkA2WW89TzhmKHgKei1fOD50TzVCcWJydG8rZ2xHbk8/e01LNzlBWm1WVGg+d000TGJ6UX1f
RFBwQjc1UlEkTkZCZX5RVzxgKXNXSj16Cno2KFVyanhQOH05OFoxXjJqKTVXfUsoaGdSPypzezlu
UExmVHlUe3ZpIXFuWHZtU3BkcFghbCg7VDZkK0hfRWVhQgp6bjlAUXREYUxJTjF6TkE3MFEwMy05
e2RyS2clP3hlNWxxT3p2cnZ5K1M/N311Mm88MHFCcDhxS3lJNEg9anlIJGwKem9oITByUCN3QzYo
OUd0em9vTDt5NzdYS01mVFU4eTZtVjFseDl1ODNtUXojYzNaYSQ5PU5PPFcoN0xPTWZWVSQ0CnpB
aG9CZkF0MktUP0sqRFY5bWFJZjV3c08tZyl3WFBYTFJTYCR1JGtyY0x+YXI/V0lDKU13K0N1TjF5
Zz92WT1nQwp6Pn1XZjNwWjR6WUEkaj5Beik+V2lCTDt2WjBqTU5FNnppbHwkdkJFKDNKfDVtNVFQ
X0pfOV97fEN+ZzJ+R0p4TW4Kei0rPGQ9VD03WDJadTZBMWxKUG1qZGhCfD57b2YlI2xoJHVZMCNi
YUcrOzt4Q0x4OEVyQm5HY1QkUEFLNW8xc1l5Cnp7fnFYJjdIJHZlYVR8fXJFQ0VuezN7WkloQ3sm
YjI9VkE9TG9pbU0jQ2h7S1grQko/ZXhHZn0+dz1gZC0wPGBmVwp6TEteNDxzISpLQiU+WDR4e1Np
bnBPZyQxPmoyY2dDSzQ5ci1XJnZFI3s9Pmh8TF9kYGQ4enp2dVZJWU1kKmZQYj8KemwxbFd7PSlD
ckI4cWA9clFfNyN3WlBgV2lxWkI2WF9QI192P1ptVmw7T1JReFgjJjJkMG1LenRUPU4lZFQ9aSF2
CnpVLUxaVyFaZTxVTVpyTV9IaiU1R0pYeHVqa2c9TFE+OFdgaioqbFE1KWJNK3g5IUVNRiRwOSN7
Wi13ZloyJXNLVQp6OXpHVGVQLU9AaXV5QWYrMGhBNnNFcSREMD18UT54RGppNXl3fiV6diZlSm5N
K1lTSndaektYSko7V3lIODBHPEAKenZQZS1pOEM5clE3fEZ3RipYfmZ7TElzbndSM01vYzFkKnBw
NUc5Mk5RYzBSMHdWeV8lMzJfRihHK3c8WlI4cyZiCnp0YXVyTmhqRk9QMkdnKEYpU1czMFZBPn1E
KUNJQWJ5ZllPYUJOT1R6UXA7PERSI1BGQ2lwTyZzNH0wKn5PbncteAp6SmY2bG9paSVYQShMMG18
cWp+WChXbUZyeVJzZzRWdGM3VnFoVFFxWS1CY1I1ayYrJDBBWWE0eERCT0F9Q0ErUHMKentHZEgo
PDd2e2xMY0FHK0MxQnRqMHpjYj01b04kZUAoN3cqdSFSPihRJDErbzNFfiE+cT5WUzwxSTJzcz1D
JCRxCnooN0t6R1dHfig/d2VhU0xZUjtSJmxMVHJtN14/WT9ZfmRrTFEpdUNkQT9uS2ZOeFZtR0pX
JmZ6KVcqOSR1Wjxefgp6IVZedjYtNHlnfEV4Y0NqJGlveiNwZj5SWW9fR3B4OHE7P1kzSCRLR24m
bUp9UUswN1MqPjE1VVErVj95QGNPWCgKenR7KVFaIVRUMCV5WUVuV2BzVCopMTVEdWs0M1BUJT5T
WFdxPXVtcmk9WV9odWhXZTY+bEh4NGlxPVpRRy1+ZXhWCno9Vk0xVUNAQ3BAeE05UEZIJig0JF81
NkYhaXJSSz57RH5gMTN7VDcwYCFxazY9cl9VV191ZkdBcUFyQU1OKXBQcwp6b3k1ekF4ZUUyPm57
VW9EbCl2JVdDbSs3TVg0alVEKCNuYmw0REQ/VkorZX1RdmQqMiZ4LWlnSEdDTUk7YXxpcUgKej8l
dGVrIXIwP34wKVFGLU00Pi1EamQ0P3ZHSEkkbWdRZitnPDhtNWNEKmVJQ1ZBfW9KIUwrK0dnREY0
Rl85eT1eCnopdDd1e3N5RkhTbTlEdHk7a0wrdXVFeVhDP1VsWkQ0V35+T2x3PiQzV3lCczFpVkhB
dF9Ib2ZQd0tKN2ZIUHQ/Xwp6UzZ5en4rRmVeJGY0WTc5U01SSn16eCtpbTl8RUsjSn1GNy1qKDt4
bXFhXnFURH1idmNQSitNaGhnMSlLYmxnY18KejQldDwlJCZ0cjBPMHZDTDhfUHFsSENLb0srKn1v
VXw2Yyk2bTNodHgmcGJsOEAjZDd8dVN7VyUrc01hczhUcHhECnpJdEo1c29ZI19LazJOZHNENGoj
dXtRfD1GNzt0IWYzdllTOStgdnp+ZnY2Sk1WS0ZJSnBaNFAyPXw9ZFRtU2RIfQp6NUBBN2JpNjtP
Rz9LLVlISEtGPStFKTEoJjFjMVZJLXE/cDFqRCslLXowezAtYnsqTHxASUUyMzAyTUI3LVNLIWUK
ejE1X1gwNnw7R342RmMkUEprSGExQ3RafjNoP1h8KCtofEd+emRBeWopO3B0aDtZRUEpMU9sSyEw
WDAjbXkxQFUwCnpfOHNwSVFgYmxtPm0taD48VClgJlgjaiNXMFlKUGE7fUJwO0F9diZ2MW8zcU1F
dFVvPDVzeEdTRl9FNlVQVyY8Nwp6TT1WWFBSNktAQTh1TyRIcHFVZmVNNEFnbzMtQlk2PGEjWHVy
azw4MiZQaypOZlJhZG5DViY3LTMofHlpVkRkSj8KekIlMypXT0ZxYlEkXiRAZ09POWc8TF93TzUx
QyhSfWtCYEB7diVXI0IhOFpiUW03VkZPcV9gSUhKNWh4JiVSPHNvCnoxK1ltM2trUyE9M1Emcnds
dGBKc0VlIXdeRHB0bnVvPj58dGw3bVNFMXNsNmtoTUBebj5mYHJEYX5xQVRkX2xNNgp6N3Q7PzEt
PU1ueXJ+QTh+Z0p+UlhKR0FhQDBpWSVqUzxueDd4YDRKXyhecjM/cytFN0ghWmp+Wl40NT1HOGJ8
OSsKej9mfEM5dzg9PkkyKUBTU2JWJHtvdntiQExPRW5mQzFeKm1jay03fGVuckk8djx0YHdBbDlw
SXZYd3RffkFMc1BNCno7PihXJlB8fHVfZGlZcFI2V3wydHUoUyNReHt4LSRrQU5zMHtVVEpJQU9N
c2VTRGByMDA5OEljZ3JzVXtwQ2txNAp6NyY8NXVNKjl5MChlQjs7Yk5+eXFicUBLe0Y8WmM8UGF4
JGIxUihMLW1qLUttWHQ+cl8kYntuZEo2RUNEUHxpUiMKelQ8SVh9biFKPiZMMHhHRjFzfktMSyY5
PFJDS09eMEkxPyZ0OWlBN15kYypUV3U8O150Tjg4Ujs7V2M1c2l3JXhHCnpkVCUzeD53VV8xJDg+
R2JTfEphdjlxYHFEYXpDfUQ5SGgjeVpJdDE8bDB3WnN6PjF5RURjTk47VyYzUVVre0QmRwp6Jm9R
VHFTYzJTKEQlNVoqZHxIMTEpUEYwMGBVYUohP3sxSUs0fG1ZRXlFJUZmbThrRC1UPHlQa1d1Iy1F
PDl0PjEKenNwN1FjbCpGanhBd2VmfU9edTlwWHNYRDZBdGZjWGMrSHdNJm48ZzwqYExLTD5WJnI0
cUNZS3k/YGJgSlBjbHlxCnpkaWBFTGBwdyhUI1RyUDA5ZmVrJklIOD5QPFk2en5EKiZtdHhSditu
MyRGP1o8IWhFTi1AYXEoMjFSe3NXZjtvYwp6QkZjOzdFNj47RzM9Q1c8b3RfQDZ7aHIlK3M2SVdz
SShgPFdhIzBLS0tjb1VSNTFeKnt2ajl3dzB+QUJsPnxpPksKemUoN2AjeDttOGxrVHBBKWEmS2xK
YFJEMjBxI3dxKzslfCghTUB7c2QzbWZkTDRaUDQmP3A7QDE9eTlxditjN29vCnpxLXxKb2dyIUda
dSZHVkJ1ZGM1RGFWPEd0N3A8TTEkSkV6KSpzRloqVnoyYWBDQml5UXdEIUU5Q0I1fC0mQW9nNwp6
VWs+WE9lej5BNml2T0RkaW9mVEEyTXlyTDx3dGJ8c2x8NGQ+VSlrSykzdTVYd3V2Z3JKVypSOzhh
eGRYYEFeTGkKelZmUHgjZj5EOEQxRyVMNyNLKG16UHojJkxNTW08dTYpdGx8QDwlNH0lM01ifW0y
I019Vn5pLWxNfjtIK0hYQE1uCnpRfVF3VG07d1AlO3BYb04oPXclNEItIz9hM0JqMTZ7M2psSjle
cDBzcmdfKnImTVJGeUZuTTxsUHBxfXJuTl4wZQp6e1Y4bEA9bHlvMlVjM3Y3U0dTO2o3cVVXSmZm
NTxaT01TMnRGS2lRezNsN3J4YlBlanZHWE58fVQ2Y0NyYDtKI2wKel5kVWYjMHFSMVFIcjIrN3J0
Y3otcypyYE1FOzY0aVgjRmFDK1c1NlFTe0h0X2NXKkdzJCVUYEsyM01jcGY2fE82CnpIVDZVJk5p
MGspc1hya0FsXlIxOHMjRUc+bXx+IU1PbW1SKjIpeVApbkNMUHVkUjsmT0R8TkJ2THpkKG1BMmw9
cQp6UkQjbSpjXkI0diRkY1NmNkh2OH5HO20lYk98K2RQKCRXTk1YI2t1YzRNLWgyZ3d+aD00OVI4
eUN+cDgxbzU0RmUKekNUTXYwYWUoNmRDeTY4dyNVSX1rcFlRTFJwfGlDXmwkVWpwQjJrNU1idG8w
JDI4PnwxVylHN2QrSUl8MUlzaG1KCnpEVjg9YUtQbDFtNVYhdkReJXxsd1hRcT0oY0tUN3xaV0tU
dmhKWXUxNlJPc2NyO0QwZlgtczdXLUk5QmNlbWFQbAp6ZzhoSWVacmtubjgtMkdPWjlCbHo2c2t7
eUZwWU5ybypLVjtoTmB+JDg9WUdISmYobUE0bl4pPE51SldYJHpEOzcKeiUkM1lZTjV1dXU8ViVf
PXBgQFZfamJqMm5QOXwtRG97b0FKQVN4UiQyWEVKfU5lb0g/SU5eND5iMyNpfl5WZy1MCnpmc2ps
e1RUbmg3VmxoTT1mXi08N0FYSzdzUUhqenNNZzxHMllZZm40S0JTalNzdjVCKmtLOGpVPjBrdEZW
bjV6cQp6VXM2e0t6Jl5yWUBeVEhPdj94QHczeGNWPzI0VDBneXZ+S0lQI21sWUZWczAwd28hPjF0
IyVXdHpyQlV9TEtVaGIKejVmZ2FxZmtLbylDamphcXMjNTNVd2Axdz4yS1hYWkJIclhQQXJzMD1f
YnN3bGRMM35GdUx6WVcmV01WX2xwYmVCCnpsP05jMDZQME8oQ3c+IWwwWGNHWShSLS1DYjFsVyZF
fTtaRj9BVVckTmhlKHFzdT9QcCN5ZWw/TGZ5NWZoYH4oRwp6ZnRzUT0tYTtud0tQcGZoWFlpbEIw
PiN5KloqRmspWTJlfVFZWGM3ZU8/VTVIQU51amVPeUFBUCViakRSZ1JQejIKejlrcGZFNiRQOzs2
VF9XP2VCSEg9KjsoIzd4T2VhOG83U3YobzR2I1ErUjIzbyQtWX1yK2luQCFifjAkJkluRUV1Cnp7
RD02VG8rSyt0T05xLXxMUGRuOV4wKnA7PC0jdXIzRlhnb0VBSWBWbUd7fkVBRnA0dlYjT3xIKn1X
UUdGcUVlIQp6X0A8V14jV2hgUSVeU0VmU2F0TDJNRXpZPHFWQ1VMc1NeT3wrNWBnPl9UYz5eVFhA
NTA7YkVGIyZQMlhZM3ZXSV4KenAjbjk8Nnt2dj5wJFl7UElqVEA7czdqJGNEK3VNPDBoRGl7PkFx
ejZxbXU0SmNjKiQxek10cmh5TTZnJD82dStjCnokY2UlODtsbitSIUl2KGM0UXkkdl9OaShyXihk
Kz5hIW8xQ2JfZyNfdkdkR3t2JGpoTEghK0l4KW0wNjJKRzlUeQp6UWh1WVFfVWA0bjhyd2dWK3Fl
R0JKc1pEI1ZhPHt5YkFldUJCbGBjcV9nIWU/SiViamlvWlBsSWpyOE88K0wpO3gKejNoXn1lJlFF
cVBzWEclaTR0VitqO0I+ZEtKbWRqR2wmRjJqOzNTIzY8TE5zSEV4YnFLOWU4MzE2TD15dW1IOXBy
CnpMTnVGTGw0KDQmXlF2K2prdj91a1N5OCRhY2o2I0NNZUUyXzJQSnVmND1EKW8xPF9YVFE8ZSsy
KzJDUW9KSUt5Vgp6Nn5LKDg7Q351SDN5O1UyZEZMSFomN0Z0JHNVRVFmbUh1QzF4N313amtiWj5Z
ciFiTjgmYnUhRlB8Syt2MDk2bGoKemN9PjY8ZlUzYF8hdFlCdThAVWI5MSMrbDlwPjByVGY7PGA8
QTwwfipLQyVBXi1sfD56UjFXfl5lMTtCe01XfCE/CnpQTFhgQSlXfUZ0OXtePWQ4YGUwfG1RNSNV
PWd2VWR6ZHNCQjYtZz9IRkhscDlnV15lNUVtMCZ1KUZZazU8O1RTawp6Xi1HISRPS1IlTGZVd2BN
JDNnMkNBV0lfXkZlNFRxTl98Y14yZTR1WmEzJDg8SVJVbCtPSFc4MEE0e1lHMiQ+VHEKekRIPj59
dkQ5JXs0YmxRWT1gJW8/PWFhV2pIRm58Z0R3aGN3OG9xYHB5SVZyP3hDb3MxRDNKKUo9MnhSZWFR
bjhGCnpEXnlZMU4yeThZRFpyPE9qdmhXR0VZJnFidEJJJVF4Q08+d2JPPT1gRWZ0WThsfF88I3Rm
aCpJOEtqTmQ4TnpSNwp6WmpndlFia1hFKD10WiN4TTxgRU1rTHQ4IXM5UzkjTygtcCs+dkE4XjRe
blQ/SjsybDV5KVZHYGchTD9kcnxWcEsKeitXYT5Hby1WRk08cTIpT3MjVlg+RE84QGFIb1FyM1RS
JGI9eTw2IytvSEYzYW08KkpUO19MN1BJMFp3SXFAZiVTCnpmSTVrPDFyPHAoTDxYcDM8Nz58VzFP
a2Vsa1BiZVVOTEteYkxwbzFMOHlgeX4wVk4lRTBGJmd0WVBlbnZ5WTVzbQp6VUJ8KkBFZiVnOTFv
K1p8SHxoe1BRUUdpQz1eQ01lMUBrYHhsbiZ4S0dfPk9wdFFteiFnRH4yJkZPY0BeNEltfEAKelU8
P1VfbGhlXkNOKGhhaitXYmlCc1JeZm5uam1DQ0ErUW99ZjwlPyU1TEJZeklZTVE1eFopVjlQLWdI
I3NSRXEjCnozV29BZE95K2ZeOXVOU0VUWEMoaVNuWXkwTzlnMS1DRD93NVcjZnk7MkB3WG9TZU9D
STlxfFNzIyl5U0QyQ3Qqdgp6ZFRORyRAPEl5Qz5GSjZYMCNVPThDTWhabipvWmc7UkcqRzVyTVJR
WnZBQkZDclRPZm9HWVEoJVJBaTQoTz9hfUoKelAkM2YlJC1gLX5HamhSMUB+S09KczdzPTBKVyZm
eit7UDJ7I0tXNnB3RDlKJkAjZ204YVZ1fTM3OVFTbzwyNkwyCnplQGhGbUtzMUdpKlJRTEg8NitI
QjswY3A+Mi0zdmxJY3dueyVgIXl4QElFfjhQUTEmS0hYZ1V7ez9SU0dYMWMrWAp6YyFJY3ZfbyQ2
YGlgI2dEQnlCd0cjTiMmSj9gaCU5QjFqWUI5ZUFTRm96VDh9X3t8TT9vfntxeHkqYm5TP2Q7XkcK
ej56N0JgMlFPVyR0IzdEM20wTWJ6NXVBfTZWLXcpKHVJUEJ3Y0MoP09fUj8rSnchUWh+bXRWZlg7
biFTJTVKd2VvCnpWTTVaZmA9P2MmbyY+MTVSdnVTSDx9Vnc1X3VZNUBDYmFUaWVEalVCVVZjbGNM
Y1I2c1RQcWc3eHA+e1NPPjZnQQp6OEVhYmpwUmYle2tNfUVUczdoQGM9YEVrU0hoJVZwbkphYm9Q
PVJgSWVleXBxS3V6X2Y1c2MoZWlkZX13TGNKIysKelBXQzF9b2EjK3toe2NsK1g4SUVFTC0oK1ZA
fjckRV8jZTx5fDdOXjk9R3k0UjJtbj5eYUNkfE0jbnZrQ2hPPypLCnpPMGplfEdjVW45RGs7PzFF
N1YpWiN7R3pqd3ZEMEdLPzl4TG83NUNIRVplX2gmQVpZWVNIN31salI+TismQngjRwp6SHtTVHV8
QiEmfF9VLUZtUmdtN2pOPn01Nnc1UEx5ZVJpVHRFe3g8T089WTNxSEMyVEUpS0NgdTBNRz0wNjJh
NTIKejBoRiolY3VyVTw0NDdoX0RAT3trU2p+VmIpO1ImOTVOaU5XUX4rJjNsRD1pTzFMNnpKQ15I
UUhDLTs1aVlxXj5uCnpIUXkmc2VUKV9acHlDZEhLKUcmVHp+dWNrNDR9SSlBKlRVOShxVW1TPWBo
fUB2aUZKR2NiJUE9WW1WRFJIOTskMwp6NHFyeHY/dz1yV1NPaWNOelZKVypwNlleRDIjTXIlRnIh
eG9FWFE7WCFaaWF7UURZMz1uV2laVCFJP2QxLXdoeU4Kelk2d3JAZ01jV0p8SCljdD4tQXUzZEB+
SERnfjZIPj4jUiZKTShVJl5YR2w5WCp3RHN4JmFgYy1IPnl0fCphc0Z0Cnp2YShVNnMyRUdpJF9O
PSRpNjw0K00zSztuYDh8M1p3OFlTKjJHfGx5MXhKWmcpJHE+JEh9dn5wRCtOJS1OKEkhVQp6JUBj
bnQ3R0VjcER2bTdDWkFCcFRkISl8Ymd2eVRecT45VGRPLSNEK2VsPTQ3bG90Umg4QHVmfCtpNEtm
YkBLcz0Kekt9dz9lbThlQHREOENJO2A4YSR+Sj5BcFBqN1dvYGQ8MUpvcENlQ3FFRXpzcExiakd6
TVp5cTtZJHRBb1gjdD0jCnowWiRxTEN2YD1VRz9je1JeU0omSHshT014e2tBb1VDVT1XS2lad24k
I3JqJipxUDNSPlJNeWZ9Z14lZTY9e009OAp6MUZ6Qmp5KVYqKEo8cnFLLU90bUhYeC1pM184ZCho
RVZGO1p2dmgmcz44bjNlXkB7JlJyQHdyYnZlJiYlaUNhSVUKejtON2RxTWR+MSNEO1NjbEApNlFm
IXRPKlJlPCVXQmwoRDMpNDhOUSorTn0oRnMjI0ZCMDU7a0o9c1lmbDlmYEM3CnpKOUM8TXt0KWk3
dSpBVG1rYDBLMmw8flBCT3xkal5QN342PT1oZ3MzWCMlM09GckJCMzFheTZicGMtT0lSMkxKOAp6
aHhBWnNNYiVZQ0ElZ1pDMiZQP29mPUVfQTRCITxfSGtOU3w4NCE9NWskQmBSI2g/bT4mfDk/ZiMh
JShDVG5gQDwKejB+Q2ZyY3NnJUhzNnhSRG00NjcoQiF3SShSRyhsVlhNa2RKYEdxNzcqNCEkKlZM
SSkjb0tsYVc0UWxvLXJ0alh1CnpmPz5vTjBIOXBkLXl9YW85Szt7X2whfEA2cmdRUHxQbz5KP09f
KGEke2soPXI0JU8jdlJQNEVlKHcmeDN3Q3olNAp6JndXbUR1Rz1VLVFqT3x6NF52eTJHdEFfdWwz
QH4wKVctVipwI0d9QDZqekBCUFk9WlVlckNNdStVMjNQKGFzQ0MKej1jKzRuKC1VR3R5P25pJGpn
SHdfOW5lLStTfXdJfipXISY+JWZpdD0rX0t9PlFBeT1WK3x9VmlrT1pFN3ZrbXU7Cnp4V1JtYl5a
ekFUSHEyaWYoO2NfKzdRTTNRKXkxemJNbmRAO05JSDE9dnNZZXQ8O3lSVFBfQyhUUH05eXomb1Jg
YAp6QS0xJEF3eFlZT2FBMTY+XjUoPXlfNGwqbWJAeHp4TEtXJmlYOWJEQFk3emk3Kl8jMy1pKj1G
IzNRN19MYUg4NCUKekIpVTRsbWxHYmNydSpYVlB4citCRz0zQGkrYmRtPkgtfW43citVcj40cXZH
OHowXnxYKFJ7WXBySl5rQlhrS3laCnprK19eVkUxJT5yQm0wQ1AxRVdaOVpJeGg4JkFveHtzdkc+
PVJLOVJJRWRQPFVpUFR+aG1DZGchWkNtQCZve2I7Qgp6QFkhZEpwNCteNyszUzBFdHA3cyh6fFFT
JWNHQE9zYVNrV1ReWllLSUpyakpSejlqZzJSRztueHE4QFMhUG9nSHwKektRKXlGM1l1U21rXm9i
YWtPbFJxMD4hSWFMXik4JWVfe2hVNDVWal5QZiVAPDJpMElwYDxZWjUlOFMtVmBuVkVCCnpJUFZ+
RHZvRmEoe2F5MFghPiVlYjQkJUNOM09yIT9NI1I3Y2w7OFBAdWZOMD1DUkQ3MnMxKDZkWj9QRXdO
UmIrJQp6d3hGVmYpKlklKGBLfSpSdUZGU3MjdU1TMnM2S0praVEkUFNgOFpnIURnZmJ7REY0PzR1
TlIoSkoyS1VUOzdvNGMKejRWMmpmcGQ1dDk9NHc8USgjTHp5SG9TempFKTZHakRicSliezRzckox
T0puVHY/PVl7WSk5S1J5Q1ZDPmhvcSVMCnpORkZhOU49aXxycylgQn17M35pfDM0LV5EVFg/RGZD
fW5gdXVad1Q8dntZMDlPPTJuSUQzSj1fTmdAZWdGO0o8WAp6P0lZMXwwaFp8YzZ0TmhMKCZrQTdO
YGxsTE5kPWMja0tjQ3d7cE1lTzFXVCQ2UEdZSXgka0lTbk5FZX0kQ1Q5OE0Kemk2QmV7c0pSTiU8
b3BXTXsxKUQkKWg/MldKa0U/NzBkI2VETztRfnVeNzJ2MTsjaDw1OzBFJFhIT2otYWwzZFclCnp2
JHM3PndwTGk2aV5gTmFqTF5uTkBpcyE1dy1NVFgxXztWRCFXNXdxUjs4SGhDeT05SUZlZEZ6UD5o
S2s2IzxAXwp6SFRUZXYlNChXWF89TFdkZXcqJGkwc0g8dzVqQEBGJGBpdkFkezVKV3IkTHk7SkNP
QyVoQGl9QndDPktWZTE+dlgKenpmNEorS0FeQiZFOXUxa29uJE1tTXRUYT9mSHhPWFF9aVlrI1Nr
Yk9EfVdMSlFtN1UoKUcyMklVO3Mxe3opP1h9Cno9bX19ITwya0EzbEJRVCVmRjZsN2Fhb1kkelJH
fGxCXkgyNTVtTGJDUTkhI0A5JmliMWheM0JtRUglWVV7OWIzSAp6UmhJKSQhc3BOaSVwdlZ2MllG
Yzk3PUYtMW5eUDZqZi0odip3MG5PelpBVHVJbHlvRjFEI2FxfUR9ZSQkNlI5e28KemlPIWVEKTF9
SFZCJExBajE+Pzh+cGcyPyRaOUktTjA4fFpndXFHbDZ4LSghVmhrMmFBc1okSjR5eHllKTZNOVdp
CnpuLUR7PzNUP1ZpZz0rTilvd28mZVZoQHkpPllMPHc9cS12cXszI1c5QXcpQyYwOXRwN0xRRnt5
YzNFQ1hTRF4tWQp6QUlxXmtKai1uKk1jT1EtNjl6fnBjaTJlVEEmT0whWC09KFl1Kzt6PVJiJWE7
czZ2SSlfI1hpRVUjMD9lbzdjRXAKej9ackJtVWJPN2B4TlVkdV9TTEBjUUYlZnJjaH5zdkt1YnF3
VFVBd1VSWTZLX2NEJWM8bSNlTz13YyViSk9fZiNMCnp2aXRic2s2KytISCVaaz1WdUBqSG5QKFJO
eVZ0YipxZCpFUE13Vmc0JGZFeTt6ZCpwI3A4LXRJYXVvYGZVa0IrZQp6ZGhMYlJLNj9HNypPeEIm
VTxvSWJPS1lrfjgjb158SWk4JnNseVI7JHtkYH5Oc2ZtJlB2UmkyM3tlJWBDeWlqIXkKek1NMFlY
eiR2X2NLbm84aGEjV2xpUmlRKT5ick1QdmdiRWEpMHdzdCszZV9pYD15KFZ7bkNna1NIK2Q9Y0Mt
bU5iCnp4TjxTXyZSOXFJXn0qS1FuU3RpTyVSUDtMZVZ6NFE5VHpHKyYkZ0J3S1Y1JnlEV2Z7flNX
SD1fb25LTGtyQmc8PAp6aUZ0Z0d6RSteU2hVXkpEI1RgYV55VmsxOVpkQHc4ZVpffXNTQTZvO1M2
P2xDWFZiYj5wWVBxV1ZWJVFhNFVMbkwKek41aGNgKW1sfkxLVXNTXkBIU2ReY1R0SCM4IXJmNkM8
TmlMMWJ+dTIpVDAxUjJCJGZBNT5NZE9CUSk8VWZUXno3CnpRdmp5Z0xTI1BXYjhHPTdAM0xTWCZ2
Mmw7STgjYXcpfVRiczB+Qko5MDcydVc8ZTt7UXkhR0R8Iyo9eWZVOXMwbgp6QiFuWU81OGVmeSEw
UnRQMClYLVc9b31OO2Qwbn0+KVNNKG1IT1BpSjFIKDkxcEJTRVVUO1BGJXxFVUptcl5jfEEKeiRi
fHdoMGlaWlV1UFgyPlhmM2p6d29yNFRHJThxIUZ2VnZrUkpSN1AzVENqfUw4d0c9XkA7c1krYGhZ
bjNCMX5QCno5WkdRMUNNTkBKR0VnKW08cFdsPFhadGJRdih0XkY1QmlXWSs3Oz9wWW9WelRmdkt9
N2N0PkNXTXVfSTJMbnE7ZAp6ViY0PE1ORnxZIWVvWClAQzl4Z3t0PXxUI2BIJl5MezVWS0dgU0J4
WWxFOVBiRDFqcjxrdnxxbzZ+e1RASTwlSFYKendARilBMDVLS1RXN2gra1B+QmxFaT1fXk93aG9m
TGpaRV9DZ2NrIThKV3Y8bWZ0b1hzYkV9U2w9fjJzJHAtSDBLCnp3fF92UyE0SEN3ZD1mM2MoVUVI
fmx1dUEme1JtOXVlTj4yUVJDZVk/TjxHPDUyezQjUE1Lbj1wUCg0ITFZdzNocgp6NiopVlVsakJp
PClzWWY5VnVRdWFocUxJSWJ0MVZ+aEVqLWAzI0EjRVZiVl5PU35Zamt1K2wySkNpZkJEa3pPUksK
ekpPUTVXcD4yMU1EXkt0fi1RNGpVT2AmeCs0MCE1PFh9ayZXI0JJQVh0RG1GJXdKJWMyaEljNEBg
d0heaHpuJCE1Cno2djxUOTIrLW1IWCEwWiNnI2MwcGZVNzlQQXd2biF0JVR+SDYyTF8lNlY8M0pL
XmxPYmdgfCUya0NjUFVCNUJOdAp6dWpnfCgwK3V2YkApQEtkI3t3K0x2ZTNHZkxBIVFOMDV9PV5Q
VCpzZjNhKGNJTkdTczc2YWpROVhlK0FXWFF6JUsKejBkO3VaUk1GbTVMS1g5JVRxNW48N2VpWmpN
eCZKJTFCaS0pOX1yM0gmUGtNK21gd0dqNX4tc01aTTxzMDU8SEJlCnpYKn1kWEYrey0hYkB7OT5U
SnozbTxLY308d2ttZEM7JV91Zk4pJkI/N1QhZnZxajxAMWJJZXclMnZ+IWQ2QXNuPAp6a2JMelEo
Tlh4SWp2JiYmUVJOTEctWFBvKCZqKzN4Z2F6UllQMkpjYyZ7dTNNI0ckayMlMkYrIVRYSWpWcWxt
Kl8KenomYExIaDEjdjdpfiNtUTg2bFBZMnoqZXkpPHFQa3gkdDcpU2dkd29wPyR8fkpoYm1iTFlV
Xj8peHdqNlheTil0Cnp7Pj8yc0BsTCMxT3BpYS0hbyFBKllaNSl4IVZ+U295RWV1dTZaRnEqO2I5
VV8yK3xibyNKZSVZNjc5byN0YzVxdAp6bFgjTThKWnw2cGRKRkZzcnRvZllrZnNFbFdfIUBDPnFw
Z1Q7UXNBdntYZmkzYlk3aHBYJj4oSUtISmpMU2U5MigKemxwMzFDRk1KX2g+UEt6T3d3bWF4RXQ4
WHpkemJ4QV5ZXyg/RWllcEReVkBkK0FAQyN0RnN2RG9gOUZGNVBtKWgwCnojMlU7cWxtbj1RZyEw
OTJFbmN4PT5DJnk2SD57U2AqSGtjIzRzIzdKRH5oUSstO34pdWFPdXFTJXZjUSE8ITJ4Swp6bWpv
IUopSmBJO2JgcFBWezBBcmMhOzdPeXsyPkNJcGNzSHU+O3ZweDAhJjVVcFlEeW1IKzNvTT9xcFpR
an11KUgKei07UTRseUVXUCNKVD1yM0Z3KSFMLUY+bXpxcStIdk9JM0JBZVNVR09ieip2eWFiVUUr
d3YpZkp2V2RPPEwxaHotCno5bEpGWkg+fSZje2ZwMUh0cERRVWpjYj1LLVNZTDlVKXF8ZyRpO15v
QHkkeSlVUiMjeUdsRXYkSDVrZiZaZD8kYwp6eEI/fURydnxLTlVeUioqIzF7elE8U2w/eE9gISk+
MGglaUZJNHNpemtwKWg0RCh4NSpvVjI1eTFSRntWTC12IW0KekpWaVRpckArSWpWSWNwNjk4fSpY
QU58RUpoUTNjMzRqPEVMcFJlZF82IXV9a0srYXlMez9lbH5SRT5xZkJ9YXMrCnpQPjFrTmF3cW9X
ZUZiPj43X0dhSGtebDBjMDhrfkV6TjxzIT4wSEVEaChUQ0kpdT13UEBzdn0/Y2BaeWAxaCV9Tgp6
I0prZDVlRjRTPlB+QnA5NSYjTzEtKj9JaVYxKn1mZUJOJE07OGpLK0xRYSh+blg0SSk+VjdrbCto
YUBuYn4lI04KenteTyptO0RjNUw1fkYkTGg3SzxmanprRHk0M2Y0SkBpRkgmIVE+NXFRY19POUpN
dCZRPU9oQUxEVD8odFh5THZwCnpQd1RPMjZlP0ZMZj41RD9jU2N6UyVVKnYpazY+cyU3Xk1KZ1FV
eCppaD5sfE1XeGheRGJpSHU9Q0dxdlJwQ0RDIQp6OUVsISo2OWJmejNTTjg+NlFHMFlrRmpZMURv
ezE+S3clMXhta0E+V1lUfkkxKVotb35wX0s9P1ZxSGF+MFdUUHkKeiNDPThwUU4yaGdAMz02NWMh
TWl8c1pwd185O1dpcmVtWWckZ1gmWmxyNiN2aVR2UThTcyp3V3k+SHQoVjxhTkFeCnplQjgzZyZw
OEBVPz9zdUdXPmpNIVB1JmB1PSg2JjF4K1V7MnttbDdKYChDQzgrX3EhUzZSSi0/MGllRGBXV2g5
QQp6Y2Y7XktiOzk+XzR5TiZ7bTRCaHJzNjZHWmVUZ3pReWlUIU9teXF3Q2pkVjsjaj81SkZOa2B0
NlJPQ0hLTEVmS34KekZ1a2NIQTRBSVczNGtiNmJJP3spPCpFOzBNPE8qYFVSYz5VRk9zVGEmWWFZ
Z1AlUlE5eGdQaEkybHhQLSlNTmw/CnooZn1zYkxCSkJFQ0l4U3VTZ0tOSjgkJkFpU1ElMjFOK0FX
QFIhJU1ydCt7bFAkSmVLKm9CYG0rJms/NDNtSTV2eAp6a1dIWi1kbEc1JGooRk9SWV5hQGs7P2RH
aHBrcWYpUWJKQDNScGd6ZG1lWX5jU0xIOUhrYyQ4Y1deSkpnZyhFeXMKejlKYXxUbHo2WFlTRWht
aFE1VkdrI1RCV3BsPkx+aitkPFcrQXtTI2ZVYX1ucVBtSkQwb1dZdntMPipJcEx4P3NBCnpIdjVG
S0p2TEI3b0hTaj9LJjJVUGdvTGFxWSFxbHVRJD44cTBtfUU7T3lQJUAzLSRxaTkhbTIpSyRYY2xo
JT5OOAp6eVlWOztwQVNKNUR2WWpONmRCMlJyT1R0V0VgST5qLSl8IVM9TDZJb1VMdCg4X1dedVFf
ckFGfkBia145eSpJfjQKeitKPF8mPllBSHNpfURKeDZhRDxXb1EkblpPYitURFFlUHsjZkIoQ2lI
KmJDIWM5Kn1nUyR1eHdObkNZJGF6KUVPCnpxTH1uPWV2SlBReVZpTzlrMC1eJStseiZTYT9VNmM2
M1NuRDRHSENNZURLRTBaKyFtMjs+QnlmXy14NHpgR2VjbAp6eXBDSkJyelFHaVJGPWR3IWNhYXFH
MGNZWXkxVmQwSigjXipnRFRYMnAkZ1BJZlNTQ04wQVB3MiE7PWBHZGYxJFoKektoVH5TbT1JJVZ3
aCF2JUtpPGZQKTBaT2VQanlHIW8jK2h2P24tO2B0Pk4/anY7OXB6bSVIbXVedER5RXc+SzYkCnop
Plk+b0VrMiFNbTZ7dUc3TWREbjsxPVYxJFU0R1BMJndLS1Vjdm97PzB5Xkx7cmlseXcob0kwcU5X
YG1ZOHstRAp6PFhVcSY8SFRUUGZ6TkUrRGdVNDlOYGZCTG8lVlpKY2lOeG9QV2UlN3VgbEVlY35N
UH5DbXtAIUQpVWJPbDAweGsKemJ0JXNjcG85dWp3aE5VMm1RSDcyJH1ZYDtpYypsJDN+MChydSUp
YjZZZjZpPnBybFkhaXVHMmJOWjAqJSpTQ1J1CnolfiNOSXlebWw3ZVQpMUo3N1BCVDlPb3JlPmM1
czZWaUJPM3Ajb3FzMHprb3xST0pSXngwVWNOXjhDcXpSMT1PNgp6SmF7MjtvQj5ZR3M2SWg/dURD
Q3pAOUlOV1FnaF5MO2FEQkcwc3dfN1Ixa0xMIVQoU25heyMkYytgY21ycnRKbSsKelhDaTwpQ2Nx
Uj1fcCRmc1Z6d1NLcUJRQXJoISopLT42NU9FM0NabFJDYUUzdnZ+UTs/X1RHOG9oMGhuJFdrQ3B1
Cno8ZWc8PDBIK0FqKk5NaHU/N2AjWWFqcm1kV2w1MT1PckZxdXBpJX12RXZPYCVlX0JjYUM1ZTsp
U1J6VHo7WUlJUAp6QXF1ZGheMC03KkM2TmI7JkU0QUE4PmZwbGpZSy18NWI7REVgPCt3LUM9eC1H
NjErTighSVQpbkxAQFJRS3llRVgKelN4ZyFUcl98IXJEOD5iSip5YzFqSWhSdnApSHluaHMhe2kp
RFp4YX01T3crVDRUTmdtentsNkF6eUIpcl9SVWdICno/PHtVSkwqM21vKUNKI0RYVil+TTUyb2xN
JTt5KXtDI2JkTUdCcWBmKGI+OVQwaTNFVDJkU2Nia2poSD4+Q0VYcQp6ST9XSjt4UDxIc1JIbDtL
Q15mRjBrfFFmOURZJEBBeWtqV01eI3RWe3Y3e1BQVyRNPTZMS0RoTT40eDA8JGFpfDMKejktISlV
QUspYWs/VnVrM1BqPilNdnVORTNAQzRzZV5WKDtxX04le0E+Ql8lUyFLJnZsYXJZKzBaJFVLMnUy
dGwrCnplOy0rM2NjS25qY2sxJWFTYk80JkBZTjdmbCNqeWk1c2NYS2ZFRVMoOU1EbnwzRHV0OGtn
NVBxQkI/MGslb0JnaQp6IWVod2N2MUJ0eTE+bUZ0NUs7alVzVD1eUDNCdT1PP1pAdkEjN0J2Z2E5
TUZiVmhTS1IrKlNzbENDd2x1cE4yT0IKejhHdkx8cSpPQ1dLXyEjcTszKyNHbn5XQS0wJE87O2gx
d0clTkRnM1ZXMGdRKmZrey01bVBtRGxrIWEmI1Q/KHBBCnpWYCQ7QWteSGh5ZyVVfHYmQlFId2d4
N1klT3h9ZjctYktNZ2ojZ2dVMFluQH4zQkpnPnUjSUA1XmQrU2BkP0t7ewp6KiQzci0+SnRNTEN6
SjttRlFIOExefV5wZT1lK1RvcCZAYDd6Y0okMmw5cHM7RGhrKzVrdztkTWxqZUl1NHFkQUUKejl4
Nnt6cl5afnc4QzFIYFAlSExxd3VSRFZ3REpBYHNERmZzezJ2V2FVOHA9RTFMYFZRcE82N0hkKzh5
blAhRGojCnp7QGhFcVcreXdSI3opVGdebVchJW9qWTVjYnx5Yz9KM2NEVip2OENZcFRocUF0TT4y
UWB+aGtTRlkkQ2JUWik4eQp6Qy1EXmY2RlhgRFVBeWk2Jjl0PEA5cH5wMTJ+e1gyS0s9KGhHTCpq
dkw7MV9eelYjfHNwKlcjQChmVkNtKSorJCUKemtjRj9PWkJUbCRVcU5Gez5pT1pgbElmVyV3TGVa
QHNrdHtaUntpa1dfflVLNyp8QUVSI1NUMXtXRG5sJjQkfU41Cnp3RDZ8VCFraEN5MGlkUShmI1R7
RFNEX3xSZnRvfUdZNjJDZzJ+aDx+Jj1qaSZKRDZDUHFWUHU/QG89SXV7TlpGKgp6YDJFU3d1JTlP
YDJMRWBhQmswPyleTVNXVSZpaD4qWjFJYHNZeEVySXVKaD5Yc0ImIy1FcGVgRkNfR3dGb28kbWAK
emw0Y1F9OCpTdkI5SCE/TztpK2xrVkp+T3VAMmNVRDctRXJfbzhWWWlsPHdBRmxIKU5gUVEtWH1L
PFl0eC1pZTNoCnp4aEpTQio4XmJXUDk8NHhrU3BOR25UcGUjczNfSHUzUkFlTWJRRWRCYzlmZlZn
dEZzcENAYnpUV3lWLWpkYkFhUQp6JCZ5bVMmRk4mUThOfit+UT8jIT5nP1p7d3UoS1FtK0hFSTRp
PzdIRj9LXmtmNTZCZnxfYUxMaWx3fHQ+NihFN1UKejA8aEIqazAodjZQdzVlKzxQYXxhfEk/KkhR
PFVWRDVNOGhYd15AczZvWD02UWBoYz5LS0FodlMxan5tcGZoVmtTCnpfPTtNaFIjTzgyTnw/VSRn
UXFJd1lwUlJmZy1JTSlZUl5SYnR7N2B1O0MmTD5jaTZFdjJUKFlGRGNefE4oc2lnWQp6UUhecVpI
MFpkSUtCP19CckBiNVBYenZ6aHRaejklUVY3cGZrbnR5Vk9pdndCNTU9U3R1aWw3K3FII0c2PWE0
YFMKemN3JTNScUl7ZktmR0U2SjNRYGJEMElUYGNzcmZNVjIlWiFHUVktPGU8Xmp9VzYpRzV6bUY1
SkhRaHJoP2ZHZEVICnpNOUx6TlZ4Ti07by1sIWliWmByK0xiNXFoRWE+byZRKUZxNEJ4PFprVllw
KWQ2R0lma2xNP1BQSSpPJSZeTCFtawp6QDtRWDY2a3YqZFBhRz0lUUA1I2tBcj5pQEJFRiFPcVR5
R3sxPVE0PzlpY3UlNjcoWm97OEE0OXNjVldfK3MzSigKemFnP2c2aHA0b0NLIUJ7bXE4PShKeFA7
dU9acHo4JnFNVTNmdENNb2p1RkZkQXB2PCVtTj45QiY+MWhgITFJbyg0CnpieTsxZ0s2TyhPP3N1
eF81fWlLUEx1WEVQUSg0WWdzekB1T3NATWRvXipjYFdQQTFmQkU9TjdPVFdDQGg4QmVuQgp6KClT
MTdxYE1mQ2YzV2Byd0M+UWgxNFI5X2B2dGxVYyR6YHdYI35FZkYyS197Xz9+TGV4K3tiND1AaTtg
SWhlWGoKei0xSHVXP3AjaERgP2lzZGxvSUw1blZ9Tm9OWGx+OW48JmVScntOV25pdnZLUiR8I1RU
NkRtOXNjdjElWk5GOyl4CnpVeX1yJHV3cTNYbSpzST1jQGFEKk9RWlVDNVJWT1RRVShZcT8/YVZS
NVRGVENWKHJFNjlLPVZLdmhYb30teXIkRAp6Q3JKamtLZSNgY3F6PEcyYHRVV1BtOFlTWmdQJjxP
ZWtVX1hSeHU0TnlkPkgkNkg5diFMXyNvPiF3KTN+R3I1SVgKejYjMU5wcklnck1EJGtDZmktPGBY
c1NsI2pgYW5QdzBJR3BnJHFgKTFVTVRGITgtXkZMcEloaWBDZUtudjc1Ym8xCnpoM2RxeTh4XlZj
cWBnIWh4ZiFkTk01KkxhUnYoZmxke0VBcSMkJC0kYmFHIVQzcj1Aa09MYjl1c1Z4bUhKTyhJYQp6
eSFEXjlycHxtNVlSbEJjOHpYNm92QncxUHE0JSlgO1kmKksjOUVnYU1YSnYtclZDfEdHfChJKlJH
fV9rNUU7b08KejVRV1p3eFBBOXFFaiRqQG9Idk8jSC0tMDBpLXBtYCF4WG5qZjlEazVUbm4hTkVq
JnBaP309U19MSkxvJXREfSE1CnpAcVNrZTU4PjM7NW1iSHNHS1htWGVMPFFXcmc7TkZubH5tTXdl
TGhOSlp8NFQtTkwoeF9NSiQtRz0oUCQmPWYqNgp6dVpqU1E7UiQqR2ZWeXtXeTZYPFdYfCU4Rlk8
djU7KGxmUHt4c2tiPDNIR3QhekZNQmc5ZTMrJUQ9cHVAVzU+Sk8KeipST3dkQj82ezdUMWYmPV5R
dW5zJkVvJSpjIUdaYFNWP0czczZxKj9KajVDLTVocyl7TFBHZ3NQQUdycnJUNT1fCno8JntxWFFZ
JSgzYClyR3s7eSFoQUJYIz0jLT1vcHgjanpFPTdtRyRGTWt+TFc5O15CaD9Zc3k3b2Q5WUFmMW5k
cwp6VHNlVn5Aa0JTa3Noal9KQk05dn45UWx0cXtOWTRiKnUkeXImPERge3Nqa3BfUXtCT0xDcCZ8
Rjhvd0JiJTlRYEAKeihLZz8hZ1hnPzFfdGtzIVUjeEtNWGcrT1VVekw1aHY/JHBrSjF4PjZGNHxp
b0FqVV4wQX16dV5GRilhRVZeTkI4Cnp8RVVhQG5LTjAoZX1vPHNyI245XlBJQ3EqVlA5UGBkYG41
a0NeeUwtRWpUK3NrfVlNI0FWb2FOTiZ1d2ZGZiphRAp6bG5gdHBmS3B0YkZ+dFRMUUg7TUtNRkU7
M2VlQHt3Z2Y8MVpZTEteczNWR1M/Q3JedEY8WUJtc0pvSnszeVlfb1IKekFZUH5tIypnaGpxKkVU
QlFGWGAkXz57MXRGNldTNz1IfUtOMH1mQmt3VnNyd3YqQk07M0FWSDZ4T19xPk40ZjN5Cno1I19w
bWcwbFlTUjJpQFdvN2goYXB3PEFPSUtCWUVuU2lSPVArcn1GQFhWNzRMQ2l0Pj9saHRjMDhUQGRm
Rn1XPAp6Pl96IWNuNy1ARUg5Kk1iQSp6bTJwPTVWOGE/bXkpeG91WG9lZUUmWXh4b3p5PGxlTUBt
cHtvTmJ5LXpEMWc3NkcKel8pZnhNKVF5Q3FGdil+PEVAO29HMUNDU31vQDhVaTs+JSptMGkwTEBQ
eXdKNkFiXnlEVmo/TGhOclY/TUM2Vk9DCno1PFVoYkRiOHRyaDNlN3lye1JmVkRoMm1UZUl5dWBg
SjVeTU07KTtQVHpON181YWx0KTVfMCNicHlNWWgkc09VOAp6JmFVTlRqWGlTPVFKUjEjYiEwMj9l
TURfTks4aHVQbFNDcD08OTQxM1B1fTReSSsoZ01obXJkak94P2F7cEN1JW8KenJ5PkFOWlM2M2ZL
Uip0RG5pVlFiRXY7N3NwZ016UzAqMCVUU2spMzYtJTg7VD1PfkVIO3J7akg+c3Y/T1ViVz1JCnpA
fnB2Jkd+YClKZSkhbld0QndOdzh6P2xta3NgeS1RR0QhcU49eGFXVClAYHA7ITlMcihNeWZCbSp7
KitDMDxaZAp6c3Fkczg0Zj5uWWhga0pyOD8yI2c+WXZlZkB7MGdZRkFGZ1I1QjgmTjJZfFc8ZmNo
QiNeJkozZWNLaD0qeTUlfFEKemc3MnZyQEtnbk9EcH5iY0RxaSgwPHM8VmNlZj9fYHdlM14jTGhI
XzZOfTd6Tl4rO1hyQzs7UkgkOyQ+ezx3K1BJCnpEaDlzO2ZFSWNEOH57KHNYdE9CO2U0YlZ8Jk9O
UDFRMXYpS0RhK3c4V2JzJXNYdFBQLT1ZVDRiNStJMTdORCp4fAp6az97S2xEWD99WWtVWWRraDI2
TGc7LWtWSXtOQypXS21ucXBTTzczWkhrQDxENmVqWjIwWnxJQE1vSHVBbSU7Q18KejQ2MTFkV2tj
en0hQz19YWc9c3Z3S3IlSzhCXlJkJWlWQklNOz96aUxELUVaaWRUYko0aCZxZFE5LUdNLXB3NUt9
CnpuTlltJWxLJjF4UlZafTs2dTBwKGkzZlA8JlhBPUckQHs0PmRNaX5VbTdKRmckSj41SGVnXkxk
LVh7aHFUTnVpewp6XipeOWc9ZFpBQlU/KX5KREZMN2lYO31GQ0sxJHVpSHE/PTRMMW1IM2w7REt0
QT5IPlc2bDxoWEpUfXdtYUIwejYKem1veFUlaTxFU0RQbFl6Izl7fX5BNXVuKW4pQ0YrcjdUXmhz
Z256ejArdz1ZT2w/JjU9cj8kcUwhbEpeUSNJVGRgCnpBPVlqVndsVzVxc19SciQ8di1jRmI/c34x
dmlucTYla3RkK29aRCMhcWN+PykmWVFDUFBYJGdBO0ZebXl6Jn1EKgp6XkNBZylXSjVXc1E3Pnty
eHlWcmQhYmZrc3tQTzJabVZCXndfbGB7bWxAPDJ1SjAzTVVvJiFVOVlrZncwZV4+RjsKejwkPHpX
R25aP0FNaG94Wj9CKGkqbDY1WnNsYEJ3QjBAT3JUcXlTRzZmTVNUNj48VTltRkkzUHBHOz04Z0Qr
aHVlCnowLXtpejNjTmRoIVNCYipaOWFFflRmRENLSCtvRVZSbDV6aG1OO0NoRlNjc3xOTDhMbkdB
ayViR0F9LXBXPmE2MAp6ZDkxNTYlaTsyd2JqUnlPREdvcDdDKSs+QmlubnsxNW8zIT0ocVQlQ3Za
bUJYeioyLTJCfVo3JCR1TShEMz1zaVMKelQlYUxmJCZqTWAzOztgZDB4VSYldnZldWtPSU41a0Yr
MnNqWF5AWWpHSWBqXmxlXl9FYXgtMl9FO15yKjh3e044CnpoWmQ4RSl8KFc4az5yZUgqa2k+V3J0
blB3QntxPWoybzxRbCh9I3NneWJEPWMpUCZZdlJwMlRyQD5uWVByQXs3cwp6UFhIKzFvcCVOKTw1
bG9ISEREOGFiTDFMdnt1OW4mRHYhKGxPPnN5aGg2a2NFNHticUl3VDU2PzYoOylfcHZuK28KekFP
QCg1SWZoZ2hlfjV+TSloT3ppQ0xMQllxSnhfYykwV2thd0J6Z0p3MHBCSj9NTUVUP0VZWDwhdE81
PldaPGFFCnpob2lhPjMxSiEhdHFXQ3ZsWnFULTRIJXhWP24wMFo7N0tlNmZSckZxQVFTKm4zSUho
dVJIZnRyUXR8KlBrckwtNQp6MlpKJDdvfjRBPSVBNmlTKX13UUh1fmZvfi1JRD89REZDNDYxYnxa
SERpbz9qVHY8QSNnOVgxOUI3aSNLUllgc1UKendHPE5HSyozPVI8YnwrSFhTWkBYZGhDbjxRKWNH
YXA9Tn1ETW9pTGlXbERmNXdEPCYlbFRkfWkzcGI8JkZ3O1JoCnooOWpmJWxJPjBkJFNOciR2X1hJ
O2hORSYrbVRDfSRTeXdrZzRHcDdJU3Y1cTNYdGt2eTcmOHZIMzR7NkQkTnd4fgp6dTcrR05RRD1Y
d2pPPm4tbEM0YiUqO3Q8dSQlLWZKUFNYKXd3bVYheE17JTlRKEsyI3p0UlEjU0QpUk5OMTU3bmcK
ell8Sl56UEhtKn15dDghZjZ5UGE0blRDP1FYKTRAO1c/ZEVPST43I3g8YFZpJjM3I2pKKlUre1RS
aD1hOF5kc1F1CnpUZm95YkVEOWIySmF1cFFuKmRMPkBJOTVUYFVANHBfbXNRKDE8RnxXM2ROKVA8
aUIkYklVZCtnPUYqeV5CViRRUQp6dmFYMWBAV2JOaVB5a2RFZSpPJjZmRSU+TWwlOVltQnx5KzRX
I2g2KTN4U2p9cyFwUXdJUCZkZUdEK3ptIXhQJFYKenMycCoxaUo/aD1xRm99JUA1MWxiSmpuQHtg
OD9sX0s/e3tCKypoYnYhQSEwVV5TSyUtUFhAPz92Z1lzZShRQG8/CnpFWEwwXzJqRzs3OUg8MFRw
YHojanslIWxETFFzSlVNblpXb1I+RmtpPU1fYWt6QTw8YzdETFM/RipIfm8xJjlnfQp6MH5DOXEh
fmxnaDlgRFRLSCMyPmwyP1p9eVhGNmdDUDxgc2shMURvelleRiQyYkxAN2kzdGZ2aWYtbVVnKFR7
fngKemF0fT0zMzlEVj81VTI/I05fSlIqSCkzMGF5dGkmdGx6SCpeVjEqTylsLU5eT3VgTn1fc1oq
LWtYN1YlbzBNbUhiCnppfDQrOTNXRH1oV3MoLTFFMyYwLVJLeG40KFFaVD0/Kzx8YlBYdGd7O2Qx
K0c3dX1yY2RVJGlEYH5KPEA/ej1hcAp6eTF0dG96YzRjfislaCFLYk17PHchfENrOHszUVJfWGtT
YTg8NCR0QVQ1Nzl6WmVJN24+ZVpgWGZCKmdXcFhIWEYKeiNQMX44WCpYfWo/RUctZGVgfSVXcE1K
bCZvbyVsbz11dWNVe08zUmFnX2pMNGUpWks/Yy1nUkVDYFQqcntyNEJHCnpUKVMlZHcoVlFpJWJP
VWVuI1k4P2dxMExUbUFCTlZfWThFTm53JUpeIWspYWtgIWtvVDA4diUmTHR6JmxjS0d+UAp6WlEo
SU1PYC14ZGkzLSN0U0QqaztBXzFhMHhkSWc/ME10WW17Ozs5UkVgfSM4KnpMclZQKUZkeWlIbXt2
JDI8SioKelUxfDZJPjJrWnpfb0hwemNaUWxoWn1jXkklPUZafFVoYkBSP211N1ZhSXZOMlNaREpZ
aHIjQWtQVUMwdTlqPXc4Cnora0ttdFhtZDlgJUlhWWZBU3BIZ1o4dWJycVd3YCM1PzdTQ3N3OUZY
MUhoOEwwN0BjUShnN0BLM3UwaUJEOCVDcwp6MXNfS1FmUXVTPTlhQTg4VFdOQU4tLWR+e1JwZy1n
NXhKbXo/dFc7SWtSVGp3QGgpWE1AaDBfVSlEWERec343T1oKejJsTUE4Xz5wP2hSX2lJWXF9RWd3
VlM8TCZ5bH0tUzEkKGEmWlFpM3kkQihIOT9MMlBaYVZ9SW5IbkJIX3VmWUBeCnpEcDEmbSN+RCFk
NXR9aUFCWmM/XjRlQm0xNmB+NzxAb3JaRENebkQtcG0tdiQ3YXBpfmw8fmA+YnR1RElsbC1sPAp6
JHlDWE5fSFZNS0VvKz07YHZ3byV5flU2QT8rN0FrQiNfSFhnXzdkSWE4aTsrbHp9dy1FRyhJNUM8
ZDJOVkV7Tk8KejlFPWYoRlY2fCFnaD9mTjBGfUg8Smp2bjNSMVAyfGl4KG5VeXFqbXEkdE9ONzFw
cExGQHVWUHlVc04pIzZBS2B2CnpBUTN8cCtJQjI/VHhNfXFpbU9Fb0t8Qj9BPG1oUmtgVjxebVBm
NXdCLWVoKUFhI3xaRG87Kik2djhWIXQpV2k1KQp6TVVLdjhMV3xEYFEzTzJOdF50dFpZTGdPSXJ2
UEx1RWk0VC13KzU2c3F2e2s7TjNqVmwweXYjSS1Ba29xZU48NjcKekFYSisyKE8kfntHe3E7aVEz
IztQK3JOKDdKZ1JYJj82PFFrQXEociVXTktEU2hGRTU2cHZPeVprK19ZO3hgTURICnpqLWAqdzF+
X2tebGFIOCEweH5seUJuIzZidk9ScDc5MzR1Pzw5STI0bS1ER0dHOElQUkRDIVAlcCkyMHtia2tY
aQp6WmQrYG1aKkBNUzl+OXJBcFgzbWJpRXpnSXM2NT9jIVQ8Q1ZiTy1RczZ8Szk9VGM0Kig4eVRM
U3JSdnFzcGwkYjgKeldJZz9iQD5jemdHUzxGSWk1bk1GJGhJJVlaU1BMOWx0eS0jdFUwTzRJKmAx
eTdzKkhtMGlZczxwU3l3I0tuM1AmCnpDNzhSRiZ+Nmd9bExWRikyQj01WiZ4MHcrZVBwdSU9PHA+
MG8pcT4ybD10RTElV1hLV0ZhZU1sa2B8VC1vSjBiVQp6TCgyUExFUWpZdzB+SUc3d0NaQC11c01M
cUBtS308YFBOZk4kVEBOVnB6N2xMRUMqd2BHYEh+WmBAWkpAX1R1ZGUKemhvTDsyX1RqUHlUSDJQ
I2dZeG83cCFFMWVNNEtkMWU/dUd+RHZVPEIwdEcpNVB2ZWFAaFlPSmdxd3FtLSo0c2NTCnpKV0dm
az0qbVAwWDFYaUBOeyVrIV4ySm5YWUtgYVIhc302bVVPe1FfTDUxVlptelUwNExhNjNwKzFKUUpg
Jn4tMQp6Tjk4JjJZZlM1K2FzP2tIPVMqPnFUd2wycFR8JE1hNHhwNmR3Rzkoe0E1clgpckFRPVNP
SWhDQT19ZkUmKSNxOCEKeiNUcVpfI20rdSU8OGhTMWd4RTtfQUpXMUBhUHVzNV5fTzx4e2hNMk9D
RV9WTyhJbnBXYElDNDtrbWtIRiY0cFRjCnpTRmlfOSZ7PCgwLWlgNWtMRCNWZFBiNjtORSFASnBp
VDBnSHQtPlZVNGVZe1dFIUBKcGZiJCZ5cmpDYVEpSWBOZQp6czY1QGpiK3psSzhgR1dOJnQ3U3Q4
Un17MT59VzE2dWNecE1EI31aOGk7blFvSXFxVj0qVUhSandZMFNLZG1FOUYKel99T1FsSjsmNGsw
ejgyYDc5cmY1bWpWQXJNLT0+OVhpTVVVbm9CNj5xLTtxLUlXSFIpNENRYVVAeGVScXl1SzhACnok
dSp5VV4ydjV0PjBQUVBUcjZCcSMoSmltRFQtPmkqcGg+VV43N2xXPEYpckBFPzJgKXs9V3g2Tz5g
cFV0JnsoLQp6UyU5YUR5dF5xI0k4SERgYnAheVUwdj0zVV5vUlRhUkRKKnxAMU11b0olMVEkSiNs
QksjcEF8Y3F1Y2VLdnU/TSMKenMkOU5sRFJLQ3xCRnB4dCsmSl81Tmc+NyRxeTYrTDgxTko1dTA9
dHw0XmhZbzJwQCskMXhFfT5CMWw/RExHR0hVCnpLNTNHI2xNMDxVRG8zdHw1MEpDelc7JiszZzYh
MVpoa141NXF6QXU0LWd4cWh3UiNVeDFXTj9aUVdId183c0x+SQp6WSQ5akZjVVFoS0g2X1p5YC1G
RmpASCVCVWV1VGBaX2JKfWBUPitwQFdCRCl9IyVxSUQzN2dtKDA4dz9wQElkKTUKekwjelNYZGRR
NEFwRGNzamNIOTwoe3xSMTs7YzltUGwqX3liMH0oKS0mb3JTXjtyYTtKKDxYTmxKdTtBb3w3cF9e
CnorT3BQfWM1Rk9CZCR3WmQqR3t+ey1XQGArYDtiQm96bFNgMEFNeXZIMVN2PkcmbEE4Jk8wMHRu
UXpGU3JpNm4+MQp6YXRHcmA3QkQ0PzdnWlUrbG5oe3NDQlczMjVeKSlWVXErNmwwQ08pU3xCRmgt
YnolWGU8WE0weTBoJDx8QVVSeFMKeiQpZ2diMElgdnIhITR+MjdtPSViMSUqWDZRV28tPU4mcUAj
NzUhOU1Kcz8wJlBGXlFxcyNUfj85cndjaUlhSC1nCnp1QHFSM1RZUld1c3F1KEF7OFRKTXZwak5l
RFchbXJ2dypRU0RtcnpFJkxWMXt6Rn54X2tsUiNSLWNRKz5qKkNrOwp6UHlVRCphNjNePWM4K0Nh
ZmkhVT1iNnlgKEt3NyRhQEs1Qzs1KDNiYDI0PWlxYklWSCFsVk1NYWVNQk5KNWs1YT4KekRaJVds
aV9sSX08UUNhalc+QW9RQjt+a3lRS09lRl4qQ3dMXng+V0t6M35lQVFSYCMrUz9PKU1Daz00SWFA
elhgCnp1JH4zKmJRayY9QGJuI35AMj41N2Z2IytPb19hU3VNPWY2aXA0SzMkZlpLTDNqVFp1LXZj
R3pzbENZe0pWKFZ3Kgp6d1ItfntJVXJCRXZaaVJgSXNsWUJOY0xhPSUtSFktMGl4dnJQWU49cTRz
bEd0UX02XjNsRXQjI0lxfUNMJT9HSHQKeiVmZlpJeS1YSDx3PSFWKmhTX14+R0tBanxSRyNFZmQx
QT4pI01MTzQqejJUKCtwI1o3MXI7Wml7Yj1kcHsrZyZiCno9Xj15NDIrTjdCakVsKHJhNEVTdlM1
c0pVbGg2KiQmaEFEbHdFPz5mUFlGSUtYfU0oREQtfW1PX0QwZFItQkdrPAp6WEI2JCs4O3khJkpl
aW0jcVl7YDNBNTxGRXBHZ09wQi0yMWNCbWZHTmNMPnAoMUVfUE1YekJTMU9UJjNIS3dwcyYKemJ0
QlRDM2skPSRGX21gLW9+WF89U3U2Kn1hXmRLV2glLVBRNm5zJDhjPCU3VTl6MTlESF4+P1Fic1RU
WDUpaF9ZCno9SnlxeUw7ODNaXjRAcmw8X05OOzJDQ2V0NDw0dCtSOSEwYS0tKzlPT28+TjdyekVH
WnV2flp9NkA8JHA1Nlg8JQp6RHZyfTdkfkl3ZHt7eF9ZcCN0P1UxZ0lPKzdiRX0kcWoocVZYSD1v
P1QlRzgrZFMkNCZ1Y01gYF5tTnxJc01yWGYKelZ9MilgKUojb3Z6bX1DZkBiUldpbzhJUHFiX2BD
QlJpNER+Qj1hdjAjezlSeShuOXhuWjFGOS0tejdfTEM1Q2RHCnpkbFR6ay1zTEozanc+Kmd3e0FO
Tzw8PSV6PTAyVl9mdkczR15CU3Y4d2htcjhIOWF7fWAyenN6WDhfY0x7fmFuJgp6UFhaTGYoO1By
dTM8T0F0R30jIy0obld0N3p1QCFtJF8xWVhTMXgkbnowJjZPPEstNVFBQldFIXw4Y092e2luXzwK
ej1iITVmP2UzalF3dFNjd1clNGpTUCM/Z2dOZGFpUnYzRSYwTFYqQ0hBY21ebkJAc0xjME9oRGVv
Xn4/aVgxJGwzCnpqNXA5eD9KdmtpYENTQlBGMmEtREpMSEdXPmhYdU0xa34qbHE9cWo/aUdHXzlm
RzAhPUt3YTJaJEl+LXNXMkVTYAp6Rld4RGxRazh1NDE4aWt+a0soTWNgXnBKUmdwbyRoeipIQjQy
bjNZKFNxeEx2QEk9KUY7ZllqOEE2RkVyVDc5UmkKemc+d0U3bz1nV1RATk82UlF0WSNtUkc/WmlP
dEdjaWgoaGk0PjZwRnw+Qj9Fc3s7aFVeQ202YEwhYSU7JHBRUUktCnpeWlh0V0sqezFBeDlvblRr
PylUWkJ6R1dzUFZ4dDAwOTlmRXF+eWh0SXs8S0UwaXRCXyFYcW4mQz5kJE02R01+JAp6UXQqfGA9
QENGTk05QmkyU2FQVTlFaUFsJTAtN0VaMDdgJStoTnBQfEI/b3d0Un0+a3t4czdMcFd3Q2JsWFVJ
UlcKemoqP1RgPSt2MVd6fEo1d0hJTEd7PH1zP1M5WW9jcjJqRnYmNXxVYWU3JERffEc7d0c1YTxX
NkUjfDlORm8xPDgjCnowYGErXig2ZStCa0NUXyoxc0xsVVQ2WDBDdmJANGVsJHpkNzVsOWRCZn5V
I2VzaGxoXm5hQU03aVB4SUNmRj48Swp6NlpYTD1WY0pVcDszTm0ma1Y4dkpqd2l3fThUTz4pYWh8
MHBpPyRQeytTS3N4SFBEREI4JSMqTDgzal9EeGcoWD4Kem17NytOV2cwUXhOakxPWShvZFFuJnxU
JHM9cE5jWDUyUD97Y1IqWnUwekNaeWM9e0liYk9ZNj1FQVR6X1k8YFo7CnpmQmlTQSFeQi1GRG9A
PEQlWSpNSl9wOWU5Nj1+eTlUUnRKKi1Sc2YxSjMhX0s1eGdwVTFURVUqXz9tcUlQb2VsWgp6PDk5
PEU2KFBXcjB3JmBXRihEQGNyQUxzJm1sZnRxMXxOJns8bjRyeWgzb01CazxQXkxSfGJDSChvbGd5
YHdpeEMKelJlVD9gNnRJVS01UH5tcEpPbHtVTHpJTlJTezUwajEhbzNHdlA0elMyRHxSO09pJDQ8
JU14PDZEPEBCPERsQk01CnpgeEJyUDZXJjZ9QCRGUVEzbENaNDVZXk8tUChwa2dJWEZ9eFJYIUkw
bz0qRnY1QHxjOEAzIXVXMFlHNkFaeSRDLQp6Vm8jJWBSV15CaD0yMXBjSn5kU29wZiMzRmdIM1RU
bDRKND8hMU5lRUhTb1NYUkg1S2E+XzVlO1R+SU8zZ3BWbXAKejI+Xyljd0RjfHs/R2VfeFJLVys4
PnhMdzhKYSteYno5UzV5OUZ9YHNjdXRBNlMlTjhEdFp8QSNqdWhUfWpuc0p5CnoofDwjI0VEZDVe
T0tZWWZtNCl1NTQ1IWJ+P3RfPT0qaC0yJXd1VWtUNHBMYylBKz9tYVAtaVZ9K2spclRLUHBmUQp6
bzU9ckYwNSNLcm1Lfn4zdmxzODxoeiFWJT9gSjM0dVQ2fSQ0aTVGNUolOTBoI2lePll0Z3hoKksl
MypQTjBtQEAKeitJO1pmb3t6cng7KX5hV3V4QGNnIVRnPGVUek9qbXIkN0IpaihfQC1xLUZQeVZ3
LT4yPElHaXwqIT9iOUh6R35+CnplVihnT3hjb0wocTFYJHg9IzRrZiUzSGNrNFRmP3Y2THFebEtm
OCNzOzs3UCN0dk4lWmVQP2JAM3xEKilmVnl7Owp6dDVCRjRrb2NoZnQ0LW5rWTczN3w8bF4/LXFZ
NnxBVjJQX3hxRG1BaFAkRkZuZmMoWXMhI08tcndSOzFpeXpoXjwKemQpPlJ6Y0gtWFhkNT9SZUV5
d1Rtb3BydDZSXzVeRllAWTRJR2J4c285JSkyVEszcks2TDZvMTF4KiR5TWk2UUU3CnprWHBGPHEk
TzBhMF9GaGZBUlZ7Yk8tQEdaJHhkcjJTdH45PWZhV3shRjEka2xgcS1rNS1CeUxpS05IJCsmRzk+
cwp6XmB3bVNVXyUoWF4kO25iRXFJcnprbH5iblZ3S1JrT1IjO1BWb2BuSyUyaFR9aU9ZU0wzKTZT
cHpCP1BiNGp6ZWgKeiFycldFMVpkV1ROWWNtRWdAfVRfR3N1M2JhQ3JuIXJTXml5c3Q7Mi1UIUF7
NWhFKzN1cnNRS35MV2l9P05MJShXCno5byZpZGc2JUctST43fEktdyFXVFh2T1NqZkM0PTJWfGE9
cjhOaWNCKFF9ZG9PdEN+el4kNGM7R0R9dHZSJDtJSgp6UV9fR2JYfjJ7cXohWGFjRlNzKFlOUEN0
fEF7biR3V1lOTnRnJV50VGl2Ul9XbHBLb3ppQH1MdU4mdSl3bEV1ZUAKel8mTm95TGFgVCRfdGEm
UDJ8UHxOQEh+WUBHKkN1JWhmc2xQSWUhX14waDRxQURfMkBeeHVKMXtEeXNVYV87aW1ACnpzWShK
UU1hTU1AbTgoJFBGQ0BJNFYmYT84biE3LSFPR0dVQEp7SDBfb3xiVXw7TTdkc2VsX0hYJnZWJUIz
fGZJJAp6VDVGaDNuI2hNekolbVh6V0pNfFF4SUE5JGAzMElzPXcldDZTYnpoMHZHfXE/NWBiYzN3
a3JPdW53Vys+dFFDVUEKenZ1QGFGY2JKTHw0XmdYOzZwYX5mcGpxdHxeb2Bud2JYVn4keCtuaVMt
SXc5JjZEbSo4SnlmODZoSnBNV3p8KGNXCnopNU1NIXMyOUdjN1FqPUArR25YOHQtRGpHSm1td1J2
ZXZ2SG44eEVhPEFyP0pZSTJzXk1ePl5McSRndkpETDd8VAp6N2t2T3ZLflNVcyVKUn1eeSNrJlRX
YnA0bylvMzlva15xeEQ7N0QkczxZallVTFZxTCR6QVQtRWU/UV5gcT4kNEQKekRJUEBvNnlGbXE8
VmhMOEBOSHBHME9ib1pNKntte2xPajU1ZDVSb3VGKVY7VVE2QmAwMkVsa0FnPjAtdVdNcmkkCnpV
WkM5Y1BBVWQwbTdlT1NzPEpfPHN+KH1JYFl+IWhLU0AxXmxJVEsmTTFFY21gRlBpcDMwaXZeTkdk
LWxvbEhBKwp6JEQ7eGo0fWdsSi0zTzl7ITMyQVVWaFJmPnF4YElMSSR1eyNnS2ZuJCs+JVZBamEr
ZXAyTVNxR1kkQ3JSN3xENCQKejU3VCY5OV5RWShRdCZ9PjZ7PFRNKHt2RUdAO1p8REE8a2VNMjFD
fGlZciElfiNQKSg8PzcleSZeKX1mbXllP0Y9CnpxcFQyWGcwUmklaGByUkZZbDNQUURxRHo2NyYr
XlFOfFlDajxZclZHZVVKKUhFVD1UNUZEUy10MXFFOElwcmpMZgp6c1RrcThqbH5Zc1FIQVdlYjY5
JGVFR1dySjdmfW9FQGt1PCtAc29zVWloP3YqSmNURWojNTsrPVdTK2owaTEqPSUKemNqNiYqY31D
RSRPeVR7QFRYXiVeY2E/eEF1MFY7YVAqKlVHQyFXTishMyV7WTVHQXptTH5YcTU2T1k8PnE4NlUw
CnpqVkI0dzxTRCUwKXh3KVdoJGFpd3JgeGpeUUZaRlBkdXs1JW92RT9iKnxDOSF7PzdLdz5iazAm
bCVrdkB1aktkOwp6Nkt7NyVER0wqd0hSfGUkT0MpQS1wN05pISZ5SUopTl9OYCklbDZzKnZ4dz8z
TCVDIzY5QDhTWF40TCU9TmhwOHkKemclPmA0e2lUPGRlIWdWIXgtSUtnQUsxVGx0RzMtPzlwe1Zg
engxWnMpQzt7RzE9Q353Q0FWa0JEKTBYOTRwOHR4Cnp1QD8lJEFBU2NhUGxFaFZmJTRAbGx1KEo5
eFp3Uzh7RFJsUkVBNV5TMGE2YyNufnkqMnQjaVRuP2xHIyV4MXF2Qgp6USVWZmRnU1V5UlAyN1Qw
NlhmVHRFJnZmJW1GOEVXTH5YcHMjbihScUNgSXpKbE9oa1I5cHElVm1YMnRBTXdhcSMKeig9aH5T
cDNyYFdnN0VJfnEjWTgtKFQxeiUyIWUhTilQVzJyMkI9UGlTKy19V1Z8cUBHJTdWOUgxO2NWd28q
MTZxCnpxaTlQOHNQfjAmVz9tP0tFQENZdkBZVnNLKT5BRUBzWEJPX0lSOXowSURNUUdpN2tYJnNs
Zl9ZO2hwRkpKUTRrdgp6JmduYkREX2p1YmhiZz48UkM3eDRHQUNESzNvPW9gJF88JCNCKHZ1ajlv
KnZ6PTwkVDkpKDstMUFoaE59ZyFVWisKemxuZWskOHReMWlecWVGeEM1ditgSWs5Qi0xRHdRPyok
O1JVT1pvdTdOdndsWEB4K29vbV9YN3Bqe3ImcjAzYCE+CnpWI3h4TTc4SXVSV0xkKVhCMWpVQmZR
bVV1ZlFubXRzNmVzVTU1PCNwaG1pZWIxQWh+KlN6K0gyTGxPZzJQdjEwaAp6blB6QmthRnp4Slg2
VnUtMDJMQ3omJFNANXZKUkNnUkcxMTg1bH5Sbk1SXjZDWHhTa3lwclF8THlJfmxfMlBuVT0Kem5A
JUZrbDh4eXUkRShuKUU1PmQkLW0/YTFMYytDQEl3fm0kWE96UChJTDtUNkxvJkI0c3dPZ00qVTEy
IXEpfk9eCnpPZD9zQm5efCg9PEpgeCVQRkA9RGd6dD9PK0Q4VWpRUkpxNW9aQHVOPSMtdWtIRVp2
cEE8YjJFMUt7K0gocWo0JQp6ZWtURShxfHZySkQyNjhoKVh4QkBBTklYT0h9PD9wNkZYbV4wcjtO
VVU+ZEltSmVAKlJLQG5QYWBEb2thcCEkQHkKent1TjV4eW9rYmdFflZwMDgtNS1EKGZ8UGVeaHJj
UFI2aWBJTzhTYlhuN1hxRSptd2VwOEpfVGFnNFVnIUcrSmwpCnpjU3RIdjNfeT9jc0x+YGExMkJU
KkFYKHtiSyh0Nyp7SVUydlVua3Q9VT18PWUxOTFiVyZLKkUmNlZVfiNORXoxJAp6SlhzcVRsWnpi
O14pU2BEIWhyN3ZjPiRPTEZ8OE9EKUlqbDMmNkViO1N6Y3gqVjV5aHRrKVBGJDw7LTBqUWBGeHgK
ek9UJD1gR2RnbUV1OGlISmk3VTVnWVZ3V3tUelZORlNDa0peTHw2O2kqX00mTWV4WG55Kz1HZH4t
SSYoZmplSUYtCnp7TTx8fWlaR0IrTU0oKF9SOWY2WDluQjNpKyp2YFI9UUMtbkRUMm1PYWU1cX1G
IXsheWdFcm0oY0h7OTFtUEAmKQp6TGdsRTUrSWNYTl5Ia21pdGFValh6Q3FZKW1rYzkkbkNaTDFi
QlVlTzh2di1jRGFgeD5OX1J2WEY5Z0I0KihObTEKemVrKypPI35RZm08JWVsSkU1d3dAQSMtanVX
d0AtTTItYDJuKTk3PUdhQGokN1FKUW8lLTtVWlY7RilUfmJMU3JiCnpeJmJYTWglPE55fEk+V3s2
cVcmQntCSFY2JWhYdDNlZ0NFUWluQkg0U3hHMTMxRCFsdj5AQEFJTz9JbHckfVppcQp6V2VZWkxl
RCg1JkFITXBgbFYpLThLMDhTYD02fWo1eVQxcHZCbW5oKXVtZkpRQ3kjUihtPkwwNiYqMjtKR1Bt
O0oKekQxVlEkcTI2RWcjPnkzK2UhNngybmlWcC0rSCQ3UkF4QCNDYEheS1VYSCNKKUZQeGtuc3JW
an5jbkBhQnN2Z2RhCnpSeV9RI207PzNpdHc4LWNLIzNxfkxYYkQpMXp8N01kRit7TUxRckwkR2Uq
MVpzV1F1b2EkfTd0RE1TeUlEMl5hTgp6MXEkJXdGUm5zeVRXPnhAe1dkQDswSDYtZzJgZV5gdWNq
bUZwT0NyaVRMTTZOO3o9KEFUaDtrVkBEISRNOHA3QVkKej8yVD5nOExDMytfKGU/S29sbjh1SjUx
MT5eNH56SWohVGhQe3gwO01wbTxeVkYjRGZZQS1aNWFITnNxNDJZfStMCno2RTdzQF56b1lUOVJN
JlM4ell7ODt8dXgkaVh3bj0xMztsd2ZRaF9iTyMxYUFuZnd5Z3lWTkNfUW9PcWI5bzRhaAp6MHIm
XykyOUxxPjxjIUk/PDlMenMjeWs3fjJuTzs0WHZyYDw/TCtseEFIWm8mMEh9U0JPOW1mNXR7OGtR
a35IQXkKemtwTktwTUxLdUAwMGxgKTBpZnswRF4jSVNmJT59dmlsSXBZT09wMVQqYXlYNENeblFV
cUo3OFckdk10Izs8eTQrCnpqeD15OENCTDlMTjxwaXd5aSF6IT5ndH1QcGBvaD95MWEoZkRfMFNB
JHc4TSQwUG1jaj0ybFQ8czsrKVdYIXxpVgp6QCVfcitiO15OeEpUfF9DZD1PITklJkNrX0VRPzQz
RWtpfFFNOUJoXzQkN3JxaVlvPHFMZG1wYGdeST5MUkJRR2YKekpjKD19MiRAQkRGZGVvQlEofTh6
YmwkciYzOEFLPCVsalpIY3pSXjt5PCRfb2okIztEc2ArNzEhSHVGMW5Oc2x+CnpNUVN+P2w/SyRt
cUc9VU8rTSgrNzFLS0A1R2R1eUQ/eSYkKWNjQzh2UHY0PlhiUExzfGFsbGhBO09ZRnY9Y28+Kgp6
QGlUeUBKZjYwTHZaM15eVVo4e3haJlNwIVBzbkdfSXokJThrZkZSR19RKU5AKVNXeHYjfil1NCF4
TzVIZk03T18KekUzIz1FUSolbX5ucDJYYE1UYFhgJEk4TD1CQX04fm5kRVNwZmt7U01CdzNrVXZC
Vig3PWNGPEw7T1BNVFJReGBvCnpFcjwkfkRxNGRreCZgRTUzOyE5YU9XfWJINmNeYnskPyUkR3FA
Y290K15peUdYX2RtdlV4VUM9VVYoRH54bSRneAp6RXt5QDA3P3goSD8kRVdYLV9HZU9GMy0rPEwo
QDF2ZmBIVE4lMyh4QXcyYHxASDY0YVdOKnspRGp5NTwxJnpjXioKelluSmVfZEhVMitkX3BTfjdo
YUA+bmhWdDEoTUY/fT5TKmpqOSp2IWcyR21IPiRnejhfM0JpPyhOQzFiYW9jJjVYCno4UVRqVmx1
KDZZaCFPd19mNSE7YTxoM3BoUUhVUCFTcVVUZzV7Zlc/NF5fclIyLTN0bDd0T2FSJG1CZ3J2T15t
JAp6VT8taH1yKllea0RxSDtjeXVjV2ItKmVeJkhLKFhoQzd2SEwtTSpxUXRhV2tHVHwlTTl3b3JE
TUQlSXhOKEReYksKej5UTipmVUpPdD8qei1wUD5ZckRFeChPNHhYcEt1NzRDUVNBcn1sPzhyWT5P
YlpRRk08bXNAVTNqNWQhQV53aFI/CnpHPyQjTnVnWnpkJjRfbUpLSDtFZHNIP1JfTy0qTG0rTz0h
blZzNzlyN1JNdD1BX3tvWWo7SD5gV150fU97ZkRrKAp6YEZrTWdfdVE4TUc1bjhPJmBeJFBKUnpZ
Ui07QHZXemh6NTRTaUpXMCZwKzhORlNBUnshYGFqJkcxNFFzdFQzeysKenFkQns4OUVOZzQ4cisq
NXRHKylvUmBwPEp0bH1YZzQkfn5CKzBpbm5SSFRzLT0hfkc1O25VRDVzRjxlemdNJjFHCno4PXlw
T3ltNyV1RTs1cnAqMjBfZktze2M4eGBHT25wbXRRRCtQJWZ7IXFKbml3MFk4NEU3bGpCYkU4VyZQ
U2t3Ygp6ajthN3JgM1dYOzUpYyk3MCN6c1dMSjEleHUwK2oybCZCaUBXRStud1M2cj4pd3g2JHFK
YjU0NE4xbTJqJFhTMEMKeip7WGReVy1AUW1GX3BKNEpAWEVRQXA8SikqZTcoXzgpb213dWM8VyZ6
NkM3JTxAfVpsczZNcXxsQk88bEl+OTdaCnpwYEBkcTtAIyRBO1Ilek1pNiRaa0NqVTY1QDZmSm1q
b0Y5Xno3MFpZelk1aS0lOC1wejZ9cDlMQmxsMVhvLURmJQp6cVNwc2w+SVhDcDBIOWQ/V2UldTU5
aWJsaHFBbkY3MH02aExzeUpoY2E8bjhYSENzfktjWl81SlByRWlCTkIpeCsKekFqJSZ2UXBtWDMm
K3J0RWoydSorVjRSaEtWT0FuKFR4Sn48T0tSUl8kKz80alZ7cEEjYChvK2ZvQiZTeSNNJSNsCnpW
bGhNc1JWV0JYYSVvS0dOdSRFVGwwayhAcVdQNjVJYUhyU0xWRkkkPGJxazhwJFVNKlFiMGJGcUZC
bFooTnNZTQp6MG1sJDw/MGBCXyRGPE9VRkBQNyE5RU5mU21vZkBNI1Y5VEZmP3owYkl5WHVeSj0w
ajcwKkQmQlBGSnFucGZNWj0KejhLaDkxViEqbzRGKXFNWFpRVCY2U0M9UnFsWUhUa08pIWE5Vnhx
MVhuTlljO3RkVTZ2PHpZVFBtP1g0JmM0QXM9Cnp5STkrQis9aSpLdCFNe3ItRyFEQVIpbFFYN0R0
PTZLJTMlZCg/JVJPaF9uVGx3P2V5alU8VnMyZmVOeldXVWt+dgp6OXtCbWlZdzZLeE88Nmp4ek0w
MDx6TXZXOWtMazdvRG9AQUBgYmllK1N4fFlwMmktaj0ob2V7S2BXRW5YNll3O0oKeik/TSRgPWph
P05QWmcqPG9kIUpScWl2Vjw8ekZjaW04VyMlSnRlSnFnKDVhI0MpPmBpJFo2aiRfP3xUMmQkSkxI
CnpQeEEwUiR6clR1UDh2ZjZAVWtnbStASDx1RHg0Z3lnd1JXK0pTWlE9Y3R8bEhKTG1HfGZKeTtD
QmAyMXdZJVojQQp6NjZON0NCI248NXN0I3RPVndyKjhyOEdjKEdKSlhYOE4mcTUwaDtFOU1kYWE5
ZyhfMUU8c2Z+WFNLNzNtOD45MjYKekZrTHUqZyp1U2wtcllHeGVGIWNjTTFiaVNsSGFFJFp3dFY1
OVY+RWYtb1dsYlVZVD9LSkd2JWJuS00zcVEtRyYjCnp3RDJsUTJrOWkqZUV+bDhibGswbT9DbVMp
aCtRZVVxUWQyaURheHFtQ2QkTlFDQnlSbylJY2wweHUjKzJaMTFEdAp6LWZwX3cqRj17dTdTWkxG
STZ6SVgwNXVGd2cyYSNgXz8wbHwoRlkldFA9KDZWNjFETyRpUHl6QEAoYH1zNnRqJj0KelU9K2BB
YFY/PWJKfEd7eCNkdUQ2Z0lxTVEqfSg4IWltfUZYZ1lPUCVOSD9hekkjaXl7VmJUdzZMVChyS2x7
ISNzCnp4KXhSQSV+Z2lgSXRzUjBQUkYhOXFgKUheREktWGNzPFNabFRZfWh3ZFQkfChUJlAwTHQj
cH4rI15kKGdBMXlwbAp6YHxoX3xjI3FuNkgja2dsNTwhfWlrOU9mUElOaEclMDhJZyY5JnFMOSMj
SC17UT1gcVpCUnpHNC01MUs2bihGZDEKelBVan4xcXthdUVnJDVtJHYjflYmVDJXZWhpSW1pP3g0
KjxQVUBwRXEzd1VCbjVRRWJiUmoyPjVleTNqcHNpekYoCnpsNFpsMyp9JSgmSVU5LSU8P3V5KWc1
JmJWaXtEemlXI2o0dFg4S0J8OXVEVGRzZDFqIWpnPzhRQlIhe1E1bj1Fbgp6eWlqKiVNKmplKWA3
T05wMDBsMTtgPUowJkI3aFA+KUNtYUZGSE5yMFVFXyNLNmQpP3dsNSUxPjZjWjV6RnFMemoKemxi
Xkd5KDlZdihsJkF7emRqTHVmMEpSNEl3RnY8QUI+P0lwR0x5I1kxcHQmYzA0ZnxubDsoZ09DJWxf
JSNKMlRUCnpFREZBdXNWKUUlQ2taI2o/Vn5EJFl2I0l0MzNEaiN6Z21QOTRoJkVxcCFLKGUzUXU3
QTQkI3ladzsyRzFpVzRxWgp6MkNvR2BaSzcoZFo+ZnR1S3JMeVMpS3pHUzJePUlIbSV9KnpCdFc2
MC0tVVJDNHJELTtNSHluJWozdD5VK0w2S3oKekMpJlRvb3dseWBybWJLNShlQUIqQigqQzlGSH5W
cjFWSEs2MGdCPTJ6eWd2MkprMUk0QnFpMXlKUDhtNWN3K3F5CnpmTVIlPjExM098SmZLTT1oOShn
PkRMeyYtRjBxN3wwUnxeNWdIX2M2STA/JlBHWjk2QWJ0XmlVVVcyc3N2ZilYfQp6TDhZalc5MSo0
JmZjUyE+bHJ8WDFkI00kYnJhbn1paE92S2NWKTc8VVAyQ2NYU0heRCQ9WCFkbGgxTVAkJk5IJCkK
ejtEPjQ/Q3A/QWB5ajY8NEo1QTshP1pVY3tFIWRtM1g/cllmKyF7Kz9aO1luKGY/e1okTTRPXiUt
UjVYb2l9UCF+CnpqLXU2VHExOTNKKW1NQDkpeWhhKHZuckMtdCZYSXgqRj9+K3QpWnlzMSl6MjJP
XiEtNzZzeDk1NmBKdENzQ2BZQgp6UlgoUlhAWkVoVXt9eTVqVVo9YVZ1aDNsPzVqP1NlV19XX1ct
flRlKks8alJEX2xxPEwofDhOdzNkJTVUbSZAUDsKeld2dXVNcjIoTGw1bX1JayUlfHZlWjt8aG9y
UjJENDN6X2VlcWVCT2Ime2xMcG40fldxTTNxdCt6OSV7TypjNmNXCnpxJTRMZlJsdCp+YXZxZFZz
d3hGWV9BVnE5PHBNRUMwaXBtPmlqY2cjTk9FI3skZDhnSkFEMUQ5RDI2SVA2YSRuTAp6cyEjajNC
UWJtelYwai1aaUhJXz1HKEpVc29eP1hTc2smbC14JlRZRlh1cikmTHNQZUQ4bjg2WU1edSFpYWdI
bFkKekg/ZTIlKX56M2VxWDE0ZyRKYnYkTVFSd30jUXZ1WFo0PWFSYzljI1BfRUpoeDJTdFE1USYy
ITdgMndXO2U5dXlKCnpiUEh2YDw5N09WSH1idVBzMiNmcmR3Wn5ecipEK1QySyh2Q3o8SWpkY15Z
cnA2NmROeW0oZ0FtMFRnXnQwRyZ+IQp6bD1GbWEteCh8VDc3WVBWK0smSlZmdHM4UmJ1TWx2bD9H
c18jTn42cTUtJTJCRVFEen50SyllRUZjb1RzRWRgIykKemo3bH00Zm0qSVcwaWM9ekxNQFNhNHNm
Tm1FUGJrdCtEe3FCSCZVUiphPFd4QHBNMCY/UT53b2xSaSZGQGNpJURVCno7a3x1LTBNdExJaDQ8
P0tnJG1SfGg5fkkzanBfRWdIPmNXdnhIXjlSIyVOemRBOThvPFlidnZ7M2JKQjZmX3o9SQp6T152
ajc3LSViaERZYXxZO2BMWXJqQWcqaiZQNWE7cHFuajBQZ0lAJFRmITVBKW0kciZ0NUF8dzlgYFNL
SkY/KVMKem1uNCtHXyN6dzFLU042U20jZGI7UCVnSmUtQ1NTd05RbHFUQGJhUkYobzV+UmdPX3tI
Kz9wNkpgK2pEJEA7K2IrCnoqLSlHYlJXNE1hey17OFNEb19nbilPaDt8ZlJxUH53IWp6RT16PmE9
MUh1TXZzV2k9O0dOS0c5QXdXbSlMPFA4Vgp6MXhmQF5xRT89JG9mcGhpc0NrdHJLRjhIM0hsTzwo
bFNLbWdaWHRvKFMkX29wPk8oU0AhUmlJb3g1IThMOWZ+eDYKejdrLTckc0tvYXhxem9oY0Y2a2d6
YzxSRlJUYFNzbV47aiVpN088TUtvWUI2Kz5JUSEjND5MZ1ZsVip6akNzZ0c1CnpCPilQUXRHS1BB
M1JET2QyTTRWfF49WHNQekI/T3g1YnJrODF9TCU/YSR4I2xBYiUyfEUpYGs5U1pZZUc4VHhjTwp6
JXp5JDhUYXAyaXFoK15ZQEB8c3taQ1VTMlRmWCtraSp5aUQkYig2MGNQTHNXO2QxfmJSR3MjU0d7
NXJuNyhuNT0KejE5T1ZPV3MjKXowLShnMjReVUVvQ3pqQzRUYzgzWmdIJj4lPkxqaS1GKSUzcm1L
ND02UUt5YjdnYSFtYVFxZnxlCnohZ0w2ciNQSV8yVmdAOH0wfU4yQXM1filERFdlamwxaF43bDMh
dFMydXd0SypIOVMlN28+aFdUeXMhdV9qX0BeYwp6ckQrSmojTmFlTzBpTyZZaWQlWW96ODJTVzxO
XkRnPzZBNTs3bjV+eiU0eEtIWnZ0KUg3QXRfIT5KNT4hWUZ6fWEKejFPUj14RHg2bFZXSlM8Jlh2
SGUlRH0xfmZBQWMxPVUqTmlCVXFae0ZGVCFacShsQT1KQjgxa2o0eC1LTDE0KFlACnozRFRFeCNB
NGFRNnNmRjlyJlJZK3JgajRDUmFye2NtRUo/dTJgeEtKK0RZSnYwZzVZN3RSRGVTLXl5IT43VTFk
MQp6dHszVWp3aW9DZStJSG49K3ZVUlZsbWMpe1VJQjFne3VmR0lAZUlZUmRYZDd7eWhndDNKfE8j
enRJMlRkSzJxN1AKelBTUUtmWCh4c2F3KGFueG9kRTRVeUNaNDtVajc7ND1PbTJASWk4cn5IWFhP
XnhaO0ckbFFQMi1xeW1eeVJTYGp6CnoxZ3VuNTBheTR+YXZNRz5ERkglcEtMdiY/Ukg8Wk9BUXZp
N0pDWlR2Zk9oUihmSEZjZkVzVG9FN2dLY1Ukc0pVUwp6ZllOXks2MTtOPDYoenZZKSE5Mmp3ZHUt
YlFBS0dHYHZ3YDEjenEwYm12N09+MDU0e3FySGshVHMyKkxSVEEwWDcKeiZrUnN1S0JnfS11JDF7
XjJQTVR9Rj5eRXEyZn5wT0FLRllJS317NEkodUM9fV5IYHpOZnQ1TWtSRXd5SkhsKW03CnohdGc8
ViZsbkImNGJXJlcrSVNhQkBMWTN9TWdjWTRUNFI1YjA4dEUzJjU/cHZpRE8yMXhUQ2tvMVFXVHNB
fERpewp6QHpAOHxuSiRCMmxpZ0pJfDdZKCVwc0clPVpDfCtXZCppKTM/c3ducT91dSVlYjMjPDJX
SUBHKklWYTJzR2JwMHUKem9POH1PMnVSTEpMX3R4XklwPFZXVF4meEomUno0SD4lYUV+dzU7eXhi
TmJ3U2Bte2E5OGhmK0JTVF84YVlweXZYCnpFZmBDb2k/cVl6YEZVWCFKWGtDJjAyUSFwMVJ7MmlM
OVh1JXZ9Q2IpcG9KIUtuJTFCND1ZRD1aNj9kQmhhUGp5KQp6dzU2YFZGQEl9PnZ6UE1fRk4xPn0l
I2FoaDZ3UVJMJlo/dWgoTUVOaWJ1TGRZZV44KjVJK3VUIWlUdHwmQntAKF4KejdTeE9MLXg4cXl7
TFJZP2U8REVyX1Z1JUtLWVFfQDxMUUdOQyRBQm4+ZjBLTihvMmd7bHpiPHJnTGBKIyp2ITxLCnpK
S2NPRiFLdHM+QH1yYWlfd0tXTVBxTyR3eXpsOStETitCb29FQSNKbF9zSEZGX2VHeVM+SXYoYFZB
V0oqPUleWgp6eGZzZVBYXnBYOXk2RURTT1hoQyVJQk1zNEpVMkEycWF+fkI9N3JLe2s4YWd8TGw0
dit6SXYrNGg1Q3wjVTx5UVcKemg0LTU0SkRJbXVjPGN2eXtnNWxYaHlUNzYtWWZQUHoyWV4rRF8m
Syt5ZSpUKiR6PjFUVSs9PHUhN2pXUD5NcCRSCnpSSmxsPCVYUnJidSZuUj9lSml8WXk7Z1hQR2Y+
dWRzdTJhc3BNRUdtSlVyKmFHaD8zZHd6IzZiO3hPdDZRTl91LQp6a1AqMkpGQENDNW9gaHArZHtG
e1lRS0NsbUdNN2hxWiZKWSUpdjkzVVdlODs2UFFVPlJjPCNge2tAYUk/emtIQlYKekF7QDRKMWtL
PEshejNLbGhjZl9edml5MGo+QEtrY152ZHhhNDhtS0VsV3tZKy1zODBsKkw/OUAtQVUkND5ePz5x
CnpJRjZAc0hIcWlTTW9RQjdJbVJEIUIoVT0/K0MrN0kkSmVDKXUwNVVFRzM+dihLX0M9KHg8bHtO
OVU0VU1IMWEhSwp6TzhLfEEhbjs7KzVFcDFSP2EwfUlhPmg3PklNfW01KmNuVCR5X2heNjBCZyVJ
dThBVHJYSiNaOCpoQ1MwVmhCQlAKelJFUUchI2Z1ZGQxZiNfXj5KY2JYITt1RCg8Wis9Kj9AOHNg
cyMhRUl0JFA7RlB2Zyg0bm5taGElcilMKEZfaU5mCnpaeis5SE9UfFJxMyFHI3tyK3x8e2xQRjNB
Qj5eS3ZObigpWT1BQXtAVnBxJikwRnxPN0JoUjw7YnFUdFpqfXYlVwp6THMkfShPOGlud1NaPSRK
U0FYO0F5Oz94OyZKdCF5dClORzBHbjI9aS1ScVN3TyRwZCtXRHdAJXQxb2N4e3VgRDYKemV9eU1j
enM4TVFGTENuSmVIMDVrRzItQmBPQzYhQzI9ZithVzdfT0E3Kjk9djBmOS0rSTFaQnlWPXpmUzFg
fkIrCnpGa3c8T0NRT1dtbVc7TU09V0NPcnB7PmhEZEF8LXs8SjxDYUBfd3hlKEo8NXgkMjV4JiUk
cjRjVDZoRyReZER0eAp6U2NeS194d3lFXzFUV1RUNXVRZmpTRjQ1K3AxODdHKEkzQkdQUV4oeGdz
OSZXcCNGdjRyPU4zbV9tWmFaOF9hclkKenYtfUt8cmt8alFARmRXYnJ1UCUxPmRFNnJOWWVpbFFB
VnJgRzJfYX1PYjB2N1hKRCFNRHA7SEVmVGhfJW1AI25HCnolcSRSPVF6SjNtRGpxWWJ1RmFYOTM3
ZmZqU1RPR3g3QWAxY0VsTHI2WjhVeypKLTIhX0w1Z2NVZnUpVGJEX0U2TQp6aU9yajt1d19lKWRh
QyhZam0/e0BgTXhTO0hmKlRtI3x2MU01dSNgPzdacXg1Rjg+fFVXR2B6eDI1SWhOWUl1Tm0KenN7
JVNyXj49WlRIOTBeM2BMQWdMe31teldYTjBEJmFFKWNtPWcmVUhEYUkwPFhANyRBb2xtKnFkIX02
NyltMVUwCnp0S2QyXlFaNkRrO3RZY1BQQjlDTGlTKHs1QE5qTk1BbTVJT0pkMzErRT5gQktBU3lu
dDZEZEBuR1U8Q2RSJllUbgp6YUJlJktQJF8hOGFgNkZmVWNIVUcqRG0xUnIzTzZjJSpCSDxpM0ZR
Q1VkVkM5I3U0QEQ+QTdUT21HX1hATyVpeWsKejZudk5PUkQ0al5jIV90bGh+YihuOGF8Z1hBNUdE
Z0REfjU0cDM/Kj4pMSU9PGM9RnNaZ2FOKDc+NF9TcClVYENFCnpHVylIO1UjWDlJYSthUzxGSiQ4
MGlCTWNCYkh1NVBeKFk5T2lfcmEzO0swPng7Qz5UaTF1YTVqX0k4fSU9ZjNNcQp6TXR7VVFtbldC
Y0Y3YU02PSh5KCtANTJnRHh5MVZjRTQtaCpVPzwqLXZtREo4LWcmTzs3QHFtXkpYSSRKcDhvanIK
eipCMlI2YVE+SDFAM3VYLShwN3V6YmFQPjRlTn1lIXY4P0VXUTZiKXx5eGs4QC0/Qy0+cSM1KShu
VklTSXF1fXpmCnpMP0NHez9ScGdmaXpWbkVCMzFse18/Jip8JE5YT3NZJFh7RFZnTTZFeHlXKm9Q
KEZJI3olTH1CVHdeRl9FfGo2Ywp6I1BRWjxoSzVWKkhtfV45OU9FOFNiM0NeM1R4LXNhSkQxQn16
SW9YNm8zRVpxeE1ua0I0TCQmcldgKzBIMDc/VDwKemtHcDhGPyhvRnJDS3EmNkktLXUzWH56PG9M
TE14QkNseTQ2WVd6QE1ZRSR7VTA3Y19AdSk4ZXs8Vno4N1hjcWtVCnpvNTVxZDRncVM2MCNOZHVW
I0taeU58c1p4dz1QdkNhe3w8QzEpd2UjKmVjbWlYVlJCJjlYQ35wSUZMKWQ4Mlk2bwp6Y3ZBbz5v
JEVYU3ViTjxFMEBTbyMwN1pDO1dGYH49PlU2UlYmU2I1XiNwMGJ6QWcyRkc7RUM2Rj8qaTBTMEBT
JTwKemR2UCotSkJwYUg5Jm9AT1RiRFh4aTZ+R3J7NHNNe0N9dktsMHlRZkYzK0hpLSN9eDc8JXoj
PWQqTE82Sml8Vnc5CnowSHdAKDtPWEIyUHpwJU5Eejk2Q1FrJSNiTygyKGEwIzFxdm9iVilTbGMt
RmhGbTJvfT5vLUNaKTR7aDJFYlNzVgp6P0l0Kkp3eVMzdzBaSWk9TU1fV0lEeW1KKGMmV0ZUQ2lW
R0x5SmwxUXZMQFYzcXAhJHZSdVpQcE9vSTZnaDlwdT0KenZFNXdBeXJ5YnxGai10Nj5KJnBVdWhS
RDxNc2ZrRXU4VTgzZz9GOEMyNEB1NVRFRkV1ZjFZJDBuazdRbEM9U3xzCnpHMC05bWpoYEhhdUBm
VVBXJiZxaUJ1MChsakU9O30oR2VJcURuZmFDXmpPYUxEMiZuSyRqNTAjViUmclhqTW9aPgp6N1JQ
Sn5nSDVNPEdYVDtCWll5Pm9XOERoMFprfEVxWCRxZHZAQVRfY0wtM25iMTlAI0hASTx3VnFrKlUy
NXUkIWEKemZELWxUOHlkJTcoKVY8YXJ0dmNqJH1BXjVXcFkpUU1yY2Fie1J0OXZldTR6dWtDM1NV
Rj03cS1BakVWOHllJWk7CnpwcGBrK088ZT9Rdm4/PCh2RkI+PkQyJER+VX1oMndPTihkJVIzWlQ/
b2RDdF93N0wxMUttUW1PNVRGKDxFVFhDPwp6MDdjX0MwWkxTK2pUQFBOd1V6I2BaOGd9anFaVzJ7
Xi1OeHVzbClFd0o8c2p6PlMpLW1XbGFqOVk3MWQlSnlrNTAKejROSFc5JXFwcEg7cTJRezMxNFA4
cjZpb155NnErLTIlZEEqYFV+OEBfY2c4KG9YJlBVI2ZpcklzSENiP24wSk1SCnolUXNNNCNuOUJj
eUNedig7Qil+fEEhcCNfZFYqbl57UGl8NClSWVJAYHFkQHVla19IZkxqIV5YUEFkU0Y1UE9idwp6
SWh9fjYzS2hkUmdsTEFNQ0s4QD12elo7bXBURFckRT41QEpMZjRyYXhPKUNQWmt9dHYtTHZfJDQ1
Wio7MlVtOHoKejBnNExJNkRFXkNKUWJ8ZUVad1EpYnU4Qy0qR3NzRHJ3ezY/MVpweEg+UmpkYFds
ZGltVjh9YHJaQTg7Sj96MmUrCnpQfkozPmApPWtwWFVedVJPe0FKIyFgISNGRmNtO3UlMjdOfm1u
eGxjRHRqdm1mKSpsVnpjQ0sxVT90MytEYWkxagp6a05TK3c9d0tyR0hEPCo8eTZeI0B7dkkmfj8q
a35jXjdOLX5VWS1CTCZ6XyhBKlJObGt8S3tieGolUFA3KV8weikKekZGMFAxOVVZayVBR3B1Kz0+
NyQzbU1fdkBZLTJPViVGMyQwNmFqTlpfWTtBcWNsKyM/RW5DKCpxVHErSiRBNXtCCnpgKT85I3JL
bklVPWx1VXFSKFlDKWEqZCV9TmhsdlFOTjIpRzhwXzl3bj8pNkJlU3BffiYrSF9oKz1oenlsYjZt
RQp6LWckQWk/aVgqS0gyc2xFNnRENmNkNkQtKWZmOSlOQXBqKl9zSFljdkB2emdJbXdFMWxEMU1e
aGNXYyR6ZHl5TnIKejExVnUhNUp6S3FTaG90TDNmenBPPlpHfk8zbnheR1MxUW56RGRiTHo7Yig2
Ui0jeH1+WEkrTXE/UHZ2eyNPeFZHCnpLVHtAUzJ9KnFRJmAzR3szPEVDKHB2MyFodjJaaGtAREA+
LUdIMkcpMU9uNG8jczRKTEZMQz9GRm99R0VeNWcxNAp6Tz9jQUdzdXJ+WmJ0PVhQQyEtODtJXkdI
JD85U2BWUyVYWFRIYzVyVW9ufUFXWmVraVNKcks3V0phTWFASl9qbUwKem0mPHc5b1ZTPCRyfHJs
SSphNj50MmJsa0tsbT5Fb3BrfWxHWmd3IXsmMHo9THlmQXVCWGU0S0AmeCluN0pWfmQ9CnpoMmU7
RGJ0bXcmYTR6UjlyS3Z9Q1RFS3c4bz1OMyVqU0JUJDF4bUhiUTw9ISszVTMpenBjVkFkTlRScjAm
MXFKMgp6RGkwSU9mVlVQWDtJdjdaQklRdyhyNDZEa2FYbHcrd1UpRG4+cDVBPXQpIVlIekAjV217
SkN4VFlzQENGTmVINDkKemZ5clY5e1k2I0BGdCZgeDZwSmAyTXpQUXtpUShHYDNga0BWRXF6UnE3
OVBvN3k5JTFiUHhKRHdeRWA4Y3hWbWQ7Cnp5fmBmRWIyT2hmNjU+anpKbXRYOUcqTUJLIyMyRVd0
RjN+ZShPUUowQHIwJFo5NzVDWmtyNWElZnshREBGP0BKOQp6TSMkUilzUyNzVEEyVnVQSH59Z2cr
TEo8fHVOd3JARGdJYiY8JSU4aTlwSlcjfDFRQHFNfXpHUSt9eDstcnxZIXYKenZvI358eU9qZypg
O31Da3M2NCQzUGBAUVN7VlVhe1VzOFF+TXRIaSh0ZiNYSyVCPHp1RX1zezZOcmF+YS1KYz8hCnpA
RCEpPlFeWmt1aXNSfW8jKFc0dVg2bkZxO1dRanN4KWo/TVpLMnxMaHo1OGI4X1d3TkJvVkx8QCF0
aUY8Ny14UAp6ZWFifWRefHF4e2pkLU8tPCFKci0zUG5BI1RgekJvOyM3ZXgxZ0d1V1lZMG9WKnQ0
ZXxgfVFeOXp5U3R9SXlCK24KeiE2c2gwSEZIe1VfO0J4TyN2IzZMZX1Fc3FuKnBUVERxKipVSDgm
Z0NRTWpIRjJLKDRPPXkzd0VSRWhHciMldGdUCnp1SXYwV2BsMFRsb0VjNnpHPVFmakdFdHVEUWZU
MDV1SHcheVcmOD4lX2Bkdz9EKytpO2dtbDImeGRyPW9SPGtzbAp6WThoOU0lTjg8YmZ8cX4kY2hA
UV5SQVBKPUIwfHI9LXsleE8rKWx2RnI0Y1Q/eyZSUCE9bGZkYCYwancpZz1AWTEKel5RZiZqaHFs
Sms9c0g9OG47cGsrfDc8enxEblNpVWt0emwxZDxwPzcwU31vNmItI3R7X0ltWGlQa2N9OzcjNGBT
CnojIXlYSl5gRD9SVEBeRzF4dm1yR2QxNXV4Vykob21IKW96M25Ge1lAakg9akd4TG8wZ3lDKHdw
XkMjZnRsPiojdgp6a0hoNl41MWhgbUxxWUlqMSklbVY4eEZyKzIxeFVyaSZ9USZ3STg+flJlcjx1
dTxIWHJ7aztINiQlMH5xJWc+ZHkKei1NTWMkMCM1V2dvJkNqJmA9XzVoeHomMigpfUBBMTlXQk5B
V3ljWiU8RCkheGAqPEUrd0IyQDxmdzdMeEBYMz1XCnpHb29QSiQwRHcxWWlze2NmdjAhLT9BK2Jt
fExLJmMtdD8hciVLTHZiKi0kQFdQYWErTXBZbmhHYHU2UVJtfWNeawp6NV5GRyQzRlR1KGpJZndI
ISU4dWYyWUJ1YURhWiZZSmFaenVeV2x4a0g/SlF5e1B4d08yNDNZZ3trY2JsZGR+eykKenR0LTVx
SFF3dns2P25+X3ExWDR6QGNOIWlEVz9SbGxzVjJSIz49fWhNVnZ5ZT9xcFBKeXRofCl6MU1pelQ8
SytUCnpHSV9scmxjOXZMeXxeS3hUSGAmeEV8YkRoX3Updz05QGx1UFFla3pOQ05KPExrXkgmVHhp
Q2FpSEIjcklOZ3t0PQp6NCU4MD1zQW1gYjJ3SHdMZEhWMT5NNlNGfXgjTUVQUUooZjVMfWtfPDxS
fFB6WUFDQi1lQUtIdmk4b00yNE5fRjEKeldXNSpjQ0tXRGc7Q0U7dGVEO2ZoZDx0QVBQZ0dMSzlh
eT5HJkY+YllzVkhTMThPdXZMZWIlJjAjbzUla3tMWFItCnp5N0pjSUxjdkN+Q2VCQT9rT3tCISN3
KUE3QFNWZEV6fmF6Jj1EZyYlT2hrcGhKe3JUIyptWEJVREglUChFNTZnUQp6USpiS1VmUFNjSElH
ZXRKOWVRaSZaKF5yam9oI3dWQUdhREEqJnJ2JV57UjV3OHd9UkdST1d6Xyo/VWtLeUE1ZVIKeit1
Xi07S2VueE8hcGE1aUckIzh7MkAwZVY2aW1OSzJvMXJaeXExZEtIQn02MypDZXNQbTY9WWdaJl5y
eVN9PSQ2Cno5Izlma24kTDlSb3tfZ3o1VHlhQk1mMWM5ck1rZGREJlZ3OztLVyVXd0k4Zz9TUi17
U048cHMlbjBQST47fXt7Twp6a1cpbVpOd3VtSWExdXxHbjhaYilUMXYlZ0F5PEYleEJ7RkBIRVJ9
c2pUIXVQdCFCfSVaSmgrTz0/TzM7Qz5kR0EKeih2SzhOU2MtPGVOaUB9Plh5e0NkPTkoPUVsTUpH
dXRzak5TZUF7U2gwekZKVCVVX3F6XnphNWA8YVZLd1kye01PCnpCQnRAOyhrbHBMYExMdmtGSWJX
VF5KeXVWTk8mNE1BJlNzTW0xJiY3a1UkWTNYJClzSGZvV3RvaDdwPkU0Xnp6dQp6ZDZjJldydWFW
am45KmF5XztaQjhLdEc2e0cjQE9QPCVZZUJfOTF4bjJJT3l8OG5JeS11RyNBMiZEem9VWDNjUT8K
eiVje1hEY3pTbVRRQGBVVkBJPnxMT0QyeHJCMFFhPEA+SWNWeThAJCtrdyh1YDlGP2F5IWMqK3pw
Q0U/blF3LXJMCnptVEJZQkd3SCl5V2AqRF90S2h3QjQ7KihLV2U7QmZIZ0FpQGotNHE0cGxzT043
WkcrP2Z4YFNIU0ohNHYzc2J2Swp6en1aPCZ7K24yVihtK1Y2Vjw5aXFyOUc8MGVmd0VxIWBCWlVX
VXdlZCM+dUcjTX58YCgoRGZ1ZEpsZiNwYnFZUXsKej9lTz5TS3RNblRmYFUyX0xXTC1aRG99dD1u
KnZLNyZQe01SUkZBe15ZWituQzJ0VGhAZ2F3XnVrWXkoX3hYTFRjCnp6bEtEck1nSUt3ISZIekM/
WFNaRGczJGg1Z2VgdC01PzY3Pk1mNW8zVHRPeTNKfjhnUl4wQUtsPiM+ZE4jZFkqPAp6RW5RZzFJ
bVVYTlQ2V3g+cnV1WHFlJWAweGFHKEwoSGdvO0JwJW0tYTZ0UE9EaCNpR3h7SjB0JUo9e1ApUndJ
Rn0KejEqSFh6WHN4Y3Epd1YrMT4mKWFERk52QHUwaCRxdDJURTNXOyNHUllqNDFJei1CWj9oMlhL
PTxzMmU0YCMqPWpOCno7dGZoUWxoVGJEVngpS3w8I1UxYEtRfkNGaV51dlFFRWxGeSYyWT8kaHth
c2J2cH0zSGRvaHh+ekZ2JW5YT2VOSAp6KSg3cVJkdlBwZThHXmFHK3B9YVNlQytnKT5PQzdaJCFs
P3tjcHQ5dCp5Tz1eZGJCUmVDN3lKV0NiUHNuTVZWTHAKelQ+WGxsdnAtem57cSteekgoY0tkSnBL
SG92Y0NKNDA3Y0shZytHMSR0bilXLTkoVmx3I3I7I3laKG5XYklAZVpHCnotQl57Q1QjXzVfbUs1
YykhUCNrI18xPkxaXl9SfUc5LStsNkoyQDxxdFZwQEM2RiVzNVdoWDFVZV9HfH5VNFJtVAp6Ujgl
TS1PZ1QmWlBDfExWZXErUT9LNjF6cUx0X0lTPnQjITN0PjN3SXJESUk2VkB5THVMY15efkJAZHE1
dUt3a1YKemR2KDdoSz5nX2hLdUhHRi12Jl5rTE9tZndKP2JRRVA+SmVkLU8wKTA0eVloUjx1Y3dO
RTxuNmJzKVhgVDAjZ19QCnpOPVlrTTA3P3BrKlRWMH1EKT4wZWhiSnBzK192ZkM9KjleKyVtQmxL
SDFxb0t5VHc+dTtOYEtGck5aQlV0MiM+cAp6bCNLI1ZWamg/QjtPMDBSbD12QWpkMy1FWXIle1VP
VCQ8TXRfe21iYGU9PWxnczV3cnZmTEhAaT9GNlhQT2YpfmsKem9TMVcmM2toUGp0YUkyKVNtSWY8
OGxZfHhwbDtUP15FR0QkcGV8NlpaKVItNkBkeT9xZCtkUHdaWW9mI1NpYFolCnpvIUBReUZ3Mktz
Vz1qS14mbEFMVE5pZX1GOTI/ZmZWeHcmbUxtUWJZUDhDVzNZQ1p2S0peYHZ7MnVjRF4/KkxRfQp6
SUhtRSZzVDMjYEpRMTctUFhiUU1tciErKjs2KkE9WWdrTE5qPS17Pk4jUHNtU0s3M1Z2cVFrPzco
czxBSk1sOVMKenEocGdJJVAwYV8+biZsYGkrR3NrNVhmZHc4SXZgZj45aG9iNXs9bnJ2Q3VKIVFH
alRZVkkoSCVNe3U9OWIlISVTCnpIO2dNYjhMcjg2eEdzfks5RCM4aGN8TVVLckRHVikjT1hCYndY
Wi03bGdJT1VYOztLKjdZV0t0cVJDdjYjVFA5bgp6Sm4/IT8kMW8wSyQ4JDkmTilrYXhVYFQtYCZh
aEQmSDlRUiklR2NDMExMTFI2V2NkRWtXQkJ7ZzNjPSpiIUkqQzUKemdPemlmdjFmJW5MZV8wVyhX
WnN5KytsYDBPdF5vJlpWWHA7Z1lhOWY/WWg7Y1VJNnR3SntOZlVFd0F1P0wzbnpACnopIWsjcDZg
WSYjSVYhMDwkPVdXM29+SHpRbz8tfTNHU082QHFWenNOcjBEPWVQOClAWTFxTylOeEVLKSpkbD1F
LQp6MXdYZT9zeEM8Y3EjWEc4OSFHRjZtQVN9ZiNLbSNGI1IhMzk4bSpJKHg7UGozK0lmVjlwTV5p
NiRKQElOOS1iJVIKej5lZm1+cUheUWpOPkhONWhfQWB9ZTA+UTwwcXFKVGdAXk9mRSRUZENXNFNJ
JXhYN1EyPlFVKz9xXkRufHhedDBnCno1cShIPDRId3BxQVljQT9MWW9oUFA1U0huZU5HWnxQOVpG
fm9rfiMkVCNxeW5fJHJuQnM4dmljbW8pVHMlJXBOVQp6Km5yNkpHYnFUdiFxd1hxQzg4aldZcksl
NGJ+cUYwYzVSfnlNYkZoVEBveTJMNGlOZjZgOTR8VWRBUE9gb35vI3IKejdWYGZDZDYrI1QzJHYk
WkBPaDRzUU1GLWhGKElySiFHMlo5TlRAX0BhVHpZUTc3P0l3MnZFdTIxNWxCOEtwJks+CnpAb3Z9
ZjhqbjZHPHIrX2NzNypAWV9eRzU+TzZPZ249T2lSRCUwTkNoMnRje2hPenlJRjIlLSs/cUJNbHhs
PF5BcAp6NzhQam1UZk1uaSVGaykoeExXVXpqJDtRPDdgZyU+Mkx6eW96LU5hSmwwQl9hbUFERlJn
P24oQihEZWJKe3syYmgKejhofDIxUUZTYGNjIUcwKDxSaVp9cFpTVkByXm9sTUhlTnA0Y0QkbXBJ
NTgkTSVHV1ctKkpaV0N6SFIzN1hVLWZ3CnplZnNvNFFVb21FcSo+VyVSSHQ2cVBRNnY5fEklamh6
cVZfOUUxX0tlcUJNcWJ1SkF0VG9scmh9O0sxPislOX1pNAp6ZzFOKlJFTG10eEwtYEtSOyspWERH
YmdqcC0/KGBFPjckI0stfHp5RDNGVkZTTGRoRU1nOTQ/PWZxSXtiVHMlOyEKejZgcEYxX21wMCFy
KE5FLVBlMFc0NkUxYChDJm5BdHFiek1WKTVeQ1pGXztQRGo1eUhMeX52fWleRmxwcjUkTGk4Cnp6
RF9JUWItKUpoeURaP21TKGhRMjt8V2tCYUVMaVBeNCgkckZZdTFKaiRAKipBeDwjMj4xXjczcmlM
JVV4JEtvbgp6XytAPzZFRkFNUjszdm4/VD0kSitacXpYNGxWcWEoU1FMNnBNdHZ5ej94SE9pcyVL
NjNueCo3T29zS21rS3V1dk8KekBlRjIyRXkwQ2pue2NJXmNgfGtVTTYzYSpkUVN6WVpxXmNAWUwx
fCo8UGdvS2Ald19HM3NLSXlhZGdLKUNYbDwoCnprandnKGBDSnQoMjt2dDlSJnAjM0NEZXJSa304
cmFSMileUEJvQDNmNVIrOWMza1dGK0s9bzNaPUpDMFYwI3hjcAp6UUsoYn5hc2VrQSNPVyhpcG93
ZD08QDZ0fFJNTSltN182QVpVcWolRDk7ZWtiaTFVSk5FZ0A+SElgREZ9N3tfaEoKektyWlJ4cz9f
bCVHPz5wPGxxUm1AeEpwI2thbnBKN1p5NShlcyFPdGxuPj5aNFo3TkM9XmRoMDlEXkxgVWFSakR1
CnpsUzRXM3MyUlJLU3ZgfSZGX3pOfVEyYVMmQCVKdGYyZUFZdzNFSXIwNXx6ZW95YTR2JVpRb1ZP
PzR+cWMmYyM4Qwp6cnRlWE5DanBeJVhCWlZHUUokMzEwRjxJYSR2UTZfQmwlLVM1dVBTIzJnNXxx
ND5MYEB1enVFSUk0JExXcnche0IKemN4dkF+NiVWJmchdDBHPUBYTktzeCltbnttZmxnSGVrO2xv
O3B2d1EoMG9ERF8rNz5vVHgzdllCUCZgOG5EZG1SCnp7fUpOM3h7SWF5NmlzLUY7dERUPD5RazZP
OXxUKHYtZSptUS0/Q3t1bGMoRDE+VzFqeFh2Qm80KGY0eDxAJHBwKgp6amNpN0tlZ30+cHprc3Fi
KX1kNzBMTik3OXNefjRNdGh+K0ZaWlI5XzI2QSMpJGVjO3xOeHlgWVIwMHF8TUlPYFMKenZNbyko
PW5+KDUye319UEB+SWpmSjlkS3d6QmZAKWF0byFVeDdqTndLYkxCWGk+ey05S1ZNYmA+djNxfTdS
QVppCnp0d3IlSmRDODt1M0haP2JFZyUpPk0+V2E1OS1Dfi1gMHRNPz99UTtLQ0VtPXBvZSM2T2tu
NmxXdUpOK0BkbFNWZgp6aDJSJClOUHUhYCN2Yn52d3M3U3JwYFU5d00rakFNRzNTKHpfMz47fDBC
WmkrMD5WPWNyY1hfV20zYjs9Mn1JSFYKendWS3M2YHcwMHk/eGplTUU8QCQ5NV9HaWA8OEVnalJx
aioqbHE3XzZne0xTYERPOH02bCo+SG51Iy0zZz44WEB2CnpmKlltVjJ2RUdKQnx1JXdUWiM3TSoo
Pzx7cEAodl41XkV5c2VFfSRtR211cEJAVnlnSjxVZ0lNPDEzWGIrPXVQYQp6MWdMVWUwQX1LOUxt
PHUrSS1uP1ExdyFwanV4fX5OPVI1aUhjdVlxe3swZntiVT1BSkV7UClrciZgQUQ0ZiUtUkgKejts
MWRmQDxqOWFeTncjPj1raElVVD5rWCteVW1MVmBMeUV+RkNMekh7b3FGUGpjWFRiK0IjY3tpZmha
JCEhbmJDCnpfSXRUSUVJcVZtdEhwfGkzJiZEJT5MPmxVOHI0YSZ2WGg4e0A0MiUzRkJPdmMqST8t
e3k8YnRHKURxcVE1Yn41Jgp6OSM/cHVGPEEycFM+K0E9Oylfd1QlNDA8TjZhJEAhKT5mdGxPTHk7
QnkqRUM+SExBUWd2Wm5uKz1IPVUkazNXQykKenU+UUFTS1dwWTF1WXExRGhHeztRRmlpJCZLNE9x
Mj1YSXx1SlBGZiQlYG5aXjQ9VjdBRTQpYCs7a31YLW8tJG5GCnotVCRGMHlrMlgoVFlzTXctVjNo
cVJLcXBpKWowTDIhWmNOKj8hIX5CQD5GIyQ+USZ3KXNkSGlQbG9GYFBDPENjPQp6PjZIYmd4eCYr
ISRlKG1rZWQwWDU7RGN1elFLOWEmUT9XVmUlNnljPVhldkN3akhxMm8mfUwlRFctM3Bya1dHIVQK
elQtSkJ+TV8wcSFhWENFcCZ4SCNXMHctM3U5SlU8P0MkM2l4UXl+YzRJIXM5dUZZKnxWPmZrQk5a
KGArMmBhLTJhCnp5KSR6ZUl4PzFfRHJgRWtVRz0hPzheeFIjKSV3biMlMmtyWEkyMyM3cGViQ3M/
eHImU1U/JEZfR0JsNGQyQiVfSwp6Q2A9IWVhP3pLKW9MO0p9eExSUzQ4KGk3bFk2ez4qNGcqNk9s
NlJ4bG1HSTwoPih4aGJ7PHRHKmxPMiM5dXBjM2cKel9CZ29kMi1ZbXsjRGJaQXl6bU85MlAldnA2
aFRPZXF6QHtKTj5NYlNEVzF2YDN4djc4VGcqJG1gRH56e0goTXNUCnpkdTtlelcqKSg2byZjOE9r
NVhPVXNsWjlyYmZQcUlPfjxSWilzaCFQWGo7ZHNIKFJkayowV2s9b3hsQEVSSHprUAp6PHQtJiNF
dXVPI3BYPDF9JSNXSkkzJjgxZjUoIUkqVCorfUFIIVYmTE9ma3dqUFM9PWd4Rzd4MlFFOEdqb0M9
JnwKejFjKEhYeEVrdm9maG87VWIpdz49NEFtekFERVY9XlJJWkg3PENUPGZpOGVAMUthMEYkVD0l
NCZNSk5sMTlnbyYxCno5d30xYGBrcDNwYnc/QlUydkx+P21nc1RucDVjNWhMcyVMe1hpfDsod2Ml
OCg9eiR0ZG0xPis7Q2B8UEl1d2JlaQp6SHFBV0Bfb2VoWip7KCQ2Ynstc1RGfmZzUmxVZEMmbEpH
UFh8SD8wI3pnc214bmN1Mk1eUl8kK0pwRj8zXmQ7NCYKekpCJXdoTHdLc1FfIVB3XnBDRSVkUFhi
U314e0p+SUZgQGBpNXhsdyFxeHV3TipxXjVIQG89N05oTkcoJSEtcCYwCnphUEpVaUFZfkNXal5r
Szw5bT5tM3Bgb0ZSKisoflZfVXdJfUpJQnlVcDczOF9aYy1OdyslbzZzS3t8OGgyfk17Xgp6TWpO
d35QUFJRJWlne2FHQTFJRn1kOWZ6YiNAQSlxYEVsfmBYTCV7dCRxVHY4JlMhbDdqQWAjcmBRdXNh
RVoxYE0KekhjMm1DTEg8PUZDIUkkcWxfcXg9dF9fYmkhO0tANFVaT15FTUpHeT50blJrWmswb29r
YiZOdlR6UFNTU0c+T1pGCnpvdml3RDcqVVlQOyRWUiUwaSohPm9RQHVEIyRLQSZja21pOzE5UGkz
dWRqciskNE5ybFd0MUxnQ3RoRiY+fVlDVgp6VX4+I310YUNCTEdLMUhWc2Y0TD9CXykwaDZXSTZL
NiVndTxCTyQ1OzYkUXN9dUs3NF8oQDFgPUJhSHlYbmlhV3sKemxkUHQ1c1JTdDFDRWc9OypGOStB
TDVzdjBSUDB1KkB1KSh7RChfUE1EczwyQComSiFBdj1LPEdpRnx8UXdVSFRmCnpZWD5SNGMlaSRz
UH5ncGFye28yPVRGT2U3d2d8a3dTd1ZveCFuTVhBb01tOGVhcmpEdkpEQWQhSVJ0KW9sYVRDQQp6
Vnx2VXxvWEVHczElQV9ZdWFoODBCbCorSUE2OXRaN2h+YD51a2NqVSh9bmpsZnYxO2V4Vjk3RChe
KzJHYl5lTC0KemQjPiFoZDNOdV9eRSsxP1pkfmpydCM3USNPZUBGO19lemZPLVJ8JD5JQ3N+c08/
c08pRWdkYXBAb35KdSpPVVFrCnpBX35YXnw3QkNmfDJARjs/dkwjKjh8RktAUzl1eWt4cyhsJFda
Q2RZOHBfOEVBRVl5RylGeyk1VzUhc29Tfn1hLQp6JVZvRUZWdkpqNldsNDApcjhEYHJwV216ZDwo
RSR6PjRqPmJwfVlaSzNQZ1BYc0p7dUlvfUJsXzw4eipQYms7KnIKenFSdnp+cUpkI142MTE1U3dY
T1J5UG1KWWE5QG5oenliZGpjK3VxcVl5M0dXS1lfO0xZNl5xbEZWS31teVhXLWsxCnpEVj1zRFVS
dFE3bDV7Zk84bDhrRTBWdWg/SkRzYCs8LXdMbkpFRWgrOW1wcH56cypBd2ZKJFpfUjRNYWNQT3k9
Xgp6RXpWS19zMTlFNm9oQ3JGREY5YHh5NkRUezF6eW4oMEBPaFE2aXdzYjE1b0ZSb2x1P1ZOQ1c5
WF99ZEBHSzNpOFQKenBYLUNVKCppTVBkTUxqVEx8YF5FcHlwVWReQWF6SHVvTyFXTj5JUV92WWkm
JVh5RUI+Zkt0Rm92KF9VI0V1aGItCnpII3t3OGdaJkN0bTh7fnJZYz02V1ctWmdYKkFrJUNRaDVA
MWxHaiErY3lidihaVUhsdDx9aUc2PUZEVlJRQ1R2bAp6dlNlJV9wY0YrPWljfj84Sz9FVHcwJE9A
cGR2UDVua2ZaYDc4RyN8cV5CJVM3WkdocyhQP19xVVVIfjtnRk4pVzYKekB2eVdgUihxaThrZGJ8
azNlKks5WHclaGBKe1lFcSZ1MyhUb34tVjhKdlVtXkNzQ0wqZlRSR155UTZ5bGEwMW5FCnojWWok
SXFkI2dRKkxNMGtmdl89aSRGP34laX1UVmhkRUg5WFo9USk7Yl9SSTdXZGduO0pwRyNncDhsMTlx
K0h6Zgp6Zn5VOGgoQF8yazhwcSFkbypweXJzZiRAcHdNLWUkcXc8dSYpbTxXVW8/QHZ1I1ZHMzJq
fWdoJG94b0Z8ZWpvVDQKejRTfCFEOWA/K2doMjUqeCErRDx6Zl8+dy16QThySHV7elkod1dGaWBH
QT5AYyE8Nj1DPjxXQyVUJXw5Vyo4Y1QoCno9MDV4Nz95KEJ6LW8zdngobHopLWA1NV9sblkoO2Bg
fVVYWUFBSFNsJTlsKXA9TV4ySHRHZWI2aVZBcihOOWMpKwp6PGtjTTRmRFpJRiswJGNua2RGc3hH
SXchbUJKaUJ4KSFacDZNfnd1Yk5+KVl4b0Bpdj5ZZ2RDS2h2PThgS0Iqe0IKekRhbD1vQnNpeCRt
LVU/b1NCIUBvNz1sVSMlNUVGNEBmZmVMWEo7TE10YDBeT1R0aWptOWoqcT9EKF8hN3VNbCUqCno8
fSZnbGdETW9gOClsflNISmEpOU9+SWE+ZEdLJjRMUj5eSyVKTklsKjw2QktveVExSkc/SmZZaDA5
dzJNSSpVbgp6THtYSmBhS2ZLUGFASC1lMj5lfXVJeiFMbzM1TXBEYDcjVTJhaCZvd01GN2YkME9k
JVBKN18xcGxJfk0qQjZnPG8KemRFajFhMnpeVCRmQ0AldUBqPFRiU0YlWGhsJlV5Q3g3YWImKz5O
MlZrQFZDdCh4amBfam57KEFyMFFhWilDWWsyCnotVztnajBRRURMMkA1PVp7ayl5KUl4MF54RlZG
bWU1ZUMyYz5SSER4cDVBTUhlRF8tSXJMSztXcnBCdUQ8bitWPAp6WFpPUnEqRTtVcUpqMiNAck03
XlJrJipXMmxKRTVIbTdPe3FeTWx2djJhd2lWM0ZWcXFwMlFsNmt4VyozbDJGZEsKejYrXmpfUChG
MDEqLVUwYj9jMT8tdWFEY187Rzhze1c5PzFwWFlYQ0JjPWh+Mi1NX3dpUlI0UmZAVkA8dXRHcTlK
CnpzWmJ2anNHYzBDX2JFYEtMZGhFTVhfcHItV094O0dub1o/Uk42fUduaCM2NylRTipDbGxyV34x
MlRDZUE7fD04Ywp6al9XKDAhejx3N3VtbW88WFRvV1Y1Z2Qze2V1JFlvMCNNRnQ3KCZRQXIqeX5C
REQjPHNkaW9nSjVAc28telhESmwKelheV05iOGNQRSRrbkFgS2ZsTXE5KmRuTE57M09SbXNjOSZ1
QG14WVBQeDBFV0oheiZRPWJ1V0RBV2NHNWo0NlI/CnpGMT1LMThKTmRYVm4jOUNzSGc5VjBDal4z
KWIoMHxBZGBsI0QrLWh8JkpgYSlXcjduQHlkN3pIS1l+NUI/Z1NgYgp6MCNweklEdlNVWE5xfnl4
I1BFd2tFRm1oNkRwTFojeUd+TjNNfTFOUWx4Ql5tX0NwQ2NFdElmSz45fHVIIzh2UGwKej5Kelcp
MnVTantqSVlUb3Apd15RbnYxQVglX2xJO1ZlcTgmYmd0d1dKWlZtVkYqYzVjQV5sNXcyODFUVShu
UDlCCno7IyhUOFFJYU42UnBQYlVTZ3omOUQkbXRKY3A5c28tc2AldHtJUk1iVG5SayE9ajxNTm4t
Qz5HWlgmJTs8fTt8Twp6RW9ORW9qXml1QFpiRHx4Y31eR254d19rVGtZQVd0MVUhOUtudig0I0Yk
NUF4KEN1ZHVLemgkOE4pJCh+QEo3KVcKekhKYjNHc35yU09lSUx2PmJII1Mre3FTMH0zOGB6QXFR
Y2YxOVVHP0w5Oy1LPSpwOSZLKWtFLSZDYCgrPXtmY25+Cnp8NExBajVxSntTPXtLQlReWCpecHtq
WWQmY1lsNkFUJU8kKiVgfVl7R3AtPDI7RUFpZElJMnhDMWdLfk5SMWA7Ngp6Y0xHbkloSiRkI1hl
e2gzJSZ+VUg2MEJhZDZNSmBmYVckNjI7SykrMCZ7YE42Yz56fjAtQCZiMDQyeWo1OGMmfDYKekRz
SDZ1PGxUfGlkKFNmb0F5dE0hcXpvZ0s9VERpWl80eDV1TzE3MilUIWcyYXRYI1JvbEhYM3xHX19F
OXN2eC1KCnphbElGeCpyZ2NDVTBuRzBQaFpqfExYcU5jQXxUbF5hekcmSXorUmZsY30qOT5ZZGNZ
LSF+bmpMa3AkYkFJa2pzPwp6anBBbz1JQENudml0OWV7VylZZlBqeF4maVUpI1R6SiRKa2kre3pw
KHlZMDJ1eDJKKDArcnJmR3YmaFo0aFR+aTwKejI4I200PSFIY0tpZU4oeilYVyl+bUB6RkNhfldT
REw4N1p5Vz99Yl5Kbz5LKzVmeGdEbEg1e3N3dl4lYUlyXlpeCnpXRD1tXzJ1bCpBblY/cG4xZlpt
Qkkyc1JIMUM+MGVUYjI2PVAqVXIlalNBRWpEcDBHcl4wKHB0LV8wM3dxUUApVQp6QHZMKUUwaEJX
Vj5KV1hGe0BYXyo8RVNuI2Q4ZVc/WiE+TilLPWJBR0dHJkUjeSloVylqdnFwNClHOTxmbiZMNDMK
ejlyXkZuTXVNe2llTmhyK3VvWSgrYiNSTSllZlE1WkM3b0dOQTU3JSRANTBqbilYJCFgYjdqWSZA
PGVkQEdvdVVzCnojSyU5cGQyO0hQRllkUiFkVklWMi1weHpaP2RSSHhOKmJ5JlZoZ2gpb0k/R050
bHF3VSNuaVJTPVQ1WT1HI1ZeXgp6PWxBKVlXTSVoR004UTlgKlhhaV5sIylgZXRud3J2T0MmcllR
WHh9Vzx4ITM1JiVmLVVnVCt1amMoN3Q5SGBVamwKendWVyFILUlmKUhCNytWXipPdFpCVWc8bmBA
OFFqZ3BGTykqXlJHLUp8TVM7Um9BQXtXUldJSl8/b1BaS2hISSsmCnpAVlp4Y3ZjYE1CNzJicElV
Kld5dDcyWWRlO2wxSiYtYi1ITHoycF8lT1MhXlJNaVp2VksrV3pvVWhoIU5ANDNSMAp6T1N+SnIh
c0FHUnJEfU1JY1RGVEBeJEwlRGMrIWRZe016NFJne0tNQmxyVC02YGdXLVRIQn0/NEpPTDxLPCQy
PjcKekxGeXFAc04xSnBhZ2A5JlVWYUYqSWVWNE15dER7SDZwaUpmJXpnQFJSO307Yz9IQSp5b2l6
P15udTdoUyNeZDFYCnprI0omPnRJT0pmUkYjRyFnQW9RNXpTP01ERUJkTCMrNEwrZSE8bWRGWHM3
enJtTlhCP3ttaFp6RnA8aVd6IVJAegp6YykySTc+IzJAZml0KVVTd0pvTztyY3JzYVdAMCZPOHdn
WDxpemleIW87c2dLXiEyekB2S0xwWTc+WlojalQ/PnIKeiVIeT5mY1UtRz5SWW9BSHYtbGB8NEBj
Tz5laSt7U2okLSRFNTNIRVNfeVglN3JqSWpLK0ZDKzFzWCl5WGg+R1E3Cno5QmdMQTZRVUI7bGY8
Xyo+cEpsfnNXMHFnVThleWpgalZDe05tcVBNVmgmJSlSb3FJaD92fUYpWlcpMU9HMjtPUQp6bWdk
ZSVWZGhqNEpLaHB1JHlKJVRpNm1+dkBecWg5YWd6eTU2Ujl4cThjaj0heiUrcnJDOWIlfUBvfXVT
WVF7e3wKek9jPSY9Z09oNGEqUiE1ZXQ/clome31UYUJIM0NrfFRHSDx8ZTB3WmtBNDltKEZeKypY
eS0leEgwS0FgX2M3ZFRNCno2ekB8P2RNRGdpKXZ7QE9GPztRQFMtWDtxQGVJMmgkdCkpJmoofWpL
OG92Rlc4UDM7YSNQYytrKkxHVWBHZmdFdAp6RXd8dSppI2h3P3d7U2YmUzE+cW5vZiRnVD5meiQq
QHdtbHMlektRKGMoaU9Gbz5Fbk0mOHhiZjV1XmxeZW9jQFAKemFRZUx7US1yNXFeMGx3MktIWDxy
S15ISVhud1Q8UFlSKWJAVWZqamdHIzt6P28mPXN+ODBTUnQ/UXAlMTtjWU1nCnpQRSRyPHd+O1Ba
OF8mWFEoeytSY2QmVXM+IXxfbHUhb3kwYnsreSl4YlJEK3xQeHRTPUFvelQjaDk/YWV6NU9Vfgp6
cSMxIUZmaE5gYjk0fXQ1NXtKKFB6I2N2TlFjO30qb1VYOGo8dCRmdDAhfiVjY05HcytiaioycEAl
bjgpO3x8dHkKenI4Yn1IJnZkST9tPjh4Klg5OWgxMkJ9bm1xLT9uV1RRLSklaU9RMyNfZElEPG1r
Y0xheG91flQpSyleMmMkPyU9Cnp1SVJRaVFlZ2Atc1d1WTRZJFlMR2xGd0kzVXRjK1A/eEAzSSN3
cXhDcEdJV0ZJcl9FZWx9Zig/WihheSlYTVdZPAp6TWEzKzlYND9GJEVMZEIhcEt3a1piRmIyUDIk
NHckJWNjNXQ0QjxoP1FKaG5Udm5NS1c9WD9xN296MjM3Y0ZCVUcKejNkTmtKQ3RUc2wkbiFfNmNY
QEMhaF42MUl4SyQ7K2NyPW5yRHRYQ1BUck9De21II31ZSmlMPEV4RVc0YiU5YEo2Cno7fUg2djJI
X3lQNHQ9KGE8VHFmdikodGVxPX1aPXNeUDhzXipOIXV5Qj9DOF9mXmZkWDVvT1Y8NXAmb0tON2l0
Swp6d31YWWtQTnY4V24xa3crTz12SDMhdTM8KCR7SjVEQHA9R0NiJUNlNCFiP3xBMjQzQmckeURZ
d3VkUCoram59dHgKemRRQzIkJWpEclR6ZWNGMDBCYHVVTHA2blgmOTVue0RhTTwtJENkZSMqV2NZ
a0pJUi17bUJfckklfHRVX0BAditZCnp3NGxnKiNiRF5LXyUlJjZIUW48aVo3V31MMTAoWWxnI15f
ITtBPj9YUm0xRT0paW4zaXhJQWc0MHdyQCZKI0JvSAp6PkZMNHloUlZ+PVV2Z2U/WkFXPEdgdEpB
TkpuIzZ8PWw0IyR4TzFoSkU0en1tUXdAMUo8O1A8RTxELTErIVVLKmgKemNEQ1BYeW1iRWooRj80
dDJafnUtaj5hXj5uRFJBV3pWQHJ2Ynt+fGRBM3t5TktCaWxSNjhlPENOSTc1QldKOEd4CnpIR0tI
K2ZkcmAkXmhKI3l7S2VxT2xnRXhWeDNWeD14TTtUSk0oMENZSiZ0N3M9MkM/XmZCayZuKD9fPXx6
TT1vPQp6azVyJShMLV99USgpOGl8YURhTUZoPGI5KWl4NVJgSylWfUZtYn1hPmFadHdfTkpiUnZV
Ynd+IWJQPDRCMkd7KXkKejtrMDhxOTV4dFc/fjFXWmB5SFZHbHEmJkJEcHw2NFUwM0Jka3cjRWNV
ZXdIP2QzPVFlUF5WS0NAPGUkcWloTjhGCnpiM2p8a2pQbUFhMDRuWTkxalRyTUk/aDQ/czhhLX1R
IUVAbCQ/IX4oXmpsK1NFS2dtQ15aNlRic2RQVTk+ZDFFaAp6Pmdybm48JjUoOXFlJD5QMD8mUVUz
UDd6fkFwUiQ9azdrN3NZOXZINnZLeWRnVGdVTnZKbDdTOGU3YGBIQ3tHJjAKeklOXiFsQnFNMyFp
c35lTmMxI21yTXRCbHtRYXYoTm9ZIWBYeFJ6Vk0ocCYqMj51RWBaQ2k8QURGaWx9aWlKbmQqCnpD
VHNJRGp1fVd9TX43bmMkWTZ9KDM/Q2p1NURCOFg2UmVzc2UwXkxuViopfWpubExxNUt1VmhjSElk
KlhxWHNFdQp6ZVcmcF95JF8mN2NAbFZ7dmVpOSZkbntpY0wlYERHXzEtKiEtX342dmFRM0syU1gz
Sl9zNmZURElNJmcqN0F0Sj8Keio9PzdgM1lKOCFAMWw4V19YN1pHcTxvQ3txIV9IcHlyKVYwe1Rr
P29WND1BPztifWh0bVR5QShzenM8LUdaa0k3Cno2TERlblNhaHV6aTdzQUVVME9VQ21wTkJDX20m
TEF2ISNSWkJfbEd2O3J4bSM5OWlsOG9HfHF6O3AhUEw/aytQWgp6dnpiez4jZiZTK0F2YDVmZUcr
S3VKJnt6UiF1M0J2dT5SKzhIWE0jVU13NzVeaVVzQnhFUD03IUhjVC0mZzJsXiUKenYxZk0qMHQz
cHAhYUwyUj9LXm1JcFlaaFBqUkhxS3M/djhNTzcoc1hNNSoye2lxc1I8c3l5TjJCZFNqSz8hQlIh
CnojWGlCeSYqXiEzcU85dHdYaHpUSCR9QjFRQV9BIVI5M3NlVTt5UHtOO15WTmUkYzZUVjZwUmBY
a0hQKDsoRCYwJgp6Mz9JeDNPTTtZe0YlSmB7TWpjPWpmZEdfYFJ+dUVSNzkzKF5mflpmTW1gay12
M1gyKSt4dEpsSjskeGFXX1paPSkKemZkMEojYHU2elJkPEs2bUYyUHAqZFhBM3RRfkMxUkZYJHtI
MnZNUDdvczRXYWZzR3JndjR7WD1MeDdxK0N6fXcoCnpmN0FTVEopYThIM2l8dURaTyE4PHVuLX5z
QmBDfTtDcVB4PFBGST1nNjBjcGRweHkmZV5nJXNuM240KFVGYCRaMwp6MklZMUhzMiR3XmImZGRh
SSZMYmUwd2ooNlpHZHVFSFVNNm0qdE99UCNrdj1Mb0pkYFRzfD9oOWUmclpIZjI5KGoKejA/fTFe
NyFAKEE1JDl3XilrKitMaSl4ZkhHSkl5REphSWtSPSM5TDNHOEF7dExAYGtGMTM+KkhmY2kjT2Nl
MXY3CnpjQTdCLVJHeXg8fE11JnJyK0BMfjxGP29MdWhtXz5jPX51I1EmbVB6UUJJVWtXUWZhX0p2
KGkheDI7PkV4MColMwp6VCtNd3RhcEpfRU8xX2dPcU0mIWEofSMkSHptYzVPQUt1LVFDKEBubEta
UXNvS3VnXyEhLVZxRFVrdkhYdmYoZD0Kemp2NiojbjNnMXo+clBfUXlScVN0LUNKb1drOCs3QkZO
fm19Sm1kMjFpelV4cUoqZkxGQk1ybjBee29KdTspUXhoCnpHZFQoVWc5NyFKNikwS2JpMkB+U3ll
RGN1KVhpM0JvVWM4TSkpSVJ7KU5UZkNaYnYqPGQwYCVNZmhQZDkwRWYzKgp6O2VmM2tifWJ2dHZ8
ayM/SDJ9cEZeNmFESVAjcktDJX40fFhXUHx+KT8+Z3Z6SStaKmhFcGY5QDtBTT0rZU9ocDUKenU4
Vn1ATnBANXFkIz0pKXY+QmtzWXJBKyQwQFFSaEsrUG1UdXxTd3RkOUFVUVh5K1BHSWBBJSlGJVls
SG5FKnhlCnpJNGQybCpRcGUhOSlOUGkqPHUleiN5S08tPDAjenN4P3VNUDQ8PFZNRzhpKn0+cDJQ
MFdSV21VPGExXzRWSFZlVAp6M1A0ZVQoIWk0e3pDYUM1Rz45KUdJTFIhTUg1XnhWJUo0aCFNVERz
WmVFKXBIbD97UHdIb1omJk87JDhxbzE0PGwKeldUO2t9Q1VHc3QjQkhye1JFSV9yaWJqU284O1Jn
RkVRbnNBQVBnTkUkVlUhQU4/PlhAQSEtQzZZVUoxdWoyc3VyCnpmSiNDWDZ7XnQhUU4yS0Y5RjU/
O0ZZQ0pCUiN0Y1BOKWVSQzZQVDFDTEBDbj9wYlF3UXh0SVoqYHdtc1lDJEplMgp6djhSem40XiRO
VT9oWWBXZD1ZKEg8fSpeRCN+ITx9dFhkZiUzWTNJbGNCQGRMS29PUmRRSz9aUU1AMkUtZlJ9bj4K
emAyfk1jQitRSiRGfj0kdFRXd3Q3d1ZYWVM+c08kN3tWZGU2bngkPjZIY3FWNExjPEN6KUdYNk4t
T30tPlVwNXwlCnpPVUkjTz4xYlNESXVkdTU0YTRKUUwtM2xWIVFYST1eSX1QVkptQUlNSEQyN2NT
dTxzdnJ0dktMbz5DMShlZm1nSQp6b01hVUJObGZEbSVuV0FReGM4S1MqZ3IpWndvfVl1Vj5sbj9J
X241YHlJRFFzZzFQZlU4R008PlQmOGpxNm0rb2YKej9MTCghIXFYRz4wYF5qdmRNaSE2cTNaY18p
dFhMfXJwSiVKPUd1PVFyQEtefVpvUzZrRD0hcW94Un1ncVM7MTBWCnpkOz1Nb1J9e3NgJEx9Ozg4
SyR8Tjk7RFQ0RCl7Pi1oV1hTeU94RFRaLSg+O0A0djBhWSYlKksxa0F1O19GVn4/WAp6Oy1FOCRp
bHxLaT5+X3xgVStQJHg+KlVSLTFXfT82RnRCcUkhIyRTfSFzWmQwdGYlS09LfFFCP3RTbzU9cEg0
Ky0Kejx9b1R1I1M4fG07R2RpUkR0aWd8bHUqd1RhTnkmWEV3eE5sRlVRPXVNVERtVSUkbDljS0VR
MUhefEpabnZSUFlgCnolWCpxKXUteypUSz4waCV0aStpVUgzWDslMHUoRDxkSU1DYU11RmxiOShf
O2BYKFllZiF+K25lKHVKM0oxZ0w5agp6MT9vS09Uc3BZNnVMJnxoPTIwejApZk5UbiRtJjVqITJq
Ozw4LV5penwyUHpRPSVPKWtJbiYybyojIztVR0QlZFUKejB+bFgmbkF2WnVrI05LZXU4Y2txZlFt
ZGcxdH1nZ1AhaEtldHUmY21KYHMlRFQ7b1kxYDNEOCt5OSQpbHhDbEpgCnpvVTZPOXBTMlU1UFhD
QH1eNTQ5Q2M7ZH4mb0FuUUZVI2BBejtaJEt8Yjdnd012Q0loOWx0YH5sdTE5eXhUcnpLIwp6X0Np
Yko7V0xia0s5YGw5Q0t5d3JJJXpLTEtDSkVqWlNlSG9ZJCEzNTMhI2U0Q3gtSDJlVElFTDtBNWB4
Snw4cX0KemFLRkswIypQPjxkRUJVUnJhSWMlR3IzYz5ePkVxWW8pR0RyVVVmWEc9fjc0anRyeiFk
ZkEjdU48RGJ9el9oPDEjCnpYfW5PfktCeHloWXJJJFlFNHdmOHgmdC1rNT5Ga2RgQzdzPkRYblZP
YyR6QFhtdj8yMnImO0NvPmNwZHJgJEt5MQp6bz5MWm51M3FEUGNaSGB+PE5jNmN5a2B2NlI4Nmw/
UDMwUXpoaTVgUDxyP3ApVDtzX3FrQ3srVVgobV92UD11KGIKej1YdjV3NzN1fmQ+UzY7Uz5pN1lh
ckwmOFNAZGh6fDV+OF5ydUtWVzBhaG9PZnVoWWVqI2lPdXFgN2spTFVjK19XCnpBZU1jT00yPDdS
NUMtYUBnJjl6JVF8OTN1UDJVMU9aQW10MGpHbHA5Y1NENWo5dUY2dUJAMEEoWjUrbXF0QzJgUQp6
RzcqKW1hNTxHPSNoRjM+bChqT2dhbmwpeEZxTXpmMng3fXY0IW9UeTxBLXBpKzZDOUBkPGp3aHhL
YF47Y3loeSkKekRpOysqKXd0bkl1YDVicVRAZFo9NDdXWTUqdUJ2TVluQ3lya3I0KDk9TFBXI1Ak
PDheQEMqQ3dORSoxS2AyfmRsCnpNR3VySFBYYlIxWGJATV9DSXlsUk9IYGF4O0ZRN2NHcF4/Tkp7
dG5vVHo7JUkhei1zVDwkSjFHb1Q0LXR2SXxhVQp6UVdQZD9iMlRAZk4peWxhI3xTaTBhVC1OJThh
YlNCIzJHJTZAV2RJfmRrOXMtV0pkNylSSGpBPE5iJCN4OTF9dHkKejAyRCMlekVPaXpGR1h0WE0y
UkRpaSNpVGhmaW1PeFR5bVp5cUNqRXx3QiQtcGhUeDx7ZlJZKTxvVHhGKGglI2owCno8X2d4bklK
d20jSU5+SXQ2V1dvUyhUUHdoUUc0aXJubnlGZDJ9Xj0/U15QVXJKQkMwZmFITjRLam5ZSzA4WSFi
dgp6b2trSSFNdnMlQU8kSz1+eW1LRGNyNWwlbyFEV3B6NTt0eF4/VCZlPCo9JlZNVFZzXjAobX15
V2VQcGhsZn19Tk8Kek5MZ2g8YjtfOVFKdEdgblBPci17Wkx9e1BnRyk8QztOSEB+UkhPI3JfSlN7
UFZVRUJQdiEyOD4mV2sleW8pVHlwCnprS3c5TDE1aTxYOT83YmZVYDdgQjhWfHJ4bFRwfVdXUTYm
S15MUGNnNG11T0pWY2ZVXz9DTnRSOUUzNEpKZUBnQwp6Nl50M14jS2pBYjZqa1kmOGxJaklxPFc3
PWxAZjUwNzJPTSNFKD1oSiZxPzZ2bVZuZGM3cGdVI1Q1VVIzY21xa3kKemNuVzY5d35PMEpoSFct
cm92aTg+OT48SlgkNiNUWlBjPHdEbFhXdiRaSWo5c1hkKHM7ajc4dGlCaz1LMExlUkhRCnoxY25U
YjtsSEg+JSRQeGQ7ZDspSzI2SkVFUSZpNFFCYXx1UTY0dHF5QGRGRE42dGktc2ZFfDk+M0BYalE2
dklxYgp6KHF6S2FHeihMeVpjVXEoa0QyXjY9TSZoTEVNYlo5JTV0cFd0WHhJRSlyeFd+VHYmcUh2
eTF1YjZrPilvTDJPbjUKenRtbFhsbH4wSWIoSntPRkhtcEJSfDVPRzFKZ2JuT1FHPD9fVEhMdSUk
KFZwVnJqZzZLaik5ZnBkcGV0ZiREUTsqCnpvI2lEU2xmeGdLPF9mS3UyT3U+THhXUC1qPnQjRH13
UFlMbkdTe0xqYXs8RzF0eHl8bWglRHlgaW1MNiE3eX5DTgp6a05hNTs/WlBuNEBJN09aP0pebSl1
PyotZkpIcFJubmYkeUp1WTVDZ3ZENlYmYWpUSlopTGlOMl54clhfYENmKWQKemFHaSN0PXJ3M0w9
NzM4ckxBY2MoITk/O3tlKHBgOGhmMmFVfDJNQWlfO3V6RD1rTEc1PnNqQmFSKFJfNS1RIyFICnpj
YWo0fD9+X3N7K19UMn0qfFVARXotdj9CaVNzUTE+UlRHZWZCKTZmUUA/KXc9O1N4fHVocmhVJnxZ
LTl4aStuJgp6eDtRUUBHYStEcWZTMlE5X3J0clVaciE/aSFtTD5xMTdeQEhGM09XO1dqRXFTQm1W
b2lBQzNFZWIkX0pXYF9mTDYKekAkfk59aUdSfGM7Vm5iQ0NaU3cwbHolfShgRGNTIUhhdSs1QEJ6
YXxoemQxfGhIfTJvYmhmcHshZD1AfD9zMFM0Cno3TVBYZlJVbjQpJDJUaXB6cW51YjglNylhTDlY
KHwzLSNzV3h9R1M1NCo9QyZFVWFXZ3kjcjhramkqd2d5enUtMgp6bFlLa2NHMWNNNXZ+bXxKUUky
UmxNcEpuVGxnaCgzUWlZPDQrPHJiNENgO15IdEFsTHxNYEYqP1ZLfTQjczZDXlkKekNhJGV+QEB0
OGkmYTFuSElMODFAMGpTbzVJakUxY0xZQXZPZzYrb0FwRDstSTR6VU5JQ0p+X01uLWNYJjROeGIk
CnowZzY1LVJ5PWZNdGlidWdvZGxARTFTbUlMQnx1I3hLd1R3MyQ9a2dGcy13c2FNS052JmNYN3Fo
VUdDVnEhSFdScAp6TX1QXy1LbX03WjNXYmVMMU9iUSY2dEQxUlErPUF0PXp3e1FFPk5OZz15TVc8
TmQtXztwRXY/ZF5KcEhRT0tfUysKemY3RXBQbnlncVpZc05MMDVlP3dfajBCaVdwd1hnWUc8cDwp
aGJ1ViZyRVcrZjchNmdfcnVUcVRIJD9HY2hSVm5CCnokSHxYWEsjRlA9ZjQtM2Z1I3N3cjhid2Ro
WCFAcWNhMiteQzRObCgrUCFlJl84PSFkRUNyWj5mVWlUVCNOV2krUwp6aDRBb1dXPkVaVCMzcHFo
Szd9PE5WSkVPLWU+ckI7JnQrdGwhfn1CITZ3ODF8alV5bVlnXzVlNDV1QEcjQ0BOMVEKekkwOD52
NlhPYHJuVFlCOWBFNklrYXFTeX1oJj4pU3dyP0JTNCRNUlNFXjhkJEc3YWdyPTFBT05qaEw8VDVO
NVh3Cno1aiZQM1lURntqWStpc2d6RnQ3NnMjci1OVXA0e2YyfnBQPDRNT01LeyVEIWUyYkdmYkIm
S29KdzhUKChpbCo4bQp6KDRfSl9lTUVUVD5keFIzXylRckFTOWFhKUduPDRKTSQ8OVhVP3QtaWNG
PTNLbSVtPn1LRHVNTmJ0R1hYMyRFQH0KeiRqZHY9dEdGaSQ2IWo9ZVp2JkxUUkpZPEpzdVNQNyZu
ckRxb1VTVlZyWUM0X2Q0TE0kTWRoajJiUmtAZ3hpTnUhCno0XjwqdHN6ZUpHOWZ1YEJNcHIrUnpu
PWAyRXZNNkdtZDJRZkdAOTtIMiV8fERKVTk7aGBiT2NDUHJ9Z1deR05qUAp6SSZiS1pTZVRlKEQj
Z1c7YmJnZCs9dzM5Nml9Q3lyUDIjcTttNHUle1dldXBPbWpTS3VPcGUhMSNwRnJNQHpQN2YKemxx
czFvRzBsZD4pTGQ5djwtPStranw2NU0hP2Z4MHMyWHswI293RnFLNyFjSEltY0xTYX0yWDMpX31e
XjAtRFFoCnoqT2crPXR9MXhEKkMwMm83VlhYVHhaUEVTZCp8fjEwemY0WnBkdHVSNEQpNH08XyV1
cnkkZXVobGRNbnxCN0p5bwp6MUp2RntVKklVJGF2XnBzOV9LZSlSWiRGRkVrNDljO3VQRkY3MHF2
XmQ8anM4UCkmZUpWUH5HJDFPJVlNNGozVGoKenMzaSZfU0RgODI5djdQZmFnen1EMGliI1NPNWxs
SkQ2Wj87ek5IODEmczNmTU5RazBZeXA1R0MlYGQ0dS1NQDZFCno8WVlyZFlKTyZGVX5wb0RgKTwj
cGQqJl4tdkMmeUxkLWY8WkdxWm0zXjtfJlhCOFlWN0l9d35MZW5oa1FrS1hGRAp6YChQSVRKQWh2
fE0yLTg9a04pMlFLbDspQzcpPSVHRWtrKnFLfGBmJWN1ND5MNlpzIyt6fDJfM2RlIXBUd21VYTMK
emNaPj0/NmpOSW9VMz5OSHV7I2cwbXdvbEBQVzcofFA9RVVSWChKOGd2ZFdWK29+VGN+NmV0PztV
YTVgYmYyI3RlCnpzZFJhejd8REM3UGB4dnVabkR4dlVGWShHbGBiISYoJmVWcXh1X34jUkpBVHI+
QyhIX2ckbVU1dy1xUT1ySGc5Kgp6WTlgZEJhM3YyKSQlTU1kT3NJPkBneVFzTUxqODM9KUR1TzRR
YkNsY1B5JGhwJmJxTzlsYjNtdzJUQDxKNTYyUj0KekIwZ1haezB9ZEx2ej9XcUt5OF5uOUpeVlVh
QStsaT9yYUFrYV88PUF4PW1LUD5gdWgtaVl8PS1ub0opKiV8fV9eCnopck1PaiEmdylCSjRQJEhR
NyZyLUQqelJ8Z0R2WXZieDt7JWhCa1ZpTTB0YDNneDJeT0pYZkFoN34+akdlIWglVgp6STlKRnB5
bUJYOHR8Qm44eTVWWV9BRmtBUkRRe257YlJrNjEze1JMa1VGZD1RMnV9blpfSllHVUE4Yzh9PG5l
e1UKelQrNCtoPiRgYiMyflRzUXMzUCRTWiUhUUhEU14tRmR0JjxkSmVDSjlrUmUyZ0A1elJGUHFV
ZipHfUQ/dXp+dHwjCnpRd2RHJWtgcmgkcHB2NV8qS0c3Q1heamhedVBLUCY2dikqYSpLdER2bCt8
NEsydDI3cileXj5hMX1YdDlNU2FyRAp6QERNXjJYR0Rrc1EzXjs9alQlOVNRbXlzNChxb3QwPW1+
QDw4N2Z8NVdmVD5QZkpCNChjelVqczxaJWh1QnQoc3UKeiskZCY5Tyl6NFczLWhGPV4xNSpBOTxF
XnNPb14jeTVTIWVOJGJ7NElVYEB5Ny02ZmJvI20kZ2FGT3lqc0pmMGEpCnpXNE9pfS0zP0xkYj1A
ZU0lVm5yTSQmQTtJVzhmeEooeWRydyF+UXNqSno0QmsldDVBNEk3LXxKPHUyPGBhZDxXSQp6Pnts
YWs/PHlvNytKWXE0eS00elBMSzNlZ2xSWGIyKzBDQVoxelZBXmRuS35BJSpGQXdybD8mJDVpUnFG
cD8yMGwKemx2PyZ4OzMtMik8NVpyK0JwI14mQyZFKCVtOFduNnMhdj9xeGYlfkFKV2EjfkdjKExK
VG1WQ3o0ZzVSWE07SlpHCno8bipIaUN+c0t0a1lFamlPcjJlOFkzUk95M29LOTtjdjUrcjFmSWw1
dTdWfn1uWnl3T0BTJntmLWwoQUkrRG59OAp6UW15RzQ4dCZuRSR4V20pa1RRejdPRnNWWGFBSmth
RT8mRT4tJkJueSVnWnBFdDEoJkM9XkpNOGFEZFJIcjI7M0oKekcyO1pGUXUlazglenJObDclKDZm
ZWZyUGBNVWQqKEZQYWIpamZvUl4hOHR2YnN1NFQrWGJ8NXtANiYhKCRFK3VxCnomOFBaZ1pxQT5a
VV5icmNHPDxqPiZIUzhFTmY8TEczMGYwVUY9PXdUMCZXSVZ2UzRWRzRQej1fWDZDdD1EblB7Kgp6
LX1EKnpuOEVtaG5Ye1FmJlZXdUVyak81fj5OSm0hSHVEUnhhMWxFaFpBLTlnWDlZWjZ0QzV7amdW
UmxReE9LamcKelZWZTFQJl9QZ1FoXjgzRk1TWGhBSEo8OGBEZGo5MHpRLSk2VGxAeT9NI1ZrP2x3
RlNrbTkrcThsY3kxJnJZTUVOCnpWTns/Yk5iQGljMlgtJn5mX31AdjI7JTM5V0poaDNodEowdUNY
YjZAe2NkWUdtMXIrcVVfRGgkKyR5QkhtP3syQgp6endQND92UUgwQGhiQHJIZlgoe2N7cGdhejZV
bjNFQ0VqeVp4eDclU1R6VjkhU055IUtuJSpZelVJeX5GT3lwfHcKenhFUlJhSElafDNAa1dfPE95
bjhgaVchN29jRis0djxRZkJjNjswJGNrbj9MPF9iNFh2VDRnaV9ALUp5JihIT3x6CnpSaU03MmYm
NDJQJGlJNWhxOD00SXNaPUxyeld3STtzWHpieCNweXAycUpIPCkpMyQka3twaUZ1a0Nsfk8jcmdB
WAp6Z15ldlc+MWw7bzthPWZFJlJjejRfc2BxOGImYkJeI0VDPW5fNFdKOHJKVit4JE9jbCReNTVU
TTYjb0VEZStPey0KeiZNSHFTOHxHaVFjQXF9flErQjdhJTJOYGBgfUc/JUBVemNgNTktQEA5OD0z
RD19WmBGV15IWT5hUGhudW84NkNXCnpfc0MyMCYxdFBvSSh3eHZ8S1h6Pjx6SWpLd0VocEBKZn5k
d2xxJUUqZkZlVyVEZjlHI0NmNEJuN2tMX2hrfk4rTgp6cU1ufWpWNyE0VnlRN1phT2Z8byYlaGBw
aiRuXishVXFWeSVHfXpuZlYpTUxWKnRLfHcwI05QKnNIbEJvaz57P2IKemxtKHhOcEZga1QmZFAt
aUlGK14oJkNHNDcye3ErK2orNWNQWjReKEUyUWQwVDF5Q1Y3Mn5ZJjkkYEVxYDZuIyhaCnohKWhm
IU53SGBQMFpKTyRQWX1TYEdnY0Z6Y0g/NkM1bkt7cnNfYEwyYFNIPDlkSFdJcD5Ne1hKKVRtUihK
ZHFYWgp6MU1kVT1HPmB7ai1PXkFqbjlifmA4QnoycE1SUSVwVmZORUo4KCFZY3F3K001QFdsS2xm
aFFZfGZScWlEczV1MHUKejhCfGZHR01+d2VBKG02OS1zc1VeRylWIWJVOzxNaCpLej9FSVU8MGJD
ViNId3swVUJlUjA7ZXNiVERVVmZYZHNYCnpfQlY7Z050d1J8cHd0a2hmRTFPZTtaJmtWajFlXnxP
ZXkzWSNXa1VUKUVJaUstVVRSdUM/elhPdlkpNiNqVDM8NAp6VDVYYWs0ZWU5b0ZxNW12LTNLY1c4
Rnh6WUpfJGdETTRpTUQmcE5EUWlMbipeVUhZdHduUGUycGJzKlByNlFmeEcKek9xR2RvMX1ZXj08
IyRwJVBoK1QxYVZGXnx6fDFOZ2F+OUBlSjhOa0l7YjxiMnRWTC1gSGNCSWRRUX5pcGR8d0JvCno1
dGliLWswTEcxNHx6IzNEOU92akB0a3hOWFF0cC1kTHB2SXtSdlohaF9UOy08Z0UqayRATn58KyVk
P1dGJDlfQgp6e2c2Z0BPNjJOSilUYW1+Vk8qcz1EUGZzWm88YTtpZ2BkJEVJQX01czhfaTl5ei0l
cm9eakZie3lgNnVENHhBJHgKekhya0VBN3ItdlMxU1leMjtEfkRqdlU0d0BPOTNiYGhZS2ApKiRx
JHZSMDJAPEA0dnlGSjh1LVY+RDstZU5gUGlmCnotNW5mYmlnK3Akem9wKkEpeDhhU19jdm4wPHtF
LXpJY0NpKmhVTjVRRmReSSs1TCRIZnM2MCl8QWkkLW1DIUxTIQp6Z3M1fkNNMitQZFBnSk8oM0hY
OCMpJGFAWHE1NE1TXlV0WTU0VTMxQ2JfJTgjV2hxTTE0NX55blQqcGwjezBJeioKemhpZEcmNiNo
RilNRT9QQ2dmOTg8dkhXPnJGbGIwVHAqKWQ0ZSt2S1hzZj8ke2ZVWkZuT3c0aSFQYiMlKEhhJTgw
CnpeSyUmUG51QTQ0XlJRJF5LOTtVNXp+YmZrU2c8JGBpPGNKZ1FtfmpsdFRJTD1SM2JDRThmXmA9
eE4pdSRjTm5KbQp6cGQ8TnYwNGhhRTU1TCNxT01wNXxmWjkpaFZsMFZmaDQoIUc8dyRfcU1Td2NZ
S0V3Y2l7enkyOztfKG4wdzZpZSQKelVSeHc/dyo9RXImVXp7eXp8X1I4QnRWJWVTSDZEUiQwQkky
RjJXOSlBJlZWKHdKY0NTKldpYjFaN2VxYTA4azElCnplZSt6X2M1VURPOyR7MXZlKSswe0JFLXBt
ZEhKeUEmNylnJmtGVDlBP1AjbWRDQCN6bmtJNnt6SX4pO29XYzZXSQp6dmgzY3pjSClXXjN4Pz0z
Zj1FXyZ5KD9NTlZjRHs+YCozQ1ZjTHR7U2hIRWI0VSRpZE1OVDt3VFBoOSZ3aFZwP2wKemw9bUd4
akFnQGVse2EkYVB5PTBFdHI9IzlkUTByS3VINEk+eXJ8PGohUFRkbGt9dXhBUlA+WjJ7dT9TI2Yy
SSVXCnpUaChjMiU/QWJRLXZDaDB5VnJUe3hJPjcjKSspdXJgJSNpaXI2NiE2MHYpWSFjI31UMUU+
SX5AOyg8fkQpSHZqTQp6N0AkNmFtdmFnOCg5WElBPjh2YEh3aFQ9S3NBX3RnUVYlbzJmVHpmRVFL
SkU8UCloT3smVXlxVzNqITFgQDRmPzIKel5nK2NqbHt7ayYwY3l7ODBqaW4rUnJ4a1J3SDBfR0Jp
TjZqcFRYRzFwMVZ+R3FablRoT01eRnxWTVopSFBtQ15ACnpMKH0tJjFnXz98d3dve1RxPUtmb2dz
MGh6R25tUFhKWV97a2E1Q1YhT05UajMrVCgqVGJgKmhXeEYzY01fUUJ1Kgp6VUtwZnxId05gckpy
M3AhOFImeHtnTTJZV0sjQ0JoMz9XTTlJez8paXJuPVE5Uz5kVkZyezFHZHE2a288MnZETzUKelB8
UX52I1MtN3EzUGpQQClMVmc0KVRiekFlSyZ6c0ZCNGhVcUdRNXhWZnZtLT0tYWE1SSYlNT9KUkk/
O0xyTnd5CnpmUjNALUV1e25najU0cnl1RXQ4NWdlfHpQKU1mTzcwI05qSmpoaF47bjkwWGJnJkl2
aSlUbDhzMCNFVzxFV2h+RQp6MTc8PXF7ZW0yPCtqMVB2PyR0PDVYK30kMzJPM0glUD9uS2ArKDtp
fU1GaykmQ0xHQkx2OCk9Jk1yQjFnUUBCcnsKenJNVmY2amc2P1F1Un5FQDRwTCh5Yz9DKUAreTJk
blN3OT1HXkNsdEFkS0JXITJPIVN5NkdUJks1fkZ4O2ZSZWFeCnpWOGhTaFpgMlImQ1BUNSlSMVp0
ZFgyUX5SQ0QqSyo+M2lDWHBgIzhIcGo8SjB0UVlnUExVP0pJIVlHR0E5Q205JAp6bUt2Wm1AYnJq
Z0AmXncmNDtYfD1hSnFILTZ8VEAyRXtmQzF3bndPOGEoSDFlITZ9Ml82blBlJlQmRXBpZiQmRD0K
ekVHPTVmM1k9TW0zTiVnRCVUaVcjVEl5QlpJNFZ6WDRkRj12QzxVVVpMfiV4UGx7YnRLSEhaK15l
XjRDeTV+NG8rCnpKWChSTmZrV2FINUU/QGU1Pjt1a3U0KVo5Y0R6Y3g4WnRCeVUtWFp8WFA/TDVs
VFZ9WkBoNElFPSN4bCUpOzkpeQp6Mn4tMEhDbiFKbj15OW8tRmV4MnwjQFUkNG1FRWtsNDl7R1Um
dWhTSjB1IV4kY3UyNTwzSG1FcEorekdKYEhQbVoKeigwWHx1SGYkKXdFezNlU3lPdHc4eGVCZkl3
WWIoPHNpY3ZBS1J+aE9oMVlyYVRLb3U1UEpjNSVJcjV0fHpwV3o/CnpkcTR8Q2ZwZ0g3WkhHSDhB
cT4+QFNBM0NPJEwmIVF5UF9NUWU3Q1U8V3soYm5TPyFWJHY9cjZze3B7cWJAOU4ycgp6ZWA8ajBO
ZyF8SytLI0tjPVdUIWRgU2E3aXtwUTgjVSV6PEp7UE19bytNQ3pUbTdZRF9tfGErdTlUcFBjZDBA
WiQKejV4Yj9reDM0eXRIcUNVSHY5YStOUT5LampTVlJ4YW0waG9oZik3USZ8SDB0JksxMkVjRW9Z
OHo4X042OFEydWZNCnpMNEVxTDw+aWFmZzltPnhZMjNJYHJyUDdqJnNARD8mSWIxNnhoSTQ8ciZr
bihIKHFNYno0ODJSXio2NXsqOFpPQgp6eUZVYDN6V3dVND5LYWQjMXkjbE1vdmlSd1lyTk8yYj9J
Sz9iKF9lZylgY2M9V3MzMlZuSD9HPGA3MzY1WHg0YiYKenlUWVRpYDtzeyFGUFJ5bFM+O0tsJGNx
fj9zeF9WXzU5O3wxYnJ6SzVMMCNBNkxBeyNeNn5gNXh0bnBOPHl5c1VtCnopaDt4V19wV3VoJXJ6
ZThYP0x+RDQ9V2smb2VMI35hPldsTkR3THVgY2BFQlhDRWxSSm00MnYkWGtabVdWZitUZgp6ZGRg
RXBvaVhmcUNBRlZkY3VzNEUoeSUkMFUqeG9xPz09TXRRQ3ooeEV5VT84PURPcj5MMGpyX0d7I3Q/
R0g/byMKejReNSE3Szd0b0RIMSNzKiZZTmUrVll8ajQoP3k+RSNuNFE4ckNRQD41dHl2MEtGeSV8
cSM5QVFQR190fFhXP0Y0CnpDX2pwZW1GfkR5P00/TmBtK0YlekU+Xmc1VG9qUEhUPHktQEQ9KHg2
MmYlZjJDOz0qeENCaVhgRm8tOFNDR2hHbAp6b31RO1RMWHhjUjJ2SWhTRUAxTXcldmBTUFctYFhX
KGxWQllUYyZqRGh0dDstakIjVEZGbldZOU1oeC02JjtnenAKentEbFZ3Xm1XRzxwU3lEMClaPm8r
ZUxPSSp1TGxQOGxhS0t0T3NQUj91cGhzbTF0X0NINnJwTGo3fEZqZzFTRXBmCnphOGE5anQ/bVN4
R35oSTFSMlR0QEx4MzdkZ1N5TnBVaVQ/VmwoTmNHOE96Nyg1fUZLe0hBVk9fQU94QXh2byh6Pwp6
JCs/Vk1TaEFMVmVBXjFLP3tFYnxxZmVyK15iJCVjdHtAP2UkPUFIYitrTDE0T0JyRWNPMFU7c1VL
MzhGSWVyMiEKejNQcHR5RlZ4dWEwISY9ekB6UEZhJXl7fnF4VnFEeDlNNSVGQ0pUXns8RklRenFH
Q183QDlobEViekg+QiMlNUYmCno8fDhLfDNjMEVBJGp7RFZrNmFPfFlpa0sycj9AdHxnc3V4MGFx
Zkg8JlluQlJIMUlrVT1JMD9mRX1EaFZoWV89RAp6SDZvVXFCaHFGUHFBWjZaWVJZR2JxfHprb0lz
dkZ+MjR5UGg2QyhAIXJ1MnVLPjJOcmhZaCNfK1JMbkEyIWwyU2sKelI5a2pZTDhKT0spKV56bWR0
dWFzMFJBMENWbWk8QlM4cHRhbFkxakZeRGc1MmcociZnXnBOMG1fdWVicXhjUCRECnpia0YmRmR4
RXlwNF5pTDl4fE5EcyRZST98MD9VUGkhI20qU2J5NU1SRWp5flFmPn0jOFQlfUU9QjRqOXZrVW0j
Kwp6NklIO1p0bXtOfFFVakZ1b3xLdEQ0LXt3STFnY1clJEkkeyYxZipmM2t9KzcrcShTbE1Mblch
TjRCQENCbThwUykKejt9eVVmTnwra0xqfk8oQ1lkP05tS1leentGJEFZKntQZzF9ezZzdzs1dkQj
TmduaXpSJUc5Nil7PTc7Mnc/djs1CnomRmpWbHk9Z05FUTh1fDsqfEIxMUlpb3BQViFlWEBVUkR5
S21ob2I5MzZ1MWZ1Z3R+OWptTk4/QGZSTCQ8O1h+Pgp6TXIlVkl1QVomSnR1cURtUUJyQkBVPXxk
dzxIViElaCVwMD94Vzs/Ym5afWh7RWJnfVd2JHY4X0Jvem02dCF5ezAKemx4KVlQVzkhaEJNUEYw
T2JmcHRCTV48PWpFUmZHRnFGQ0dVYztGeSYhbmArK3BqfWAqM2pBaWBNOC1EVVoxaHQ/CnpidVUq
USFUSTktc0UlMXE1MG5XJSYjKzgqPmxwYSZudjgmYk1vMH08akxNOCVJM3UzUCk/aitJYDEkbXo8
bmhyJgp6JmQ8JVNYdCNLNGVhOTh2WWJGMmJvZVplJlVFIShucEVSUmQtfkVMWi11TEF8Rnt8KjZH
VmlTTHgtKzBPSVooWTwKemM9WiR2UlFYUzs+MTgwTmlUdGFfVDtGbE48X2JeWD4xV1JyXkVsekRS
YVNQKVFmJlM4bn07bzVKLV5yWj9DI2E3CnozenlDbSl3Un45V3RTYWBAa0BeSiptLUUqcnVvfTl1
UXBrPSptP31UUE1eIWxQRTtyUG5rfVBOb2gwOCQ7SGheSgp6QGMlfVhffi1xbDZoRCtFKTw3S21W
bn55K1ZnNSh6T1E7JjglNypHUWUpTzxtZFNnY3BISmRaaldid2B8JWxFaUEKelp1UVNoXnZwWHxw
VzFRbk8zQk9UY2RHdjdefjM3bGFUb21PdWIpVmA3YHlSNDBGLSktX2s5V0YwIzdQe2RaSnc4Cnpz
a340Y2g8Yjk0SiMoIWBuQnUhMWpybHV+OWt2WEMyZDgyYCF3KTVpKzw2XiszajhEJmI2XjV7cypL
U1BPI24ofQp6X0VYazZvWHl7Y2xjXzhDbmwmbHs0M1R0RGl9X0UoY35MV2ZyXnk1O2VsaVQtSihk
N3ZLIUNEUnZaNz5OKkFpPnAKejROdUw0dU1fY2UyfmdfQFEyV3FUP3UtaXJzRVkpc09Wdkp2REd4
JUdFNjBWOzEpd3wjUH5KIW4zRk9zYTdgQ3NDCnoha1EobFlONlVSaGoyNyE3OVI7dXZ1RFJENUc2
e345RDFQVSZfcTZtQ2h9PzE7KDB3TDBoaDkoXlQmdnhxQW0kQQp6eG5hTyh1SVRAJUd4fmt2akpf
V3FNVzJzVSlBdThKVFY4a0pgKDYyUVpXITNkOVJtcWNnOXVXQzJ2VU95UUc9O1MKejJ9Q0lYQj9q
XkQlc2IjREQ/NSVUUENmSG9mUmM2SU5QI0ZOPlZPYk1mWVE8PEpQfn0xPXdZJilPKW5QPjtWWEdA
Cnp4NWUlX19CJlI+KntjcEEoWEdmaSlgZjxhbzJZSCVsfn40RXhZMUMpWkNAIUN0aj5pSW04d1pw
dCtlXmBYaXAoVAp6PkJySXc3MFdPMWdlV2F+cTZraTcydmclSCN4Zy1ZTEdlQjxUJCt5cWo8dmsj
Vj5KaiVjdzBfZiFQUDYqYXByVjgKellOI35qcV5GeyZBUXgyPzY9LVFgVks+fHZVYVZjPU82KUZm
LT9eakF0PXFUSmRBNV4mcTZQK0E3RS1ZYT00dHZhCnpnbTBYT0BGZ2FRbUB4KHNNdHUtcl8/ZVJO
cXllYUswI3BjTjNwfFg2Oy1HfiN3cHk4Q2tALUFFRGNHXyVhNW9oPgp6ZHlKbFYxZiNTKUZsTXFw
KlAzQ19GXnp9eUxZNiNKRj5+QERLOzt3U0U8OUZaNERKd351SFReQU00KVBJZHFDS2AKeiV8RnZN
cSk9XiZXWTMmOHQ1aDdCMik9e0s7T3AyeXd8Sz5JJSVzdVVnN0U9SD1HblluJSl+Pyp4aEdKMDhj
ITNxCnowI1NxfDhGfktKWHNaQmZ5ZiF+cFdAMDgrdlJ2bTh2Xz9APzhhe0BxKHVnRHNBUnY3KWtS
VX1zYGtaUmc9bHg+NAp6QTRPZ0lsK2c1dnM3e3xuUSpyN0lQdGstWnpBZGomanIjYnI3XitjSndm
ZV9YanA5bT11JTxKR3B7YX5JdSRxO1AKeip+fk1Xem0oPEo0OSM0Jm5oPj1uTXxvVno4a2QjKXgz
UEtpRzM9IygmZGE/Vm5XXnN3c0R9aW9oWGczZVglY3ZQCnopUnw2emlYJVg9IT9OfSQwbV9+THdU
QSQ7ZzgqZXFmTGVyZURLb3djUHo9JUJJc1hnVEdpMjMrcEZoSE92Q19xUgp6SSt7ezlEbEcoWmQz
JmtjNSRCNWJxQUdlQmw4K2ttXjkoPH5ZI0dmJDtZc2tfISpBYUZTUzZLYWhZcztmbz93X0sKeiEh
LVhIMFpRUU1vOUJ3fT5DYXI8e2ZYWUVLZlphP143VyZld0dWRHxtMGFwUGt5fkN7NzhqY3c/UXRZ
SiptPUZACnprLWFsRXViaWo3ViZTYWVHdEcxcXYkJHF1Q3N+Zl9JdS0kXi10aEYjT0Vkb217XlNa
a1h+SCRkITdwejljTjVDUgp6UCVicXVZI2kxJUhxZnpOeD91WGNqcTRVVGchPihjcyR0cGlyOEJ2
QTkkWVE/XjctQSRlPDZrYz4xJiRGS0xBdVAKejtZczZ6YHI4M1lGN3NzV2J1YzJKJHF9N1E0PXpo
eWhkOXEhYU1gOHsqVWVoKypmZChuYkJibGNfJVI8ZEd7Z3tzCnpRa0xVJV82RDNTKmh6cHxzUV5A
WWZCX04tUCt0NTV4YkolYXNgYWtgKUw4PTVjPit7ZGcqekAoY0B2XzEydloofQp6RHAhc1JwWXN6
YjBqZ0M0UTJVd2h2eUs7NSVWT0FCTV5JdV4hRThuciUkZ2FhIzF+a3omUDhTPipMJDw1UHw1MFUK
ejhyT1ZBTWlDNlczfVItSktTbU91aDdoMHpePmYxQERvejdHNkcoREt8NCl3TTNxbipzS0tBM0kw
I00hS2YtZVlDCnpVbDY0RjZRbCtacXozbCkhTjdzTzFTd2hUc2FKV0RgTlY2elpqZSUmI1drakoj
cTshNjA3fHBNOCVxej1jelR8cwp6VjBiYk1mKEB4VU9gUzt9N3NFWjV0O3hmdG95VEVNYUJ9eXFN
QFUyfjU+bmZkVGlBdSMyRXhzYGApRnlxam51NDgKenhjSm0jKD1PJStAZThIbGo2X1ZOVlNYWVpZ
OWZeXlpBRkQ1TGBAPEBhbUVzeSN4bVl1bDBOSGIleFBANCZjTFFeCnpyU0o9Q01SQ35gdzRBJn1S
cTNfQE1fdVI3cWsqZnJ7SmVhV202ZjhZc2ZuU0lYOS1XMmRHPiNjWVJAQ2lMKU0rQgp6OTxOLXYl
OTM2fW1uY3piMzlSTERMWnNhKU02OH5NaH1qYm1YNTBfcVQtNkNjZztSa0Y8TFdOZDs4TyRgX1Fo
ZS0KemFvQX5UakZyPm9WeTV7am56Z3F4ZWNnZktwK2A5R2VEMkZqIzFMcTR0Kkt8M2o5RSlXa3Q+
MGRYQ3BINUY1djk+CnpONFJfYzYpczxVaEtfU0loUFR7QlFSI0lCb1dmJHhAQGxhUzJVKCVBbyMz
PkY7SXY+eEZ8Mjg+SGsqK0hlYlk+Swp6Ny1zT2xMbUwwQzJ1VDc/bGhxXjd6aSpWKTklckohNks4
VEp8Qms2ZmFtTW19cXF3RlVLe2FYISpLUHkzcDZmQEkKek4jTjxUS0N1Y2dpTCYlbCVAQn0mYFlE
STcpYm59X1V6M2xNTXxvWDlpei16PXMjT0NNeHpnaytrMUNWX3FZcTR7CnpYSlJeUVRXMGVMKW4r
bEhJfmNhUW44bnpPeFlBcD1qMHpOMmNeZndzR0pMY1lvXkJQJHE+MjF3Vj85QFIpd3AlYAp6bjQm
O0VwYVMqeDB3X3IjLSQ4Jm51eWkyWSo3TlhXQ3NrXz9PRWVee1Y8eX5EUnkhVHgxKWMtSCFQPD89
c0hJM2MKelYjTjNaVWlvaDM9Y2VydztsMFpjaTlVLV5tVEhHfnVLZlNtMDd7Y1VQOEV0KmJ8K054
cT9IaWBDd0AoMWBPbHgrCnp1RF5IZlQ9QUxIJkRqLTxEMlBnbl4qbmZKLXt4aWV3eSQ5JiVPV2le
b2lZN3I3WEwoLUBZRmpQUTxMclZqXkY4bgp6U15XUEhNMllFNERFN2FMM2lhe0ZBT0QjRGB9cChF
S2txe3xZTT5hKDJsd3FlUjw4MFVQWig9JSY0bHYjYjFnVHkKejlAXn1ZbGpAVnhUcGZTcmEhMWJu
aHUyRUtxN1VqMVJINEtSXntyZ3ZESG5OKyF0YnRpO1JeMitCbEJNfEl7JnBZCnolIUFAWiM0RjBH
bmlYRX1Te0pFeWN8fCQpKSFrbVRFX1lieiFwbj03alBaWkBnRU9JSWppKn1XeV9FP2lZZG1HWAp6
Pzs8YVRgQV5hNmlCamk1WDt5aXY2YHRsQVBrSDE7LVpTTUk/fXVGRXNkQXlELWJFcX1kTWk8NERp
PFk2dUpaMWoKelZ0OGZDVktmKFBMdGV4WmdnSUZ2XzwkalRjNTVTbVN4JCtFYnk0Vk5pTj83M1hr
fClwZChMS0BKKz5QcyheakVBCnpkTTMoUCZ5ZTZTOXYlJEMrcTxZZ3Z0NEsrU0ZpOWdvYl4kYHFH
M14qVDRIQldlWD5ScWJFQkgla15aVGMxUkk+bgp6dTt0YXdldy1efiM2bWRAcW17aDZBdytkbWM9
QnlHNGszelFiJilIKjY5UTE3MGRQQUlmKnRGX3YzN1lCM3haPF4KelA2UT92Mn5WM0EjeC0zQ0ZY
fT5nP2l+V2xzb3tLYCMmVntTJipEdENpZVo5eUJ1cDZzSWZXX095NHIhNUd8bXMmCnpxa0olYWdn
Mz92Xn45KF85dkQ4cjlZZW4kU29JLVRlTkplaTBAYXNfKWFPNTtHV0FuRns/cit0Zjg+SGJwU1lw
Iwp6WFApVFMjfHJ9cFFpQkdtUihkSz1SM0p+KjhGP1RoeGxpNHJ6UGdqa0oyOCVQaEVze15TPzlf
NmolJk1kUkdYTVAKekhKS2hJTCQyRV94VD4/WlZaYk45PSZqeVJmYkZ9RiF7Rz1zZ00xcWghRjYz
cWBXZlVBb1hWOyRxb01mKkk/bXExCno8KlNjej5kYWxGPWJuUUxLVz9LTXByLUtoYTF2dTBDSn59
VWlKSGkzeWFfQjcqM3pTaVNzQXtxTjByTmh6T2U7YQp6PzlENXI1eGJ0Q2FTbTxtX2kqdkBMdGQj
cHE8YHE0MCFyZEBJJGwhMzZ6Knk/SD49ZEFpeCk0bFExPUZuKzRwKFgKemMyfTdAUkd9X2p4YGco
UUdpWWRQTW9EJVd2VnVHaVhUSzNLOClrRWpIeVBva3tTaUs7NCp9e15nbUhaclkoVT9XCnpAZlVE
NjlmbXk/YGRESyVpdmdhaSpmcUVybGMoJXVgdWJzdil1KENQKDNqdjhqMHI0anAyKXYxMTlyVTRw
KmVjcAp6aiMzNG5RblMweileVlRrXmMxYjlAMXdsdDIzNHNgaD1AQndiKj5mcmsyR05HLVduPWE8
eWdHdElPWiVacUBPR3cKelc7MWhgdENkTmdTdnZoQD1gNFhKS29PJEc2UVRzOXZ+PlEkNVV7bDlM
bFM/SzdKKjRpeWkkWjJFZ2pYMj1aeGsxCnpNXmxYJk56Yyt5ZFlsRmdQZU9uQ25FSHR0XiN3dHda
IUE4ZzBgLVpFczhFXl9SWjFDb0tZPmYyT0ZlejRKXyRTeAp6N0BBQnQ2VWZXciR+VEtFVXoqQ05X
eCM/IVkmREJMY25yey1JV0k/PFNAVXZQRX1mNkg+eHgoZlElKTBrNio3fFIKeihBTHo1PipzMjR5
UihxMzJCfUltbFUoQ0hJNzY1XmxTVVBhQ0J2Ki1rPU82RTFtWkBtR3A8IVE7QStga1R0Mj1OCno3
WW8rb2VDQT93Q2VQcCVvKUpUTndiYCNaZzhzX0VpZjN+QnluZjB6VU19a3hQZTNEaW55V2MjPDV4
MSlneUVRRgp6NClqMG08MlAofXNFQXlHTTVpZj1EKDxtcTZnOzxUISgqb2I7PUxCcSRHSD15YFQ1
fXo2e3RJJXs1O0FQLXQlamAKeiFqbEA4LXEmfD5meWF5TF9wYX01TnNXdTl6TlBtU1VoZnMyWUlV
Y1h4Mmp6SlNgTChZZVckR085PHMob0ojU1VICnooQkp6Tnc8fEtMRTQ9VG5ATU1rbW02OERedDI9
X3psTlFiaVM9YXJFRCUybX1KWiQ+Oyg+cnl+P3E4fEFiKjswdwp6YEJYempQRHcjVGE3THA0ekY9
UitySkdoUUhMX2hZWn5Pdmx2dz8kdEB7XkF3dDVNKWRsUElwZnZpcT5JYCMlNm4Kei19ZygoP289
U157fUJ+UldXdFg9YGJkY1BRfD9eKnVgaDNNZT0oSHo9YCgpWiRkTHc5Q1FYPWJWbU51Ui1SNU9g
CnpCWkNlYDxmWiNtdyQ+emMtTVUheDxqdiF7LT5KPnlnZVgtaWBJYD5fXip0QVB5I1kkSSU2b2dB
Q3U9LWBzMFV8VQp6YWdIaWZaUlVEandKaFM1KUhLOCVXO2lDcD9OV34jcGczP2s4c2l0Q0hFa3sw
YkdKYmhxbSRgdDJ2RDw3JUNne2kKemB8JTlXPFFLU3d7Z3NPdlBwVk8mXmd5Syhwdm5uUUVkOzEk
MCthJHl5I1Q3MjBNJGwtPkw1VU1tYnd0NCs7UDZiCnppeEIwX01eQnQxSypean1scXBaTjJ0YkFU
diU0PnQ4Qm4yRXZwayM7MWApaWQzIV5iU2gkcXxyJSttM3QoJldRagp6OTNQayUyVmp+ZGdFZ3J7
JjlfT3drX0FidVc9WTE8ZzxNSV5yQjh+bCYkTnQkbH1RLVBzOWEzWjM0LW5mZWB0XksKeiNXKGBo
JGliYyUpfUpkb0RwVWVjcFp0R0wlNiFjRT16a3U7JE4hNzN7bHBjWWVuZ1BeKz1FdzlUbmozYEN8
Pk9pCno9TE8jPWZoVyNyM0NgNWFfWEVfaDV3Zy0jMG8yJj5rPGo2NCY0bFVhKT9DI3NYODVIbypE
SmYyNWBEeSNZMVAzXgp6aClyeGBMMnhIWkQrbzxvKXdRMHdQMVdmaEU/anp1WXVCR31aVDN1Z0ox
aFNAVD5TYDhnc3lxP3o4S0wrS2lORTEKekgzfj9IQTFhPmZ5YVooP0dORjdqLT9vfH45LT4wbkdy
Y0AyP2xkWkV1akEoSjdrS2JVeTV5ZDVwNVdUR1lpT3NVCnpSODRyUXFwSCtRIX16SUZyPGxeKyp7
d29kemtYZiRJRHhIQmBrK3A2P2JrQHFEKDhoPkw0Kz8ta0wqQz0qNz1COAp6cG9hKnYwU0d0aHN7
bUF9PyNKKy1AJiFFMWMrX0J9Zy11cUxtflhXVld8ckd2VjdkcHxNaD91cUkqUmRBeXRzfUcKekNP
QzBMRH1OXmJvbFVWJGhZY154KjR2ZFMwRl59ZVlpaGxOX1JhPz1zaygrbHpVPj5ATXFAbz0wX0A3
TVhrOVVaCnpzfVIhYDxpVlUzQyNGcDNIa3o0QERPN0ZyRXFUI3Fve3FfY3M3WGQ/ezV3aGBhQj5K
ITZQVXJJM31IJCQzUnIzMgp6aXFRZkpMYGZ6VEZYSlpnTj40UmUlOFZ5YWpwT15xQ344ejFmcmxV
Xi1ZQm0xTTNHV3BpbUZzIVFLb28jKk41fUQKenRvYjt5PyZ+dnZAOGloRmU4Rz5Fan5fXz8pOEcq
KTFUd0Eod1d4THhwdE8wQkg7Sm59OWd7NVJGP2lGRXQ0TzElCnozezx0c1ZLZkRrPjhJc2sxfWtC
ZkVrRGplOyEyaGoqQ0lXczBqSyFpXkpaNWE/eXlrIUUmPU1ePjNHNllsQT1jNAp6Q3FPO3UyQi12
SCU+e0F3TXBlN3dBZyt8e0JTNl5ecGYpR35iKFIyQ09NdUVFSyFwJlgrIShyUlBrYEVIKH5zWUgK
eihMMmVHSkVhcnZzMHNafU9JYT8/IXhHTjxCS24qMXgxJjVfNWZiPTAkJUVrS3dzOW9mSCYxfXVj
NzF2YDd2T2woCnpqKDx2a2BxfFQjWit9TUI+MVFmPGBvbE5SUFc8bHEtTVomRCZsZ2BsLUlVU1RQ
QGEmUXBDMEhJPFlUfFZeWFNnRwp6NHR1eGl1YjRTPSRmQjd1YCVSPHJxPTZAbVFDemt+QUZrfkY2
T29ocHc7fStnbG53VmJsJmptRXlVVGBVbUIqc3QKemlRYDhQSGBXPzZYMiRaUiowISNQd3pAP0dB
NTFNUjJ5TTkzb14je0h7aTxLR1NvalkjbD5kcUYpRDJNfDZzWSRfCno4dkojRCgpZ2pDYiRMKlFh
PlZIcEo1O0J5TWA3ZWI9S0VNOC1jYmtIVWdqdGJufWVvPTwlRmdVSlRiT29ySFZhSAp6NWA1flRY
QV98S1U3KT58QkVqel9Lc28tcTBnQ0ZBMkI2Ql4mezs7ZkJTZHZeclByTUFoMTN1fnhFPV9ed3Nr
PlIKenhnP21ZSjVpajFYYiQoS3ExWCQwYFgxMmJJJW8xXkh8WG5tdipiNGopPmVfc2V1fkhIPCo2
KVMmQlcmUThDYlY2Cno0SiNIV1Y9LVUxO2tzfGUpSlJAKmd+T0J9V2pId3lkT1UtbEpZSGJSazEq
d2ZRQTBlYk9uRzFeZm9qTVg/eUEqYQp6S1IpKVNBQnE9eWc5bXlzUUpRQS1wfWdjSEpQbGBWKURI
bkQjVmsmKiheIzZ0JDclN2haZWtRODE3ZXV2THg1cjMKeiReeDJ4KllYdEtqPW1IcHNzakUmamZo
UVg8NWsmTmc0MERCcEtzdUYyVWxxcTkjQzw1TH1ScG8oXkh6SHBFQ3JLCnoySSZqOz40IVFHY1lr
STtAI21PTiE/NXV6aEc8I3tYczk4fEpkVFB+SlhkLUlDLVgjSl5kLVN+SSlnYGZza01pNwp6RnBf
M29QKXowTT8wcjBZe3Z9PyRgalVaXnVOVmpMT2oqO049TmVDWlBYYlJlXjFROUJPO010e3kxRXBZ
bElOI1MKenBRZj89Qj5odlpYeW1HfEdDdT1Gay1raSl3bk5JYzEmQ1h5aGo2cTAycVFwKzhHTUZk
eS0ocTNKT3F3WSRIUSpNCno2ZkI9K0xtPUomSiZTI1duUylmRGohPD1TaHFqNDchSEZmeGpCd0Rn
T29YbWdHWElQam43NnVzJnsmUW1VWDYlUAp6SkJ1M3JUe1dEempyOUMzXz1jVXRVUDhqITljMldr
MCRBQWE/YDAtYzhZKG47akJDKjZxaVhvdmlqTStPNzglZW4KekJTQEpOcShxVDJxOVZtb1V+TDFB
ZSRQek1PRDd6MGJrKENIazZpIUpIPkdYQm07PXM0VzxfYnM1TnghVy1LMGdSCno4WWVMWThieWwh
c0EwVTs4JHleR0I8bm9fUmV2I0AlTHJKaFg4PlZJVylSOyRjcUlLKXtQPHphbjtPQiRncG85Xgp6
a0VRMm95aVBXTWV2Vz1OZjZXfGE2cXNWe2cwMlp1JV5BUXNoM2VHUT41TW02VCohanJHOFBJfkF2
SGwxczN6UHYKelUmfH1KTFNGQW14TWR2ZnBIM3UxQ0hEZC1OZXhkX1ZoNjYqR1BDVW0wRil+TT5I
cmh5eDZiWHlaQGdGciY4dUg4Cno5LUBmS1IyakpkVUJ8WkpMZzVhYXFjWXgreU0+PkY9SldIQmZk
WERHOCVEeCkoKihGfClrbG9TS05tbzAlN2R2dwp6NXU5NTcjUUViX2s2UWxxXkBGQndVZnIqTWJA
dX1PUFIqSEJyVEd5X1NxWilfIVFLdyopfiZMIVNpV2ZQI0ttKncKejNedHUkYGpOcDFnQ0NFaGtS
Z0liP0BFPnJidTluKzs3TlcqLUNjUl9Hbjk5KUAmKm5aRjBscn4yTXk5NCNmMClYCnpHdEMkOCtP
Jkwrdih4cn5qMERnOHcpKjZieUh8PXxLRHxAKnQ1XjR7czZeSE5TdVhOYXU/REkmLW9LflQ8JWZs
OAp6QCorPGl0b2U0UnJZY2JMe2heeGd4eVpYM04yOC1tUHBJYmV0RDAtUENfS0wkJCUjPHJuRyZr
MG5aS3B0I1NjOWYKemQ3NCQ7Y2hgOXVXQkh2Xk17JWolOV9eKk9QQGxPTHJPXndKPDc8SzkoQW9U
c2EwIX18KlA8PEpEPzBNYDtfVUg1CnpYd0JTIUl7S25ZezAkTjNGbzZsPSE8Q0RnTG57WHtCdWB9
c08/Tmd4UyYkVyk8S31XQEg9OT5gR2c8diYmRWFEVgp6NnsrfW5ndEdOJEZGMWcrQzlaQGU1MWd5
O3EybEMyWCE0e2cjcmBgZ1F3bF4/eFM9dH05WjNQK2FONmFFNEotVnkKeiRSPmJteCZXJDhlJFk0
WVZvcmBiIXc2azVMQ1hjPiQybnNuKTJJen1kfH00YiZLeUcwcyUwdEl1ezgoVkgpcHxpCnpSVGBG
MmlDVnpHJXtnNTIyfCF0eWd+UCUpb0Y1K3diRTdhIUgze2N5NXR3Y2YzMlJISG5Aezdha2RNPiZf
RWVKeQp6IWRWMU1VP1cpZDUpSzJzUTA3UjVAVWt6RSFHO1hwcjFDVko+JH4zN0Vze0pnZVJ3aVQw
PVdXREVGb3E8cmFwYTAKekNUNUlTQWhedClPT3gtP1l6OHpRVzVSVkFvTCM2bTF5T058S1oocmpH
Yms+KCEyWSRYUkdlPCYlLU9xS2kjPWZJCno8NzJ8cFY7WiVlO0xoRXJKazVWYmZPPnxgdTZ4S1U+
VmctNHtQejgmU2o1WEtRfDRnbDNUITl9UkUobFJPKHNONQp6SGNObVpKTzhINk97MEcoaT1MP3hj
PU58KTdqJldOIzRUTG11a3Feam0tekNfRlkpXkk4JCMzeldrcS1PPlElK30KekIrdy1BUjl8Mkoq
M3xNTVBaWC1rJTFZR0tQXnNjK2Rfek0kRHNvZCQ5T2kqc3IhN2ReSlYlSyQyczdAQlBfRlBvCno9
enxqOSgtRzZyKmt4c2F3YlFMSipKP1JUJjlfbDhKNG5VcDIqSnNYPDRnRHBBdntHQmQ9akJJRWdB
YUxRKC16TQp6NkFSV0oheylzZUlPQCY2SjRRS18pbSVlRy1FfkI+UlFacXhtOFZeLUgoNlQqT1U1
JTgmQ0h9WEVSI1ArRk15aCEKejBSdl58QSh9PWQlOEt0N2tlVyk2R1M0N0xXbmRDWmZGfkpjYUp8
PHYrVHhYeEY7RVh7UzUobCVWYVZrfnVHMXpsCnpVWjhzakdMdHlrZUJUNnErPDFjNFNWR3JtOHEh
Q0tNfmNDaiE8aGR4bHQzampneDdVNEx1Q2p7MCEraVgwdnNYTgp6ZVleeDVFaGNzUHQ7U00kUXM3
QjlobGNfajB+SWBKOH1pcDl5aU1rPnJeRGE3ekRYK0EjN1F0YEl7b3x3bk9NaFkKemdHMlZrTlFA
fiU2YVJaJT44UVlzX0JgQV5tNTk0LWo0TD5tS3FWQFA5IWpxQyZkQC05SGpDQE1CbXpfajBnN3pg
CnptOEBrZCttQjBCcGYyUkUkR09aIUlGbUZUSE5qSm1kMUx+RHctMENGP2pZPUU1OGpxSntqaDVS
end1Jn1mZH0qQgp6MWRfX2I9UTZDOSUyZmdGMChxT3pwMWwjcm5HWTNuUEBnZD1nSypTIzFlYFok
IUZoYHcwY3QqdUMrfD5zcG0+Rk0KelNGWjRzQWtFYjhVKlg5YmtEdGUxLV59SlpQbG9IZXdebiF6
Jn02dUImdUZnamRhditgQFJ9Rmhudm9pcG8rPWp4CnpYen5qRE9XSF5AcXEpSEFTPlo4QWxpUVE4
ZFNCc3Ytd04qJEZZcWBqY29KfUc8fjRjfntsTHc/e3FqLU11Yjx6awp6ZC0+bz5gT1dLe2c9Znct
V2ZzPkskQWwteGNzV0cpSkZZKEx1KkomQyU1PEVDaDJhb1dRJlRSMEsyd1QtMm1FTmoKenxJayNq
czRYQGhAfTImM0A+QlFrPmM3M3VQJWYpSGczfWo2aDcxYEBQWllpNjExNTB2amhScnMpTW48b2px
OF4+CnpnIXRQPlJ+Q2xWVHhpZF5lZnZ1Qm5gZ0h4eylOZnAzPHM7QEszSD4rX20yb3JKJl57X2x9
SDFebGckNG5mS3B4Twp6c2lPX2ZoIyFnPEcqcUlfbWhWSiFIanx9ZT1jNzdkREg+QU5xOXZXI1By
MUJ5VmVpITBrfFN1JStLanJgY187fW0KenFTMEtOZU9BTWppPCpOaGh3VGtlcjM5I14/Kip2JkRw
amkrcHQhY0hAS3ZVPiUjKio0MyhrfXteVTt9YUl9X3wmCno1YTs2I2hwa0BCZmJ6IWQ+MEgkcmBt
byZBM2xwXjYqKWBeaHV7Pm9UJV9Rb1AhPHtmQHElJFVyXmB6SXk3Z2tnIwp6bU0+MCUtRjU9aDdX
IzttR2d5PD9kTlpkKlZMSVZ5RCVCPyRPVmJFZzV9SWFEa0VYd2hMNSQwaXZCQD9ReUxSTl8Keigx
QWk2Kmh7RmYlT3tCQ2FAQ1E4T3tAeDh6Yj1DbkcwQilWSEhNaSlWTT5EZSpzKmVyX2ROaWBLMEU7
XlFKJSgoCnprQU9aZTtpaz1DUzBCfTspJUBiTVpBVVRlOEhETTxpQE5aTDZHKSprSmlwKV5Eaz84
PV4+dkxhdXYtanp5byphJAp6PyZIYztTPVQre1JvUD91bDJtaStfRzFPMj8lc1FmJmh6KUU5JGpG
S09FWSNJRVhPaXRNNDhWYHBgc0dVd0dfZEwKejtoVTRgaDAtQkY9fl5UWnU5JXJjUX1JZiEzbXg1
UnhjY2ZxYkwlYnNTYFFVUD4mK1YjSyp7NSlTRmdDbjxGNz87CnpsTG4mMTQ8KWN2VDNVKWlVZlNq
Njx7fj5nOChDUmQkanI+ZHYxOW90RkU4UGB1THxYdmFWUVF0IXUwYUJOVkE9ZQp6KnhCUDEhP0Al
PDF5WTZiSFdgMmU8YFpGU1dkKW1RTzl7Jnhfe0R4VlFgWmtPSU1rSVpKTn55ZjQ8PFpDNVBhZVoK
ekl3PiVpazsrTWZuTjIxWiolbzVrMGp7SGJuK1EkcUN9Tn5UVmNCSF9NNHJOU2B6cFNfMnMzJElY
ZmBLe0Q/ZkoyCnpGeyhpenMoYmpoeWYoI0otcHtxeTNAVEt6KCRtMXkpSio7eihqUjQoJC1oSUBP
a3kzMiV0VHwmNVVkQyhsbGItfAp6dUZvYkBAdEk3O01+NEJJSV85ZDtSZ1ZzaC1qbGdybGFKRzgk
REl9ZFkjZnk9MSpXSj5qVXBIK0x1RS1icXFRPiQKek9xc21VcUBQTCo+ZilgXiVfMX1yI3QyUT8w
IXtrNGVCPkRCNjV3KDt7Qj9McUREYjNmI0Q1RFdAdERIKHJAM1ZXCnoxODN1fllFPXNNQDZBTF5j
c14+JU5ecmlsNyp8ZWE7P35KbismTExWaH5tV15WZGBHSHRubWIodmlVcmowMk5Bcgp6VmdZIWk8
NjhqTE5yMzdnS3ZmZjxHNit5WCtsREozdn5Pe0xZQFhjQGNKdW8pKHFJcnZnQCs+VWtSRDF5WFgw
ISYKejw1Rl9ELXNrNmBRPD57ZjZoeDFseXteKUI7SXd1KWo7PGUxZllOO3JLdUhxMGN2MWlCMG8y
YjNQeSRjaUpmclhGCnpYKX5qSm50dGAtVWZ0SnNFfHVJaytubWB7ZUpuaHlBVSgpOEcyQ3RZUU82
eSNfaWJCZXcwYH5LRl9KMi11UnJEIQp6MHxTRX1jYm1vOFhEM35EUXB4Z1JaVEZ2P29ZY1IpfDBX
V2xNdW4xQVhTdkZnUm8+OHtMO0c7T0gtT0tGUUJvWEIKelB0P1EtT2VtamZYMFg2IXcmaDBXWmJO
eShuTS1Hfj8/MVIhTFBMMlM0ZHIjO3pJanlodHpzblNEMHh0N0JsJishCnp0O15xQWYlP3dfUD5M
VV8ofllLM2hITigzNklnYmpDMSkqODxaTTd8Jks4YF5xMGZOekZLM0RtRTI+YXlfQlBiVAp6KFpD
c0NOYFJVS1hNUl5HN2N+TTw5I28pMHNYKFJDS1VFVEZnfnImcW9ZfW5PbzV7O1BRSzRwMGZ0cFBQ
WTVAVWkKekJMVHt1a1I8Q21zIXJ1VCVBNzVBJEM9fS1vaGZvY04zaiMxSkUxbzEyJTxiKHV5M09+
bWReRlNHOz5jQHU2UXk7CnooVVpaMFptaTAxcD1wfiopSSomWmRnK0x2Z08yZHBqIS1xaTE0ZXAq
MWcyUVJQJihHRlBOakQkUDV+d3AhJSQ4TAp6akpVY3ByeCQ4RUp5Q05RJGhsJV5HUFoyV2cyVm59
Mz43UnhYbUJsKDV9RllnKH1jK0lkSVNnNyFwRk4zdUZqPSEKekpYcC1OTTsyQHRuX3klaDhCOzJO
UXExSmlvaE9QRFFedjxJbDMqTW8zQTdrVkZvfEs5eCZ8Plk7QFdJQjZgeGYrCnpBPlV6RmpEd0M5
QGJWRkdZRWkpSFNtQWpCJHo/UFZvWjgjREYxdjctVVpNeE1lcUReKjhmY1Ekb3FCRk87X0h1YQp6
VE9qSnI2OXUzT3NhUzxacDE9WDhPMDMjYzA4OGRaTiR7cXdfQDlna1AmQVYzR01VX2YzZUkkdkUz
WUN2P2N3aHUKem1fT3o/Kk15Zzc4VyVPfD45YmJ+SlphfDVuPlM0TWV5JntDaUFofEg8MG5zXlF+
O3tEeEVNSihJWT4hS0t+aHFaCnpHS3E7eUJHMWE7YHw/cCRkN1Mzb2E5KCZHSz0kc1hFRjNtUmpQ
Kz1RPXpUKXBRKHQoUVAtIXE5aDMhKn51LUl9dwp6PnF5byFMU1FFXjUkKENRSjR5eDBsZDQmdThs
SmZGcXstZ1VJISYxPUd0KTczZWlvSylFUH55a0QhQlBLQlB4ankKelQ1PHs1akNYSmtKYmBzZytu
JStJNig+fW1qQXNmd1dpWnwkbFMma08wK29eSD5ZMnMyVyUmOU9qJHY8QHFBSTBOCnpsZXdQMmxt
KCRnZlFtQyZwaF83a1JVQ21WOWo/aUE9ez9mMztMdn1oWl5Ad3QkdnxlQj5iYnJaLSlCans7PlQp
MAp6WTY2dzNAbSV3YjZUZyY8UEZEQWYqVWNze3NhQTlveFQyRjBYcXcyR0ckbUo9aTJfZFFuTThu
K18xJEREVzsqbjkKej1APXpKa00lIT5DTHU3Sk5+UDgmNS1WMjNeQWF4d2tzJUMyRWlTfl88XnE9
V3JzQnFsREJMfn5QS2IpZW9pPGpqCnpvS0JfK200Xkc+MDJRWGg0X3ZLZXVWdlcqRHAwIT0xKiRW
KzUhd0B7cWJnXyQodyF6Q2E0UHw1XiZzcGVLeTQmSQp6P1U+Z2U0JE9qYlZeTUlkZ0FQaTlycmBg
NTU2KXoqViQ4YFo5O35kIUZASX0+P2JCZ3EpSWMwc0pxKEF9amwrPm0KekkqNCshVkk+dH5SbXZI
QUxLRktQaTgxSH1QX0orR3MmTFZtJHAzKjlzSU89dz88byomezQqaXk1OHBnKHtfVSM9Cno0Y3xQ
d1F+VHVwKSQkdGArdyR0R2k9JEZ3Z085aWNjcFRYNXZ9ZzBJTVJSOXBPKjF0ZVdAdT5HTjUwTiNp
aHlOaAp6Q3NyQl9KYm1jMWBeU0pNJkZAbFVERjEoRHwwQDRjenQ+UGNqKXJvKjNEZUNAXmNMXmh4
PyoyKyhCYTYhdGJvZHMKel5ALTxpYmA/QiteYFBjby0jbzdRPExpZXRlPG5OO3EqTkRxPytldkBN
TEQoUzU+Rk1WYFJaTyNjY0E3PXh4fjk4CnpRXjR1bmk8Z0hOPzhRP300I1BCTSlXTXFTZW1xc0VX
PX1VPlBwSVpRN2tTcXRTV158UWBUU2JFZGZvKm5TPnlFdAp6WWQqaXlKNnV6PCZRbz5ke3E+N0ht
SkNiTEBDODMqcDcwYDFITH1LMnRAMmRZZDB5KEFDe0kzbUQwOFJuRnN7fWcKejsyTGNRTDFyZmJX
O2M4Ml9WViF7LT0tbyZ2ditJR1BGfjlfIVNPJX4jNWhjKnRVaSgjSFMmcCY2KUB8RXZtQTVgCnom
QjZMTzk+Qjk/dUtGNWNTVWdOe3MqanEqPVkqLSlJY1E4K2h9TWl2STg5YVM0MXd1dkRPSU8zWilN
SUxjUl9uMAp6ZU9aTDdfRzkrd0QwRHp8QCp6YUg5S28pMnUyP3dKbyRFR0ZYaXMycDt3VWVJbFJG
aDNSfm9wRnZoQ2dwe3JldGIKeilXQmlwSDYzOXtyVkYma2ROVmdEUkRxfmpULWxqUzM0dH4qQFUm
PGNtJlp3M0dAeF5KSC19TE9FMiZQMjteZzk3CnpmezN0TXJmIzE9KFhrSEgpbjRFbD5PNzdZcEdB
SWRKQ1lKeDVKSXEkKWFHcWw3KmZiZ0R0KDwkdGBHQEtCTGl0RAp6WFM0eVlAa2E5RVpWV3JfQ05W
fGFrV21Ce2dxTjlBZEtOQ3VCc2s/TTtCPVU5PExCUmkkUzQ3KSheUTwhcU1ZIzMKeigwRy1tPj5G
SXctS0wrMkBJPSs9K1Z1eSNhMSglMSFQMVNKNTItK0BoaFFib1p4WDAoNXdKUmBSMj90QmkwSFZK
CnphSDlFcS1CdVJOdmRUcmVATn5wSCZLUUhxIz1LaE4rYX1pWlQmPkUxb3FaWW5MWXNLe2YwcFhn
NFNLNGM7S3xkTQp6Yz03VHptOFVufF5aTkJgeW5Pa1I7Z25BbWghVjU3YyUzQTV5dTc+fDFxQjYy
UGZ0ZiRUQURKY3NpX0o7NiU9SGwKenEkbkUmKFNGRXdWV35Bc2h2U3pTQSMoYWkxaypoM1gqMzg8
PTN9dE9RVihrX3R1Y0cqTj0maVhMRyR4fERtelk4CnpwU1k/dV4mPm9tUUYjKTA7Xzh2Vl9iRF5l
MnMtSkN8N3FIeVlePlRealF2TXo7VD9RfTNSRE5PM29qc3IpaXlgRwp6OD9qPlphWkY8XmpmRCs2
PDlMeEt1dypSNT1paXl4U3VtemJXaHs+ekJOK25LK2MxP3lXcnx9KGxlVWJkV0BQT3IKemtSfFdT
PUV1LTtHK2l9QEdkUntjZ2Z8WDU+SXwpQTJ2ZHdyKEJzR0k1VlIobGFwZ3h2WTY5MTdTYDYrfk0q
S3xiCno+NEJ6ZkxYdjYoa1dgP2dmdjd3XypOaX13eWlUfnxScEkwKlQ8N3hOcT05aTVPZjVuUV5V
KH57T2tAXlI4WGBscAp6UUtiTT45eGdUfDw5YyZBWlohd3ZjNTRKfnBOeWVtb3VEJDdwVUw4NTNU
X2R1WnEjfD1UOXAmN2wtbT1hY0I2fXsKenhVPWJ0YVhNaWRMdzYwNGMzMkFtVFpaOFhtODNsXjY1
Y1NZRlNnc0x2WUAxaEpqUSshaVVYI3liQ2J9T3pLbnNyCnolYX1qNmY7QjxZNXdkJWQ7K3dLeCE5
MXxsVnt2SHhNMShsYVcqeVo9KUU2R2I4NVdWPj9CTTZndEV2XkFUO1JSQQp6RXkwPHBRRmAkQmRI
V1NaRyshfHNgSVdOMWApZXpfMD0oaFoyRjwpeUlgQzlJY3lHQUU+ej1vfEBNTHtnaVpAKjAKenoy
UX4zJSRHYGxyaDFlTXl6ajI/ekdPaTNtKHFoTGVSI2FXUV42QmdjYUl5bndybCM5a0gzSFlwI0Uy
e0A2fjx6Cno7OUFBKT4qb3FqcEU7M0gpPShOQmxiITdBPGwkdHUjJVloT15AY1R6Ymo8WWgxeyFL
PF5edz5oam5fI287Vy1rRgp6Kn1JWk82T2ozak1IMnN7emd0YiZ1d3AyZXxGQ2lpcGN1O2dqYChj
QSN7LXk5dHx9V0lJZGJyJUB1Tm9AUG5zfXgKemBsX1h+WjVnaVY4V0Q2YndYN2hkelV4JWhqaSt9
aWVuSWNrPy07UGp6JVV4aEFNK31ZNWNMNnwjOEJSMkQlVV8lCno/fVlPQTB+RlZKbDJwIWxjKmNi
P3tTbi0zO1diVHoxMjVuUlBDT3wtJWUzJUxNaCU9VF9lTnsoOUBIa1JBVjY2WAp6cG1ZZ1BSMTBr
UyE9Mz07TXUzdGBtbFAqYDYjSDhlb0IkVT09KVVIMT1BYlRXd2xlakVzZkpoXkckdDtsbXVkXikK
ej48fElVZ1g3OFo7QFp2PT9MfGokRCg/Vz1gMEplRm9YKj5XJTdwejBKS342KXQ2VlVEbm1mITRK
PXRDNyY2SUMlCnpzeSFhOzdofS1uS3hjZj4qOW83MGF0TlApZDxjQyVKJmI7ejNQaWJMe0FlRn5x
Smw3KW12KkN1ZDc/aWYzSV9CZwp6YmtRNj5ZTTdVekxNQHpeZmJIOUkydH1vY2kpfTxuYVIoWTNt
PzNvTElzeEd4RT92Nks9UXBVZFQ7Y285QVRob0wKenpFcS1pWXxGI2sqKShFTDIqI0xFZmxBJVc3
eVgkSiNhSUlZQ0B0MnA3QDJUb05kTTdOQ1A4bzdRaEAjVHJFdWslCnpFR1ZRMjM1aDM+bnxGb0At
eylCKWEqNUZaJXU3MGJsTHFZRFJDYyhveVViWEVFQkVNaTVgYT1jbG0/cFFkR31tWAp6Sih1XjFE
JUUtSjQkOFV1T0g0VGhIfTUpWitFSWlWXlYyYjlZOWNTUGN6SCtmKW5wQHZqTUQjTklYZXhqbkZI
aj8KemtJVHFDIXd9OVpSSmB1dEF1c080SDImKDxZa0hzRjkkRGp3N2ZLQX1OPXlNJkQ3bkhEQUMj
PXxXUThZX3FuVnNjCno8bUlGeUZGVFI3SmchSlN4RGohLUdZfn1zZDhwTkoxa3liMlklJnNpcnNg
cSteeXllJndGRE9Db0FgVShQbz5PfQp6bytxeUVPbmooNWclQzFXJDFePlZBZCpZfk5oUT56IURN
IVo7KHhNVW5oVj5WQ0c8TWdCYWtOZTd5P3YhLWcoN0wKemUkY0k2Uz5JWEElVTBIUkNXSWtsanRT
dk9HdTtxMW8zRntvJTxVT3RLMzlnWEQ9QHtHIVhJeGFCU3YmOFIwaCprCnpCV3BpcE03ODJvcENR
OTZyfGBtMCMpI0tgTXN1bHYkdUsze1hmOWBWRWBQM0V7djNvVHMhfT5yc1RPZ3lIXz0jYQp6SSMt
UDZxQjZaYko+Y31pMGNzS2ZZU05TeDI1cXRebmp5MCQ8YEp4WGlETXBBM2lqQDBTIygkfnMqZXw7
UXZqK2wKejUhVl8rbT1HUi1UVC0pZmY/YWk3PD12cVFiQHhvQjhsV1BXOWAyMjYpa2dfWDJNSktU
cVJaUWVHaWklKUQmQzVyCnp5OVAqYzkxbFBDKipVMztneEFtUGdLYWREM203QEM5ZkdMKytLZiN4
IT5KVFRvVFR5X3RtTVVMUEYjWHFaen19Wgp6WCk5fkx5LVNDJUVyRT4qdEZfPkpVXj1VKSl9ayFh
S35iVHV3eX1XeWl1Z2BiMn1rTXBAPWhpcE59Pno/RiMrbWwKelBafmtoaUVCSVlKdklMTiszbEx3
NTNaSHB6MHt1SCtGWTVLb3RAKEEkTDVZKnpBbjJMWihYfkBhTzJXaDw3e2xFCno0YExZUiRDQj9Q
Qjg1aEU+Sj9HWSt3YiV0LXt+SSsjeHd3PnRudmgrPFVnPks0VVpjej8mSENxTiFqcVFMQnA5KQp6
UERpO0klNXtiaDhnNHc+JTU+ck80Tkc/KXZFTGshcDVVNi1SLWU+eT1XQH1AQyU0T2dfNDBuelok
QUszQEgte0wKenw4e19xJWUqSiYrKlI9ZzluU250XkModyg0Nzk1YGpQb19EZjJzMGZkYnV4Sl5Z
KT1PYVRTZ1NPe2NsamZHZlB3Cnoqd0c4MTAoWG8tNSZeMSswOThrVHMjNT87SFQ1d3pzSGVaR0Ej
b3tBV051fGlARjhAUmMmTFopUjRtMjhocXlNfQp6TCQ0Sj5KRnxEOUV5b1YhYWVEfCo0ek9HOGdv
Vj54VV9Ra1M2VUtYQjFYcHhKaHEqQmtvTUQqI2tEJCtJaHc7ZnoKejQ+RHJsQVVeJStBJDt+ek43
a3wmI2pydjJOZkR5UGozalVrV012RChHWTl1fiF4JTt1PXhGO1olRzlPfW5RKENfCnpLfUB1eVd3
KWQ0PFlpdSYtNUA7TyFNJUkqOChxNlkhfUpaQnI3dGwmQC0pSzM+ZnoqZzlKY0UrY19HRzE2ZnV6
Iwp6cGhtS2Njc1I/NSQ0Pn1fOTs7VyhzcW9DX2RUaVojVWJnS2tDT0IwZ20/fT9GYXZPMzhQTmlr
JVFRdlNHdCp1d2wKeihRJVYlbE0wLSE1U3AkTG5ncEQjVUs0OykmNlRUfipUZV8pLU1PbE8pSSRa
SnMla0RIQmRZXmBmc0lPailUeyt1CnpTTWt6TG1qRVJ4PGhvb1YzT3BAZlJLaE8lYXp3PG1xTj9y
XnQ1QHpRNWNjJWgzJnJvJGR0VVF4OEJ3NVFqcmE3KQp6bGtTVlcqNDk/NGJ1MWNZSGRKMC1vLSg9
VyQ8RUZ8Q1FGNldsT3ZKbj1md1dBXkB2eiFqZ1VvQzs2R3o1dWtMdUEKeldqK1pUOENrRytgWGJE
Knc1MzFDai1EViNmfENvQ0N2Um5TciVUX0ghRX0wZU0wdjdLUmpXXypLRnd2JChZITNvCnpXbGA+
eXoyJEs2WWVIRDtERnZYQzg3TFomKDlZfC04cThhQk9hVXp1MFZEI0RZQlg8Q2gybkUlPFlOUyRZ
fUNWXwp6K2U5OygqWjMkdldoNWhoRG03M0VSQX5UOVVSTURWNikjYn1JM0AlKjZQRWokJH1Hc2Bh
fUdodW0+QE19Uip3PjsKek9DP0lZUURRejxPejJkWUcte0xiVHM8bn4+NHlUOCMyVjA+SEhDZTlq
SVBqT19eMSYqYWtFJV52fEBFOF9VKzM+CnpSQ29idU57VnI9QkBkVUg1fnhadXJodUp1SD0yVUAl
QHgoQ1IjQm1uYUpNNXYwalhPcDV6NzBvdmNLKzFgNV4rLQp6LWZuPHVpP2MkeHpYNUJYI3cmJXVR
WTApI0MkYHBvNmVJYVEpPDdMJGx0SUteRXY1UDNxIWZAUiopU19eSn5RWVIKekJGbj05e0BiOyVu
P0dqUHFDeEVJOUVzaF8kSEw5ZDB1az1aa1FLdVY7KFJBfDtgdVg7SlFqfkdCYFR7dGpyeWN8CnpS
TW9mcXImZ2VwOUg9Xn5QT05ad1JSMW1LUGdKM1BfeDBuWlVxOEVCe28/TVdsQjxfSEA9bW5ZQnhN
eigxJHVjTAp6Kn0yKGE9bFokWlMxbU5LRnF9OTx7N3dRLThuYnhzRTR5QV5DKFVLTj1EX1A4MnE4
WkZSdXpjU2xub0V+KFUxT3oKem9LejBgWHhMQnN7KHBUSDY+NHl3SzBgREs8cGNXOylINT9NVV8k
eEtiejV6aDkxUWN7QTYtIXRSXjhRPmFyNCYyCnpmPiUlUGw+ZF5rMjdtdFEzOGhifVAoMnJVSil4
UXN0b2UkUD5aYHZMc2Aqd2c5KW1TKyVQUX5mUCklOW15YGJiUAp6cXEpWD1ObT0tWHRucmpsYj5w
Y2YxPCRXMWNoM3VAQTVWM1dfZ3E9eXNhSlhMeVU2UWE8MXJNRGhWcWBGSmd4ND8KelF3M30/U1d+
N3VTaEVNRG8/WXklTUVUPGgqTGhFNW0zUUlvYyFRQChTRHRFbVNIOCQ5Pz1kfTVfdUV8d1E3KUE0
CnpvcEhJNWN9KG5fPmE2bT8kXjhBT09JbX1IOzh9PTBHekJpfSQ2JS0wJWl3QXxqM0p6KDhOI1dA
PzxTfEJtZTVvaQp6SDVhdTZESCQ9SipUcFNCSik7cD8qbjhEaGExaWFzLThwVXdKZUA5Yk1xOW87
UEdzNWZ7YVhvSCtYKyVUUCFZRWEKejV6aE90LV97PD49TiFUZV5UV2BhZTF5PEspQSZnR3A2R29W
RnUpT2dLMGt6eWY5aW1iZSZXRSNMeGQ/Y0tuLT8+CnopPnQyQ1l4eG5wZEArSG15RDlwP0VGK0c+
KCF+anwrbVFvTGsxYH1BR0BfYGU5WmlqMDFlcUpTYU4jQ2w8fFpGKwp6RGQxRjA8dGFKJjFibHN+
dXkxYzZSO140fGY7dFdMY352KmtVcz5WbChvQWtfNX5ZK0VGSXw/d2d5KCRoK2tZR2AKek9uNDNv
c1lpVW0zMXNLQTZQKFZXeTU9STlUZHZSP0UtU0RiPn1EZjhVQWpaSE84fDs8UmUodUdvfnVVR3NK
fUVTCnp6PFIpKz5uYGRWdUFyZHM5N31PZVU9UD1HSGU0TVZeVkRDQGwofG1eNDlzTHx4NF9mWlU4
VjQxKyg5OzFjYyV6KAp6U0UqIyh5Wjsyd3NXMXNCXmAyTEpUU2s8cE1fa3xDUSt1RVVvKz89OWEt
MUhoZF90MkwkN00zcWxiVDlEUkFMT2AKelY/cShfPEFleEBFZVA0WDIpLSs0en0zYldocGNxNGIo
JHJYUEZ1a0VpRkdpdSpiWTZEMU4xeHs8QEtFPlAyJk8zCnpXd3dfLVM5Y04hWTl6YE5TOWJ6WSMj
RXJwWCYjQCgzWVVkejhVMWp1NjViJnYydjY7Wk5vaHhIWTZsSkVDJFdSQwp6JnNtakVLKn1IPiQl
eEFJP3F1KmE0dVE7c0tjfnEmKXRKdWpKejBFUEpwd35BMCFJUSM+TWBNP0c2R0RETi0kdykKenIy
PFNHR3kxUjB4SkZjRms/UFRPZWpaSGM8Pzs3S2h+aXEkZllBY3RtbEFgeWE8ISppPn1sMz5ke2tm
WCQ+VV9jCnotWlF5O3R7SWpkOH0lTX1UfGk0TjFKaWhzJDhKUEpXQG5pdHVgZSRKRTE3VV8meDQ4
QiRSZ0MyQTRrYFRkfFlsJAp6ej9IZntUJndsTF4jJXJKSGl6Tm5pRDtAJmlNWjNBJklgUkgrfmtW
eVRBZEhCUlBsMktEX0FhOz57RSl6SkpPZm4KeldaWDJBRzRkcW87Q1E5YT8kQzw8SlVaIXpidSZK
dmstVj9zaGpMbXltPSNkdGtuZEBMUnN2VVJ7N21NQCQ/QVV8CnoocF5vTjZFJlhTcjFpdTBgMig/
STtjKUMmRzgmR1hqb3s7OGdENCtjPGl6YnBaMj1FWD5pUFJUNkBtTCp5bVZIfgp6PGw9K01wYzBr
RTttVkdXdWEoRGEhYzxROF5hTkA0elFYSWghYyhwOEd9RSlmSkk8QFM2NG1oUSUtZmZEc3QhRVcK
emBpYHFSancoRDtIREJAeVBnJmgqRjdPYDk+YUxGS3k4M1VhS0s9UjQhYGswR3pmPTl5cWlmfCla
Z2RyJUo5e0Z0Cnp5dUxncHpBITckQl9gelBoVyRJJk88JVdpaVFkOSNybFlqZ2VSaV9kPjl3fWd0
bkEobSROWm8/e1I2WXVleyt8Ygp6N3MtYT1VUklaOW03YF5xJDdJeEBPZWkxVEUxfHNxPWwhKU9q
R2JVK1g+MiV1LWJ7LVBNOyRsMFhDYEBNSDxVLVcKejZRYl9qempwajkyNWMlOWRIPyRYaVkzRmBz
bFB3YztCTiZlalVURmEhU0xTI1ExMiNgZTsrezY2UXZ9U3RBfkFnCnpQbkNIKXR6MjI+REc9cSht
N1d7Vm1maEgkPVlkTyYxU3N+Xm8jZj9RVTl2NG9MZ3BnWShITzI5I3d5bnxWZ147RQp6M1hldkRx
YmBwNVBETUBSOU1uWUY1VDUzdEhmQkMqVjs3PH1aWlliKDAmR3NGMFd7d01yOzEjMHM/WV4oaDBn
ckIKejU3VDN7a01PamVAODhWRkVlYj9jI08qK2c+bj1FTSokdng4ZHRvelVLWWRIfj82LTVrKmZJ
OVpVdmw2SSZqRWU8Cno1VDFUJmtEbjV0SnxhTVV7MUV9RnVRTnNyPU5JNkt7PUQxXld8QjF4O3s+
UFclYVdNOW9ERWwoVm5sQDNATTVmJAp6cn1qK1RaV0hDezhrSHlVOV5LJHQ+SXpUcUZWTXImaE09
R3Q5NV8mZndRRG4zNkdQdDwhRCU4cF9RczZ5JE05aTMKemdyYHRVcEJ7XjQlaElySVRSc2pTRWBg
NThkKnFePGtlYmQrQ0hrcSNFNiZtMU1BTFBmUkdWREsqLWluY24+Z1FmCnppPVpabi05MjtaR0dS
KGFmaHpTfW1iS3Baa0hEMmMpSChYNW5wJjxpR3dLNTNsR0AtdnVhJkAobk92K2ZIZW4oRwp6JTdQ
R0x5UmBfZVVKWGMwPnAqcWdXb0FtPENwPH1hb1VIRiZkfW0kP1JCO30mcVU4PWQ/eWc9VDA1Wm0p
bEpKeTgKelNRNzczTl4pfEtmbX1ARm9WZDZjTGBRYHFBflhvMFVQbHBwY296Yjh0eiRVaVFtJWgo
X3l1dyVSP0okJD5xdUp8CnpUa00zcyo/eGs8VkZIdlpTNk9+a3AyRnhPaXNmMzJoVyhrJGRsS0pN
Rk16VG47OC10WnpaKismX2FDaUJGakx4LQp6R1M0N31oV3prXlEqYU16Iy17ent1d0c2O1ZYY1Z+
Qk97Q3pOSyU4Nno+K2ZaY0RpY2pAaXt4PldLNFBILSFwX0sKekNiaTMkRW54VTJmaz5KOGRgXzVC
NGN9SG5sTTB3TCF8K04xbFIzZGpuWj5Ge0dYe0JANXUhfEZveVMkNHExNEZHCnpZXzNEfGA2T1FP
c1VTKVhRMWFMLTRxPnR9MFpLRjdARmNMKjE1WX19YFJyMVp4OD4pY24jSCg8aU9qS0AkV1R5Mgp6
I3hsJHp5c2NweGA5WCZnQnQofkB2OWM1dytYYEB7TUYxKVFTOEtTVUJjTlB3M2Q0PC1Ya08rcUs9
WDdlWlZ7d3oKekBVXlNfMkozUkF2KGpPQXBAYTxzYEoyQjNQfHwwMmFDdns0JE5NcCE7JldgRzR7
OHJ2Mz1YZHYjTig2RSRhVTk2CnpiQ2VtSHFwZXRDWmpJVz0qKD8kXlcmLShHcyNTZmxXJHBsTW5L
dU1tN2pWX1BNaS05VHJAX052RmB8NmVCYk8/NQp6Wk40Kk80ZzNee2RWRTxAJDtBKHEhRjY2WEN4
P0N9NitIZHQwd15qXmdlUiNnNkx8WE9ZMiUtTns7Y0lzdWtQM1UKentRaX5GYHhvMT8mITREQ0pZ
SkY7NSl1e1F4WkJyZCZyKmtkdyZxZDxZJV9pT0FTP1F2ZGlVQSZOKjRjY1clbXlaCnpPNWdXZVJ7
JTt6bXhlWUFVSXU4KER2dmNVcXV4bTxBSmxpeXhLVHEjPjlnaSNudnNGbExNYT1MNDA0RmJQeHF+
OAp6dCU+aXRhWCRhYSVMbW9KcW9NcHlpa1pBdUk9UUNTPHYmaD1gaX0lQ203KUNFPD16bldtbFVZ
KXQ5VmhaXlBWVzkKelFsWHg5XkA2QndmYSp5clNCaSZPX285TCpTP0xLIyhPaUMtMkdKSEtnfGo5
N1JGT1VFKD45X3NkP0RoVCU7MzZfCnpKIUokYWRqZ2EqMG1eVWRYdjgxVk1TOyYkUjdjRH5iKSpk
O1lDZFkxRkk1dz41SCshalgrbUZ0I3h5RVN4ZVZxIQp6Q2c4Kykxa1E9UEx1a3BgZ0NAU09rO1M0
LVhgMlhBVFR2ZG40UlApfTtKamxlSFpRWm9xRkgtckI7VV9WeWFRQ0IKejR6U0drMDlTWWlAY0hL
bDJ2N0YtJCZWZlFjdTt8O2V0b0dAamdZSDckJkwhZ3FEQXI4eEZHfEY0and+NUtuMVZHCno4aExo
cWlzJHZgeEkoKV5wdCh4XzUlWX5ZdWhBNUpLfmJjVmxVdn5KVTRmbEReUlFySEdWNVpaNj51Nm5u
N3cqSwp6Qn1DSlFla19TcjIjMVlMQkFlfVY7TlZhVUtmaHxrJDJVYGpYflZJaTQjcDlqTHYzOWIx
MF5xYD9HI1BvcnY7Kn0KenNpeHlQdDQ/bG9rRyFwIS1tbEE9P3xzd0cqSlYxKysrdi19RXdzQGAp
ekVZZTx5OUF2b1pnTmpeanhqOSY0KUZpCnp6Pj9yKCV2SWllVz08WDgpbT08e25fQFVXKXFhQzky
IypMKVBpWVc7cm1YMGBHZ097clo3MStfQHhsZTFydGhoUwp6KkxRakpJPnBEdUF2UHc0WXRaUUtp
Uk4+ZWkxMldQaDZFIWgmPncjOEY3UzQ9aHVpS1FhTS1qRlRVVl5YJTZUZz0KemNqZ0FCanFqa3pv
JHk1OGxXS002TUwkcHc7VkZ1S0F7OUl0JX5Hak9HNkdSMU9pckolSUV3K0FjP2AlYmg3KTVUCnpx
TFdZNGBfeEgqSSptWTxFSVk5aSZ+fHFUcloxeHBYJTJzXjhqd3J7aihWdn04ZXNaTSg0PkpVMSkh
KlVuSj55dwp6alhXbiVzZktVTTVTK1NVTnI1S0ROaHFVK0NrO1I/QnRRfE9XUj4/OEtxK2ZIanNq
N2xKUEFDaGZ5c29BR1JCMFoKemNTZVVGcXI9eCFrRyR+WCYhTlktMXppKGY7VGZrOXEmUTRncFR0
MVdEWkN6PnYhRFJCOCVsODR1XmRVVVdvV0swCnojaWNlO3B5Rn00KSpufENmWns1emlIN2tMRn1R
ZyQ1d31qSTtBVSRBdUcxclJnezhpaUR2c2h9KiYoSGRyQmlhOAp6PXooZ0R3TCs8e0pgeD9xRFNk
VmglbGEhZEVeNyEtOHdwVW0yfmRzJXNGMGxfaz9sR1dqcDBVVWo0KCVDeER+M3gKelctd3NXNVUl
Uy1McClPKFg3aFMpP2h0SFFGYWtTUU92MWhtVztuRVM0dCQtS0JpNFUyQSE7QTBeTiErbHdKI3dt
CnpsRyN3UGN6aHxELXxVSkhPNE8kdzE/bn5IeTU2cEVRUDtTMT1Sb35PRHAxdV9uXmc1Slp5d2gw
WWdhOU9QSVo2Jgp6QD9xV1l6anwyckZKQ15XfEt7O2Nga2d4UitMfGszaSVOMD5nUUcoWkAzUHl4
ZTlxYj5hfTRMdHY+WXUpYWFxflAKeipHP3RoaU4wZHglOG5LcGIrV2p8Qj5ySnRfZ0BVOHgoKCZo
ezthOGE1a3ZXfks3QnFQQGJTa3FsPW00YiotJTZKCno1MUJaYzNGUStlakdWcjUrMSZOK2hxdDsj
aUo/M3t4U3tLMGB0PklfJVlPZHllI0xLSUtCIzBEa1IrN0xNSUl2IQp6RDRWe2JlQSl3MmEqZnlQ
QkpWQ1FAXzAke2luOHA+SjJIaXdANEx1akh5KkY/UkZgO35Zck1iak1WPHN9X0puSF4Kem9fZEZD
RzlPQnskYGdwdmZFM3F3bXdUPTktZGc5ZVoxfCFLMHFTQ2EwI1BiTUlVJE13ckl7V3o+YnV1QDNQ
fDxKCnppaDZMeWxUeTdHdUFTaHVUKTZ8OXZiTFpzWUJ9UExTfjN8fWkhbGJna1hiZ0VYMyR+cUJ8
eWF5cHo7WSZSUnBMaQp6MCNyMnRzeWI9YHN0SGxtKEU/RyttQCV+cEUhcTNmTzgtSkB7JGF3P1ZZ
SzhycGdENkY7Ynt4c3prIWROMnZQakMKelZ6d2Z8VitWWj9jRyRqaDdaJVVqJEd9U31QfSZhNmV6
R1VYKnJSVj5kd2x2UztmVm5DO354dHw5cHJQRyRAPzZvCnpTQmpfYWxsYGUwTU49OGRncUxTMnp0
R29GYnZuVmRRd0o1TWIyTnV2OzJQfTtQMjNsRmooP1VoMDtqcHNZdlFgRAp6Njg4M211d3t6KjlB
NFdRT2JLSnxSMW0/Kjg9cm1kaDUtWHZgIWRgWVc1QFkoYnIoczFPMjloWEVVeFZlO3B0VjAKekQw
LT9BbFVuRlM1KFNFeEx8Zy13bVVSLVEmYzhpWGU3bVp2WFI3JkpKKGJuRzB7cD5xaz4wMF57UD5G
fnF4d2BACnotaTVUeGM2UjYwVmF2ezl0WUZeTVFZTVdybEdQb3IwUjRnK2s8VD8+Xk5ETmR4X0Yx
TjEme0lNJHh+JXlQMWsjIwp6NVMkKTk7Q2s7S2QrYFdRdDt+S1pGRHB+dkRUekA5O2JDRDIza0BZ
R2c/d2olZ010d2w1Q0FgNEtlIykpISlnQiEKej9COTktbzdlMmR2SVgxZUwpIzNDc1hKS1N0RXlf
NUQ2MmEmNTJtSUUme1EycGIyVjN2T2owLUU2ezloSVRRVmpCCnpMTDc1SztvT3h9cEJUZmktSnVN
ZzM7fDdNQE12eilkOUx0SSE8JClIYCgzTkNudHklKUM/bSM0bjlOSGpJMC16eAp6NE54a1dRb3I2
eWJ1d0VodSVzRTkmPFJVIyFJSzd9eCp2Tn5DSlZ4bjF3bCMxZEA8b2tKcjthYVVLNXktYilOWDQK
ekcoSVM8QEZkPHFAailwJFEzNnJEbHFMOzRuR2xrYyR4e3RnQ0l5QGJUKU1wQykxfHRrWl5wbihf
OFUmMkFKNVI3CnokfD0rNVdzUiQ2TE8rfnczUVFPaEkqKXlMOCtvQzReaGh+VTs+KnhkVTRseXxe
S2lMSTROejJ7I1MzKzxuU1E0ZQp6dT5gMGpzIXhuS1hwUDZVaDdlcT9fUWJ7VkJlK217NWEpey14
fF9SXmhWVnNIbFBwb310O2cxYWFZfjxeeSNOJX4KemFSTn1pNnt3SiVCYXJQcDBTJSUwWGIzWSNi
JStfdGdEZXF5UCF+PlhNcT40fSYjYFhpN3VhTW8xbHR5bEJ0VDhaCno/c2NadnpoeCN8X0FmKyRe
SilkNnZTYXEzRVFfQkBjJGxKRT18JHJIZyt4NUwlPEplSV5oMWRQTUt3eCtyI3FTcwp6SmcpOSYr
ZmU0TzB1KFJzKVIlWHYjfVp8SiY8YztpJnRFO0wjQEdDMnw3IXgmKkhvVV5AQV94WEFETF9UYDxI
akMKenpqPUpVP0Q1QDgjYUZJJDxrWCQwUEUwOUNeWXV5JEtlRkJEPSsxZW9tKEE2a0ojRV5rRE5g
byltbip5OGxgSH5KCnpAMGk2dWZZWDA1YU1KdjdIMi0wezRkcGA2QjEwMElLQXtQJkZXKC0ta2o+
JHVMTWV2dztlKDg0JXJJSEJlWiU3Mgp6ans5dT0oXy1FN1B1OWVCK19fWGhMd1ZeaFVmZTdIOWUy
czNjKTdAdk5Qflo1Zk1VX0c2MFhea1Eyd184UkluUEwKeilEWUV1bkl7MCUxNXQwU15Mai1iXmUh
SjNCfSZaWWsyXml0bzlEQGs4KW1ONTkzPEBRcHN7LW07JDcpcSoqdVpuCnoxT15geHBwRnV0ZTcx
fk1LSSFGb1Blbzw7OTheWnc1VGZSRDdOQ2tDQ0N7cyl4eURQe2ZUcWtuZ2VGSDBsX3lTZgp6ank7
Kyg+PENZclFQMX1gQnlVNmBwTzsyJktfVVVsV0FgclhUKWhXTlcqdmEzQXVxR1dBTGU/RnU/Nzdk
QFkhZWQKekokPFojcn5tYzhXRT9tTHNZKUg4SV5AQzdPKHZLeGopJHt6NXBvRGwpenhSe1lkVE04
eTJQa30lWTN7ezE/TGk+Cno8X3VFUG4mQlRIO0IqWFkpfjNVbjVlRygwOW9OIVVmbTEpJHhPfmM8
eWRTZSV4TDx6e2oyentNaUliKDFGTiU7QQp6an1gUHI/Vnd1YSM1amIycGxYQ2cpRkNGMHk9K3Zu
a3tGR1VuJTtgRWo1Y0x0d1dvfXtvcTRLeih6OHlYWFEteFIKelh7UHQ8LX1mPTYqX0dGaHluLV8q
SV5JY21ZZXpzeEJoe3ZJPnxtfFNQTU4oV2FQX1FWUVNmUCY1WDtyd1pBSypBCnokSFBZZ1AqMFM7
SjkoNm14Ql5YTiFFR3V9KlYlNjtZcjhWU1F5TD0qTTBGQikzaD8oPSNeMkJISkxCaTs0X19aWQp6
RHRXJENJWHRvMyZLKDxVazdEcytNQCtaMiN9dCNqSmdlVyY+cDxvYDg1fmxyP2tzIT5Qb2FkVEQ0
TUl8eHBMI2AKelpaNmQpMCs1VTtPT3tRa0J2fiRFYztAPGlEb24+PVBmIVk/Oyo/RCZFRylZfmZJ
MDxObiZAe0BYPE5SbmtOYCNGCnp4Qk5JPkIlMEF3dWJSeTY+QWtBXks0e1h3bExud0g3VXZMei1r
bHozUWh9MGMlbjImMChZKkZvMEUqWG12Y14rfAp6WktAUn4hamxTYGRWIU0oUzlIbjxOYVlmbzde
bEQtRHQheEA/V2V9R09nTV9gK2MwK0VoMTJeTSFQZz1nNXk2IXgKemZ5I21qP3UoVyZBYT5odnVD
JlhNbnBqR0pJKnlDMnhtP31IO1psdHMwWjlOVm07ZT1wPng4Qm9DekVsTDBDb0xECnp5ej1eYER0
Pk0jYjMjeyVKPGIqRlcpUzlqdj9lWTxMeGNzNmN7MkVOfDUmQlo/IWVPaU4pTyg1MEJYbEBfVGBP
Nwp6ZVh0SmRmKD1qXldXPUB1UShvc3kjS0QhcnUqfjghdGVHSklISXlFeFFMck9HKnt3Q2Y/aFB8
PWFLfklpNiNhQmcKekQtaHx1OT80PGJrKUw8fkhSX2UjUllpQDgkSjQ4Ni0ybkI1QGJ1PHg5QGwh
aztPVCFHSy1KKTk0MSlkeypMR0IlCnp7PX1oS3l6Ylhqb3R8RGxufEpQSFpES2BEYWQ9RjJvWXhe
UTdyVygkY0dfQlFTLSkoTyYyKkRObEpFMmImRW8kPgp6QCFgV0N0R25XKmNmY245UVQlXkcpaHJv
U2RoKzwzZSkyQ3lAd3BhKE80cnl4JDlsMWk8K31CJj1RKUhrcH1lWG4KenFgSz09I19jPG9YKCsj
NGBZUSUme2B0JHQpZVA2SGwlYzcteDAoRHVRaH59O0I7cHF8RVVJIyRRdGBLQ0xOT2FrCnpaNzZA
JXlXLV85MHUoRD0jOG16ckwlRlE7MWZWbiFePih5QDNaUFZAVEljb2xNWDhpMTYrbnIoVCghPkFe
eVdRMgp6JEMhaCZwMTloMG41T1Qmc0FXUVZpdVc5Tj9iTzRyI2d5aW0oYy0qcklKYEhIViFWTTRh
PWsyMjVqR25ZdFlAZjwKem44JXJ+SlhWQzt1PTkjNFJEdnhVKHMhWExgeWh2Xjc5U2g0NHhrfjtq
dmxNY3khMnliNDV2UGM+cH11bHZlITxZCnpGN0tnaXphSn4tSkY7clUxdihSNXM2WlhUS3BNekRy
LUEmRlBhTFFeSVNgXiRAYnRnXzdjY1I2ZypTODxkKCRUUgp6VmFkYDJjPjkhNmIhdztMKVd1Y1VN
SjlVLUk5PW93VG88Y0cmZUd0MDB3Sk1RYU52cT5KeSg1bVpRX3tXNmJrSzAKemxJIUhoajMrUGp7
bFleNXNHb2VLMFZybGxPJHgja0xZNV5AP0J7VGV3YHo0ZHclYWtxK15MdSl6QD4yV3MoPzR1CnpF
Tj5kbmVmK0NBSExCczdQWkBiMHo+clMkXyVnN3dYWF5NfEdyZUUkZEc1I2UlVjw2PkZ0bVhnUCVW
VkJIWTZzVwp6THtMfkdUc145QilVNnRCMVNjPVFJKEYtd3BoODg2PzdZZU5nTEAzY2RgTihqNzJh
YiE7JCFjVHllSHx1bGVtSG8KemImMFNmalltZEFBVUhUITBWZn1DQDkmSmFtcDVlRy1GPGxGPXp9
OWllWHdoe0NseCZwRUwhNDw+OWRafiNMUj9vCnpKcUtuUzlsfCpNIXZ2QCFUO0ROQy1aRl5yIzRx
JS1WeVFHR1FaLTZkIytaM2xDTEErRGtPY3dBZFBOcGlaWkN3TAp6UXc3NV44eGZhdzhwVHhLJTQ7
c3MyaHxRUSN6cEtvUWJgND4yKHlAWFd4Z1B0bFI/JHp5OHpXMnJvTEJvbDJ4NSUKem1eKT4kU215
NW9QJTBCUyloOSs3PStPZnUzWTVUO2p3bno5UTBtYiFCfElyWlZFV0R3cGN1JWgjfH1VSnNhJHps
CnojbGR0c0R+UE5eXyF0VWZMYURKOGp+IVN+V0hkRHZtZXhzRngqYCtYY1E4RUd0ciUmRU1RRS1u
V0kkeSRFO2h2Qwp6QjNFTFVzJWE5aDU4KjA1aDUkdzEpNSNSdkFWNkpmaUtqO0AycDN0bylLJWgw
XkAjPUgkTHcmTERkTnFuWV5uKTAKekwjfj8rQktNQWc+cEgxJWBHUCVvZUhCR1hSKEtpQGwrP1Vy
SSptbmI7M1UpcD5ZJlZAbSVLaVAyO1paSGVhblZtCnpxM0lgQklxZUg8QnRZM004LXJhZGJxRytW
dXY8VGFEJTMxRStSY00yQTxCO3M3M1I0UEBxdF5BN3J6Znh4a3U1KQp6PioyMkVQfjE4ak17aVVy
bz9ncX49V0oxO2RLOVFQUkd3c0JHWlJvVkp2bVVsUDJ+U1oxJllSVE1SXmtBXz05UioKeisxMzIl
PnFvVkpjeXF0JSpEdm9ATzNUTE1UTmpSPD9QeTNZRjN0JUlQbTZaOF9qbFg5WX1HOz1xZERnMFc2
akxXCnoxfVpCJVVhcmZmb2hHNnt3bTduflF9QHx2elA1ZmFpdkpVRW1pJE1TVG5hSX17ZFpCSk0z
VmdSa0FNOEpeeUQjPgp6ZDtsTVpAJTF0TktsXk49NGluMCFPKkw0c1YyOyVXX2FvYXFhI0IzQW8y
cF91eTRvfUQtb0lNKDw/QmFFRjRVaT8Keks1P2ZeZk89VCpIYm1YeU1QQnpCdVl9TGwhSjZ0LS1Z
YlRyejUyVWY8UG9OPmk+WHs/RWJvMWhDJjhNa2sjSjMzCnpqbVc1MWRDS0R6alM5dDtvfi1kQ1Qo
ZGkxdm99RGcxMiZiKkpPWSNxMFpLTEJ6c31QSFo3UHI1PUpMMUtjfEVIPAp6KWs7cXc+UT9KZlQm
US1TPkR2eEBWVCUhRFp2dXphcWdiO3JsQz5AKTJ2OCN0WjlmP345O1BTQHV8fk45UThwWUUKekpl
N3lkTU1WVHhkR1R2ZW0kbmxQU0ByfWM4MyNUO0shMjRUWUxoay11LTExJlI5VmJzcjF7ITBKYTBk
b2J+PDlTCno8VSE1JFZTK2QtSnRpX3BiR1M0NTR7KU4xKz50OE9MSHpWMXVKN283YHRlVClSJFNv
P0F3WjN2O0h4TjU5LWhhawp6b1NaXmFRenJ7PkpFPWwtQCowamtiSGBjS284OFBuJU5uP1E5TEp1
JHhkZjxteytJO1R0d2dibEV1NjZnQXVSbjMKeiMzK1Z2NGpTcigmLS0kUEg7NX1kbUpXe3w+a2xv
eVBlK2ZYIzc1ISNGfG5BeEM8IWE2VjZFTWRnXmxkdStxeHI8CnohXilQT0c2bCtQPCNXfldaTSRS
THZ3YXVXUVFjRj49WU1VQV8lVyo0I0BUKH5JMEd+Kjs3Y0cyQjF7RFkqQXVZbgp6NWtpb1BpSzdh
WmFmKk5Edi1EJEtWT2A1QENZYXg2enVmflI3Km9KVzklWkVTUFNWQ2pkQWgpWVY1d304WWRndCEK
ek49UWdSYThNQTleN0orTmBWeTQ5LVdvNFlGTC0hKEByJHctNGZTNEpZa0R5fSlDO1RFeCUyUEY0
VkUqVTJ+UzViCnokLXQzaXhgWmJrQ25qJlJoS0VKTGxnI348KXR3PlgkJXNrcyN4fV9gYX0lNm8y
dk1lZHZ7O2w1dDBrR1JTKGw1PQp6e1BRMDF0KSpkSClGJndyektyXm90NmJ4Q14wa3ZWJGAkNVQ9
NUg7ZVFaO1I5N0EkI0BYaEcjbDZlI25CbmNkU0gKem4jQF9UKD0rMEEob0UwbTc2TVMzPT48fCNt
Km5EbyhfNCt3eWtBeSlWbHROdEo+eGshXm07TFBRPEJMUV57Rj5CCnpRRiRVak5nYSU/ODZvTWQk
PlpDLU1vQiVGQVd2UUBeNGlqUFN7ekxIQDdRPStCIVAtNTZ2eDtxZntHTTc5e0cyPwp6ZHtyYGIr
R1dEaUolP3EmSWNPLSkhTVZtWGJrIy1pfEw8eW1ZNiEqRW1OO0RGYHRHXl8pSlh4VEk5dyhgVF84
WjYKekNxU0ptK0swMFJKOD4jd0VyV0NVfE45X1FXSTlofk45SmY4V3NTPlRoRz5jKmVEJD0/MnZC
YGtNRS0/aEFgalg9Cno0QyNsKnB2cXF4bTQxX08rPFAoI0phbSo/eG19OX1WKHlmV3ZDT2dgSnkw
dyFYTjx3X1JsMytrZlo4UGh3UkpXZQp6Y2lPO3Q/KmUhX0VQPnlWNiRvfSlnU2YhVyRjKX5OOzxR
NXkrfmxRaU8jcktEQV8tQ24xU3gqQU9OZiRkSlh6YmwKenhodE5oLXFYQVA/KXZ+cileYGxmZH5n
NHFUO2NIb1BhVTRBeTF1TGFtYURzT3pqfDJuTT8lelpVZi0rdyl6ZSQwCnomdSg4amNLT29qP0It
TVQzMFcxIyF1JTI8b3AlTyM/cDxWV3g2WDg/clNXS2syQD9pUG5sJE0lT3xtJEBVakMwPgp6IUkm
Uys7e09EJl51OWwwY1EleSNWLVRWaWkwWWtDRX5gOCRQJExIUj1gKCkoc0c8NWcrVCpOQDRKWGd2
dnUma2YKekQ5PW14dTU3N14+JC02dl92eCFnbUFAbElpSl9jMzx0bSE8LWNoMGMhdk58cDhPbmJN
Sz1uIX1SfkhUY2IlMFgpCnpwX0g9Vy1UPFlCc1AxQCEtVD43KkJkVygycjI/cSRmaGRnPE1SPEI5
PTVqdHR5dXI7QV5nN2hvcWJ5LUhWcUIpZAp6ZDl5YW48amlLLUZpTDR3azIpfEJTI0ZmejFFLTtz
NUxGZzdodX56eCRHUG1nbnVEQCVzIV80NFFJb1BBYnM3OEYKemJ3fWxpZnEzIyptdWlPXjAjcjJ0
TmBXWWowOTAxc0U8fTRjent8bElkJClSSCZHSGI7bkgyKEtCUmBDMUNlK1lqCnpzd305X0tCRSUj
PV49ZGRpNmVnY0BuSiVhdmw2czloUVhXaj1FdU9yd1VETjk8e2VkP1dAPmdETG15QWwzJnBDSQp6
XyZOanptQlk9dzc+NkE1VllpRT14fD1oJiFiQFFzS19jY1lsb2F0OE95dzZLZVdzYUBWPEBMVSla
cCUrcDxJR0oKelgoa14mKGloe2s4RUloMUBBQTNVR3cxMk8peXoxfG09bilRZkhsMlQpXmlpVEoy
cHdNUj9wME5OJDhubUs5QD0xCnpxYHI0JVFJVjBFJCs3MGcld0xqJHdWVSM9bi1Lfn1UbkpMVTI4
QFZxUnVya2lCOEZ3d1UqTHR8UlZBdzc9Qj5OKgp6SFFtUHBga1Ewfm9IV2xSQj1oRllufllVWlVF
N3MwQnZhT1FGPGplKWFjdzh5PG0yT2BDe09QS2xxY2NJKXp5bkAKelFeTTBlUGxrd2tAQyZzJlgz
dWtoblV5bXA4ISVtNSpBWmoxNTN2bVE1UFJMNkcyVmJfPDBlY1N3K3c7NHRuVD1DCnpyTkVPdzZP
fCo9MXAtbTIxZk1pbUVtZiZjT0V3b15rOD9RIXFNREpPJis9ZTskNjhOdSV9NyZ6OE5Gal54Zzd7
KAp6KCkpZ3dOPTIhZk8lSXJPcHs1ZHwtVVRSZ2BrY0R3ZGpRSVV1WVkmbVItKm9gMEEpMHIwTDck
b3NkWjdRUHJjVDUKellJc3VoPSF3ZW9wME9aQSR4T3t2NmY4K2JIPXhKSygyQUteRVF+ZyE4Zjhm
M1gkc2VQIylLJS1ZMmxiTEl8M19MCnokNihqNDFiQkhRQXZIYil3SXlqeF8pZnlQbnM5VjZ6Qz17
MCVNSEE/SkNRKHVOK0NkVGVhRUBsJW9TZzRBaUJ5fgp6e0xRbFFQQnNedSQ9fF5tbU5tU2hXOWho
YDJ+d1JWQSF4QGFXPFUqT2ZwOS07biV4Smh0VWhCSmNASURaWlgxU0YKeiRJJlNGKEwkTmAxUWRF
cUsoMzI2e0leUWUhNTZVQmB2ezlJYGU2ZUJZVlY0MSp0MSVYOXc7LWVAVF9xXzROeW4tCnpFUCg2
Mmc+YmlENDl8bTA7RDItIyFhVVp8OD9eO0Z2M3BVRyYxMDFeQUY1R2R0YlIkUDUrIz9ecUQxOTBp
cl5UJgp6V0hVd1leems/UnJkbCZTRiRUUkFzSntXQT0rNn4rO184bDMxK345PmJGY2FyRksoQjt6
SHstfClpY2U+UmJfZD4KejJeazZRTjlwbWtKK3g8JjwpKEVAQ05HXzVKJVMyVC0qRSM1RDlWJGom
clNfYjhnVGtoMkstTTlQO1ZLXjEpQFpyCnpSMUQ/Snd2YmdHcEFRe082Pjcra3t1OVJ4QThzXm0p
RmBXVUU5Ul9vSi1wZDFHVVEtZFN3VjJhYE98NFBwV0dfPgp6PCV8MGp6WkZCZG44YEh8KW9tcElo
WGcyNXEzRFR7dDJ7LThkZEU9eVVWemYlTDtkQS1wMms/TkphKGAxLVReNmYKeiV6O0U1MnRkZ15J
X3N7NnNLYVE/KkBXIWlgM05+XmloJGpeQFkkdlg/PTdQY09AUFg5Rj1RSX5SMyZoO0J4RStoCnok
d3JBakkzN0YpQzg2X0I5PSFAeE5uMjVxQ2hJX0VPSiYkfDR4bCFMIUZZK0FRNUM8UVZAc3ZWbUhA
UjB4dUpXSQp6Nm1TQCE/dylXdjZwVmVsVihGb1kkRClPaW1eT2BfY0U8alU1JTdrVm1PSzBMKz85
JSNBcT8zWiVDT0RocWRlR2AKej1aUDZKQmRDSThHeVIpMkV2Zlo5dCo+VkhUcU9hWjFXcmNedXpP
RTd3ciRUS0lIaHlObClfMSszWUNmdG82QGtKCnpXNlM2M0hsJCQqZm9qJj03PX5vPko5JCV7KkF1
OEY+am8pTUhEWipnUSVwJTg+NCNDezEyQiVoc1I9cUVSOVY5NAp6QGRAWCEwTX1TMV4xSCtRQ19W
TSleUlp7NWBDTnZqI1ZpMVIteCNvLU1Nal5hJEJzS3dfUz8tXyRnVnh4OVBETyoKenI8WUdQO3Uy
NUw5TTVXK2BZIXN1dUNaSjE3Sld+NTZvcEJRO2k1S2FNcVUkbXg8PGNLN25MVlQ4THpJWVFsYmp2
CnpxQXAwU0pQOTs7ZDN3R3pvKnRnPztEMENRcW48YykkUEBieXNOaVlvM1JsZFc7e3d5RU4xPGNM
KHIwWilqR297fgp6Y3NrNUUhY3RzIXMhelRRJW5ZWGI2cnJlMyNzbzxkZn09b196Pl52T09hZjA5
aTwhWi1JdHZSbz1Efkp2Rl4mPXQKejt8WWh3eW1ZS0B4cmAzUkwhM1J3T0dOcytpa1B7VEsoQ2lP
Nn1XODxyQzdTPDgwTjBjQlkrN2tzZyRWUkRwZEZMCnp3KmFjUT5oelpZTzB+fEx4PHV3WkRpbHJR
USNHVDBle1RpcWRqWUIhSlNoTldMM24hSzVTIz5fUX47JEpRTTVBSQp6eV9aZiFEdjR7b1NYVElP
ZWFIU3M2TWpRckp2V0xHMkM7PFAxbyhMO0F3M30od1p+Sj9RNGBQVGt9I2FGXmlpbyQKejRIMzk8
QV8tU2Rycn15RSloRXVDQ2EoQnUwJiV7fjZgalMwczZPcE1OQTVQOU5hNnAjISlLJD0rWCN0PXcw
V0k3CnpsMklvRTctNyZDOCtjSy0oKCpJcXZUaGR4Rzk2YkFMY3JGY09zNX0oNjBkUDZfODU7bSpZ
UkJHQHA1bXxGbD9lPwp6V2pYbUxTWVh4PD5qX1olUzg9VmtSdiZ3OSY5UF9XJShubmFBV0Q9ZG13
Z0txa24objFyaHJ0ZXwwWk5jP002eFoKelZLZzIwIVp9N1MrJm1MY2dTbzhxXylZTEZAamBLaGNl
fmcxLU08NSVIMkZgZSVxTCFuS2RBYU02e3ozeWBFT3BgCnpzcmRUd18wazd+cjs4V2IoeUQ0byFl
Z1JDOTFuVXBaQ2BhQD1XMHU5M3lVIyZ0WWpmSGVmQlowP0Jye3I9RV9jMQp6Y0l2SW95UD1wTCle
YDdkQW9YNUR4eklOTSE2PlVkYGspM1hEcGFxOF43KnNPN3VqdUh5NCVIWmkrXlVhZCl+PnEKeipi
Y0BUeW5KfjVfJUVLe0RXam9XYiY7bzBwPGUmTWlAYUM3JG0/MC15e3t2VypMYnwlYyp6cjM4Qk10
NjMjUXlrCnpFfGhxby10TmZ6ekpOX3R1JT4zWjEyKFZyX0BQd21KT2IxXmhWdGpVJGtSO0VSbz5m
NSlLamtXb15xQTxeaXQwJQp6UHFvZ0klUktjYypMbStLUUdhUWpyfEhtQnlpbzJlNmxGSkZgRUZG
RnR3VD04ZD9kSXtNZCpHI18tIUFqXmpabCgKejc1Ylg5LSliNzZYJV52Vzl2fG5USUF7KXpoZnN9
KlQ4WVpVRXZRYzJMeF5JIWRBaHY8UVo+blRzN2x6MyR+YXJqCnpJJVBAO1B7KlM3QXYzfVNOdWh5
PTQyKHM5UGJPPHVhJllpcUNoWTllNys5SHZIRVpJcWJaSGNvclUpOTdMdXU7Zgp6N2g9TnpPcWtA
dXdWTmtRJSEydWFBYCM5bSQ4Z2xTMERKZGtXQWhmKW41Oz57Oy16dSlKSkcreVBCN15Pbj9wY2EK
enZNZ1Ehc1UyS3g5QnwwUjUkOXZAXnA7U31Bfi1zK2xJNEsoKj02JjNESUtlK1IwJmp4VXV4Nz9L
YUEjOC1sKnwxCnowUik5MGpHcjZ+Wkxhc1VeK0dYR1V4cGJ7Pyt5IXpDI3EpPkFBMlQoJnQpUWNi
e15HaHFXUyMwR20jMUMwI1FAeAp6WkpFMCRtRnZUTmBrcEcwbC1pMjJhI2BENXIxQiZ3PiRtQV54
PGdSOStZTTB5UVVYcm1jTV5DeSpEMCZjWDJtZGAKekwoaHskNiRBd2FHTlFweFFKeT5yUHJiKlQ7
TjxHKyQhamk4OUkqR0d1Zn5KbT41aiRBVCZaKiVXJE5gMjEpajhZCno0cjcjLUJTdVlkOz9UPitS
amlpMkZYSWNTKykqN2RuOENuSVJeKnNhY3s3PXglPU1QMlBOYGdAckN9OyhgdGw0Ywp6LW8hUVEt
WGRQdVJVan4/ODk5dUtzQk5PM2pxd25qJStALWBZXnteMHVjNUItNSgtSz41bE1oTjshfWdJZ2VX
blQKeiYhaXRwUjQ1Q01gNkJ3RT0heG5MUVVYPnooKnNSWThKWTA/Qmd6Jj4walQlUWNjRHJtNUZ7
JX4weShBWE1KaSEqCnpzVH1EfSV+QmMyPjM8UipsJisjWTJ8VEhYTDdUZW80eHZmK29sJXIxckww
KVdrNWxRNU81YHhqVUNpWkhSOTFPOAp6WVAldFl1JHpJOXp6ayVrcUAldGg2Jjx3KzFnTE5WNmdA
OyRlejtVbWZOQ0s/d1dle1hLQWxNNm0wbTI+PXM9dCEKekslSGYwPHsxSzFkKEt3MEIoRnE4PXEl
KVVPa3dLJDFWeCROeDFfKH5mM21neTk0bkBOc3l4fjtSOHkyR3wxQ3EyCnpYZz9Bfj8mREQ0SXU0
bWYjdjxoKWVOKmhvVGdUTEwoK05MQGpSfUEzb1orbDtuTHZPdHp+MSMxM1A5TyFvMT1LMwp6anVN
OyVvfTgmZHhwMmYyQkBwRnhYYz5aQypEIVEqQmElYVJxOUJSPW5nd24rUz47YlBEZ3JtcENnUzB4
M19RQ2cKelNKdHg1UT8yajVXTilmdy1tcGl0WFhOQCRiQWhLPztpPnhYUjJfSDxKa2RnO1RIalQy
V21vbT4+LSZ7fGN5WVZACnptcnJnS3pxeHklO01TRyl0UGBnaTY3cCt+aGxPT1BjPGwzYSp8flYx
LUQ+ajxzfjFkPW1FRVhPcWR0fHhEb3NSegp6KmomX0NjRD8pVEszdi1VNkdHR2J7PmNCQTd+diR0
TFIyVmlaU0RXNXs+U3F2IVJaVDhwfk8lPWJpalpLZ1pkNTkKekhQT3xidjNQO3k+SjYqcj8rZiN7
azFSaEhRZ2dtRnttI3Y8e01TISFtSGRuNUIyUUUoRl9adH0wK2NHPXB0bTNECnpJckV8WkdDOzh0
TiZ6U3BNRD9WVnxCIVh3X25YVCNDQiYqQ1ZveTlgKEJ9MUtNfDQpfk1pWjUmVzhuKUpZaGEyJQp6
eU5TSFEoP1BuazBqbjhJbWBIOSNYcXJXTW4jYWV2Qzw+Znw7JFJ6O015XkQ4SlY3YVdIPnkoaTYy
dU8wX0VWTHoKekxqXytpa0cxOG4+bmRncTBjczxQPExwdDg7RURYQzI7YD13QlA7RFYoby13eCF6
cExaUCNLTmkkTjVFX0NScTFlCno5NlRoMypjN2hjNShxKnBALT9QIVgqNXNiYl5XLTgzdW53ZzV8
KilmZSE4e3puZ1RGITY0IXRlZD5CUkchJUk3VQp6NSFkbUR6RmBuUVI9elYmV19NaTw2YFcjdmhu
Uk8lKDlGVyRYNXs2IXUlQEkxJHRtXnBPO3hjRnhELTJnV248b2cKekk4ND9IIylRZU5jQSs5UW9H
Pip+ZnY3PEdlMWVvMkh6fk1oQ1VZSjVvKkI8XztfblY0Nm0tTVk2VCEjR19zJSQkCno3aSR8dCFH
SU1WPH1CUEB6OXgoMkBwNH1Id1c3TkE5UF82eDxMY0YkZ3J3VUZFTk1ubUNtQzdVVUE9bCRGXm8l
OAp6Sz8kb19RY19ZRmdjLSNXPHpRYVpgNiVsOzBWZlgra0dJQ2YjUkU9Rzl5SCsjSmhAfWw4YUxR
MWFHfkduQz01KCEKejVUOHVIKTVKckhALSQrYzBGKk9WY2IqdWgkNGY/fDVDVEZaUUBDVCpTOWdn
N0N4SXVLNmhjTXs7VXRZN3JnWTR2CnpgbX5td3ZBeGJeRz5PK0Vrd0teQndkWmxOe1ImTy0qTGhY
UVRBWWl3czZ5UmZwNEslNXRnO0ZeNUU5IUFOM1ItJgp6WUw+dnBSOzVCc3JIYHJ5cGo3NV5uWVJJ
fDJkNGZxS25ZdzRLKW9OTEVEMlNiKElgfiExdD1DMTNxKG1MbyZyJV4Kej1YSGFWME16XjdOblI3
PGRIM3shREp5dntLTD5ONSV1X2lqajVjNS1ncTVzKW5WNyNOaGJJMzVMYE17JEFSYEEmCnpXJDhH
aDJCPm90ek5+V2MhXlFlWVR5OUNtbURZNEJRQjxFPVFoMjJvZ1JiZzhiZTZpfU93bURmPGc8VzBk
a2ROcAp6U0QtWjVuJVBiVUc/MCYxaXBJdDdCPG5pfihPaFFuc2dnIyVsYktNNVJ0I2lNLVZucz84
LWFZNnZCKjl1QFdlZDEKemVJd3lTZjdEOD18Mzc8dzBhYSYkV3FzclFlKmdkYT02JkNwbWE7QlEj
ZjNQUTVFN2d1IzA3IX0ybmhyeTVadjl9CnotQ2N1UWhgWVBIUzU7UzYqUis9OWVFVTRsZUomUzVz
O1p9RmRVfEdSKjRwYns/eGorTSR+Mz8xdihHLWlycDI+PQp6UE9GeEBNX1UwPFVSTHZJKlZlXllE
QTZTa2QheUZeNmhvOCpRanRDOzZ5cyt+aUtzaXNMRVMtbG1PQ3w8YE8jMS0KejNXQTV5O1lJPFgm
WHI+VWhgMDBwYzdYWn1ARlomOyRKaD5zQDklV3xAIXtweD1oc2l3LTh3TmBhLWhGMHFyNXlQCnpC
czMrKSg+flBDVlU7Ym0/OTRYbVAxVj1lXyl1fFZyJTtTM2Z6d2EtPzAkbCNTSDEpUEQ/Qns+fEtV
dm53a1MwOwp6SDJ4Mjc8PyQkUV41bl5BRDQjazMmITxkJFo9dz02bCtUfHJXMTAzKzwjazUtJWRB
N3U0T0xralMrbG56YF40ISgKeldxMG1nWVdAdUY2WmItV191XzdzNUdlbHllO2ZFUW9sdCtmMUVz
aTtIP28hWXFmZmxOO3l9RilwY3RaRktoN0hnCnpzTW40MjA4Pkp9IVB3aCp1TiZ1YWQkfC1hPVNU
N1UlazNpfVhlSVc7LSVkVEx6dWNOPzU+YD1lZkY+MShFRDx0TAp6YnBXVl9TYmJfckdAQG56UjVK
am8yPntpY3czYj5rQElTRCpfUzhgYlVARkdKO0Y0V31JYFEkSUpYOUN0KmtKbigKekN1NmNLczRk
JSRUSnljQXI4dHNXRD5BOUl3dnlWS0kmaWJENGBKcUJzO0tDdHtLOElUYSQyeHVTNFYjU204Y09Z
Cnpmd05SVnQ1IzxLaFdJYG09YiltbkRWSEVYbChzSjFwb0pLPk9+TjdLaUpgKEhafGx2VDglPThK
M0ZzdEJMLXEtMAp6VWZqP2Q3MUs8KWRFTXg3OHBocWFxaTdPOGlaS302anthamZtOWlpODFwU25w
KG1gJD5ITW8xbjBGXntAN2JYQV8KejtzOCp3MEh9QzgyU2chY0UtRmJ1WGZvJEVeRCRCYVdRYH5W
JnQrMGgjaSl5dzJCcDc3ODNJN0BuITI3KkF6OWowCnpRJCRQYClpeFlMeGhBJm1QfV58JSUyZm96
dU02UkROJGZmP0pZQmVPMGVBbVNwcHsqMDgwVjhMSmh0Tj1DeCN+Owp6KitxbmgxNkQ8YWdAd2Ep
M1d1ezc0aV9VRjJXaTc7cipqeHRTY2xNPl59KXpIMSFEWHQ9QUFnfUcjJDxwa0x7Ky0KejJeNV5D
KntaUUw3Y0tHMSVrYll5UHU0Y1IzUmAhYGdKfVZ0N0BWfT5LSXlfdVRXKGZDWVhPOD9jR1JNcHBw
OE5qCnpGb3JFMHJwbUA2KUhRRyMqezJLMEszeChaPkopQW5vOy0hTmNqeTJiPD1lVlhRRUFPI1dU
bDQ0SX1CVFNGM3EkSwp6MHJWQi0pcW9saXFJOTV0S1kpNF9xIWE7NDR+TElnSm80a2hPPlEjaHlM
byg9U2pfK2MjU3EwVmxueDg8MURGflkKem9KSypAPml+KmhYQXJCdmhfcDxBc0t2VS1sTnEyQEFN
VGZmUXYtbXdsP3JsT3NITTc9X0hgZncpeUVeZWJvP2JMCnpqIXdhP0lYalJBZlAoOUVwYVBHakRB
X0U9bVI+Z0NEdUdWNGgwdzk0LUVfM2hsQDM+SnJAe08hYUd3cFNFQ3xQPAp6VTZzJWdoeCE0KWxJ
X1owbE9eJmAjIyhRYUg4JTExTTJuQjwxZDc9PGsrUilVV2VfLXYlOC1UMS0hK3t3VCZBTFUKel5D
TDNXZXckUWh7K3cxVWV2aG1lcHNXfCp0UD1vZzh2dHJNMEJZeT40aXYrYTs3QUUwSnZkVEFLRlYw
PWpMTH1LCnoxfj1ROG5vNH1CemJUNTJeezNLPkxwZ05vYk99QVlSMUpgLXF2dG1pZ1hCTlhmcUhS
ISYmd0NMSjZfXislWGVfMgp6eldMO0s9YnhWNj5pcExTU0tGUmtKNV90KF99PTItIU00b3U+Y2E0
XzVkVXF+ajwmYEltSyM8dGx0eTtFaUxOLVoKelF6KnVpITBEJWclJTE+aS0wdU1ZIVFlazYhbShr
K0tzbWNtbGlxdTg7KWlkNElRYEBJYTVIaTg8VkVzOHhpYmdLCnplS0ghK1BgPEE+X3c/bWN3R1dA
KT8pbnBNPDkhVyVgX319QHBKNX5LOEpCQzAqfm9qMj9UcUlMOGFfdjdoPEdQWQp6OU9hMk9eMkFa
ekdhbHBOWHlyMjt1Tj05TkMlY28heEFMeHVjaylFPnR2czk+a25aR04jeUFnPi1edF82Sm8mOVcK
elgqPShBPEdjKk9sdE5Sdnl4dUA4KzhpfmA8QntJXkJ2QmFVTmZKa1M8QmFxYSFzUVJTO3lAPEpq
cDkrQjFYMElZCnpjT24jU1BMMFNxSDYqUXxgZEElWVFyRHZUSTBJP35TVCFaQjEzYXo0XlZOOTFt
Uml6SHNWJkQyTDNESVY2fWVGLQp6IXhQanw9dUdWWnNKM2pKaV47TUFYcWkoPnJWWHtgY35FT24y
KF5AX1Apa2kyd0tsWmo9Mnx6RW0zMU5qanNTNXwKejZMTClLSlFjdzgkZm1YSChAMGt6QlJxQUMp
MDg1eUVmPFZ7SDt4YzVoISFBOTEmKVhLZFdldmY7dH02YGpRU1g/CnpIZitveGR3WXlEe09TLWFa
JG1Gc0ZTMHs+c2pLQFN3KVR6I297cGR8M1ZFQj4wfDIqUEt3QiVhUlcpUjRVV2dgYgp6K3tNR2F6
M0lAaip8OVZnY2xWfngxd2hSbzBWcEx2bHcyfWJOXistMDkhQ0liI0liQH53Sj4hPWZULUNyaTlt
JnEKelJuaTVpRVhnSylLIX1NJklsMUckU3oyYTQzT3JIWWFPakxzLUVqSHg2fk5MfXhLUWp3aVF2
UXxJfVZFPEtZa3FMCnpxSng2LVI4Pl8pZEFZZkFjIzRqYSFCYmNtdyhHKEdQaGtqJmhtbjZrNytq
fD9nenJQaWMzVVdJRiVMI3FKUF9+ewp6ZlA9TkA+ezFncT9XUXEyJT9xUiVzR3lodWN2NGI8PiRm
Tmc8KGNASndVUDZ9TlFyT1ZYfDVfbCN9bVU3biVfNTsKenB6OF9udzU2T2oqakFHelohKyN+cmh3
PSFPM0UzZXFOKVFfMSVQVnFJOEkkfiphbjhyKHRhRitLNzVwJC1ZP1M4Cno8Q2llWHlGaCh8WFEl
fXUld283emFwe0JQOFFlKVc/IypQM2R4Wj45Pl9xOHFXezUofjBTLVZqTyEzRX1fJnJnMgp6I0BP
UWZRRFFJfkJlY0trMzQjK1BOWCRlckt4cWtFY25uWSZ3KmpFa1dHKW0jbHFkeT01fUBmZDwyb1Rj
JlhPYHYKeigjUU8zbG5kXlkzS3dnX2ViUVBFQU8qbFZ5RVM1KTYwVUE+MyRAcVAoRWc0Ukk/PGE7
Q201aSo2NmpQOUh0aHk7Cno9PX1hTjA4fU5OMlNBPFFUTz5mJHNqaGZCLWlrOVNqb3gmbTc2LXM5
UChneD0xQzk5MFE9eS1WYTM5bSgwdy05SQp6V3dNNnJXVWwpVFpBTEFENipscDl1Njw4e3EkcmVa
cm4/fFc/bUw0RHlafSRHUXo7Ui1EMGdoX1pDTHNpRE5wfHcKelRFMihAWThyV09UfGkjODhuZz1s
PHEzZT00U0AxQFRfKj02JCN2b3BwNSNJKXg9flRTcnBRSEVRZmg8XjYoJjMzCnptWXhed3NTS2pN
Wkx4d0liQF54ay04eGYtWSpafkVpdlBEPytgXkx6RysmXklTeVVVO0Y2YXx2WS1SQkQ5UlRYdgp6
UHdzWW97cEBEQEEwQSQ1ZVIyQy0hYDtnI0RvLTM4RHMxZytPdjxoKWl0eHtmX3A8aWZYe0t2I1km
M3R9YTs/ZG4KemNhcT9WZkEtMFdGe1Fpe3w2RkFLR192fiVvP2lQTWtaPEwmM3BGWkd7X2QxdFBl
Wk4yJEdgcX4zTGhKdUs1NWN8CnpYJWk9RSUkWWg+Kkp7Z1o+dEo4fGtrbllPKHZGN1lmenlZfHVS
WHJye15oZTw5ZTtqKXJ4T2pZVnhXOWZGVnQlUwp6PCRwVXNpNFl+OyRkZj5kO2J8O0Rqb2l4PHN0
eHtYZkQrSFd7TUYrO3EyXz1nPlVHRDU2KkV6ei1LZEFDSSo9cn0KelFTM3NBQzdXUyVkMXlEQyp5
Qlh8WTdxUGAqaTA/aHpOP0FScm4pI29ZNStocjAtemNKUHo/YTYjPkJQTW9WSkJwCnp2dXZwP1p6
bXdpZyp1OG9wPFFfSE9sYFRfQHR6SH1XTFY8IU9zUDVEaWR0fVd5fHZKdlQxdy1veHZHJHdZTVQm
Zgp6LWgmYGBEPHZnMjtSa3BuZXNKZF5xQDBMUyMlUkQkMU9uYWNFUU8lI0dLaylKSC1KOSlDPldJ
a1ZRYHJ1O1lNLSYKejBNYChOcHgrNWFuPHtaUVY0RG9yREhqejZtSDEpT0xXUEFyKVkhTmV1RzFt
cGZRfSRMYlBXQWIkNURJMG57Mn5XCnpSXkU/WnImZiZhRHJ2KX1Ka28rfEgzeGxEQTVJRlZrRWNi
XjxlQVpNU3I4YDJDfnd3KzFPTm4mQHkxRlY+d1RYXwp6anJgejUmNldmd1lQTCtHRH18MyQjNCtE
dWpQS1QpbCVtJDRvKzR2VmojeGV7XmpzWjMmaU47ZEBHZjZNZmN5JHsKelJTPzZ8YFNhJi0yazxs
P2FVVHZSeDhRX0xGPWJ8RTNSTU5kJGQxUSM7UzVmcDZjI0VmRyRhJXd5SE1udkxkbiVWCnpseCgo
eiZfPzRSKHE5cFB5YzVvYEViX3RjLUo1MmhIR2NYJDBNdEJXcDghdkBSM2I/VUJoQCo4citJKjwx
cWpLagp6PkwzVmpQeW0xYGteX2BCMDdgZHJESClvUyhRMztJdmU9Mi1uUXNnRXFnTntkUCpfbGI8
SUZoNFF7OHdONU9vLX0KejF4S2owNkV6MD9yKWc7NElvZn5WOU0wT3tiUGx4ZDtDWTB+JnIlIVNG
UkRDOXYxdFMzaDVWRSlBWnFRXzhaeXtZCnppQ1RuelBrQHBATzk3JTMwN2AjTDRlNnU2UVYoSHI5
ZDBuXjkyNT1eWVp4SylaNzh9Pm9MZj53OWYxSClvUXZXeQp6K31JSHZrTFAzKCFEJjJ6NTtJViRh
R2U7UVJDVnpeSFlta0MjMHVKZ3VmdDxrQmlpRnpza1drcHgqRHRLVX1xNWsKekRxOEBrNkoxR2dx
RWhNMUFVNXZ5U0ozJGJSZGpCK2wrRiRuKENOTW1JQHU5UiQ2OWJnMSY3OERScXYjTzx5KGN6Cnox
S2I2ZDxHbnpySHNNb0crWWxQKD9LPlhkWjNHblliNE8mTnlpR28kYUdRQFFkRk55U3AwZUJrUG1Z
c3VgZW1ZVQp6XzVqJkhDY2tBaERoJWROYHhpMSROQnNjPGwrOGwmdkk5V2IxRUEwV3djRnsoMUMk
Nj9uYE43TlRQT2hfbF4kdEoKemctSXlpRWJeaGcjejtFUzJSR18pOV5FLXQwVmZLXzwqenFsUX00
JEM2ZGIyLTtYSGwpPkZ1c1JLZmM9YmBTbnh2Cnp3QHdaaHBWLSUjKGNEfWFsYjlPb3dsbCFmWDEl
TVUjUy00S0d0fGBsS3ZoLURKR358PktBIVhSNkdyXj45ZTh6Jgp6Q25JYmo1NSo4QUhJKHlBYz1w
N0pAMVlkeDxFYVJnYjNeJlc0P2EreV56TWc/U0ZoQ0M7SkQ0JCl6OHh8ekFgX28Kenshbzl4QHRi
RUdVViF8Nl9ZQEVYY3RXODN6WTspa3RwVzZKOV9Na09kP1p2cFlNZHdhTTIhdVglZzE/UnN0JHow
CnpPO08pPjI4S2NFKjVNJCF5bXZSOT4yanE1d0ttazl3fj9Bc1IjSDxrIXhPK01YKzdYKzRie2k1
NSswalVQMmVuVAp6clBmPnJZUmBBM0p3PXwtRjUhN0FZNzV3UFlFSE1ydWR4TkxtSVhDdUo1byEm
SCNIVlVQPDI1aiZQYE9II0lZOTUKeio0MSF8a20xOyNQcGo3QGs/TnZRbmw9bU5udj93TG8lajZj
RXp9eWtgTC1YdUB3UHZgMmF1WEhISSF6ZF9GJkhaCnpOV3FPXypKLUklNWB5RUlTbW4tI2xUPzhn
QEA4UXkqd1Y1V3V5bFk5OTZYQk5DflRudG9jNDZeUyhianYlPGpaawp6dGVLbyNAZEljeFI+TCl1
Rn05MU5OaSFucCpBcWhOIXpyaiUwNjxOajMjYVJFMX1NJT0kK0E8VUA9fkojWTdYRk8KejBtOX1n
T0VUZDs7aVN5PUR3S0coUUM0bXI5SkdVZ2lCa1ppYXsjM2FJNT5PfSZ+IS08PWJnXnRHfFJETCN7
X3VsCno9Oyl2ZDkwbGZAMGA3Uj9pVVBySDV9K3ZyJj1kbUtEVEQkOEwodU9PZzZ+LWZNbkomYEFf
dm4obFIjODlfK3c8fQp6RTVnJmwtODZOc0g9SExRbmw/WHhyWXtKaG5hVUJRcT11QDhNZmpmS0d8
cWdARUM1c3ZleUhSN2h8SmNLbTJqV1gKekk8QUE8bG0yRmVeVT5fUy1sbWV3OUJYbF4xK1d+fEw5
eXc1bCRKazgxP0JzdzFrTGlmclRmdExHKD40PWU5dFN9CnpNYGJtS3MxQTF3VGxPNXNOdH4wXko5
cnZsQC1xT2FHak9SK1FWbVlePGRwMH5leVgyNWc3JU9GTXApfHJRQVh4Zgp6YSk9VjByKmZHXysk
YkxSanApYT9RUjR3ckhRPFE+TzNYeSphdUZ3d0B6IUZEJDNnUHRSVSQtVGRycDxYaHZBN0cKekRU
S2lWRFN7TkFlMzN+RmswWEt1QzQ5X1ZjPSt8T2d7T3YyQ15kd35jfnEoZXJfVGAwP3BySj5YfTUx
WldvSV4xCnpRJXdgfkhkb05XaihqQGFsUExtSmNNNl5DJjdkOz9yZ1FyTlBYTVUxZHJKVVJgOWpV
WDJ+LTBkWjRSV3ZiKUl5dgp6JTdHNClTXyY1a0QjTW1oaFF+WjF8S3pjR2Z7PU9RQEhtZ31CIUZV
OSVGRm04M2JwPGlsPzlXOEY8eSQoV1F4V30KekZVVj5GWjlgXmloNUROYGNnbnd6elM/X2F2MSZT
YlpCP2RTYzFyK0lkakJTWDNpZ21qZGw+MD84RG1xPWwjKVdNCnpESVhBM1RkPHFEPmNaJGlTMGJJ
byZBJUhiTzk0XzxeemQ+V0otT0QxJHBhPTcoRFIhKDEkTUkpJnMkJFV5JDs9SQp6YHxrUDhfT0c4
Xlp+eD10dDFaOE1jJlgqdHQ8JHlGUFZGbiotYHwjMi0mXyVzbjM/NDU/NlE1NihWNyl7c0BtRiUK
enJ6N2s4WWomTUApOXppfGdkT0xlb25wdCsqd0xNMFkzMl8tU052aTdMIWJMJi1+UzA9e3NGJU9p
cnI4Z25pRmFiCnpybzF1Ym0oI2VSezd1dnY7NyVVOVAjP1lmPyVhPnhlX3VzPXNwQGkqXigoQmxa
UVphZEpKQmIqeUQ3RXolej82LQp6SF9wflMhYHZBUzx2cmdhMmxiSypIdmcoWElWQFlEVG9aeDk9
ZmEmbGFnNnMydEZHYzBaKUI3PXt6bCUmUnZ2SFcKekohMk9ORSMtMmRUPVNfUWc+anpYTTJROFBQ
bFNSXm5IMms+cXxMbD54QVQ3Tkk4V1RyNlVGMWFrJiZLb0tUbmVFCnpoTXJoP2ZRa2N8TSE4WEUj
WjEmYXhLSzlfMT4pR0s0Pm9kflhAM29Sb1FoMVRCZ2RGcChsIWJKUmlDaHlZVTVWSAp6bTBDPj0k
O1EtX1pWZlFuZiQ8eiVyJFBfTlErVkUteWA3cGVZXlg4SzAtdntxOGRBKXRGJXolbHg+SFM3ME9j
Z2MKelFDdmg4YFQ2RXlXUzBaKiQ7MVgrNS1uYURLe0Y2Y3smNGJjZEtjJGktZ3BOJEAhck5eVmVX
LWAkQiNhazVLUGwmCnpwYDtPWTJUUWRSWHRffTtaUVB1VnMpOW9ONFpIIyFRMXo2Uy1VP0BfOHtA
MEpEMiZ7UHpObWYzSXZ0PjxtTFYjXgp6Q0AoRnVva0dHSiRPU0h5ODhUS1kpKnwkKm5NQmprR2Nf
NlReZFdMbz98dXd0WWJxU0JTPCU9dWleY2RaNGs3WSoKempQMms7ejFFMnU8NGhyaHR8Uyo2RHg4
WDgmQml2THEmYXtvTmdQQzxrRkNETlRJaWl4bz0yT19PVWM4aGZsfF9ZCnpzSmVFVHhfZ2UkKFc5
cFVPNk5zQCFsO2gzUFY3MXtKUkxjNWdhLVFpc2tPQ0wkVUplKzZUPyMhb0Z+cFpGKkpuJAp6bnUz
RmFESlVxSXtRUUUrJVBTYnc0P3plWjJjaDM3a2spSnJ6QGNKNGQ8e05tNzJsMlYrLV44ZTBIPTlB
RyMmNlgKelY8RiZgb2hRSzRZPDErcygzM1MhQkxmYlUwemZTPHByc2YrPkxCfU1YazFGRyUqKTdS
ZG9eNjVkVUV3Z3QyXkFaCnp4UXQlRihqY1lnNE4hNnAzUExtYkNeV3RzeHUhaUIlZTlrbFdDdy1k
PENydSs3SiNhdGRfUHN4QUVKaHFxaX47Jgp6TCZ2RFRnXnZ2JXFPNzd9M1FPIWtpK0xNYXFxdWJR
d3B2PXI1UVVCQEohMjdgYyUoTm4ke1JiKjh5fXspOzhUKHcKejdrQTJ9azVlK0RzPiM1VjEmRzJa
a0F2cXJYZzMhRDNmKVotS3B+QH4kYEI8OzV1eX1lTmBmbGh3M0IyMlhoTkkwCnpEOFEzSjE+Qyg3
UjJjd0xRSnxAYk1zb2V0U0A+XzNON2xCKl8tfFQ4Zz9TQ3NVZikzZEV2MG0qQlpyUTRyX3BpZgp6
MWF6YDVpJXQmfTBpZSlNNHhJciZvZ1Q9Z2xpakl3eWdpelpHekhNMVNgUnU8Zmc2e19YNEh8b2lw
b01YayQ7Kl4KekF2aU1ieTc0MW5XVlohKkNMWjV5Jl91STFzdG1ZUGF+SFByZi1JNFB2WSYpOC1j
KVNsTyVpfkxAODxFejdYeV95CnpYIWZMa0F6anQ/JD1xbDwwXn07UiVYU0hRMC0oND1sVFd6PiRW
UFpsLWY4VVVadFRZKkx+JC1rK3wqLTtOKUZxSwp6ZmNYdzglWEZ1dlFoJkhuSUcpfjxMVDNPe1ND
NXduQW9idTw5WC1DPGh9Y0ZHZlU1Y0I8RXphdHBJbUdDPUYhI1cKenpkWDl5XjgwKHw4JFAqcXZn
KzM5MUVyQEFfdlVyP0g3NkhWbTR0PzVDM3xmVF58TjFOV3g3JkRNPy1ucWYmfmpjCno8Vnx5X3Jl
STlSNmFWWlIzcnx2USFRVFE+S05nUHV5Kn0/QjVIYkd5ZUBYSWdDfD0jPEtVbEs/UVMmJVpqI2A3
TQp6czVPfUkmVjtHbDRhSUAtMSN7KnMpbW8mbyN6MFRRR0NhXkJ0aHl3dWM1aTNxPjlkRStANyVm
QV8mSDl6ZTlLfC0KenwyaEVtKlhFKGRqYEl8YzRsQzloak5aPFpZN1dHejB8fXlEUzlMSVl2XlVD
KUkqV2lnIzRnblJsTXpCaylSbiF5CnpiaF5gPjRtQ1FXWkcwPVRPazFjdjM2XzVSVDgjQ0tBVjVe
JldAPD0tITwxIUBAdGhNdjs+YjdeYztZI05vcShtcgp6RyNofUUxPVN+LVArZ0tLSEtnMDMlRHs9
cmw2TyZEUCFNQEtNVSVCPEpnTnVhQVpiVV8wQFd+QHJVWGN1PXQqeVYKejs2WlBePnEkUjw4K3JA
KEAhbSF8SVJOVElqUHF2MGRENzZyS2VyKHI8RThAZ19OayhuKmhiMzExXlN4V0peO2laCnpwbE8o
Zmg3Sk9wYTRmZlRGUzFVOWx3Wl9JUVRSTX11TD5PRyVfbmBNYmNDWGpiOzNBcyFxamtqYEA+LVJe
K3pFQgp6SmlSez1CZlJPNjIjYG1eZVRvRzx7akM1YyE0dj5XMXBwPH1TYiRQcW9LOEF1S3dxPURp
MHBTRkkzQy1NOCt5b1kKel4mSDBkQGRVQ0BYWCpVOF44ekByYyp+QVFjQVIrezhYN188emxuO0Fp
aUdubDkybjtmSjllRXkxYjdOWXVUdjBRCnpyeSNnYUw0Yzx+YSZgX3hNXisjaW4rMmR0JFBifSlB
NXo5NDs1bipaZlRtcT1vVjxteC1TcWtYRzs8LXdiXnpEZQp6MjxRdlc2VGE0WThkOyl7KlA1QDE1
Z3opOUcqO3hwZUpVZ2FJOE97dW57ZFMwJlpDflpMUnUqenNUO3U1NH5KPGwKek1zV0ttMTwlNzB4
PjFuWE1tc1FxR0RYfF8yM3JvOCpXaGVSOVg5UDZAZ0MwVEFaVlZQam96PFBndnxqYF57dDFnCnp2
RiErTTxzR0Y7MW5iJGszZFFIUjEtMShpd2JyXj9zN2NeJEtpPk0mO3B6bXI2RXp5OVVndCpyRmhF
dHcwMThlTgp6a00oJEs0fl56cHM0fiE4VTQ9R3M1dSglIzBadDUyZiZmakQ8V1F2dVJ5XzlPezFq
dmVmTGFjQ0xNZipAYSEhajMKeiVpISk2bDc/WD5NdDZ5JXZtJXleKStmPHMoeyRTNW4yWWdqRGVf
TT4pWVYpfGdLYjUwWGlvK20/TXg4P3N0MDRiCnp7Iy1mQFhnYSZVN09Ebko2JDdlcj15K0UkUENH
QD87WU5RdFEwKyRoJUkjPmwmX3ZrNEQtSyp0aUI3WDl6O1k0LQp6PFIxVy0qbk43N0hlcX14MG8z
K1lAND1uPTVaaVZXQz13JlBXRTUpaD0rNGpWQlhVN1U2eUx6cG5nMGdPbilvbEkKenReN1dqdUFE
KDApfmUpYnN8a1M4fEM8M3lhLSV7N2tQX1hmIzFKZFdPPm0mZjlRPWlAQjhaMEM7KmdFUDRadmY/
CnokVk9HdHtmaTwqSi1YOFBeM2ojJT87Yy1ue182aDQjXjJ2TCpZS013JDEzZ344X1lsMlFKMnRP
bF4+cCFvI08ycwp6PFlUa1JhcUdycUNMMFhxWGAkYX5BQFdZKyFJUH14TmZEa0QkOUlZVl8xOFhF
MWZzdzhwTUJsdXt9eztuP0B1ZkwKemZXTzAwRSktez5SQXRBOFhUMU9aK3R8aT9mNnt4Q0NRNzVj
REhFb3MmNnpuPGNmczZRWWRtJlp4TWR9Slc7SW50CnpfYTVsYUtZUSZBOHBgaTwzMGJJVGNSSmFM
NTtwUzBTXzdQUnglMnVQZEMkam5wYy1Uamw7bEU8XmdfTWIye3FQJQp6bEQ2Xz5QU2s1MXMyPkFS
LT95RUlsUH5DczU8OCtHVlZveXwpRlZOUCFFJHpANmk+ZT45d0p1VSlFaG44OCtCN3AKemE7QWln
UjFENiZASGo2NzwyPkhaK2VIV0o5Wl5rU2pYYVlIK0B1WHUxTlcmcVc7SGhVSGM9ZV9zVWMkPEhE
JkxsCno8fip6dzFFUUw7KGJKTiNvJDZDPHM0bSVwWTc8UFRIZ09CcHJDTCpjI3R0ZnFjZzQ4fFoq
cyZUK0QrPzJObW4tKgp6YEsySmlkNzN6TjdyaSZaNiMoVHp6azFnVjBPYnp0Zl5aYGJGNFBCO2ZA
JGBHTllkMWEjfUVCMV43SmFsX0ZPWnoKej1zSG5OKDJ0UCNGcGRuZlRlRFl5c0sofWcxanN1dnU0
fD1XKUZVYHh2dV5gPnJuQ0BGcFJGODI/QGJKJGNSbVdECnpIe0pgUlUlVjU1ZXtaaz1QJn5leUcm
MmV6QEBUKmwwQlFqJTQoPTFYUCFLbHMjP3glUEU9VT5nc3tvcUQoUUdkNAp6bG13OFAxSTwlU3JG
ck88KG0ofmtub1dnaEFnPl53eih6RVdfZlNqdzBVQWN8e200LXMtPD1WbGlOJnN5dn1xPj0KeiM8
XmlVRWozaioxazlVdTN7REo5S3s1cGYxaV5VPHFUUmNMa295V208fTgzciU+QShqP310N2lBOGhg
NDFNWk1fCnpUSHItZj02S09tMGlNYC1MUkVuKHN0T2p4MURKNEU1TWBxQztXe25FKnA4KlY0QzZh
JjNAIW1ZPjdxRHUjVEk7QAp6eDBhS2MxM0k/Yz51NlZTM3h5fGkzaDxPc0ZoRHRfTHpHPVNOUmkz
aWFHWThOY2duPVI4c29Qem9NPUpWKyFXM2cKelpWXyY8dHBwSSZWX09nSF41Sl9aQkMjOFhoNm5K
Xjs7PUlTdGZLQ0tGI2dLYEsoU2xKJmVlOVdYNChXNyRfUWh2Cno8JHgjPXBzKWRtI31QP21Kc2RK
ZFdAPHp1WldMIyFCPFkjcGIoIT16WEM7JD9ETUoqeVVFJnh9N3NaYGc+dX5JTgp6YnRNMV8jaDEm
YCtoa1kpWHAqRD1RITs+MyErVUNnREBwMUFFPHlOYjd2VXN+O0FBYUZmaE9gIWl3cG96STRaMVoK
emtjXko3MVh7Wig2QE1BWCFscjNIeytwS318NVF0VD9YfFNHeV5zI0lyX3FzKUJzJGd3N3BmLTww
RUtaS3BMVz8tCnozc3V2cExDIzJKKFhvejFJP0B0QmhaXzg3ZjBaaUBtdSNnJGpQRnwjXnJeczRq
YmMldD4wfGFXMF81KWxoRDNQYwp6QGZgPWwqQDNiTEs9RDAxVWpTMVdac287b3BHK1plcFYqYVJ4
WjFlJVpGRTRyS31yKlVQVERFfXMrQlh6JX1OYT0Kem5vOXZ0MjExR0VfYz43OTJfO0JBd2lDRFZ4
TndzZD0oYipQdVVQej9Va21mdkIkUklvbnxmKDMpTDd6QXleWWF5Cnp4RUREdm9VWFpneWJLXiFf
NDRsZG5zNHUyWCEhYz5gVEYxQUk5PkRuOypwQm0jfEh8SV9ja1RCNmxWbHYjZlEyMAp6YGd2SEd1
VSlJTlk9TSV9b08kITZQcj1XI19oMVVWJT5YNFVqUSVCYFh5Tkp9WX4xfXs5XiotTz94WUY+LW8q
UXsKejtgb2M4cE4oa0MmJGoma0Iqfm1EY0RLR3lRZlU0QTk+Kio0OTFCKGRmT3pwZzw0YnlfcGAy
WVB7c1NrQl4wPVd+CnpIcC1qeUFxVUUqWTBSOERSbk52XmpaSWo8X1J5Pih1aFB6QDxvK3s8JUM5
YFUtdWxKazgrLWwpZmNqYy1CYWIySwp6MXQzWmdpcUt4JT1LRlhmSH1aWnNQKEVncWhpJHhQZn5z
TmZSPj5xbWx2dUZJVj8wU0M8R2U5fWFAbDZ5Nlp1eCYKej15QmQtalB0fiEhJXt6IypqNnJ0JUYk
SCoxbyFnOW9+VXVnY145eW1DeH1uSmpOSHh9OFJ3MDVxa2VjKFp9ZXpTCnpiZlJKcUR2IVc4Rjli
Yk4wU0s2Uyg3c3YrPk0yNnJpSmhwI2J5TzcjZlFzS2x3YUkydyZyVmFPMUlCWjEpUHprdAp6Yzl8
SEk+UVpnLXo5bTN3M2p+TnR2Nykra3swfn4oUEt4eVFBU1lXTkdUR29xMjZ9I0lBb25GRCZlX2NM
MDdOOyUKejBkbDZkS1g5ZEF7K2MwKlRfYFVJVzQjRmhHOz9ra2BpTnEmQzYrfTJMNnZ9fjRzPCNw
QDY8WWcmQUs3c3Y5XylVCnpXNHVtRU8+YWhOVyh+UXhtKkEjZDkkWGdtTXhwVXNYK2FibXJaNTBn
QWllcDFBaVYrbzNKfj1VTXVaPldZfEtRQQp6QH0/KzdWU0VSR1Q3WjVqMEYpOH42ZiNuUmw8e2tm
a19iKHNxPUp1R3MpfGFhSWpCZnIyQHNgJUZfPnlIJH4wMysKemJ0dylSOHw5Rk5aNWkkSXQpdXds
Sj9NUUpLPTBGR0kmXyVCO3x4JXo9P3J4MClHNUpyOz02VnxKdzRSYSpodUFOCnpXdDRAJElHPCtX
dXNBelUwekFRUzUmI08xM3tQSSg3fjZSU0JYYnJBY25UMlVOejJkfDRkfGx0Ryl0S1FZQndBeAp6
enwjV002ZXdlQ3J5N01EY1g1RUg2bDkkOzA4Q2x2ZCYpdFhCU1BiUGRIQTdATGRPKmFXVm9ASSk+
KVIzOE0wZ1UKejl5bWkyZlZAKj04JH44fFAqUFM4VyNIVVNhJnw4Xj14YDdqSzs7cUNCRVp3O1pC
P3whc3NpVSh4YXl6OyZYRWtGCnp1enxQe2NMPmM5Smh5WGk1YnskVkw5T0gkdjRfSXF5QVVHcHJG
ZX0wXyVTTV8yVX5yZUxPfFdqdjV3WitSQUgzSQp6YUt6PUUyd084aThOVnQkeEt3JlA/dH1DSk5w
ZEx3KVRxfUwwU2NvJDEwTHNiN25TVGItP0RYO3FYQ05ITm5leUEKekQ5TTJkQDJkbHs3OCNaVW1m
JGsyITBrSXxAcnJUP3VTNHAxUHUtdmw4S2AyNkBiWW9XQl4hckBRODtVeVBnVz88Cnpeej1yN1de
eFRSKTs3PmtDcyFDMCg4MmFwST1tK2xFKTxYUDVHTDt7MVZFTTM+M3d4e2RibztDNGl3P19PZ2hA
MAp6SyE9LUFOP0dxcSF4Z3d+UyFoWHBTPWh3STB0cHhETXM3b01JNn5zfklOUCFyPyRaWCVId0V7
SiFOXlFjSlNnbW4KemVrazY9PDZDKUFjOVh+LSNoTmJiS00/dyYpLUhMQW1kJDtHPTFsJHQ+OE81
NFRVTns+N1lsV3FhYWwkbCtXPTR+CnooZSN5I0BQZ2JLZlkhXmEzIzFBST41Kz56TVF+YSN6Pikr
e3t3YH10UVQlJENtcElsLTNkSmR5TGBTTn4taH5hfAp6QVIxXiFWN0A8LSZLQGxJPyRXVyt1ZGJp
MHtMfEh3UmlCPGRTYlk2cFB4aiZOYHM5fFhnM3llRmE5MUI2SCFFdjkKemkjNG0hP1goQ1p5RXpM
TkRvc35iUWtwbXFNVld4NjU5WkZEYCE0Njh4SE9YdzE+Xk5NQE9pJnQwaG9UdGgwPEstCnohKHpi
VlkwVEB5OzNiSXhPaT5KQzxCMSl3P35AfDUkLSEqb2FQakwjaXZLZVI8c2JaYURVc358IX5ZU2JT
XzckfQp6b0dHNDFkOGo5ISVDIWEpS2JXWEk+QkEyZnVoM3QlYWw3Pzg9VXVLQShHPi11SEhaNTFr
S0hgcUBjalBPdyU8S1AKekwlRm4oQyVJNjZKd1FvV0NAQng2a2NJanxmUlozO1kjIT8wMCNGUTVz
NWlLJTJ2TT84OXopYkNXdCltTTJRcjhmCnowN3tmTiZVQDkzOGEzS2BVQ3tpTW9EP0FINmYjaktg
RUZoflReI2dCTSM2KUowYTBEfUFKQGp6alpfdTRoTnxOPwp6UWNhPk16KHtuSzhuUnVlQTsrRVNH
bzFpUnhMdVdFT1Z2cjFSMjlEa0dRbzJUc3NVNkwjX3BnZlopYjlgXkJ9V0wKenlKJl5NRT9UNiUz
azhAU3ElX0Jzcllrd28jQSFSfXleb3pTIyZkLTs8V0IkYyktTCt6SEBxPXNeVFN2ejFaKHh0CnpX
Tk1qMzV6I2ZjaWBSPVctNXxvQGdJTXopcHNKY342bFM4N0dvYjxQPDdnUGlpM0B8MyQpdjh5VmVt
KSpRWlBVJQp6TkMybF97TXcmPmBLfl96RHVDVnVPdWRIQDttMF4zIXwqZzZASEJJTkc9Sz5KQj91
NUROZzItdEYtKGEtSDUtfkUKejJ9UGNBYThkKDZWZUJQbyZMVGpSZExvSl47WlVoMnFQLWl6YEs0
KCU0eDIlMWowPFFkJmUyM0N3byk8alRDSHZTCnpYeTFYT2ZUZmRrXjVpSzJvS0IpeW9XdFZXQHpt
RmNhQ3QpbTcyK3N4eTZtbzw1RCo3MmlRfkZKM0ppZXc1ZGhgbQp6OCR8QSYhUV9hKnhWZCM4dD1g
fWQ9Z0FsVXtAcmsmeWZDS29NNlZNQWw7fUxvVCFgKjErMU81a0NsIURicEF5a1AKejdINWZKSzU0
QmlBbD1tbkdiOGh+NSU2UyUoVzhAaEpzY3lQcEdnTTk9SlpsbEtfQkg3ISs5en4tWUttTUFAWCl8
CnpAb1BlblctVj43ITk2QHZoOSo9VVZDPV5MI2c4bjBaOEBON0J8Xyt7O1loOURpdVE1X0Qjc2V5
PTdBaVdVbyZ8bAp6V0ZIaldLQG83WExnRzNCWkxQR2B0cFAzUEhNSDdfOVZHXis1JiN0NzQ5fnwo
NThIdHZNQiVXcDA4dWdfS2N6MjgKekAlMWZ1VW5idUE2RV48PFVTZlNoMXVhOVZyUkhrZnU0RE1Z
PXVPUl85UGxKY2Jla2xKdGBtZFBWbVVhS0FiXmo8CnohQTM+YzxTUVlLbF9FJX5WfD1IRSRedW5B
dzI8cVQ7UU5uYSgmWih6OXsrQXpoZFN+TlhhcWJycDxBdClfVncxJAp6eyFSYz9UUVZKTGktIXg5
aEFiNTc0RWw9YjxYe0R6OG08RktSaVB1UWtkQWh4KF94SWE0bU82O3tAVUhOdztaPUUKel5HdkJM
ZUk/YUtFVEslI2Qxdy0hTmJVZTY4d0FLVkVQYSNLVldWejYxSnA3UnB6SHVwM2BASUFKYH0oeSlP
c1IkCnowajQrYCNwNjRwTVFfcWwwTXpgY3phJX5Oa0h9PWpZfSNxUTc+OShsMDhvWlBpUlNrS2xt
SmFLYTAtLXhsakp4Xwp6KEIkWDUyRkhqK2BDXzlfKUVXViowcyZsSGRtdztSZitJcmF6SHA7cj13
TlQhdzxxQEl7XnxWVGt9dUM0RHRXbFMKekpMXzBXUlpNZW5XYEY9cyZmODdRSG0lY05abHRxeG5U
Q2RuM1ZOUkFFP1QmN3d4KmllTyFPUjEhXmN5VW02YSFRCnp7fWJuLVI4JjtuWFFge0p6c0ZqPGMo
RExpYDEkd3R0WFo/KFZ6fVo+ejFOOTxIY0RiZ1l2eC1zZT9JI2l6P1h2Tgp6emRRZSpJams7MG0/
Q3RJX2dzUm91fSZEbmwmbkBrYTtWMF8pSVRfMHtQK0x6PE4oRnhubz5oS2xRe25ZVnEpaVIKekRF
dFNXZ29eU1JBSERuMCt6O09WS3pYdDEhc1k5WWJqLX4rdCNENklAWEZ8SlBVJTR3PmdKN2VfMFI1
S1l5Skh2CnpUJmEmaElvdX5QUD4kT0Q1ZUpJTGNfU3s9aHl4e15jUmA/QjIkTCVZJUV0cSFAbEwj
YWYxdnljIyg2OWJsbmI+Ngp6K3p9LT5QP0FQbURBOXBaMVNwMjZAIUhEOCNgMDApSm5vMitxO1Ew
SXEkX0lsSVBkaVVDNiNjIz0wR3ZgTWA1KTAKejAzZGIhVTxnaD9ffFkqeSlMQGw4M05sVHBLNnhZ
NkNUKnF+V1NlUkxOd3NQQVJHO05jXnwraX5tKklxdWNUamJUCno5YVNZK1FEd1gtUm1QZCVuNk5x
Uz9wYWVvajIqQDctYSkmekpKRDdYN2gxakNqZ35CU04xTTFDQWolYygtX0E1Owp6clZFMVB1NWg4
O0Z2fDB3cFQ3ZnVkZWFMWmAoaVVMMiVTV2NXTmV5JkZuQVQqciozU2heLUApSjdac1E4cGBfR0MK
ejlOJEhzbHhxPGptTXFkVzFneE1iZC1CWHNqT1QqallXVmAzYH5ZU1UwUDB1b1ZSVk5oIz1walVB
N2FDQTU8PT9KCno9UzJ6ZEc7MUxNM1p1U1BxeWwmdnI4dX1yU21fNWkyfnVUJWwxVUFaPldVSSFO
YE5TNmZrcllkSE8hekQ4KjwyVQp6VFBYI0VIYyhETTdzaWk2KVoyRnVIfCZsSXFkRkc1UDg9NUoo
PTJfeHowfTs/T2VMcilOS0h2V0tfK2s3ZyN3clkKeiRsdVFvQCl6WGk4LU9qeEtvbiNLO2REKGYj
eXVnbFZgbkc7RGl7SWVBaD1KY0U2fk4ob3Q3VnxYIT88fFcqYCZfCnpNRk9uaU5LSEVsS2Q+YHMy
fVZhdFNMQmZuMF4kWkokWHRuVHJgMiRaSGVsPiNZK1hVLWFGS1RLeEd1MVhmXm5OTAp6MkYwWVFJ
WCFAO0tGWkFSNmBuSVoxKSVKNEMmS1pUUEJwWDxgNnp9YlU1cVZ0SHgpc3NKZG1eekFHMmh5PnVv
THUKeiY+KXgmczlJJSNZP1dPbG9UKDl6Kzh5Mnw8ZzZVTDh9VnpgOz5LUFQjKDwmJnIyfk5DRGd9
UGQoIzYqO05lX1VnCnp3Kj9SZD43JURnRWBYSzNCKm9XRkBpe1VYYUx4KjFwd2l7fjFWR2ZYXiNH
X2ZmVEVTYENeMGt2ZD5EUXBoTiUmVwp6QWpSO2N2NyVHfXI9PSlPVTU0e0ZUQzRMQSNLJCV4S0lU
ZUBNVFdTNHIoWXkpOzZhTjNQK0QtUUhsaDI8MGQ0TlYKelZKKCFHKEBjQXNuYG5QOEktb2w5PXxG
MlRBUFZrTU0+LXd0JHBiSzw3aXpHUVBWVEoqTkxBdWFVSUV9TGxAN0pVCnooMUNfdilSJWJFVUA0
c0RZLTRJcUdONmlKYnhMdVdFbzdWY3srKlM8K3E3PVVvM3YpSjJ2RDFfaUQlOUxnPXp5WAp6KiEw
KmV4PWBGYT96WnRtWjB4O0Q+K3BHb3MmOFYxX2E9JW8teW5tPDZFTVA/TGtefUk8UDNtdm1qTSl5
QEM0WCMKejwxcmpneTJ6WDshRClnNWN1WGZxOU16NDA2Rld+TUFNQCplZzdgSTIwcSlxOytpZ201
ZiEzNH12eDYjZmNHSTRrCnpOWlEreF42aW08b0lqcDlUPXZEOGdKdCprYzRpLUd0Y1koWSVtX3xU
aVNgWiVATj07QmJoZ3s8P1A8VD5aQDFHYgp6S1gwZCVmcXQmYmc5Rj9RTGomRlF7UVcoKDFBV3w8
MV9aYisyPyVnbTkyKCVFOXYtd3lFaihPUVh5fFUkNVB4QE4KemV9QV9IVVMxQ0tUd0hBQ1l+TzA4
dn5gU1paN3BXOD81I3tAOz1MSm1iezVtT1Rib1JDRmYqSUYmQytzO3FJT3RZCnpQcXd1K25gQ2Nr
SWRTWE9FZyRkTFZmRTF0dDQqVjFnXno3KU9nXitYSH4jPzctJHo2R2QqPGZtP147YExgdGBQTAp6
Q2hzXnBURDtBMi1NYU5IKjdvZnRaYCNgMHs+cypOIT5fRVl0YlZheFF9Z0VsdGJiWCllRUMxR1U5
MCtrTztDIUIKemtOLUQqanttPj5iRFYja2I3fVRab21QSnpoK35qcSU0T21lMF9BVkxfMTRkTWUk
MFYjcCZKU2Y8P3BAc3AzO1hPCnplbUg7TEpTOHBOQzV6VXFGaiM2QzhSIV5OUXhhSkAqcFlQPHFy
NGxwRTtmR2wkXkd0Y1Vmaz5jN09tdUhDPk9JKAp6S1BDPyltMX5MeG4rZ3p4amxBY0F6R292KERB
JHhweFJvY25tblU+WGpxWm5mQjVkU3w1PHlENW1uWGxLSCljQ2UKemFoJiVVVFh+YHNvRzU5ZSQ3
OCpWO3o7aWEwRSM3IV4xazFWYGNiMzMqS1h9YF4rN0QlSntDZE9XRHM/QCNUQjcpCnpiVSk9X3N9
NG4pd2FLT2NCTVlpZHdXQ0BGciVZRj5QMldqMTBIfl5ESkV9fnlxS1lfRSRiPjU1JjhQeU9UTSV0
Ywp6QHFUdlhANFRISEVGRWQlRGtvYUQjRCRjVlUxe3pEY0wwPC1UcVh8JHlGQ0NrOWB4cGlvYDVM
TUs+P3NYXmcrISkKekFrSyt8cWFpeTVxWUlvVExHeUJFYn5EOCQpQ3U2XjxjMmRaYUhrQWJDMWFa
bStoWFhHbmxMcE9kOGFeKD9FQz51Cnp6SHBzPEBvTz9YYFAxN1UxPTcwe2c4QCQ9Rzt3QWFPK2Bo
KjRDSmg0RXtwO3N1PmV0bTA4KX12QG12cjxOLWpWWQp6ZFhXVTc8YTBLSWxUMW9AbHVMbEExZTh6
VyN2amhqc0I1UnZPMkN1M1RAaVdndUJMPlBIbWE9WXFmVHJPNCgmYUoKenZuQHlBSTJ7JGhpQ3cz
P2R3SUxDbE4jI2xoNFU8IzhSPkYoM0p3WXM7S3xwPW13YX5uKFFhPSkrT145Yzg7U3d3CnojdElW
UCQ7bC1RbD9Bd093PUVwJkA4UVZOZ3JkbmhqOD83PnJ4b2pQdXo2aTlsdF9sXygoczV3d0h2WWxP
Wmx8TQp6cSE2JUZPMiReQF8qeUd6RCsxciE7VUdFaHN3WXBzTSlEMG8mTUJeKTVePngpdiFGKiVN
dCU+YTwjYmIyKGpNfVUKelhkeVRNMjh7TTxrJlVXXm5eY0MoNlQzYEIqan5mZDl3WSNoT3d3ekA+
akZkLSFJZGZrKUQkRHoxYkJubndJMSUzCnpGK2o9T3Y2e0JKKXs/YnpFdCY0OTdQMz5UQHBZfisw
fGM/RiNnM0xTIzRlWDQ8aDFrekYraG5CckVraVRBVzlMUwp6N19QK2s0ZS04IW5JciVkbiRgNklR
UzR5cCFtLWxZUChBYHNhRjVqQjkqcWw3ODBtMj4hUSRubXF7KzFwMDREOSMKenh1az04aj1JPGsp
eTlGfld2akNCVU4maGcmcW4/ITJqZUBteXp8SVo0X1B5I1ZsdVVeQnYqWEBCY3EkQkZ1I0YxCnpu
KEFtQGNMaGR4eHdPQUVpNEx8VigmMHt3PjNSdz13bjgpY0txWnxScz07Rmc5cXJDVFBBWnVXRylL
fD94JlJ1awp6IWE/dk5UbyVhS2dhUz1uRClManMwcFhlMHIyN2Iycmd3JDxmO0VmWnB3LVpOalBX
KXpLJW9iVTQrYCVAOCMjfmgKeklRUFZAPGN8Mio2bEkmcykhcmFvPHVeIWMhQ1J5YD9gPk1DSWYr
Yi09RilabWwjPis+M0VReSlnJHh1b2s7NlItCnphOXVrfUJTMGlgbSlLeiVCUUQ/IWFPSDZ4QD0k
PUtBY1Y8N2J7UHhNNnpPWURGIyVTVDZ1eWx6VnN9enVua1VzMwp6MXlnNXp7TDgoYVM+R0hVRWQw
fkNCaHxrPGNja3t3O2xhYH5KI0QhP087dV50SEttRSFyVEtCdSNrbiFUNkA+fGIKelJwbHZ1SDVG
Ky13VXoxS2J5YUN6SFJiNlptMVVfZVJpIUQ4Nj1mK3FEb2F4QXQ0ZFByPk1BcEExeXlJO1IjbHxp
Cno2YzsyfT1qWCYocSRQKSYjenkmPjFvP1l4XjduRHc2eko9PShicnApenJYdGluYnJtUHh+PmlL
YjZYWVE8NjshIwp6P1ljNiskOT1fVT9LMVM9P1dYVlI8Kld6a188T3I3XksqQ0JSRnBTOV9WSUxH
dmZJO1RAJFRJWT5LLTE+c195UmcKeiVBVEcoN0o5akRUajFsZGVaRyY2Xkwhcjw9bE9uS3VKZCsj
Knc2S0otbWNeYmhfa1RSSmJqSVUhSVlJY0krRnx5Cnptd3MlZHYqQEdNSXkmemVFbkRgXjNKcn1u
alRTQlgxcF5nPilLM3VnX1g4Ky1McGZXRFkoY1VNaDErOzxAaEFfXgp6S0wkS2E9VlFZLWA9VU5p
Tmw5Q0l7JWorNkNreUF5SUlwem9xS005WUokYXxEQjJmT3h7alJAWTh9QXpnJVl7SnMKek5VWj99
JHt9US1NOFN6ZCk5aUNKbGUwdkM4bUZPclQhMCN7cDxMRWRKfXk5dylFa0lTbHA7Vld4PjIlekQx
fnxoCnpNSz87IU1Ucm40PUFvb2FscT9xfFdUUGFBOFoqKXArXkFRX2Q5TWVrQUt1en40NnU1UEAh
dEpZJFY4b3BxOG89bwp6PjIhfWJ7PGk4d0p0YiV2JEJueD4pRHRpbVJWOEN3bStuWTQ4T35JbHd2
KHotY1RpPldIVU5ffm1CKlA7UyohXmoKendAP3tpRG5IVmtrXmAoTSUrcj9LP0NmZEZ4KmVwbSUh
eVB+VTIlV1QxRUZuJW11R3ZeJDF9WD57VkJXWG9yJHxKCnpVaHsldTxWRWlRcGd4YCFLdVlzTkZf
dWZmaz08TzFoXmh1U1Jnalo9QXo1dEFMZTJeODwoa29PbDB4VyVEViVGIQp6UCFnZEBiZjIpJWht
WVRRLXloQ1gwTEZJZ0pmWTJlbUl6UE43ZW9sRmBtLTNHa297M28xM2EtWCU5MllCQGJycCEKendJ
QVJsTnF7SShOKCEzQSZqQ15NRyFrZWI+SnllT1BYbTxUPFAyJlVCQyNie1B+MWdyP0wpI0E7ZWk4
KDEjbWlZCno8Uz9FaU9iK0wleVN0bX0+Z3Q1QzlycnhOI20xbmJBUTtYUUo1SWlVQ20tX20tVkpj
XyFBVFkkYSZgNT9TKFg1RAp6KmNrK2NMSntRWDk3RmFGKFBVI0VPJV5zJFAlTjMtQnBgcDQwJWVm
N1o0UX4pN1VIcChFYkwwNUdPfUB+QWJhTjsKeitLRnJ2KkRMcjBIQilkVFBWWGVOUSp1VHBXZFc5
byVLRTlZWmprRG1fZmwhfjBBLT1iRyhLJClgR2hxQW9ONiRCCnpFMkRNUjd8RUZ4bFl3eXxmQyVH
MXhLQkQ4M2syeTM1RzZgeTE3MmhDPnctZkNaTkApaTQzR2p1ODk7XnJBYTx9Owp6bnNMYHVzaTJp
K1Z0JEk+R2wxS34wM2A/anI0TSp3M0UrZihabldeWl8tRk1ReCYpQkliQVhpfmUkSy1DMjYqMjkK
enVBMy07NnI+TkoodH1ILTN5OUp9MUc/cn5qTlhqT2tZOXI5V0xPRy02MikkbVQhMUhheEtiSmA7
NS1UTmx0WCN8CnpDeGk5cjc+QjBmY2A5QkByS0t4Vlh+fVhkNyNOYDlMTyZnJi1ifGN0JHRKX3Fv
UFIxS1pfZGpsRypVQG5FcD96awp6Yjhsd300WSVqZXpMcTRvUClUJkNHbURQJjdTcXhHM09ZN2Ao
Y05HKmp0ck80O2pTRlBxMXhYVmpgMktoJTJqJCQKelp2anAmO2pubTM8VDRAdTZ0UWhPeHVIcWli
fiNTQlh1bjBQN1FHPmUwZ0JKRmFGTTFoNGhuTUBscnhTQl5RfUNGCnpDPzR4PUt0QFZ5e3g0fTZI
dD0qN3pEO19uQDZzQ1dEUCo+S0tHfDxzTE9USWFaWmQlNENVUEZURFVSWiNhaHdsYwp6LUBUSXxZ
bjlNZyZTSi1rPD85VUs7dyUpdkRjRXh9Zz9ld0hhMzM+QF9QMzw/NUwtJSkqYmRpZUMqPngpUSpx
e1EKenN3eE8zRUdTV1RRXzlRWD90KldRNHd3RHUhbSp+YFR7ek01XnUmU3NEK2x7NDVCMlJTPkZh
R1BYenl3KnNPeEdnCnpzT283ZXVJbFk1dD9LSjZzcUY3NkVBUSg8OEE/WktRT307QC0wcyVtaklP
cSN2Xn1qUURJS2xGTiFAISY1X3tVcQp6bDZwSFRsSj5MfUNwNlhOJDV4a1RMPkNuI2c9ZUxQaHJ+
cSQxVilHWjFqSXpfX0t5a142Jj5tNCRCR1IxQHJqRD8Kel5APDdpXk4wQGZhZ1ByM2NhMDQ3Ynh+
QUFuQlVIYkZkdjdBdS0pNHVnOGdqNkx3dXx3ZzFzI2k2Jn5WY2oqcmJFCnpnVDEkZTJZUE19MC0h
T05gUiNVRjxMbCtKOGpxXyZ7WEFFTjFiRDB0NGV8dTZJamB7Y2E0flMqWHshcllZdVAjQAp6QmFL
eXRJJS1BKytSQ2Q4d0NBbHxwKTw9IVBqQmk5RXYqVXE3KXUlJjh2Yz9VRGNLbE1hLSNrfEgxUisx
LXkkRjcKenU/eGs0SD1mbjxEMzElc3hjK3xuXnl3Yzhjayg3cW9DVDB0ZlA9JH1DUXEyNFdvZnE3
R1E/K0ZhQjdAcWFSJm5CCnpYT0MxfGVTQ0F6bXJyaFd7T1FeNCZUcUtkMDgoKEV7dVkyNTlWbWJH
I0xITktRYXR4RTdOR3VaPDIpJT9FJnxrZQp6NUgpZ3lTUkN5cylFJkkwYz1KYlBxZm1rSE5SbVFN
TiZxTiFydk9vMGR2TmJXRytpMUZNNXVmaD9YTCQhbTE2clkKeigrY29wREw3RDdYXnhOKztLYDlI
USglPVJaS0x1OFlydkJrbUJ5RnxEdjI/c3swTEpAMyR+ekc5fjt7M3hRIzN9CnpJZ3A7VkdwVlkl
MUU3JEA7b2MkS1RiciFwTyVyRDlxVzduSSFpbX1pX1hyeiRBTVp4TTghUG9WVjdwV3xtTnVLRQp6
cTBnejF3cWNFWCE8SURDRl5vc35CZ1M8fiFTdSQ1MEgqaFM9b2p6JCg3eW5oZXZaZHEwLVMjSnpB
d1BaNGAzQlEKej9Aa0omNTJwcGdjP3Z+WUJ1MDFoQlpRTDNTKms0Vko3T19KJHpZMHNOKWY2Z3hE
cDs/MDhiMjJHSTNYdU94JjkhCnppczE+UEtIVDxHUyhieiFpWWFoK3ZTPUYpQ2tJRT1RQVNRMVJv
Q0BXWnxeVnk7dFdzKyhWVUl+Jkhla1JBMDFDIQp6VF5Re2xeSGhZWTB2XzlPS18oWXRHQzI5ey1W
TWplbzRqXjtsZUBiJlpWQiREOVMre3V3RFVtQCVudjxKeyR5P3kKekx7PklvV05STnF3JWNRJUlJ
QEFaSVZSSX5yKnZ7fiV8ITtRa2VvYkEwZCFVNWg5a0AjelAwNCNrNCNmPTB8a2FQCnpRKXBCeCNR
PlRUUSMmWDx5Tmh5KmRaQEliQTdBJCVISzUoU1pPPVl4TkI+ck5PK1RnUWMyUV8tM3B3d3VxYj5H
agp6PSFHZi0lckYkP2xsSjtORzxSYnBpMDZgWTEmOSkqdmpNTk9AVkBSUWhBND1FMyVgYVN6PzIt
VUIqNE5XeUhvO1gKekt8SnlzQnxzTkRTYkFGXlEmSVlJMGo+YUkwej9WR2d5KWlrKkZfbUhMOz0p
OTBpcG1AZEhebjZqUWNwS3pIQ0RvCnpFa1V7RXFMcm9DbyZ6KyE3TjlzM2ooY3s8R0hEdFdrayVA
PVBpd01DWihSb0khfk40O2xad3xjLWQmTUluIyZWMAp6TEtVXmxGYTtGYD44TFFzTDRRezwxcU40
Ul5Sa1owT0RkX2VwXlMjR2Z3IzlVaS11ZDA7WDxYTGt2cz82WFFnemMKenpYfWtBKEgkVl9OTikq
eHFCM2NKT0JAWj9odFNeWS04NU00Tj9vfklzUjdwcCU1ZSliLUYrU2ZaPUVWTWlDWTFiCnpIbHE3
IUJeKUlxXiR+I0xFai1SZkB3T2N8bEpoOCFvaFUyWiRtOHNqYG1DU1I2NkJ4c1JGSCt6XzwlTypP
KFhMKQp6MyZfQEYzRVhFYmE8JTB4SlUlOFl4PUBeM0AmZ25KQWpQOU5lbENzVjs0PCt6RjNAOFcx
O2IkcV4pZGwwbkZfRUoKejg/PT1ZTCt2T3phdEVjdVkwNjEqcXIhQUFEJERWc3M9e0VaRlQpTWFu
bUZvZ059PktlKn5wMCV6QzU8Q140bHs8Cno4fiQ/all7JjFmcDZ+d2IoJj4pLVhPRmRBSzVAQUQl
Kmd8ZEN5cE96SmFYKHshe0wqTW5oJjJrKzUrTTZTbGh3Vgp6TV9VZUBKa20wSntCWDtfdXx1c3Ij
fTJlfjlYcigwYXI2KT5Va3xzb0EzeGxWJDMxKEY5Qmdlckc+ckRTezxAflYKeiZkVTBadyZJJGBu
IUwofW4lcylVeTFlcW5ZTUo9Q3Bue1U3YGh1ZFNgdXpPSHk4T0pSYG9mJjErV2dVfkZVVn1FCnpG
R3k+eUZHeSp3RWw2eXNEfnhUYkR+TWBwQz0lMkhIOCZQVHZmNyRUIXJQalBMZlY+JjE2bXBpe2hB
dktlZWxuRQp6PEkkX051RiRLd0NmfT5FSHJLUE5HfGpjUkFqTDV3SEZ7Zklncyt2YXhBUFdQQyE2
JnkrcFVjcD5gbkZUdGNeOWQKem5qMCZkWkN0SWlkOX5nfDZDPE57YylaNmhseChgaEtqVk07enlI
QVJmQ04hTzdEQF9+YjVLcWc8PkE7Y010ZExRCnpgODByKEpXJFJKPDw3UG5vJX1zKnFOKytGc3RA
KyYzNCF2dlNETD9nYSZ5bjBNUyR2aiQ+VGg2QlR2ZGhpQ2NMaQp6OCttQSg2PGpGTWk1Z3ZSeit2
KlNmJHw/UyZRbERPRThOUXlpWjtjMmQ0S0lWUHJSS2MpKkpscklQWkpoQ31+U2kKeip3b3xHRlFP
RlBzMj99bExwfT1rX019cUkyZENyYz1IWU88RyEjSW1JPXlMTXkpJG0kKjs1MH54enVJYVF4elBq
CnppcXhHe2s+V19AJHZkYiNhVH1HelRMWVpUczNoOCRpbGRDRkN+NllgJTdpalFFaHN0MjdQazkj
K1BjTXdebVdgeAp6UDBiNGN3SHQ4Y0NqaXZjSW8+cFJ3a0opVDx2fH0hXlB1LTk8OGk3Tk9gaGU0
P1lKT1BUQHJ+ZHIrN2VBSXp+eyoKenFeVFEmezgyZG1uUDVOe2c1ZSoqWEBYLVY9bVFebzN+LXZA
TXtqQFpOQUZJP1Moc15QSkQma35MTVZPZW9HPl5+Cno7YUp4WHI8d1JRPE4oREdCfCgkJFRvaUFt
TnM+RU1mK0huPzU8aVooUjEhI3VhMjFFbnF5IVdwcnFKXkI4RHdVWQp6UGhOaE5sJF9RfldmaCYm
K31ja0EwfDx9citiXl89ditMQjR1c0drZnRGNWdTZFkoOGkmWmsqOEZ3Vn1DdWdgQXMKel9WT2xB
ND0tfGFeQ0N3X0ZTND1xMHlPUVM0YVEhJFkzR2dhbHtZTyUqQXdUU0hrcE9kN0FyVlV3KCsjcEs4
ZnN8CnpHNX02XzxjXlczSHg0PWJoMU9DP1dGdGshSEImcyFnUVI4eG1VMjJNRC1YYV8qaUQ1Y0p0
IXNaTHFgPlooKlZecwp6NE4rNjtVVFNTMHJhZ2VDX0tzbUhEI3h+Nk47YFE2SElTYEs2fEoqRUdy
MGdvMDRLbmMqN3tyazZyY2Vga2goYWQKenFzeHpZVWxNPHdwalFCakF4YjYmc3hpYElORTZeYDNf
eEwyczRyOz9vfTA9OUgld29XMDg9dD5WcWxVekh4UiVICnohcFBBTztLVUxATl5xPmk1Zz49dXdR
dytiPkFGKFZTT3RKV3UxTnFXbHdZZHFpJjhAcyFCe09hRUowQWIybyheeAp6QUJhSHkocDdtRi1S
MDEtbTJqSGlLNH5yb0s7YlYybnVmOCslRWpWek85SUBkV1lscUZwaFo4UUF8bEh2SEBrfGUKeiVT
cilJZyo0UWZPTTY+MDBaPUtsemIlfihjNDFWPGp1UWF0YTk8X1BvSyg9RT9te315bz0oRn1GKkg7
Z00xeiRXCnotPDlHZDZBcGpaI0lCP1FlfDFXNW5vWWhJbExhezlAZzJLUEReITBhMDJGN1R4USgw
dmlafGAtdSVYOXcxe0ByQgp6ei0+R2VvTztueXt1UnhlXjNTdypIbkxBQEA2cmJDMzFxVC0yM1l7
MHdyPHYtP2REcUt5ajM1IUBLKHw7S0lnJl4KeiNRPz9HQl83TFJCcDFaYTYzKGBTZE5WQVVRSXI1
bil8NDJ3alomZ15QKTN9Uzs0VCRyY3FfbkMxWWp3YWFJPXAzCnpAY1NRdikzelQwYFhqPy1ibUFa
aU0zMl9mI2dvbCtePDRYUkghZ082Yk5BWjdVKyYhKWB1Jn5qZ1AtNUpHV2hKKQp6KXhuM2l0XzxB
MmVQIVY4b3ZWWCk/cF9fYmJOQmpRbmZCZWpkd3V4IW8kTEU8LW84RzN7cjJeSlM4clkwZjkyTm8K
emVWNmZnPkNXezc3ak5HPGM8SmBkTChzdkN4MzM+S2ZCb18+d0N+SzdpJGtYYG9mfGxMQHl4KTxP
WG1rcVRza1kkCnpgSm9lK3BvYH1Sa0t5cz88I1QldlVwX3k0PW57MUt7TG4hflVBbk0kfEs7PDBo
YzkyKUo5TyNYLWhuRkBfViEjawp6SHs1bVEobXB9Z3VaLXglKSV+M311TmBRSVQ1ZW9EJn4pP0t7
KVgjVTU3Yj9+dzZGSGNnYHNOdmB6ejAjOXc8Rj0KenZAYEYoYTclaG1YRWh3Tnl6dTx8QileUjBh
SlImbUFwNUEwLVIyPl85JjJ9ZD8kbVgoSCY/VD1UMGhncSNOaTwjCnprXmxoel5ocmNQUk9DWT1C
Y29xJUNXYFk9dk1raHBBVV4hYE9IMUVAfEhhPk09fXNRNmImZF5gVzJgM3glSE16Ywp6ZVUmQlok
X0RGSkU7VGpWWHlCWll4SH0hVFl3eWBabTNPWTRzZWtke1RIRWhtLTBTJkhEQUBkVzBqTTlANUF7
UU4KekQyMWwtemptQkFhKHF+PElDeW9PciNSQzQ5eWR4Y0FOODZ8ejBtOzApZCFNWjlxbTBucEda
JDIyQzRmZVc5aW5CCnoyLUYoeylBMF4oOG1RKDVAKlVLZTwzUUNKMDREKlM5SD1hNTJiQ3NscW1u
cGxEdm1henFEYTZ+PFImVk4qZypOPQp6bjwqI1VvSEUxaGFFOEh3PkA4ZiRQO1ZFaHQ3OCpQKiV4
PWB7S2ZMZGNfP3dqWDVPXjk/bGZoI0o2c31uak07WUsKeklYaEdWMnheQ3RzJThZWCRZS3pGI14/
Pk0pY2NjaHteZXRVKCNKbVo8XiV8alp9Rzx5ZWQoUmEze0UlKUdjfHhkCnpNMj4xQUt4QGllenwo
dmpCMz0qJT1MejclUWs4XnJDMipvN1hjQ2BgVnN9Y0MrQFhAV1AkUz9aOH54JCsrM1pmcQp6OUk4
MnM7eihJNWtAVk1LYlo1enFQWURWJD4hPTY7X353PmdiWGc0fD1PbHM/bXQoVD8pVWdMOHExRHc/
eisqZX4KekpUV3s0VllBTjlTOUc0ZHl9U1RWeUQrWlhNTFQheTB6NyQ9QGZKQHFUSSZIPCZJQTJZ
OTtpejJBaGwpUXc5TFF7Cno9UmJuNUByTk0zV2RlZmhYJkJBcmw4YVh7Yz9WUWNQKChlcDBHbFoj
cWE5KVBQQWFZSnB9TktheEp2X29KSmR3OQp6NEdBTzAqN20qRmRmYmNjJDY7KGk/bjh5ZGh9IVU4
VVFzdU47Wik4fSZsKW09YD9QWFBBQDBRR3FOeThObXhJMmYKejh+e2BmMDRXeSQxQFIrKk58Rng0
bF5uM3hnQFFJaVNseVM0S1pmKUdSRmQ/TylmJGxrRyUzRTB1U01UZmx6fn4xCnpUeW0mbHhLYVFz
MTlPWkZXaWt7WE4oTkxpJGtONGxQeiN+QFckVW0tdysyOWo0TFdyPU9LTzBsKjhgT0o5c2B2Kwp6
SzJJR142fm9qYntCdyh6VisrcF55O3twTHZOT2JBNGgtVn1QdG1rJjFeJntvSSk7b2sjM1IzazQ0
X3ZJQl90RzYKek5rSkxhUn1AbExlR1V5YVhWT3F9SV8rJnFxa1YwZUlCOX43SmNnJEpZQzY9NSRL
RW95UXUoeTZIST89QE1BMlklCnowUUh4OVArdWBGM1ohcUxpYnpBc0A+WmQhP1h6Z3RtUHJgVnkt
T3ctKlIySUs4TElxQmFHQGxDR0RGVVotNms3Kwp6NHJpaDRSKkVwUzl2eEFkYkFMJVFDO1ZTaFM5
KEpAQjVaMG4zMT9ocGs+JVFqV1ZMWSNaOE8hdjcqOEtUQClaQ20KemFYaU4oSWUlOWZJQUo2Z2oq
KG9YQUtZcFFueGMxNVgxbypTcis4OUhtSmkmZUFaalFGRnhBRXA3TEk2dVR7VlFgCnprSyllWHNZ
N1U3S2kpdT4mYX4zQzNtdFUoTilPJD0tY1I+JDQke05oZCtFYGdWUUJ4JCQ5RTVXX3dAZHVaPU9D
bAp6XiEybGNOQjtjYztnTFZSY3pvbmZwRkJHRE43a3AwantvdH4kMHROUklyV0U2cFB1fX5yJXo3
KTtqP0ZfZSpkWVUKeilCcFBFdm9rV0N7bnQ7UWl+OCl2YDdifHZlKlZpKHBQJUUkLStsSnQhV1ct
Q3p3cEpVJit6IS1CQSgwaTt1MWIpCnpVSEMwdHxOUFZFN2UyQDFaJHc9ZkNBfDA5WiQ3I0Iwe2Bz
dVBvSDBXYHNzYEZrTVYwaHtPcj88KDR+akpgUnZsZQp6JiFJMHF5WnJFWHpxI0BOeTclU2htdjhe
fXYmKitXfEshcSpQaFZXVF9RfHNnUzYpMGhmOHA3fnZ1N1VNSWVHbG4Kel5+MXYjJitoRiRkOEU0
dVpkck1BTHM1MWBOcVQlP2MweW93TzA7V0lZPjBKYSg1YGkhRjgxMm54MH16bXgzYD5WCnp5SjVx
eDA4IyVXOHtfQHRLPmVLPD98KlVkT3VDYllSblkmI0V8a3p2NGlgIWFsdXZ2Z3FkWVd9JnpVaH0+
MC01Ywp6dDhfSiQmQjZqNExKPXNoOWA0TEpkRkY3JXR2ZVQrS0xiRF5Qfkw/PWNfJTxoK1FAP29D
MHh9V1U5a0JLZDhrKCUKenNMX0ZQQHg7c2I2PkxAYE93T2FjPy19UF57a00kc1VjSD8rR1JfO1hE
QHc3c1QmejQwSH0lR2heJSRoJm58Z2BgCnpvWm5ZX0ZhbEgzU25uflBpam5FaiojdkNuI25KN2ZR
UHxBRz9XfFYoJjkmTjxfTFI2I0pzUVg+KTFCWiNJWmBQQQp6c3c5M0o2fnxoYGJ1dDR1OEI7K3gr
XjRYMGxveiY8YT5MQ2lIYDBiO2UwST56dDxKUTFnJEZISjt6aTE4LXNvSE0KeiE1R2dRe1kjJE1m
Xik7OEU2JDB5MEdlMH5SRDlIeW8zVm9jUTZWJmNHMmpQOWp9dEszZG1HVTc3V0RRKzl7YGd0Cnp7
ZCRUb3kqdCY5LWtYTW9iRy1sMml+eVF8SjlgWElRdnFEbGFoaGE/R1EkKHJfMVNxNiteNFlzQzRv
fm87N09GfAp6UD5uT0A4I1U2Q2pzQW9ZVV5LU3dWaHxkU0wrJllGX0BUSWRPQlM0O0JKdk5aIWct
a3tiWFJvJkxpJGxuRmJIdGsKek9NYD54Zkl7QT55fWgwNDs1PjJXRE1kRTY8Qjk/WEMkQylxQyht
OHY7cUhsNmFaaj99P24lfSpwMHMoMzJkIU09CnpQUnNPTk5vfWJjRGhrfjJKI3hwXztEeW5sRk56
b2dOcEUhfDhFdU5FalRVS1NXfHU9WWopazx0dHNIQEhXWGI/aAp6Rl5MSDA9WE93ODcwTnVAUCFa
OEZna1VAMDdEUVBvKUdaWDJPMld5VW9fI2AqWD1tM2s+SzlPeW5jcW8pO2Y9Si0KenJJSSNwMSNr
ZD5HIVRmXkxAO3trPlRJLT9YVHlhO3BPRkFqcUk0QytVP29YI3M5M21KRDN8ZmJiM0gobkJ6PTx0
CnowRitEJk5eOz9+RWViTmxiSThEcUF4ZX00UlJUeD50UiNxJTB+QllzV2E3fnVqezxjdTY0YmAj
O0llaDdBNlErQwp6YFQ9YW9BPWpqNDJwS0A9WmM+Iz0xU1V6Y192SWZleD5Fb3ViWmFmZj1IcF55
cEVMfVRGdXNkSmJ3TTEke2ZWXkIKekIhI1QpKCNnKzFrMjJDcXMwc3pEJX5nNVNVN3RZJWpqNGRC
RyNZQXchLU9vPHs7bmNBME8jcG9Vb3s9KkRGO3YkCnoofCl8Wnc+Z09oPiV5dE8wJkQmRnxLSUtj
VGltX2VOV34jS2w7WGFDTFRzaiElZjw8MDJ8KGlWJSs9Vnc4dyplegp6NnozZTJITzZAQ0x8R1pX
Z1V7I2NmO1VLUT1GZSZKYH5SQyV1emp9QDwyeCYoc2JzVCRGND1CVUMlWX0kd0EwI3YKekpuVUJp
bnNfd0YhRWQtc3lXdWhnQWlvckIxRERCOyh4TSN6T3dOPi07KC1qNEg8am80UUI1JiZPY2haJFNy
Ym5eCnp0IVhyZmpNeDV0aE5keilkQU4kczFEZFghWktXRipKTCZlLVViPVQ8S21ldkVfeDk3WDJM
fVpgZXxVJnFKVVdhPQp6Tmt7MEQkSChaP3JebzVEWEQ4QDQmclpfayZyaXY4OGpvajB5Kk52c2U8
SkYpcFBxeHgzO04+STNuVGpNQjdNUjcKeiVfYUlCPit7Uj48PnkhRSVpbXQ1ZkJvJD5MQklkdmBp
T3BhZ01KVkZEXztCWng3U3wmPyg9SWVgQjcxTD88TVFZCnotfTIqKVo9cjlYdWtibTRgU09jdmZC
TiF3Klo9dEM3bFF0UGtBTUhXLShMT2xjYntNVjs8dnhLXjRWYGN5WXc4Owp6X1Zra3s9Tn4/TWVD
Rj1jTWB2ejR4X3wyOHlfPzYqK2BNLTkkZCF4eDJGey03WiMjVG9QeFV9Z08mLVJGTiMoXzkKenB+
WDRMOT1SQ25CYDFWemp0PSVRXm01ejIyLXx6SmNHfW97WHVwMl8mKUVxMSQkfFBpaygyQ1NeR1pX
RzJnPHFvCnpMTE1tUlFRa1ledkVkbUFscktPLXgkMGJ7KW95NGdQZnplcHQxWEd6diVmZCojTU0p
XjUxLSVae3hic1FVbjVaZAp6RXBPeX4hVnNrfSU5RHI1PD5pX1BtRVJzMjwmRUNSYDx7Tk44enxR
bHEqJDtpZ0RBbX44WDR6X1RYYH1talB0fkwKejE0JCM+ZEQ3ankoWU56PmxzRGN1UGNhdVkjKkdy
VF5rak5uKEVQUWR5XiMqN1FPPVlDSTZkWkBkJE15ZWtDMm5QCno0flYqVUZvTW5qcUtAd0lwQENY
MllBZzFqeEA9ZEJAfCp4cjRwYmF4TUAyRSNSMHgxNzA2XnQ0SUVBaSpIVU9adQp6MEhDYX1qa2te
NXdtRmRUVDQmUE5iKSZAXiRVJilpVnNwK055LUZecTJIMShtbyM8Y01pR0NzeyRQRitCWEtIfnoK
elQlJGxaTW5UdyYwfD9DcjZrKVhZSzdpQEhzbE4yUzA4QlhqRzg1MT0lYnpBRjE8PUdmZml4TUtn
N00kZmBTQG9SCnpnYXs+KExReTBHbHEzbkhAVGVwUjAwcWViaShnWjRxZWRMNkQ3WmB0UXBhO2gl
dWd7dU1VKFE8Y3grTEw4KmJNMgp6ZDJvRW5RSjdnek1JfikwMFBSOGNYI24qRTN7aWNeSjlTYkVZ
Nl9+VmFOYFd7I0Y/azRzN1JzVGlKZDJ9VF9RTlMKenhfSUtBcGE8RClMJDgqbEpGVk5+UEtLLThr
UCZtbVNyJXY5dn4kSlJrTUcrODFvVHlSQmZSY1VEcTZ3I0k/KDk4CnpBYFRyK0RNRTAwI3BXIzM2
NkJHSU8lZDVTbTY1QT1IUyRocUwoZ2YpRXhzT1ZYdT1xPWVFXlUmQiMyOChNfSpENQp6dUR4KWdo
VHVyeXF6cTJ5V2FWe0dLdilDV0lha21vWW1DTSlqJDM0eWgwdF5zUmAkYFJ5JFpEbVl0YWhONVZi
S0kKenUqNGItUTM2bzBKRWFJdG9CM25lWVliNT02RjU7YT0+ZGA/alJLfXw7N0lAfGNBPl9UZi1A
eiNSMTgpOG9CPk1ACnpWP1o1QDNBTH50eE85Q0g7MGN1akQrPlduZz5hS2xJYmN1KGFGUig2azFS
ISkhZ0djeks/LTF7al8yd0NGTGl6Vgp6SUByMlgqVXlHQnV6e0QzYVVUOVZaT0VkezdQJmF9US1H
NCNWJD5KRmVYMSY8d3doZSh1MWxxWDI3cGwkMEUpK1cKej9SZnlHNTwxWFpDMWAobG5OWUdoKz9x
anlqcSVpOTZHRlhaVWVzT2FLcG9pQFIyUlJSXjg3VV5acyU8QiROMGArCno/VDJLRkV+b1Y8IXtx
UnwwOGsxZUpYNEo3YyNPeDsjRSsmSl5fZGBTWmxMbEBTfV5zVz43JSMqaTU1PDBmY2w3Ugp6KlVx
SHYjPihWcXpLb28wUis4N3dicUljTUw1MnpjSkFuTEIzaTMtTEVPRnBsZ3IoWno1TmZRNXEmN0hB
VH0+RnQKenA8UjcxTjxqfF96KklebjU4XjJEKE9TOXlkTz9OMGFJI1Q9cmZWMTQ+REp7Z3hfZ2Jt
c2g9TCk4V05uUSQ5TVA5CnopQjZWbWk0YioyZkdCPV5fQ1NRRjdtdHE4M3FhSC1QZ3V3NCg8ZGlI
SnZ8QVg2N31xflQlUTRgSzZgI3YmfklMeAp6bGs0K08mSTdQbTdlc3d9NXMtQz4wNVNscCVjNmRC
TUp8OTJBblBoVlc/ak1PTiQ+SU4qOG8tNTEtT3p5bUg8LUYKemNmYkdMJjJSNz8+bnJeOGV9P2BE
X3YhYilgU2p2JVVwemhrPkM/eGpwRk1uVl44VVNCTXtlR3thXk56P2ZAZCRECno5WE5YV1diZU0/
TjRtTlg0ITFTJDlqTEdEPiNFN15ZXl9Le3R9Myo7Rzs+IUBSOyl1eFQkbntsUkxJKUkkVXdjdwp6
KEIwfUd5SWtoJWE8LWhwbD9heFdZdT5PTzlVfWt4UXBFcUBmN3wkaGF4fDI0cHEkVVZPY3hyO0tn
T30pTmkkS2IKenhuVE43bE5VeyZGaj5vVmxhYllLY2JtWXRhTXl4OGJyfEl4c2w1OCtYMjxXSi1z
PD0+OHBeKkJQUF87SkhQUXxCCno5OFQxJDVUeXVFV0JafVQlUn0rMDdZVSVvXmgxcF4mVT1jc14z
ZWIjSjNjSiRoI0tqTTVeNF5GPEhPJjdgc0dLdAp6UTl8ODtPaFN2ZnM4Sz1sQTJyJWpEQ0ZjRGRv
biUzaD4hSUlTdD1JeU9XaSNZTT5oXmYodUpXPUlAfSZXeTtaeFoKenh4ajtKKEZhd1E/MTt2M0pF
NXs1S2hsaXkhaUBuPTghMDxARSMoOVFxUVo8UjU4SFQyMFhGM0FVYEpOUUpLI2ImCnpsOXR2XnhL
UXxedWsxdX5SVUZhTXkmYyt0WT9BfEUkYE80YEVed3VHQSo8dkUwMTZPPSFwRXN8e2dIazBxbUti
bQp6QUxFfGhMP3dUP08jVT0hUDVAMXJoeFkraygtczhiXkttaTtacS1hPmg5fSYxUXttJmRLTGsp
Qk5YPTRWbXI5aTYKek0yJiF5bjJubF4oNzlhZGNuKFFIXnRwP29YXn5DPj1AX05aMkdkTShfOSYr
NF8hXkE1VEJ4UzM2OUNkRGpPJSlQCnpGdmVxZVk1X2RxQ34jaEdFP1RDT2gwYG5uJFVCS2FhZlQt
a3o+XztVST1KSldvamFMWHhGTyU8TzFqSGtRUXpQfgp6M2x9LVZiPXJ5Vmp8PTNFLUBobF5IWG9Y
JDdLampnODFDMGEoZm5ueHZge09GbChtemc2ZXlMSjhELUsrMEUpNDcKekE7eC1ANmRCKSQlK25z
S005KUBaYX5+alNLK3Y4Sk1VNTFoR0d5QHk5UkBHSSZeb2RPakJUKCk7MlJANUgzazg2CnpVTSpn
cDBvWHZkKU4xNT4pJlpnYjE9PE1IPnVrYWJ6ZyFHWUdSZEtkJDkpUX44UktJWHopekNpN1B3SXw+
Nl8qTwp6YnxtNWNxM05xSzVGbCEtQnYpIT15ZUVNWnlIdDhgd1JEaVIobjdGKD4zWn12dHRvKT5s
I2tJe0tBYX49eld+NF8KenNTd1gpbDdOYWtvZk80Umx9ckxXMGx3NCNQXnpkYVB9T0RTM0RVcj95
JUhnTEduLVFVYEtoNGptPGxRPnMtVmBvCno2NiZiU3JrPVZhPmFSPG5maE0/NnQ9WTc5UFhYPWdE
I0tXLW4pZGZwKEooZ2pfT3xDQCNGdDlfXilkTVcqJnltSgp6QHR9QDhKOERaZXJzXm18JUpmI3Bf
VDNFZkdXaSVJeCVVUDRpTXlZOGJUPH5Ed2c4fGNofm5wQlF+NnRAejJLS0wKemNoVyE4Mlg2dE9Y
Mjg4I0kqRTJ7bm9HX1c4YlcjSVpzJCFEeTQhKmhMYmckNm9IT084ZFF4ZSY1N25TenBzXng/Cnor
VWpEZDh6Sn5YUjUweEMmalQhIyg4KXM7Ym9OKmNUe18pfXs4OV91eW9qO2YpbyF8WHlea0s7V1M0
MFd1cngkWgp6P2hlel9kOzgheHZHJldzTmRoU0dAdHxCSExfdlRralBVNkJCaTIjcW40bE1yazMl
TyFKdmt9WUNqaEVYb31MemoKejV1UktVUkRKZ1I5Tj55fDk9WlUpVnFGeVYkdEFmeXxNVzUtWXFU
KE82Rj5AajM5eTFJYnllbV9VSD1aUWxPVDRYCnowOWRUQUtMNzBVcE1MWT0oIVQ8bmUqNUluPkY0
K0Y5KUVEXyM9KURIRkFRQmdlWHs0byhTdlJLaHg7M1FkJUxQeQp6K25TNTM+WilffGlWSVNjdih1
eCkodiFseWskMmg9NzIrcjRvIXAlcl5tY0J5Uz4jfTZJblVrM1d+IV5iYDNLdWYKek94fCZ+R1dy
R2dMS3p1TmB6SVotbWd1SnF5dVVOZERjOyRVMmc+PFE5PWxMSCVBMVEoLWJoMF4yZypOS2gpbVI/
CnptQWFaNlklRGhIYmFPUDF0anYkN0p+VTh4P0I9PHE3WjB3c2UofmclRUtxKUBiNXl6SnphNX17
T2RlfGRhaD9jSgp6R0FXR25wMzNqJGpWe31LNmAmTnlkSEhhbl41dnpRO15+KzFuIytHb0h0TlM1
RDMpJlFpSTFaSz07cmBkNVduXlcKejtxKWdMUW1+bnFOY1Q+fjFFUWtvT24oPzFYYkdlcTBpeFc2
UUM+LWNKciV9bTYrbnJCREpOdGpXZCpJSlkkenZtCno2TExebkRCMGZ2ZU5maTQhX3RuNypWJlZT
e3RpLUc8VmY9WU9ZO0N0YjUoWGc1PEVHPENFYCgoN3UqeUVDfWdFQAp6PGFRYn42KGhZVmJOejY/
NGRPPXQpZkJ1bzY+djN1QT5WUj9sPSY8UFRyMXEmbis0Wk82aGptd3hLSmBGZiljfSQKek9tZiUp
YTRGJk51XyRTKkN5eDFNdEJwdVc5blM/dDtgblk5TXQzbk5LVEphUUQ0bitNJFIpcXZhPn5lUjBH
UEMrCno1Vkk1WTFsWWRBU3IqUGFhWTNkNFBrREtpb1JsUU02SzleaGthY29yYUJfOVckaiVMMGM1
V0VpeCM2cjA7QXcqXgp6PjgpXn5NYSFIcXZVM0ooSV4hSVI2VFVaWTB6NkdlSyExaGBNeFNhU3E9
WmV5Kl44MFEoIWZVRzUpXngpUWJCMlAKekJGI2NlSSlsX3dZPFZxNXxJPTI3VilRJUpQLTwyU0Fn
VWRwKk5yV15lcV44ZWctNXlDQGY+UHB3ZTxeYlJlRStDCnpgR3dTeT9Nez8hVDQxWFZCUmZASG9Z
SH1scTdFJUdPY3grWmI0QDEzVXp2YT9iUlJLOSR0ODI4N15wU19uJmplLQp6QSFEcmxufjJnaVZU
Y2w/dzxTKzVlYlpiKGxPI28kOGhMSTJzMlZMOU9ldWBePFJkPFM2VDRmdzchaGc8QFJTYi0KeiNI
ZFl4ciN3SXFLbkQlJjB7RjxLMDg8UF9HQkZeQCNsUiQhSV99LTY4eC1Kc2drTWgmSHdKT0dnJik8
PnxEPWc/CnpJY3U+WVh0U2RkaXdEKHxte2R1WHI0PC13NjtvJGo3SW9KcVFYY0BTOX1kKCZZWXEr
VkRGUVQ9KTRyWiteZ35xdwp6c0VSUCElWXNYViZxSkFIUGxaMnE3UHtoQ3hIVUI9dWNOWTFaSChg
ZkRhZCpYeG8tSDd0UE4weGlSTik1eiFMfF4KejRWOGFNRTdYMlBZYzx9V1Axd3JnWSFyfDIlPU8r
U1FeOzg3VUR+QW05dkxvcm1sbjxXSDdRTWJueyphVTVwcXZICnpfU3pLZXdpP3xgV15rTz9aRX1V
dkJ0bGFZVCY2dTMkQFI5U0JKYGFfeFB3Wl5fTGI3PCE8RVB9KXphbE5PPm1jNQp6PkVgN1E8ZH1N
cFc5cCt2MEgoKXhje0IlTHkxeCQpIzNRPT5eISZqQUxDPkprKDRfZUI+ajg9KD5lPDdpYSl9XnkK
elRvZlNjYFF3djxVT1lKXm1qcUl5VmReWlBpWTBAbkYjej5CVHF5PTg4N1BmPDFZb2BWe0w/R247
cih5JXsyUDRrCnpTSTkqRDFeSzV4ZSl7YkU/Pn44Vns+djluJndjKnZAIThMd0pPblZeSk8xZC0m
NypnMlR8SVF8JUJBNzY9ZyMmWQp6SWRRQ09ANDxifG9yOFRmXl99Z2RyUCVWenVCXnlSRVgrKnxP
SEdkMDlUVj5CPGgkRXR0RWIhYyZDZDJWRDsmMzQKekVWSjZRTmQ/KWEqOy1tIWxRbElwS1FLXk5l
QGhjRjhAfT05aHleZVByIThXeXF2OVJDemNXVnNec2dIfCVLTz5SCnp7YFdnQHB7Qmc/I3hMMjBu
KCE3SCVITiRoTmdnUEZ8OSNiXml4KTBtd15HbTQhbzxpV0dzITJkdDB9ZVgjSjx3Jgp6Kkd8X3hk
MnFlJCVUTW8lZnBYcjtsZShlZ1RZMFpOSTZTcj1ZSUlCYV5QNEV4eXM1YTZyfDNxRmpQdkF+RDBa
WXwKekM3WE9WQDJMUCNxTWwlIV9rPWd8Y3RoYCVhaH0pfUNCanNKcGVHN2xRNnU1PGtzRXI3QUBr
OV9RTGh7QWpyMiF4CnptejJFQ3s2YG1aJUZlX25mKSU/YFhXPk1oakhmRkhWZ09NUT0jPmMpQWdW
c2tPJGR9MSNvMURCZ2F1YFhtezM7bQp6Q2R2cH1OMTFfWkBxRTRUYWd2YDJnfTlwfDN0XjNJSlVk
I3codztPbGNGO21xMX1LZDBSR2N1KjEyYD5vMX5lZkgKemcpITgwVlQ4eDBNaWA8WGV1Tm1MclU5
Q1NNLX5JdExYNyVZJH5hM1JOUTlgRjgyJDExWjxhRDNpWTA7NipoZDdfCnpYTkBCekhOY1p4ZkdE
LWAjUS0mVGFSZChVTXhpfUFtVygjMEFoZXkwIXB0SkxQZ05NKkhCJj81OSVebXY1WHYkNAp6MEc9
OTlRJjNTK0Elfn1rQE5mJDdoeDNIWWxaU15weGQ1Q1Q5OT9PZnkkazlJVHhiKjgrKmh1M0EjRm92
ej5eY3IKelNJNVdgNGp6Qk1yZVdrY1UydllULUtaSj5fYkN8ZzZpI3pBVnJjRz9TU1N1Y3NWNXxY
Nmd5SWpefDM7NGx0SVFACnpeRClZK3BzNHRJSTclKEomOT9gbU1te2x2K2s9WTJZeTVnTTNxa24k
MXs3IWx4X20+YiR6fkBgaiN5eShQNmtqYQp6ZkdBYm5HeXAtYDJ0PSpVZkRASTA3SDwpeEIkJCF8
KWgyZVFBZERHeFM7a29hQyM/TC0wQlpDakFje2RzZlQ8RGIKejFGWW00PHhHdnxQO29ZREJwPTEy
SzkmR2EkWGpWNnhWfXQpciN2KXs9T0hqSSFqbFJoTX1eJVl6Pl5BYEJpM3RTCnpOXismfUlPMFl6
SU9XU21jYk9SNXJJNU5fNT11MD0yTVUwUnFEXkNMR2RqNmRwbmJmQygkZyFieTFXZVZRM3dZcgp6
bGUlaD9zSFpsOGBXbGdpWVIjajtfN2RGMkUycTYoK3ooWXdnS1koSHJfdXBnYXJwbiFRMGdsNHAq
e0lIMWZGaEEKel8zPWhqN19meG1vI3g/cUBJLVB6RWRodGJSe0B3OW9EN3dKSz9jd1kpbkMlO01a
ZHlVLVd4KWg8YCYmfCQ9dSlyCnp2TWApTD1GMkNOYE8yeFokIzRkKCl9MktMJWpTXmZNb25TRUUr
eTJRYV5pTVNhbUZyJHplQUFPaXBFJGo4REFmTwp6c1Noc0ctZVFkOCVDUkxeamdlZChVMTRaQ2sx
VyVyYl9CcFgwWndxNlp1SFdfVG01akcxX1paQjB3e0shN15LKkIKemRkalg3R31lODMwX1JCLTsw
Y2JDQnAlXzNWPn4hZDA0RzUqX3ZzWX1pb3I+eVBYSklPO0IqR2hNVHlXUGZ6dWNWCno+WFZDckNM
WlVCVj4ldykhQSVsSWJTJXo0dkdDcnZwTVFHd1lYSCslZlRjZUlsKWlqP3xLI1RuP2pDITdge3Qy
ewp6SD9BR0hiTlMtJVJlO2pAUV56fGA5eSMyODtLMDY/elFNbHdjRFBLbmQpaThpUUhoWFFVNn5i
RVIrSm8pcEIzK3cKem9maE1pbmlPc205fX09OEpqOHBndWRqPU4rZkxpMWpgbXlDPj99PkBTKj4z
YGJIbUQmbGwxbFZLVX10TztYQkFFCnp6YlYwITQqREJhZkEldilmUmZDUnBKP1ZrPXtxMllzTSRh
Sis1Z0s4PHVsUHgmTXdySGNpO1c+TlRCP0VwJk0kPgp6b0VifShzSG0pNXdxJWg+YztKcXBpbygh
fS1xeTZFWEFZRnp4UDdWbHZycTUkZSo1Qlgmdnl1dnwycUtHa0k2JWcKempQcVV2RDZ5Xmw+RDNY
NDUmPXEtPXRlMiNwJWVqMWFoeH5TamduNWxqTmExd2FSNDxrKSpDKEE4dnwzWDRWXjJ4CnpRekFA
PlA4NDFUTlptUCtOWUBVPChWMmxyK1NlUkZaS1ltUm8jeypeczR+Y253NF9WYFI3VEp5TilLRXw9
PmNtZgp6MH16I2c9U2pYQkRaPGtQZUpfXmVVfk5NaSpWQHQycjhfWGorWDtZajU9VkFJP2c9QlBk
N2pXTmhffn42QVorWGIKenB5WG11OyV0OzBuJjdyNWtKU2lCJjA7cjcweDd2OEJ7QF5GTX0qWDhq
VXkjQnhLTUhfIXFtdn5TcGNqI2ZSKmA2CnpCMWx5JDhhTHpPQFdVXmlvSUxXOEVoPmpZUSU1eTV0
KjlzMTFHTmliQHVzRkdEbGYtY0k+dlUlN340Z0pNK2tXKgp6UGZ0JkJhfGItUnhCe01CKEN5Pyo3
Rk4hKihacmNudGFoVE1kTUZ+Kis9O3hDQmZiWWFAallWcTNHanM1Yl9gRm0KejA4ZEtsQXY5Wm5y
KVpqb0FwNUhWTlRGVX4hTG1kZzNkWmR+eSVidXJDN1pUNjduNlR6NzN2SGNRMWFQfHZwSFNWCnop
WGVHekVRI1hoaW1JI2NMaUlzMnh9Jk5QUEF7aFE9Qk9ATW9rYzEtWD5obiRzZCUwV1p+I09oKlEy
byMraChpTgp6ayU/bDY1K3cmSTBGfTswWGNNJEs2OTVDNVdDQ1dnMDdUaD5NM3xCXjshTnBuIUU+
NFAwYUoyfmE7QztRUk58T1YKejFTbkNgPXVaemhEOz95cXZ7MVJBeGZid2JncDNsbDx4fnhGMFor
TjR0UnNwY058R3Z8WUREOFpRekxFXlVgKXQ4CnppU1Y+b0tNc24qPXE/X0d0STE+bHJfT1IpMGVT
aDlRKjJ4ez5JPSVMd3hYRSEpYTZrfVozY0RMQm5kODVaKH1DKQp6dypyPmhPS0dzOTArM1FnZ0x9
JVR6YV5MWThkOWpJOHR7VXt4KmYkeylTODFrbWRWQ2M2e1N4KHlWV1JpeUFwWEMKemU8Vzx3OERr
ezNMS1VNc1Ixej5tRXRsMDh0a0otejRuPihKM3tRcTFrK3NuenZSTn5vWX1lMUdaSlFTJkIpKjkz
CnpPcVk/WnhqeTsyWmJtPG9KeXF2PFEqKEpKYnZHdSFXeSs+UWdNfFI1M2M3ZkxWWDJYPjFEMC1H
WmxebX1KMjk1KQp6IyNwV3c+SHtxRzFDfEI9T0ZXYHUqTk1TTmdlU1N+O0pGfCU/PDkjS08wSXU1
ZlAoWSU4MVZFJjlOJm89NE4laFAKej9sJiphJVNMdz8tXnQoIWsxc0t6VkBNSnRqXnViV0NyQjh9
O2VFSkdtO2RtfClBTF48QGNyNVMrc0I/RiQ4YFZWCnpgSnJuViQoPW9Oc08+MDVhemtCdkQhUTUp
M0xDMntHcz1xI2xYRWlEVi1rfVNMJkgkV3hqUFdgPGh5c2RaMXIlbQp6SCtIYkdUKCNaU094TT1S
UkFaYTxyVWhuWjg8alMwR0A4MCQjZmt+KipCZ0dJdWZPPFJjQUlvPzFiR3FLIyg2YFkKelRfLU5T
bWhSfVdgPXNETntSQnx8TiNHPX1HPn5qU0NSX2R3SEQ0QWVwUVhASEp7OD9pKyl6R2MkXjxvfj5D
PzY1CnolJCZOPy1ORFFgQ0JgJFF2TXtYZVV7QjYqKUVZY01rbz9jaypVI15BcGpfNWFGNy1sPGEt
Z0ohYTxRZCtxQG4hQgp6PGV8cHpoa0FCaFZWcmtPYS1rJUVWdSZnU0k3dSMpMVcqaTdXOEEzQUJi
bGdDcihaQ308NUF3fGFvJVYqTi1XK1MKelRmcTUhcWRqU0JQY2JKMm09WCMoTUxoeWNqVn0/Vm8q
PE1pRHdRNmJOcjRsVUx7fF5TO2xnX3U0Yj1OblltcH5hCnpXak5zVy1CIXZER297U24mNkYwbnAz
P2wrSyZ1NU1gSytVOEZPPWVXU2RnMiY0VmlBLU1tcE0jN35eM0tyT0o2SAp6aDlgRU5CIUkjd1lD
YlloIW9nZWQ9Jmh1ZyRWSkplak9YSkAweEd5TWFISz90bEUhKkcrOFpOUGZZZGxyO3hVKzkKemla
Q1RVcFJFcCVnNjMlZXAwdU96ISFNUnJaQXY2TiQxTCY+RX5jY2tEIUBvUiskSTIyWXBWY0deKkdK
SyZKKTheCno2Ml44QjVyOE0kdmgob3BBU1draGZSaShBLSt9dnF3b2Q0R2EtI0t7b29LbExQc29p
ZWFsfVI8ZzcoTmZGKzVHMwp6JEw8cnBQbEVJMEZUbTNySUFMPSVxRyZHTXJ8fCh3Z3NTO1YoVTE7
XlZrZ1FGQVk7QV9GNFhRYTNkNzslJS1rbDcKekAlR15VOzJ5WTRvcSM0JGpaS1FgIWJWe3lZN207
eFI/YTcxaWZFa35JLWdjJDNlZCN4dmB7TldrY3V1SzNSYEIyCno0QUhXXjUoa3g2MGlATy1FRGJT
QzJ8eHZCTl4zJn4jKFU3RjM7K3lkb0ZQSiMyfEgwXnIydGI1UzJGMVhxYHFJSAp6TENWMDRBeGV+
I3F0Wmp4TihaNiNXJDNWNDB5aypVM1hJdEZXeHwrRTF4Sj15aXFORDZ1dV8jdGptTDZ3YWFLd3UK
empPXjN8TnVoQmJiMHp8IXE1KTloYDEyRWs+fDZyPTQ1YlJDdjRKNl9sJHUmZU1SX0d1VSFHNnh3
Yns3dW1RRWN0CnokIzl7UHNpIWZFYGRTT0F6ckJuR19QfX1TczAyKXZQK3dEKTs4MWx7aEVxcVdL
ZWMxci1qciFhKXA2Xm9JOVE4UAp6LTR8bH1aVSh0Kl89dld5OzY1amBoaWtrYHRDemVfPno5MiVu
e183JGJwJSRjcnFRPGJHcykzLUYxZWEzbGpxaCYKejxoXllmYDhlb1BmUXUyJXNjZks3XmZwQng8
Q3ZBYFBCa1VMMEo9b3Z1cmxlYGExb3QzUWlVJDJkYikteig7WGhtCnpVRilJO0grdFlNXjxwJkY0
LWd0YW1UNkdiSj47NVhkSWcqJGkyNj9pQ143I2ViRGNPOyZkPytUJGt9WlkxTFMhQQp6NXxzb21G
Xj5CVnFkMUpeRWBFKjJ1VFY/eT1pZlpQaD5fZ0lGUH1kPl9yPGVFN3xBXzR7bz12QlZ+XzlMSShH
TncKeilxXitDYEU+cj0kPSh4MzVBUWohZjRIZjRwdTQpSXFxVmZFdH0/ZjxxJk91I0JQQlg2Sn5s
OFVFTnIpem0qPnUlCnpFPjU7dng3bkRSbX4yfFRYOHIwRmRJczg+T1ZzQWkkSzdMUEM2emdJcnB9
bzxicGxAaTtTeWB+RSghO1pgTWVyMAp6YmFCYkcxV2doK0B3T2ZKSCVqbW5LOVlVPHNsTVBKMWZx
bSlENTBUVDdBVCtnLWgxIWhWKzZ8SW9qbWRWX2gkKSMKekA9MjJ4UG4kR0okSilmbSVHY0F6S094
ZDNyPmh+VT4rSW8qJU1ZJSNlfkZnektmOzBmU3smdHgkQS19bkM3Z0pYCnpzdHNOITkyPFVxZCpz
diRtdXZEP299e3J5aGt5SnlaeyUqP1ErQTw3PClMMDM9ZT02Q2BGKEJfQVc5aFJWTUM4NAp6RThR
R2p5ZVp6JmxPenc4RH44TlItUGUwdkE/TWd6ZHdlUzlSV1UmRT55T1QqMGlzZ3JfVkZhVEkyPVJB
eTI1QyUKei1qNzw0dVA5NWg2TExebHAoWCZSNFYyPXltUXM5SUxxP1M3dnhaYEtaPkM2Wk9ZK2Bu
T0lCTzlCTTBTLVo5RiR4CnpwbytWQTN7VWV8P2xPc1A2cCEqfFVeRiN6MFJWdyg0KippNTA3Pzwy
TXVDOzBCUEY+fTA0YkZiJX5adlJQb2BPXwp6MDRobXBjckhsfVJkQT5QUW5MVX1rfGNuZHZwQWQ8
RXt6bV5fXnNIR0smQ2NuPGkwelBWJmNtdnViPnZDbkdKeFoKeldAPkN+cS11MExAbTslfG9FJUNf
T3ZGKihGdTs/YTs1PDF3eHVCbEY1IzNJWFdOR0N7bkB0XlFeIyhgTVUrSVY9Cnp6PmNKezFRe19e
MlFlX2R6IX5EUDltNWo+PEM2MSl1U0VffDd+UmRvPTxYRk14S2lfbD1MdndHR359MFp1dGBANAp6
SD5tPUxuKE5Vei1pcTgtRTdqRHQzKiQjdGVTQE1wc0phRzZvem9oR0Vrbzw9MSs+bC15LSRFNjYl
TUwxSlN8SEcKeksjOVMxNitKKXtxOzhsQkh3cyNqM1lmeWslN31wfjRjbCNMMEk3NjkzJCE1fT92
RHNreF5TY1A7Nn57Jk5iI2VqCnpROXcxO29zeGE1MDlGIVVAIzg0Szhwb3lMemA4YUEpSChuWiR9
U2Z6U0k4JjxxfHtfbVhBbHgjQz5PNSpwYTR9Mgp6UXRFaTBaYHpII0NqJS19N1ZycEE0SlRVRUZz
ZjYtJFdDMjlmZm5nU3B+ZkgjP3F3N2l0Y2tfKUtAIUd5U3JpI24Kek1BX004UjljVl5mWGJxXz5O
SU12UDZhQHZQKitfVlQlSHsyWjdEe1BXRW9UcmtTWjV8czs0Mkh4fmdOVHFiISkoCnppQGQyZCpC
UiVTdGYofCU2PW5HPnJkWT9oPFl6Z0o5TSg7c3R3dFhTQlJPT0okei0tLTJIZDUmPGhWdEorX3g/
dgp6VWs2PFpiemUhKnlWcGBleiRUMzZPZXNDbW56R3tUREw9XngqKE9oXyRvQl8waDJnd1JCQVVP
bT5HWXY4eF5UUlQKekV9eUUwK2tfREtyOGNeUShjSnhPLUU8JUQjRSNSJFRYM0E5TT85akYxbE5o
M0N0K2thTnxOaXVQODImJnFXa3BaCnpFP2clYF9ie0BQWChUdTxacjtmeVdTJkxgJEt7elA8ZXRP
O3hvbVZkQ2lmKFQkM0dMY0BFRHgxZUZ0ZHo7eTBJMwp6VlpkWCQlUDtaeDV9UzlqSmsjWkdLNiFy
T0ZWQ0t5e2xrLW9YTVhxSz91cE90LTlHeHsqMG4/VEU/P1NyPEp7QEsKek9RKCk/bzw0TjJfMy19
VD0wVzZfST1lZns4KEpGKiVkMENnXlVGKDlRd3d0d3FPJnQmMCtadUlhUTRPNSQ9fUQjCnpabnV8
JXhpZWEpWkVla3NFS043LVpRaV9VRE5lRGQ+biZaaFY5fXo1dmxsOFVPLUUoV3E8UGIoZUkmdD9a
MWJKMwp6ZiY3QX1LbTQ8b15UPikyQzVJOys5Uyk2aV9EUlk9e1VAV3RQeWMlVTQjPkNpeEVvNHBE
Q2hzNispeXN1JHdSRkgKenlIRnAkX1p8bnpsPnQoVm11cVhSdilIdDFoc3pHKnB2cj08XjIzQXFN
e2tATDFMZUd4X3NQOShjXjJ3YmZSWS1ACno7WTV1QnMyYEp1OGghMyV5ek07MmFoP2NKR1FEUDtD
emZyI2RpdiRIO3FyZ0NZfTV+Sj9Uc0Ruald8PF5FfG1tVAp6KHQrY0xYVmQ3YHV8JkdHS1RkJEMt
WVJiIzc8UW5kU1Mha2pGciYxZmptU04laDRad0VsNko0NCNORGVZLWdndGwKenFBVn1LKXQybG05
Qjk9X1NCJnZJRnZkZDwpTzxLakRBSnNQYVRJcSEmNnRuUHZJUT1IMShyTFc8TWZMSlE0MU5PCnpl
bjZ2S3NTJWkoZz5iYmImSShESTEoMT5wK2lTZVJDUClyZWFIeDxnNStPPHlKNXpIT2gwJVBDYUtV
e3RTY3xyRgp6JU17dy1ubmdrM01VO1dvPSEoakVLdD9AbytCRkNUblM3Y2hHYyVKQzt1Q1AxQkBg
VmBLND11amhUVHFRK0o+NDMKekU5Pm5EaWZeWmxvM3x0SHcxYyNsQDFSOW1KOC1zVTJYYk4jYUdm
MEJJeW9XeGgzXngjNmxjb2RYfHwmQ3ZfI0IzCnolXk17SmtrWjYrTlhTS1R4RSNfelRsentrSzNp
O2FrJWNOakdrRz1UNippJVR5b29CU1RIcipyMzk3QUFSNkV7bAp6cXJ7WHQxZjkjcyUwOGRnMCMz
OTVMQEs9UDJYST01R2QycSMwaXR2T1FJTSlgM0xwYl80RH5UU0cpUlVrbD4kSikKejc+aSt3Sz89
cEFPVl8zZUFmPmYyOVpuRUs2YStVKVBmPnoxQzIyZnw+aC1UbEJTR1FPUjhlclIwRCZBXypHOUYl
CnooelE3TkprJCNxWDJXc0g1fn5JUEtaXn0+MVprfHU2fEBOQkojXyNSaHJtVTY7P0tjaFYwO2Nn
PWw2djdAcCs9TQp6MDhhP288SFV+fDA3X2pDNHdPTVNzd1NlNHBOazw9c3t8YS0mY04tdmQ+anVo
cVJPSWRZQTgjaSoyKk1tdDRmOW8Kem01TU5WMjZaKiZRQk8tTExmUGZpK2dnVV9DQWp+VjJlP1kx
aiFKWVdtQjFrYEBUQkghTjIqUmxQaDAyO083K0N7CnotSHk1QlY+eWMpSGNYKnk+IXkrMmRMXj5t
dXorQCZFdXZsOWJTVCk+Mj4tdXxRR0EzSTY+d29Mail6ejBAMXB0PQp6VXV2IWhNJV9ScGJ2NEFv
XitGNEpVcEJWcTNYeTU1TGQ4Rz5Nc3NgTUc8REdaPiFSRUE7M2dhPTEhJDdzTnFqYGsKek5pSjtJ
LUNfWnZjKz43U3N0RikqV0dCO3FGaEc1Uj9ZcSZMcjsrVkRqUEc4ZUlQKWF7M05GKW1ndWdGLWhZ
e1ImCnpVd240dVRMMlZCYSN6MmBCYWhfJV55dyM7e195bjRuSipzUEpOZTEmPnhVbS16T2U4MXhs
O29kUGFOcXVGfSR+Rgp6ZkFebTlVZmo9WHNWS3srRCRHbUImcSQzKE9eZ2tVM0o9fkQ7SmEoNXI8
YT8oZ09rSjd0QGdHUyMrR0tyWWZVJD0Kekh7N3NoclBrYEB4e0xNbm1aQHJNWXN9TUdxQj1gTUx3
VlojODhhclUmWXRveWV4ODFXRGI1R04mcmAlPjVTTXdJCnpmNClsWTZMJkUoSm47blJNKiE0TW58
Sj59Pj9ReyZGNjNnSFAjRVFuKEA7S3s4X0daV1h6c2BGenB0VmBaPVMoJgp6b2g0Zn51aFZsKFB3
K3xNSz40WUk3MXVHIWQtQ1hkSXxBanN2T3N3ayskWWg2ZFUxUWFnM1peQl5Bcm08VXpka14Kei04
Zkd3K049VVJSZ004RCNjPnt3XnE/IXFNYWVYM3EkaUI/TF9JO2NkXz5ZZ1ZtISk2ZHQ8WHZRYnlg
fk47dWBtCnppWlNMeDV2UWIpTGU4PEhKcyQ2a0NsUmEhZlZ3RC0wUG1rcHJDWjA3PT5uWG4xRmVD
eXJfPkZIaFYybjN4NTViKgp6VkBtTn5rTD1UR083dmJxM0VyekgtZSZ7KXBpQyopLUleUzJ3JHRZ
ST0hOE42PGYwe1JHelROUm5FPERtXlNKfHgKenlQekN9I35KOF41PH0oNF96MHNzSThoN1hNRSNK
XmJVc3RBa3VsI2E2K1p4IUM/MHU5VmgyWXFINGI2UkJuSzxXCnptNkFYejd+P3lYZG9CcT4qSFEj
fWR0JV9lQiQzX0Q0QjghI04zbj98UjhVazZjJllfdFJBWGRVRFYlMT4kakhEXgp6OzhAYF8zJldG
KGl5TGo8ejdyZEVKSUtfMDgqTWEzejwmS1VHQm55b1NfYSFsZVZJTU47QGdvQytreE1eQldmSGwK
enh8e0RSV1MoWktqNXRzMWczVmNzRWtOWCs8X1o5WEAhY3BYMEZAQDVMa3dBU0dAISs/cV42c1Fu
ezFxZyUwTHo+CnpBSDdheCRUcm5kWmhrJExsKjJpelpINz84QWMkUzVSe1kqdHNsMmo8NXxWM1pt
djFScXFWSC1nQD05N3AkVVNNSgp6RzZBRE85dWFjWmliMEFZTl8zLT0wYThmLWt8ZDEwQWJed3JR
dyZtWXI4TXgqRklrMS14Jld6Vj4oZnhjJHE8emUKemgpTUBRREZgUHteeUVeNnNVTG8+RlhYRG1s
YkUmUT9MUkdTQ3UqK0UjQENZdHp7fHFkaUFPK0AjdElhSzhzUCpCCnphIzMwcz9gZn5lIV5hRiNx
VSokO3Z6VTlaQFhzdD5vezh0X2tRayZfSF9RfkloVVl4ZVI3SHFpTytOXyQjU2p+Zgp6UTdYR25A
d2k9Pk0xQkRvN35rYmxTeTRWIW10O153WCVlLVJDamc/N3NsNnIqVmUlfVRGKTJVfDBLbG9XOUZI
WGsKellacD55ZUtzN2JMfjJKKDAwVUg4KEpwR3ViRTVrNnQrLWMtajx6NUpPN195Q05TQ0dMdz9s
KGB3bDU8O019MklgCno4bGUkPDEwQDhUUStCTDltMWVrN2VVVUZSU0stdSlRIXM8PWk4UzFtaWtf
KVY8ZUdCbip4b3xYWjh9aitSez43OQp6OzU2TzQtVTthOEBtdyFHelRHRzI1bGlNY2lMZk5QUG9u
ezkxZkUySTY1KGt5SyNqPmd7akNtXlZyPkUzQyRSJWMKej8wPUhGcEpkTHtPOTdzcW8mRU5jWEpA
fmB3JXlrK299VCYzaXpqRlFgMjVNKWU/QDhLN2YmOVkjRnBIdDdqVC1NCnorYFY8fHs7aXV3WmVP
eylANStVPGdKK0goP21UKk14T0hmI3gxcG82dCpwTWpIb3ZxNElpYCUxQFQ3IzhmYmcmJgp6UGhU
JUwyUkcqKCo0d3ZRWm5qKiUtZX1YPlJyOyV6PnVLcFApNmlJfHdzNHtQZzR3ZWQmWW1gSEhqMWNj
QEk2XkoKejlBeD83X2IzMVEqWUVOcWhrPVJSQ0pDQ2pHS2p9Xmc3WEE7NjdvKVBvPiZ8ZlhDcCV6
LXdDNVRtPmFVZk9iTVFUCno4cn1UXkw2cWJ+QHFaaykyWmQxeyZ0I2Q5Rl8tLXtMZ1hMdTl9ZklN
OzZTOyZxMTtlZy04OV9TRntuSTB3NndiPQp6P1pCITFXbW9UQlp2RkpyYH5BcDRhaUNsfUhwfno7
LVo8fWRacSR6JT1aKWAxSncrWiQoKVlWakIyNHw7SHVjNV4KeiZCdT1ScSQxQW0rdUhsPEdFLThv
KVkhKzdvKytzJkElaDtDMTROeGtxWj55UD1gPVI7X0JIejxadmx3UHUlfHFmCnpZTmlFbHEtM35J
MzBeQkgmZFo0Nnl3XzVrNHwtdWQlKmNKYTRRKH1acG1sMjtObjZKZStqdG1IRXJpUm01VT9RQQp6
dE9YOXBMQ059ITdHU2k4YW4qRSZzRCYpNz5XfFMoJkg+M1oxOF5afXJWM3pjOUwtViVOWFozZjNQ
QU8kQihSYmsKekRzan1PZ2MwQUlNWnRpbGE1UDZwO1JqekZMY2dnMWk1IVpHIXd0TDRHQWIjcDYz
UWA0Tj1oanxLYzZ6dig8djc0CnojMDhtciZ5S2gzdyVJJDlnezNfPD9DZnlJJlZ+JERaWTM+ITh9
dktiVnF8QWFeVkdLP0E3JjREO19ybk0xZWojIQp6M0JOeGpLJVNDMUtuXmIwVHg3ODMzYmBqMUFa
bTw4IV8pe3xhWlpZKnRjQktlOUoxQTJsVDJvfFM+KjBoaTAjMSYKek8za1JJe0d2TEhAKjFIZ3N1
RzBpMSpvI0JuTSV1PkNAIWdySmJqQUVWcHxUYTBualg0JD9nOzlzfU5MMiZQcHhgCnpyZn1ZN3Aq
RXowRGdfb21OYGZnaEk4eTNwWihxRDNnX1ohTUgyS2dqJTFFXzA7REdjZDlOeWd3OEgtWWNEUDRl
LQp6QnRAND5BQ0E/eSFxPSVVUzA8aXxre200I3ZNKmJZQkc1R2VBIU5FMTw2YSR1NDtPPUt0d3Z4
U3FkazR4YDc9YncKemQ8Q0RGO2hUUnJVJGJOLVRxJTZja2A/JmU3M2phPi12PUtFTW1BMWtjPjto
Nm58MjZedi02fmlAVkUqIzZqZz1NCnpXLT5rfWlCPWg+a2h5SXRJbEVfMlNhPiNOVyMmPzROaU5s
dnJjcHlsMHlVUyRRQTxUS010SzxzbDs+YjxSeiNnRwp6PDx0ZDs+VER7YWp7MDE8UXlCQUEjWmc7
JUlQRUZwenU1UnQyUmZrSTMhU0piJERab2F0KklpfWZ7TmxUREY9Pm0KemNCfkVNQzJvaClna0hD
N2w7anJxO24jPCYrI0g4V2dmdSQ3SDsreW9LJVZKdkRWO2w3RXt4fGNvfiolJHUxKX1fCno4eUF9
Q19UQElaZGxqeko0WSpEPklUKzVhbGd4UXlfZWx0ZiVmak17JkopSVd5bEUkTkoxTXdNa0tpfi01
KDQ5Ygp6ZSQzY1RFWUZtUkdzVVVgTm4mTXp1ekFQdWd6YCttYWdyNWl7c3g3YXpkXlI/Xkd+R2Fh
cWU/RTJnbTgkY1d8QSkKek1lb3lCMiRLS2w+NyRjPmN5I3lKWnx+aFl7Tm1QKTB9bjQ+KzxXYG5u
Y21BTWs5TTlwdzc+UH17LU5nSyFNP2lRCnomZCFSfil+MkhCPldiezV2WFpwUyFufnd9JSslPHhn
b0lHUD1yQTk1ZXtaSzlYI0tYe3h4PmM5K0lzVWspNkh2RQp6IWUhRmMpNj4kXyk/VDglTGBfV0Bu
V25qT1hVdl9ZRy1iK2tra2pOekA0WXVzXyZORlord1ZfJj1iaVdYPWNjMDUKekJ0Z0BnWkAmMnB7
QEtifkAwQHchPHQtdWVec31HKzZOP3dSQEgzYz8xaGJeRS1BfFBUfDZzczBfUkFTbnUqdmxNCnpO
PDthU0RJZW54JGFGREtLN3xBMis2Y3QwYmhoOCg2ZCZvOVA/ODxveFZKMGs9PUhPV2szUEJBYCEm
d0k7S1dQIQp6Y05waTk3JUZFc1lIU3xyQ3g4LXo9ZCNsPCFsVUE3Wl5XN1VZWEN9ZXZEa15hZE1J
OEZRN3dobyUxYn5fZj9jUzkKel4+Q2pzNCVoe05APiZndVQxVmo/bntmfXpsNktsfEJRcy1yVEUy
VzZzViVsY0N6TElVSEVuNSp2Sz5HUTtJTG9eCnpmV1oteEA7KF56VlUjejZgPUpEZzhtPDNXZk1T
cHU4U345bjU1bD5ZVX1SUyFhNElGNUhrYylucWtBVFdNSEw5fQp6bHdWTWVFeFNzcCEwTEhFSS1i
JlM2Z1Z+fTF8M2c5djxvTCRifE5UbFhYaWxYN0l3NjhsTU9jUDdAVnc4UGhkcVYKemk+KjtBeClt
VTQxNG5LZiMmKzh3Jk9JP2FWY2FRJHJgZH5tK1lURm0yI3dGeGkyTVA3IWJhV19OdntJYmZ+QiNm
CnpzdVBEV2IzQn4xR31gV3hPOTchSjZxaV4qUy1JNzRuKDg2Y0U+eTdeRmA4X3wkQms1Nis1b3Ek
bDAxQmgwOHJUZwp6RENDemB2aWxTZGZRa25eRFRzbEoxLU0kRXR0Yih3N15XblU7P2JTfVFMOXBM
M01MZ3RpQmtia3NvdylvPEFhcXgKenotbkNLPihyTlAxZzBlVDs7fHVERWk2SEk2JDZ3OE49Rncx
aWs0eCtQIUMwK0UwQiplTGVQOVFZNyo5PXg/dkByCno+KXxCTHZOYnRFXlNVT2dBdjYkeypJYmMr
dUJ+WH48SEYhbE1ncFFAMDhudU5zMDA4TUo4KFMwT0I0RkNtWkI/Ygp6eT9HWEdiSUsra3t+VD1K
PHgpUGZhQEEkb1I5Qmg7ZlFxQjAoaW0haTFKemNPaUFzWSFLdk9Zd3dOXm1vY3dQWDIKeiRedC1Q
IzgofGhkbnpOU3ZvZUlic3sqT0YrN0VxREs2dTxNc0hAdENJOyMqYU41U1R2OHFeJSVSJGZuMjk1
KG9wCnoxJjhWUVp+PWcrajRxdzVya2ZYPD09TFFKZmlvbnZMd280bndMUW8qYj5OWGxidTQ2QGdw
cG1CQE9Zb00+dSNfeAp6IWp0OG17eGJuO1krKXQ/NiFhM2dyPFZZIW1qSjFrcEZLUEM5U2d2T0Bi
fGZJYWt9TGp6fD5jT3M9dUk8PX0qcmUKenBaQGFFejJtPlJjazlyTG5eKlE+USpIcDhhLUMtbTRt
VGd9P1gybz10aiVqSEZITmcwJFdKS0ZPcEQ1bGp8KytxCno1OGZUKDxMVChfP3l9dzQhRzViZkxm
O2tgJCEjez51eDIkWkNWZUFBb248O1lPRXQ4I0cqbEtWRTYtb0phTitEKAp6dnU0ZWhKJHZmMz1e
c3lAcUJMcEojSGstbG9nZnJYJWItY3ZVV2VudlJYfmEoSXpefDZmb1omO0k0XlFaSDNlZ2AKelBL
dz0pfEtKJCRLbGpUVVJqP0AhbCtUX21IazhrcEAlR0ZLR2UzWH1Ce1k8PzNwTSRwan19ZHpKWHZl
WSMrNFJjCnpaZC1rMCFgdzRGPlFnIXw5SWQrWWAxK25OcFdXe0s2RV5hYGBScVkyZVJgaUVzI3xP
K1MyKj47IVNZY308K3p2awp6VCtyK0NQKE03KmR3UDlyeUA1RT02VVRXblVGOGl1TiM5cD5GaXpk
VUU2d0g3TktiTzFjdzZzdjR3VHwoUGIlZzcKenpGVGBkLWprI1ZRP0RFT2lKTl9WUXMoSTsrfj5v
e0BBazxRMGlzVSFoRWFkNUh9MikoIzduI3RXdWNpbyQjKUlsCnpYX2NUQEt2YVl+WmVxRVprKjkr
VipgWmktP1BAeih2ZWNIOClvbFMkZkc2Y2B4UllsT2N0R1l5YUcpZkJMZGN2MAp6PHZoTXBtSU9D
T1hlPnVZTzQoYiVmI05iclFTOD0/ciYrNExmRmVuWFpXS1FzJEJwNnVJKX1COWpoZWVDMjxLV3QK
ejVXYkcyYno5PDRuMytQfXtARUMzNjtXUCg4NUlfbVA7cWV5UFA2MC1NfWNGYXFYbF5LXno9ZmJ4
SEUwI3RkbDh6Cno/O0V5fjtZdXI3cmZXczJPRHQpZ25rOWIhKjJzWF8wR2pMc2MkeH0kOzt8alco
QGd3K2w8PjdOenxDSFNFa0xkLQp6NUNCU29DYEZLeDlIfVV3amVKQlNGZU4hdj5gKk9POFV5SHdM
OXUyTSMmTWJHdXRFKChXQ145OWdRJlEpN0l+O1QKekRrflIzc3ZOPWl2STsmO1ElNWxnNiRzNTJW
dkNQWSM5LXtVNS1fQk5UWSReciNzQ3l4aWxLQEh6IzVTVlJTUWAlCnprbUF3YUF+O2JSTSMmaUVy
UWklcTNJSGt2MDBvRkw3TnNZK1BAPCZRIz1mcVBfcj97elBKT3ZYVWBsWWNGZT1uVwp6X0tOJGVH
fCplNnU/a0tTM3M5dHVsUWYxWHs5SntxZ3RlJF8qa0Z+MWAreGJnMkcwI1NjKWxLXkotQWw8eHI8
akkKejkxcXQ/YjIpRWtoVD9lYDA0Zn5neWw/PGg2a01saDIrKyMrQDBSMkQwOVo0JSRzdCMtSlBN
REAkNFFARFl+TiozCnpPPSZzK0RoVlVKSUJHNzdyUGteY3hLQ05zKXRyeSlRd2pCVlYpTCVFMCht
NDNsamwpaU85dTVmQyE9SUQ5O2FTbgp6YWNucjZfUDBnUmZqdj1sczNWM0JjZ05HPW88dXNfbj9p
XkIoJkAtUjdSR1Y4YmJNYXtvanpEWD1ae3Y8bUQ5QmQKemZIJVRmWTgzJEs7bXQwbjg+NkAkbmZR
NlBARVN7bUM2KStKX2ZkaT0hVl9GNDdIU0c0am1rYSFkcGw2X3JnMiV7CnpsaDhDU29eQkRGIypm
Mnc7LT5LdkZId15EOVUkdTRYT0U3NV5YJWNWdWJ3fFZAdXcjYmp7aEZ8LU5Tb0ZLN1Z4WQp6JFJg
aSg5RGFLNSoxP0NqdU83VTY/YjdoSWkpUlBWcEU9UWVAKSNQd19ZWERwXm1MWHQ8MXxXVFN5NVVa
YSFrcHcKemteV0kzTDdzdExve3FiQUlAcypBd0tVbmZZMFl2SXF2aVZSYmhXZnJFP3ZBPlM0flkj
Yksjc2g+ZURBcFUlK0VJCnp7T3A/ciEoYntlUVVRRUU3TTd8JHt1bUNeI1A9cnVkaCl3ZC1rdEw2
X2tMaFJobzdaI3IpaikheE9feTE9P0BvVgp6aiNIQlA2Rn5oSjwxKnBjdXd0TmBNfHUxUTI2Tm1B
NlcqQ0g2QE9AeXhTP0RLbDxPfkR4N0I+VHoye0VMITBOKXQKenZQMW1eaHAoUyRjPUdVQyt2aEoo
WlNjakR7K0dYYioheXc+cUA8SEMkVjlPdEM1TmNMaFpgbCFNK3NGMnFQfkFxCnpQZ2NHdWd2XlR0
MzVBPC1WVSV9OENScVhKRDx6IUwjLTZhWHJ3Q1MzWnREQiQ1TURSdDh7ZV5kNEVJWFg2OTUjMAp6
KWN2I1Jib1cjV1R8Tio7TT5+VkB4Nz1PU2ttRT9qMzA2WCZKWWhHc0BHIT1VX0ZQSGZaZm5wfmo3
fSZRWXEoSWgKeldYelFZSSZoJmg+fWkxLWtNTVF+QEg4RlpGcU0wYl9gb3BkZXorJEpmcFRzc1M1
azM+NlRgdzBWczAmMF9KRFhKCno0WHpZfWwqKSlDa1A9fV5RSG8kU2NGYyMybHROeGckVntQWWlV
YTYjNzZzQ1JDRzAraGxGe2E5Z3J9M3A5ZjlBbAp6JFh2S2ojWiYteiVGRH5Bb2FgSXtvfSMwb2du
fj5ENF5LM1RKQ2lsd1h8dTV7dHk7VTRiUFRMV1cwP2doRlNkYTUKeldgVyQ3NkBLNGFhWSkkP2Nf
JW5lNDNOVV9kelp8NDY1KGtNKyRUUU1BX3lVTlFHaDZQUU8jV2ZoI0QmYXUqUU5gCnpCPGRGY1I8
aEJiMVgjTU87JVNwYkRzNllwQkE+dGxJODNGO0xaT2JLc0RfRzVZQjlFfXFmKT9CTm07RyVUMngj
YQp6eHEwV35QO24ra1AmZzVARzY0WEUoPWorN3Z0VmYpJXx+RkojbjB2OV9YT2NKMzk0alp3Tk5g
QVBFLVAxOG0jdk4KeiN4eiRhVkgrKzlQP0gzUk4oTXdSTldFVHFjdXlfP3c3eT53TkNffjtCU01T
e3dKPFcmTTM4OzRZKHNEPGNVTTdyCno9JkQrUT9aMzY9SWVAMkorSDh8WVRrUF5feT01TSk8UV4q
QWBPe2hwI3xuS3s+UmoxaW4yMm1zMzstentrRCpYNwp6aVpUUTdYRDB9U3RFXkJWS2N+R2EzNGZM
e2tmRjsje1kzI0tCXk9lNVcpNzkpciVgb3I2NGhhUipIeypoQG0pT04KejNFT3V+SVJLX1krU15r
YDJMYExAQEs3fSE4TEZWZWdDemk+TE9STjRRVG5zI1NicjlzN3xmKG9Mc0Bpc1VseUkrCnpwRylU
dDcwYHR2TVJlaDQzQzN+ZGJuJG92b0Y/OXl0RCZvQj5nZjhwMkFTKkJOX1ZmY2kqQSQ1V253XjUp
YXpaUgp6ayYmSXlAaWNCJm9IeV9rTXQ5aH1kdiRFNW4wdy1gcjslK3RGM09aN0ZVI2JrIU5RNF9C
TUxYfmFQUkt2Ml48ZVQKejM3dWpnJnZmY0xHPm1gcXtLPCpHSmJyTk9qfVB4MntAdloxMlJeJWJk
RmJodDNqPXIwcFlGTUtgZ3E1PXFYJH0hCno5fmZAZktpRkhfKldGUnAtcmlETipIb0taVDNNRSFR
KEJtaWwke3dKa3JXI281RTE2Pj5GNEV3QWsjSiokTCpHOAp6SG1MZj5OTik5cHdUMUB6K0x+SEFP
QlpSVnQxR0prb0U5TDlndDZSPVN5TWxuSSF6a09AejE9RS1oQV56ak5GOD0Keisqbn14PHU4QnYy
SzF7cFAodUI+QGY/MnN8OE1BQEkzNj8zY3V2fT9RdntgLUktZFRFTDZoUV9gQGhCcCVHclhQCnpe
fSgjU243JHt5SDtIR3goPGkoO1ZHak9xRFhZdyV1ZkpTLT1fWnFQJWVRQUk/b1JBIU94PCY4Zjlh
Syo9anRDbQp6ejFqSCUwUDFUMSlIazAjPXRWQjdvNVNWRU1zPlZJd1pUaWs2QUtfRXNVNlE1cjJn
N15nQ0NvUmB0SngoQlFXJn0KeksoUHgyaCs8ZGomZEYzRVJEUHJiNUxMQntZQklOREU2KV9DVC1I
PEU/b3x9K3VeYSRwZ2RFZiszUHZYc1hRMz5SCnp8MW1WJjRpXmY9big3WTd7UDVVTD5OI1M3ZiY7
fnlkOXRtJVN2WHhYOChtMEJYZlJoJmFSeHdQVl4wUUE7e3owKwp6M1A4bnJKd1FuP0M0dG5kMEwy
aWNndmBgQGpYKUc7IWhLcDloUWlEXiskdXw+NWFkPGpsa3pBaHcrSH1MTkxnN34KenhORGFKYyF+
eCoxJn0qNz9ZNSgkemBfYzdyX0RCR3dBelphXih7JGxpM1FENUhOJntsZn5MKX0jR09CRG5sanJL
CnpyKXQ9RiF1TnM0Y0ZKRHp1XnMyR00jMGw0ZkM+alZ1X1RhRWNtIWIwbTFfajE9MyheNW4jJSFu
P3ZIe3I0YUZgaQp6Ykd0TmgtSWFyfVdGYnpgbDtpaFNpUWdNKTcpaytCdFA8cC0zYWNuR3dnajdk
Yz50JmtBO2FAfWZNVEdNMn5PN24KektAdm5VTlFxaHFfZXhuZTR5QmR4cWBuZl90a25xc3M2K3Il
QV48ODBAV2NASGRnPFhreCR5UHEkKXlOVkJkX2I1CnpxezVBb3l+aHEwTXVsMSE4RVY0JFREJnBe
MDAkXlVwan5AaUl2SnU7VlU8fUhaTHJSdk88UXh4IzE2bDJneSVPfQp6PWg3LXteQkpIO1UyNkBH
QDZmYElraHI9Yko4M0ElZ2JURzswSF49fWxuLWc+THdZYD5zcWFVK3RITSEjITVmX0UKeiF1TEJH
OE1AcnVWayQxayFTLUZNMnV9ISl3XlNrKyZJT3VIbmRvfVRNYGJgVXpeUV54OUlWQURsditBX3F5
YHpLCnpEbXM2cDVgY3VQKHZkUXtjKGp4KjlWP15EMEhySVpEKEwjQFlQeFoqaiY1Q09weFlPbEZx
VWhFRnJLXjhEKExRMgp6Kl9lKk9pQVF5Y2w4eCttWTxLUyhOLSQqLU18TlkhY0s+KypySTM0aWlP
a2M+N210cEFob2l5WTsjbHhFKEFSTEUKenpDdkw5UHRQOG5gMkNhbiQ5e1lGX1E2a1lUOzJRVih3
V3t7cjtvTkBKaU5kMCpnI0whLWowQHtqPUlYTWBxSEFMCnooKEpWOD84TGFCI0UzQVRhRFFKSFVv
VmdDWmNZd1hKOFoyQHRTbjQ3NztqditZVkRlcDI4TT5aJVhJWCNtU30yZQp6czRoWSZsZHtVWmRH
cUU+cFJQMjIqNW4hWmA4SVh0I0VGeWVmNUtTcXFjP2RoX3B1TkhtJlM2aDN4U1cjR21ZbW0KekRk
ZF5QUnVUTjxGOHZuPHJQcUR3fDBfSF5UPCRgbFBYN099NEpsaT57SSQlKyMzPThCbllAKVpZd0ZZ
YHMmblRxCnoqSVROI0ltfn5EWiZpTG9Ke3JwVlB3cD4wZEU7RkRaRkVDQGlsZjg3ZVNFWTFfanZy
JWxiZF9+XjZYQj4qVS0xbQp6WitDcGg1Y0xWaGRaUDlTZFUyLT5UWUlnN00jZ3ohTjdQNl4pYzNX
T15VMFQ1Z3ZvaUZDK2dMKk8rXlB2dkZjIyMKenJrPUU9ciZ4OUhTRzFVcXN5K0JJZ2BBM2B6MU5O
VDZySEomPVp9JTBsSm8+IVJGYS12JTBhTF42UVN+Q0k9P3JECno0eihqK1FSPEZVRlNlOCZmcVF0
IUwmZmV8aTRoKUxEM0E0a3M0ZTh9WG8qUyM4LSZUWGxkaGZ2c1Z8WThDbFIyRAp6O1IoVE1WSCoh
eWQycHM/Vkg9RyUoJnBnc0Z0N0QxcH5aWU9LcGBJbTtGemYoeyNjU1k9OUIzYU1AbihyQ3hYOzAK
em5VcFo8VnxiZFE/bmkxYEw5YDZ4bXtwcjEkPGByfWQ7X3NybXctZFNYfU9mMDFCbEFXTSFQdVF3
UFdYcjttSzJ8CnpDQD9kKHF4Qm9OKGg0ST4oJFhfMGJ4bV8qelJZUm5KYWR7VmdRclFlWjIoWDk7
QEEkcklEPCEoc3ZIPlNsMSFRTgp6QilDdFpCaHB8T080UXNAbDdOY2czR1pRSlA+PSNsYVJEZmMm
KEhffXdJfjl2Tkhwb01pNChSOD9WVTJuSHo8ITEKemxTX25iUzhpU2YjJiVVeVNqPyh+R2dVem1G
LTE1PW9KKiM1PT5SQjwreUZod1RILWo2MGNrIzxObVB0bjN6a0xXCnpKci1XJCZ5aV5YSjZHRFYw
NFFYIyg5VyZDMF40YkQjRm5tMmZHZFEpRGhaKyhxK1RPRXllXmpfT3BTNzswOXA4Mgp6U141QWg3
UTBydTchJkg/Mz1mWUNkMzMwT2dWM0Q4KCMxQlFBc25KckkxYXRlR0spNmI9OCFSRFZ3VmRDRGk7
bl4KejRzdVkpTjVQP0RyOzVqU3NfMXg5MTM7LThxVVEtQWF2dDRqN3pXVzJMcUNsNHs3OEYrRlhe
eEhxY3hrdSQ8I1V5CnpqJGF6aXcmYkFxc2ZjUFNPUjJGc3BJVTI/YipmODZUfHBaNEdeYk80VFA4
TilAXkJLUjcpNnozYm18YSo9fnh8SQp6SSNEbjVFP3FmfFVeakZQQmUtailZdn1xSj14blYzTypi
I3AlYj0rUiZRZEdqczIkK0xWdXh1JkF8VDIxZzgoJUcKelBoIyMjVlJSPThqc0h5IWwmbyFCWSNB
U1k5QystUm1aI2BebEp4bGdwX2g7RUFPN35xe2xpfkJ4cUlaIzVBUGlLCnoqWmEyKmUxN2xOZiMt
THc/fFhkditWSWAkN2wqRTJJcDI1VCUhIVV1I30yZ34rJkAmOy1gYG9AKjRDSTtRJld+Kwp6U2Ri
bCltWU50RzZCWHRpPzd6IyElaGwxPSQhQEU7dDt5IUtYNHNQM3NJUnx0KXNqVWpgV1ROYiE8Tzhs
KzAmO2wKeiNGcEg9PUBUYV5AaXpIe2NpeCNnQCFmYSVSTWBhaVNQbTVmXz8mbHRYZTdzNWJCWTEq
dkIwRiorb1o1UEh9LWJqCnpQajF0SEx2V0lRT1ZXUV97Kk54eThnVEg5RWxRXkZVeFVpVVE2Qnlm
Vmstey1yN355NjRBaDBxUz5lMkcpMyhAOQp6cjt2aC1wdUcwbCNBZSlBST4wNUhtcm1CKXpJTFlX
JD9jMWN6cXhtJTElO2IhREJTRyQ+aU9Ne1okNyEoYFEyeXQKenlJeXtGendfbSVfY3tjOWE7Tjx6
M09Bd0Ztakl9aiZ1JXVxZTBzQTwmfnRfO05qRzE7byVpZXAqQmVMQEt9d0p1CnpxUj83PzROakM/
VzU7PThWTUBCRWhYIStuZHdTbntRJUBTfUAjQ25gbzxhcX1ZeDwtViQ5JHVvMUV2JjtKSTgreAp6
bTt4LVo5d1ZHQ2k5aCFkdlErbUBYVkFASyQjaVpnMkFnXjRwKCVDK01BPWFganRhLTQ0PVUyYjJv
U1pGIXJWNUoKeiYoMUM2eFllND5PemRnWkRvNGBQYS11bkttQUNfbkQrfm05OypzNyRKQWV+eylo
YilAS0VtZHorWFJTVzdpeSpvCnpnOWJYSkZ2Z3BYUTVUQ3hVWG5OP0J9b2pSJU9vNTMyX3J3YmEx
STR2QzVtZVRNOW8lWGBORG5qcj1eQT09PDEwZQp6YkRMT2wrbSVBJFFDWENsaE07KFFIZzErPjI9
RWslYzUjMlNpQFVqYzBHQFZ8c1R1TjQ+I2ZPUGcoWkhFPF9MPEwKejsmYCRkJjZzT09RKWdTaWIr
Vj8oYkolJGo7WWs/VjNHanI+bGJScEtjN2V6e0B5NEFmIUcpNWYydlo4cj1pPlFYCno0UVBvPm5z
fGlmMGl4c3JPd0UmTkV+KmUlcyM9bDRTVkAwdm9VanEqekJgKkRWK3pzdFI3X2JZYnUyOFp6fn5N
dAp6dGV+OHtheHxBMGxKbC0/YlYjTFE0MyZpN0dgbVFFQldPTWdwdjBRRDRDNndYPTQoYWFKcj0o
JTZNd0VZcGkya3YKenI1bDN7SFBrRD40Tz9zITJSQTRsRT55ZT5xN25jKEVJM2ohPkVoI1kxdClE
Pig4QVpMRTBnM18+MCYmbnZvUlNQCnpmNWB9dEx1LT19MiorI2RRVU9vdHdBdzVhcHAtP01ZX2V6
ejBgbiR6KiU7d3YhLT5rcWRzJVJ3KDQ+d2MmP09sQQp6c2lXNlFnKldYR2hGOE5GUFlvd3A3QT1v
UDF9WTRwQD9pOG0xPUVVa0xBMmZebjVec34kO0NhTTApdGEySnVMX0QKelI3fkM2RVokS30hYCVm
NGI+fFp6M3Y+aTBRTWZ3YiNDe3kjSnlhcE1PJjNxcDBHaVBCZVdwUGV6MT12RUB0Y0MhCnpYfVNz
Qnk0Wi1DZmt3Sj5pNSh9blAwLXlkczJ6YWcjMn0/ODR2OS1yZ2VmczdGNnBsZml3cGZ1cURJRGNW
cml4Kgp6ZyVkM2JYSWlCNUVhSV9YI1NPYmR4TWp5VkNyUXx9ZHZGOUp5fkZoQS1sM05kP2l+RT8h
Uj49elZKIUVAbl4qVUsKemFwZ2thcXE4U0Z0eyokeGFefSQ5aFFvWE5zcz8pWWw8KDxtRXYjIykl
YFVDM05YO29OaCk+U1RoPkE+JjNraSUxCnpfdF9RZj1lRTt0bXhIYSNQOCRuNU9YSlB2Q2hPTyVI
Q24jSHooN1pMKilvbCM4bWJFeCY3WkhONDNrTjRuUnJ0VQp6PVFNO1k2VzB1VV9+eDQqTz9kMEE1
MlVmMlYkRmMhTktWbVJrflpjVG09czJHPEJqRlV4PWYxSTEzJVJkezVKLXQKenU+aSZZO3M1X2sp
Q15JPXYwLSNxRmh1YnZQdzJiQUFJaG9OJUE1TX0kMHw3U3FQYyNoX1dFdHM+JGROOXhBeENTCnpf
RFpjU2k+JlR9OCNVYVdkKnRaOzt0U2BHU0tQakt3KVdCOCVUMXA9elRXbzVsVXdjb2B1dFlNcEZY
K1FAZlNFeQp6VXd2fEMmKTBDRXpJayFHe2FYT2t4NmcwMmVUUHVfY2g3Rk5lbTRTOElRZkZzYXNp
X0xFJnclTilxJDllZGhKY1UKemU/V2l8QXU1TCtvWGVzYyQ1UUIyVW5DN1JgY1pTQzMtVkNiKnZp
e0xGfW9PfCkoQlpCZjJVMzR3I3xhSlMjUDd3Cno4eSFlakFHaCg7YTJwUnRnfUhIaTF+JX5vY3ZA
KFVqRjFeekN2eU40b356ajRJcjM1aEs9R0pNMHdgP2lAbSk5dAp6Mzg4YkQ2djY2cyZlU1o3YGI2
PDxJaEdIY0NtKEZ4YEh8fGYwNVYoP04/V1g9JDxaWnx7RGFhY0F1JElkeUlnZWsKenF6bW9oUUJq
ZT9YJTwlKGNWV31jNmsraS1ZcHFEbiY+VlJ1R3Z2SFhOb2w/YmliS3Q0dlhWSlhuI0gzI3p8JmxZ
CnpDeWViRHgoYXpOeyZ5P0VAdFZDVDBPSFdOQjB3PWokK1ZhcURWZ04yMXB8Z2MwOHIycG1Jek5H
S3EmfiQpSTZDYQp6ZkxnZFRnNEE+KDtnbSFQK2w0el4oPHZ9QzdxdGNqbCRLRzljNkR4ODduUE0k
aWhGPGc8Z15QPVZWZVNnTFN8X2MKekt1TXMpQFB1KXBPZHxqXzAjKS1Fc0kmb0lJPypFbFdkTU19
WjkmYnxhUjhiKUk3OUlPb09wbF5POUNsfHJ9Kik7CnozR2QwcEZlVEZ7ZlAhUGlBSCV1UUw0YU9z
eV9tVUxpYnt2MnRLbXtATkpZTDBQMz19MDIjalp2M0J2TmArWm10JAp6UShMb1d5O1VhTz1YP3xi
XnM2IVEheyM3fC14czZLZmdMUHt1JSpheFh+UlgrVF5vYlNpJTlma01Vc2hTMWxlcWwKekJvRDd4
M0oqXk5KZiVAcFN1WFk5Nnc0dXU9OG8/eE4ydDQ7JkspaW5nNTRMNlJVKXJjRFF3MUZmeEMzfDQx
KFRnCno7VmMxfFplMmomYHgxfWpCcnp6N3gtRU9XYjdjZ2MxYyhBYU4jZC1OVD5wUm9DMSMmKzlH
RExUJWs9QyU0aDc0Xgp6O1BtK0pWUzBHeTVaJTNYO058Vj5gQGcrJFclIVIqRSkwSGc9Mlo4U0JM
YFk4NClqKi1ZaS1QSHVQI2ZrJUZsfCoKek9OazNraW9yLU8qdzVMPStrS20+eVRldns5TlY/REhy
O0cmd3NGOzNoTllFJkNCdm1sbSs/cVdMcSRifUdmV0dWCnpsOytIdEdoSzswbldtJDUyUzJ3YTti
KyN6eWVZPjttYkAofGpwUCllTndKcW41dF8hYG1PfXMoTEY+TFIoYCFhQAp6LXsmJkA1NVJfPmV2
NHhQaWZMSVcqSk93aWp0I0BVPFVlZUBzPnkjSzhLUn5MZDhse2lPcSkxU2Q5bXNPLVBIen4Kejhf
WUpaLTBIaV8jdyNffUJjPiFiQihKVV93eU0xJHJFUmIpWXY5bTh7LUZ+R2ljZzxFUWdRazZpSy1o
e1B1SmVSCnphaVJYbm9yP2BHP3A8djd7TmRIKy0jeHQ2e0Q7VGFvQnNAT2BzJiV1bVQjV2pZVz89
dnQoTmFaSE4lQnNEWXtXMwp6PEdnMSNJMWVSQiFIdjJ1eGxrREFVMUp3WSh1Zjsxdlo8JUlxNHpw
fmBrdEc1aWIzO0hUWUVvTCRUPjNONkg3V3IKejJoVEA3eyRWJWpAa01PPiR1IzB0aUdsVGRYRU4j
WCE5K1VJODtQNUZ6RXEjPE5Pe3JiODBCcm1TKGtOaXA7bDklCnpeRSZjIUZlUEwhJDxveEdSPDdL
UkZ1NE9EJF5ucUg5ZUY0X2gqJGN0b3dtPm5FfGk2XnI4WE9OMlJ6RH5yM31iWQp6PF8kRz1ZfHNf
OGtYPE84ZV5KbShKZVE7aFJ4XmFxeGhUYnYteippKjlJKmdWc0BgeWIwOGJqZSp0K3ZhVytqbDsK
em5TfHBgU3NkOzVnWm1WamhRTXpvM05rYSU4bDVRSXdlIWM9JmVoZUVZO2xzc1dEQUdJdHc9fVRv
RUI/dDBYJUklCno+LXJYJkhoVCtQQyV9XnUhXyhGZ2M7Y0x3M2FTYmkrfjlhQXNVdEtsMDJDYWsj
ZWdXOD1ITzgtNFM8dis+Mi19RAp6eiFNO2ZnfX1RMlFKU0xXRE18c1JyMTlUO09gTjcjMX05MTxm
e1pyQjtZM1JjYG1IaTRCcUE1MXlhTEtiSzFXbXUKenZRZnB0PnBNTCYkaXl9b1pSWGZJVFkpaGdV
fSVCaEZoJEJXWnlDbWdHTDMjKzIzR3ZKWG1uPldMQEMzQ1Fxey1XCnpLWXFPPnQ2fjgodT5oTW1Z
YFZuKGJSWXF1TUNvcGY4KCo5N28/SHFyMTw9ISNCIWVuO3YkV1NJVnE3U1MhfFIjfAp6Y2s1IUR3
LU9udDRMQV9KY2BKVU8yK056PFhKTGV3ZiRVUVR0K2h4ZXFiK2MkRiNnajZlQ2ZsKlQ4YDEtTnxP
fFgKeiV+U0M/WCZDZFJsalpnX3ZVTm1MeS1PMFpQRCEtZUg7RjwqbFctMylsP3JrKnNJREBieTR3
bS1RZHgheWZocXRLCnpnNTd8bnRFWn5yRm9+bCRLXlZ1fklBMVN9PGsoP2ljTH1iJDQ0eT0yeF9n
RGtiZldHa082RVRPSURuRXlkMUJzYQp6Qjxtej8rVlFzQy0hUWg1JmIwYDQ/dUshZWd+ZVNAJl48
fX1AZ0N+e0ooM0NJSUNeaiF4XjtsPS04P3tkWnljYzgKeipBTExtdE5aRU5yRn0waVUpPVpJZz55
cStvalRGPythbWAlcFg/b0t5NDx+fHFROTs+dEU/YT1DT0lpQzIrLXV9Cno8Rj9ieiNRYEhaXkRY
TzQqUjN8I3V0SH48ayoxMUBwNllASE9JMHpGTCFFJWlqTERQZF5JelYxQnF2PFRmVitoOAp6OC1e
bHFuOGU8fl9xcTk3PlNPeDhCRmk3czA/eTtPemo3cV5RQC1nWnJ1dnl3dUYySD5QWWg4KSE2cjVq
X3p4IUEKenBnYz9kQGE/eSFQeTZgZSp+KVdnc3g0RG5zQUdVWEBMTWd7Wn1IZV53bXJueC1aTGk1
SDgzUytTOURJQVopI355CnpWMTlMUkx9Zz1UT21qemxWc35GI2B0V2Q5KjZ8fWxjXjZJfUQ4Nn58
U2o5c0dEcXF+YlNvZylsdEJycW4wKzQhcwp6cn1lOEJjaVgtfSEySGA2Y1VyJnVMe0pPZERGTEVo
S0QqV1VeNFgwQkxDPGVDej9xVSVrTFJNcXY3WHtNazhARXsKekhqMGxDRH58VDB2MGVwME9XfmQj
LV89OFZgR359Xm8rdm17bDd3eCZhZEp8eDF1TW5ULXN7R0VpZzVLaHVwMG1NCnoje2U7d2JqUj1F
YDVlPzZxfD8+SU5kaVJtUkNeOy16SnV+JkVHYW9+NkdlS2lxOUIodzxoeWUtP1EqYXJkbis1LQp6
dStFbTJZMTt2IVkteGN5IyZ5YjhmRn0jbzhkd05IPnNicXxBekpfdVk3UTFVMEYqSDFnSloqQz4q
O19mTnhaRSQKeno3Kmp+KFd6MXhgM1hTOVd0QWRHJX5zekhjPURzZ2RJNG1CKFRuLWtEN1hkKmZH
NS13I0hQWV5OKT9VKmhldCRgCnp1ZGhHMzBHQDJAY0c2fihaTHxfJGFWPm9kUjF8RE0tcEteO1dD
RDBIcH48c00wWnZ2SithZEViN2hPLT5jWklWeAp6SmNnWDU+TG95JT1zcDNVN1BBMFI4WTd5NkFp
Rz5rMDheNXIqTyVhWj1gfkhmdUw7T25EciZCeFdLYm8qbUJPZlIKei1xS0x5bFJgMVppelhCNjFh
ZnBzI1lTRXgwP3hjP1NTVG5uc31OKCQwLVVZTUF4RHBOR1BYJVhzYm4wPUI7Z2B5CnpNKnk1Z2ZK
cD09ajA8SnJfcn12YXslODAtP01NYERNcSFLPmc+ZXswVXE7YVk4dVRmXyFPPmI1MygkIUxNRXdX
Pgp6dGFNfT1maC1CQ000KnpLRWJhOU90SyVHeD00dTRqay1KKWdxck12MERBYSkpd0h6NiN3SEU5
YDBpdFp1MFl2T1oKenJQQnQ+RytKWVoyNnhrQlIyIWZPKDxHNUxTfHlSJHdxJnkxbk16S2M+OWBZ
Xk1aeCRVTWFBTkhiYUYwRWBRJVl2CnpaWE9qRT0yMkM3OXlRbVlPJnNeQF9WeUloay1jU2Y3VnZ+
UDA8dWheIV5IVXxBO1RueENXYT5sQ2t9IygmWFh2KAp6Tyk/Mz1hSmpeaG9pdylOKFZaWm4oQER+
Slc0bCshYnooKDxBfmNEJj9aKWVQOGc9SlJ6SEspK2FfMGA8Xm5gVH0Kei1+P2NMRHJtb2BgPVNg
MDleS2d3WEs2cCh6cUtGMHc0ZChXKmJpNzVyZlpqbjI/dSFUOzw+JGFfVml2bGVQVzE/CnpBMDdQ
ZSRkUkZNNDs8fEtWe2Q9XnYtYjllWXFmUHtgJH4jNE9IdlpVZ010SXl3KG9NY3gzYWYySDh3THx3
fDNMMgp6NzBWM2A1JlR9Vk0zWUJ5WUR5VCUmNzMpcD5qaEBQVmRDSTdaXn11ey1+Ni1hWjglSjAk
OHRaa0JgM0h7KnBpY3EKekVNPVE9KHpjeDlJUFBeMChAJlcyKHw2I3Qtdk9wKklZZGMkc0EqX1o8
KVNjbHFHck8wO3Vjb15UTEF1VkhWNXxMCnpTUz96anVCQCVBck1ffiNxMl93eWIldiVFQ2FZfWh0
ayYqeWFXTUFVP1BlVms+VDRnRDgwRElvbGoyaVNvKV5eNgp6VG92OGpoY0AkcmVMMUkzP0pLJV49
fHNpLW5gZiheLUA4PSorMmlYP1VwJT9sQF9WPlplfXYjbndmcUd4NnheeEMKelo9aTNWLWZIO3Yk
QFBac3A1QUV1NCg8fmBOPlV3dz5oQT9tM0x1NXJnTVZDciU3LShSTSt7Ti0mdD9lX2IqTGtoCnpJ
eEJXalJtT0o4ang+Vnt3VDQxNSN0VS1VTlBmPHk8WVo/LXJwOHQlKjBpUmpUMl9FNFleV2g4Rzwl
XnIwTGx7OAp6MkhjTmkzdkVOZFR2b0N2PGZMMz0wTDJnYE5ecXApUWlRM3w/JG40PUgzQ3h0SlA5
Sy1mREFOZShRWj1MQGgyVDQKemNBdnQ/ZXJGNT8xU01mfm1yQypSJHJLbHRmVSNYUGBTfU51dnh8
cHQ0MCFYRlo3OWRZPz9WQFByeklIS0VpP3U9Cno4UGdPY3p8K2h2Ry07K2VAPWshS2RHLWo0SXw3
ezhkNk05WGI1SEMoREZQSEEzaSZIWmJDdmBFa1FrRF9QY3BDKQp6MDE4P3ZZT2JPSFImKFZOOWpa
QWpjQ0dPR0dOVEJMbl98ZG5kams1MlFzRmpiUUJxMUMwYHJ7dCVCS3taOFZMLXwKekFfdzxXMDdV
e1YtdnFhNDFzbypwWn4pUT5GZSQ8bEtqLSh4KD4oclhfJm9zRjAqbiFyYnQ5MTwhVWh8VD5ASGJf
CnpLQllDJDA0U3tldWE1eWh7Um5MWVdYWXQ5TV5TTEE7SD00PURjU2Y+OHlUeCoyK3VGISVvVmk2
MnJ2Y2RWZ3FvNgp6TmZQbztEZm02NmxJYj9NTmpveW9kekZzaGQ+V2I5cXxnP34lcXwmYXFEZCRy
TytqdWZsPiRRMkRKQ3Vwej80ZysKeiNSWEpiVHwjWTVXel5lSVA2T1RMR344RH4yTH4oWSp1RHhu
Yis4aGRDWERDIUVEREZlV3h5bWpPZnJlRSM1cEdNCnphWVg8MTBCVGgzTnEqbD5SI3x8P0BrZWw+
OV52dTl0JGwhfGVTb0hZYm5EdE1VQjVDK1MxdF9gOTQwezFBZX1ydQp6TkpvemgoN31XS3Z+T1FP
NEcjNXgqRlZfKlpDNmolemN3XkMtWVlGSEtiZkFEKWU7akU3NDcxKCEpbzJDPHdBTW8KenZjKVFr
Y19nUGlja1g7OGpPNGdoS21hRGhNVEJZcll8OFBlbHorPWVaZnVGQTYhP30zRU9vQEBaJUlHWjM7
WUJ8CnpmQWU9aDA7b31XQ19afH4pZHM/NTl5P0w4YVVQJDA1dzt2KXRwY19kcUcpcmBvRWNNPUV8
QGIlUGhFTXdrKjRPdAp6NEohO1ole0gmbyRJYEBGQylYViYtdV8tVEErZSMzYWFvQzhTJHE8dnho
a3JteURfUDJ4SER0bChTZS1mcnc8Z0kKeiNtZXVNRDx7ZnRUe31+R3xIaGZCQyU0Ym55dHNSemB0
dHt1WXJsTU93ZjJ2WHVHUm5mJEBUaUxwNEAybz1JTT5QCnpaPVY5RG8mbCFkTTlHMmI+R2U4Kil4
VCVCe0NuSWUrfTBFR1FIbWc/PXR8LUZZajVxblpwX0VHX2F1IVNeP209eAp6azEtQnBpNE41ME9+
NTsrR1UoaUo5MzkqZkxMQypKUkd6d3hRYlJVVndEKT4hPFpZeHQqVWhMakZkLVhyR3VwViQKejNi
aDdTdl8jN2lCUUd3TncxVnJqUmUtMUleQkE1MDlSTWk3d1VITlhHREpaPzJ2OSVsT2kzbDNOQHs+
N2J1VV89Cnp4dHB8QjJHQ21MNVZHMTlpUXNyRiZUSiZZY31rfH1YbnV+ZFR8Zn1JeE90SmE/TX5x
PTMmV0VwOzdNNy02cilISgp6WX1wd2o+dHE3S2Q3NVI4PzJ8Un1QNzNnKGloZThuYCh+K1FXUWU/
I2t+I290a3VNeDVLb3FpOWY7MmBuWDlAYksKejFjPkBSJD4yJjhqfCFUKjZoKXd0MDlKRnlOUHNQ
d2Qkcmd3ajBgdEsobmlZfHZQYjYySHhOKHwmeUB7MWwkOzdqCnpDNTN5N0dSV1JGOE99PV9QTWRJ
MDh0fGhQM1Aze0VZOGYoQzxMTERPaDBvVypmbzFeTTAqbnhxYiY8ejFqMDhYLQp6bFpEZEtyRTgp
OVB8Kk9XWGFFI3pKY3lGcyF5XnYhTzQ3eDFOcVBXMVFFX3RWVV5KKztIV3AoJGowI3VCcUsqTFcK
ejY+P1dSbWZUPk9NQ1NHPmFGeD5Gd3FAWWRPJX5lTUdpakchN0oyeis7e0lWS2AyfVRBVWBQZz5y
YzZwcyQtKntmCno0d2FZWVEmVXxMTGc2SmUpS2dBfV9nMngjTClFQXFzMEp8QTtFcjY0OzVKPTNn
ez9WY25yQHR7aDEwfHZiNmhwUgp6VFhYQyhpREdiKV5kQXBVLSM1MVZhVjQzcmJEO1JYLTl0ZnAw
WjJwOFViPXNDRkY8SzgjJk4/SyRMJDN5P1dHJTYKel9GXlBBTHt9fmghRFNrdmI3dXpXXmVJNW8y
fCZ9KTBYbFJEKDZxbXdfVWBRYEtvai0kX2Z2T298OTcxfHtva344CnpjS0AhYncoKHxPVmQ9cXk8
YyFNVDtCWCZ2Yjg5MDNuNUlzaEJpcnROV2g1dFUla2RIdVpfNTMoQlJTeiozTkNFTwp6cC1KSiE5
RzYjeSF6Zl9NNDE9LTNAM0M4UmZBYkk0cE1IVj1Jb3w+S1J2d2MmLXxBdEBsZVpHTUlFPUA2ezBF
eHYKenxNMlhZTXwkfGZqITR3UlNxU2pXI3A+dW45SG15REdpUm96QDtvSk40WWhAYWByMzxFdHUp
WnVWNnVNczdBeTFCCnopO24hQ1oxLX1yYTB+VWJeTjk7ezNRZG81a0l6ckAkdD13Y0Q2VElKdCFi
LT9adEhIMD87cT8pSWU0SHU8TWk+Tgp6b1hja3A3MmR2bHFWJm8yKTgoSnR6RjdVY2hnYSRgP3lI
QThSc1IqbmRTNUBnKzNAWjJvNlFofGxtdEAoTThURCsKeiEmcHowSU0lfWBrSHVwPW5Wdz14WiR0
XyQ9RTZ1JTUrSTdsZGFzUTNjKzVCNlhpdEt3a3ohNzxwYzRtK1dxTiY0CnpyKzl4KVJEb1BpQGNn
Zm4ydkpodT1MMHhWSDskKiMjUkNhfjZWK1BtTWd7VEtscEpKMihZdyhKPCVUVE9qKmFCNwp6KXI3
MX1Fb3QzYVl0cXJQcEBuRUNwTSFTdG5GfDA7Mz47aThEWVNGJWZZNE5xKERrJT1QT2AyalpZLUM5
NnAhQGUKeiFlfGQkWlFtIXdhVVlqKiZWbX4+TXx+RzkoQ3tMND9jS0M7Vjw2eHU5UGt1X0JkPjgz
OEpVMiljNSVxQ2dwJmAoCnpjRnUwUSRsQWBDSGVoVUx1IWBaeWYpKkBCLWYxQysjVGxOQVgoRjdi
JHg3SWBvM2otcW5IYnd+LXhVSnpHWDszcwp6MSF3fDEhUj1DNzFifHtLI14mRSpLJElscHV4M2tJ
MCs8M3MyfnUjVFVVakwpMFczfHRDZjhgVlFVb28ydUJJMFAKejdiPVhGVzkhZ2pUTzB+QWxoSUN8
ZmwqIzJwKypweUQ0WlAkTisoO1ZMfFNLIyZBcyo5Y0xXRCU4NGZLJkpQTVF4CnpCZil1Y0RTI0Qj
aUpeJSM3d0B3cWgrMyE8anpZfXspQjs0bjVzQ21uTUZPQ3IwOHIyZDdHUD91XyZ1M0skUCVTMQp6
bE83O1hlLXBtZSY4JTN0YmFeQlFjU356RUtuc3RDXzt7c3BFTiF4aUMraSlGdzlfTFFaUygyKXtw
MHRKUUN3T14Kejl7UVJKc0htdXJhMj1LXiRfbEJ2dlhCfThPcyRRQClZKD1Icj5UX281MHVlU3hK
KU14UnNvdS1nKiRTV1ArR310Cnotd2FKK3duLVkoaVFzaFdxOWshdENtK3x6QD1oYVR5T0dofHNJ
aUBfKkdjR2hsMTZyOCMmJXFnSWlpdjMwX2lNXgp6a2E8Rzh4RnA0ajA9e2tja1A5LSRsdz5NRyk4
amlsdTlHdypqUDMrQDV9O2BheiUpZDZ1TVl5NGhVbiYlQS1YUVcKeihqWmBJMEkpUGJyJSgzTmlE
VWg2bkVDLXJlWUFnbkFNRzlQcXJ0cz4pSG0xJVZDdGpwekNQO2U/V2ZNMzBxV0BQCnpmNyNKSF5s
ZUFhLW1oRGBgb0V+RVpAcnBkUjU2c0NsM2ZyTTdWVDxmV3Y3TW9fZiVaR2tsJlAoTXNmXkhRaF9C
eQp6KTdYKDVGRT1VSDNKNU9LJndsb1EjKkV+fjJFVHUzUXxfbTJ4Jkp3UV5CP3tAbUVYeEBRZkhl
fWZHQW5MIUF4WUwKekk5TlVsZjRKRj07KnM3fClFcUVLYVNjOEBRZ0VqRFN+ZDRARVN4JVpEc3E2
KzdjbyQmJXV+YEBxX1JMeWJKMm5vCnoyMEgzJSpEUFBVWTIjYGczayVafitxUE0rY1hpIXE+PVdj
fDZDTkE3R2J0XzNFdzREK3VkMjI8dFpoJFM/NyZjRwp6PlhEO14rMl93M0Q3Ym1+YzxGOyVYRGdy
SXk7JD5gaGdXTDljem10PyVnNUwyfE0ydSQhPUlqQnROK1c+OH0obTMKenlJJWtHKTliYjBLRF9+
NXVZSmheSm1Ja2hrTiooPkhNOyZsMDRsakZeJCE0MFJ7JnVVWFFMalJOM2F+QHliSnBpCnpYc3xK
V1lJQWx7VWFVMUcxKTlLeFQ4a3t5SSYheilPZ3B5bkQ5QFVmdVJzPVIkI3crRjVmKD80IThDQFp4
ZVFKSwp6REglamZsT1JmUHFOSCkyWV4zKkIwaEJjSTFJKHpuVnwzPnN6Pn1KbUgpJD5ScTBKVi08
bTQ4S1JyN2NYNFUwdXMKekpPK3ZjSk96KzVHRWRnWEpaKGYzZ1pgP212eztBWDJeOXFrakZFSE5q
RyNFZjZUNDRsTFM0YUJjRn1NZ2NuMGJoCnpXfnU/ITBCVEIkMDhmaG5QbDd+djUmPXA8OGg5Pmcz
MUNXcXNMe15VdDFjQmdSYiEteWtMNk4/c2FMXmpwPmAwZAp6OChAXlRHNlhKRTZnS2hfJFMpKW48
KGZFKjlNMkhONG9vVXBKSCNVYzZoJTV+Jj85OTRfaTAoTXBte2lWQmlBVF4KelFoK0lUcyQ/MWdE
RXUxUVZhUCMrMGliYUhXQ2V+azgtKVgpQV49ZDQwMy07YG08VWxMKCFwfkA+MjhkST5sQjVDCnpA
RitsJkQ4dFFCN3xCSmBPNEFySkdEVF5xU3NibDRoc0AkPkhPfSZeR0M+Q3hKfmpxOG5jS3lheT5s
WVkrOVhwQAp6Q2BQc2tuVW83PnNqe01nbihCK0Z0RyQlPV9MYypaRHVtNnNxeCZsOSpudnV2VFVP
R2sheCttVTIrcWZNeCNeb1gKej1kUFd0NW5RR2w9aXhMN0V8VnpFSHdvWjAzWjU5RXtfNm5MZ1Ba
O0dzc2Y/MWZYfXFac3RYPzY4VSE+QTA+JWFmCnpYdTFSNHlnRzsrKCpSdyREMSlaY2ZUazF1Ym9e
SyE5VHRHOG14bE5EKDc8M1hWNXRaMFFWJEBobSlnNX1zamFKegp6VDA4b3d3WD5odkl0VEliNUgk
RjVQdyYyT0pBM3prLVBYMUR3PjZEPkY2ST9nX2F2dzBXSkU+OSt3YSludGNxWmAKejVjLXhKQ1RV
QktyeVFAX2w5TFljRCFOTzghLVQpK15Vbz1Ua3NPY1g2ZjthZVJTVyF3VzVaQVhmPiZ3e0IhSj5T
CnpwbHBab0E2eT5pQHBoZ25EaF81TjdxeEtPdzBHdkJrYz5lSnBZc3ZWdGEtR0R8Q141SUQxNG09
cipgVGIwTSZkMwp6RClkT0g7KkdeS3JjN0JuY2gpcVdoNFlqUW1uPlNhTW8oTDleUXNqfkVpRnhx
dyhxcHQ/Qj9UVT9pVXJiQlFoPDwKekoqNlBTSD9PODd3NmQpKHh9fm8qc1RZXllfYTdVfEs3TStD
ezwoOFUzYT94YFIoJEspaVA4dHhQbjE4cWQ4WHBpCnordmg4UGQ7ZGIhemRwUU57aWpEKVl5UkAm
VEo2Xm1nVmM5VnUxTnI7dSUpTVBQd3khbHNpJUJQUG08eklKdy1SXwp6cyN3NCZOLT0xekBMVSt9
aUZ6V09obWo8bmk0amw1e0l2bWUjZ1g1U2NgaUN1KGdfO0x6Mlh0eWpwT05icUEhWWkKellrakZN
Kkk5dDVJTnl6TXExTk5iQE1kemdIPjBpUVI8dzRsRWlLakFMOHtvdzxJYm4pMDRVTGNWbUZISyNL
fk1LCnpLREh9bHFQUmNsLXw5ZSMwNXVidmRgZlZIPH1DN25eVztyQkR9OENyQ1YkIyRBNDxEK01g
MnZZdGBxTHMxJjFUXgp6Nmh1ejAtaGR8OytPV2wqM3xISGQyNSNDZFNkN2U7dk1JdmgwNEYkNGxh
IUVvUWJKX2BMZ1EwJHFENm93WmNvUioKelhRbW85P2wzMCZ3KmVHR2whN1pJeEttQHRlMTk4MkVr
SjNnM1pFUiY1NX1FNHRsY31yVlFpSSorKjJ5THEwJih4Cnpubnw4TSRvfDtKIUtJMyVXb1hxXyEt
PD4hU2ImTkVLdFRkUGk0dmVtMjF8Oy1XTUNYY3RtUChBczJZZXU1b1EjXgp6O0wpZmJoKFZXQUVM
clRwOW1BYW93OVBlJWNETkBhXnFxb0kme1hwRE9+dHF9amVeM2BDXnxOc1FaU09zTUx9dnMKekRN
SGAlMT1OR1BiSGpiNWJZIT4hPDJaSmYwN31SJlVCPD43PngkcW9pTkpLN2Ima1FRMkIxXzZORF9x
dzdQO2lgCnpCbW1TMUd6dEFwR0k0WGJUbmQ0NEtKK1VkYHlDMDN8RnNuYkxhUjdCbz4rPzhifFd8
TE1zTTRWPVJoJClKLTlpNQp6YW9obFlvZEp5RjJJJFZVMGxFI3t5ZlEjSDA4N157NCQkVEUxMHlj
ZXNlWCopYHN2dXdlbjMrezlYUVpXIX42UFoKejJyZzZxZmFFZjwhXz56UDZYMG44cHV9UWUrRG1R
U2R1ZFA0S0ktViomd0FONGFRTkd2IU5YczdfOHQwN2VNe0g1Cnp5eUVKMUlIZ0d1KFRQQDBQOUFl
biohKDZTPk1oUkpEZ3UqcWg/bVFwYWNicUMkSUNHKGpeJXtnYSkyaj15SylqZAp6e1JCYHlHMGxJ
PGNSKVY+PHIlUllxR2FfM0kpRXRycTVaJTdobnhTZkZNdTF4QWpLRHswWnFUPWJ5QSpSYX59dXkK
emF4aEUqcHImekcjfChgNWM8IytCc2ElNkZiTEpHYVMra35UJSU0QWQqPCNmPng9Ui0/VCl0OXck
KHI/UnZeUUM5CnpVU1lQd1gxJEh1Jk1naUJVZTwybWYhcUJPcU1YOUJrfnxVJCh0V2JhQCZaYX5p
JG0mS1lvcXBiSE8zQU53SSZAcwp6KnF3M2kjOSs/I3ZqKz9BVXBgKik/QUY9eCYrbEVWYFZ0YFok
MHFfdilxRGVlQyVSQ3peanR4NVM0d2NGRnhyeUAKemttQlJTcU9oJGUpNXV0RiUre1ZYO2BefjFl
MlV3QVJ7Pk13Tm54OCRhczJuWD1pYHFCckpIYEBFeCN1aTRjPEdPCnpPSU1HaSh5NCkxOGY8X1Ft
QSNXUCFwd3dHVVo1THE8ZTZZMiZ6d3YpWktkVT9IUEY9Rks/QGdjTStWOXM8MWhkUwp6WnBGPSok
MmEyO0QjIUViXksxWjVjJTMwPzBndiYtUTY4VXU1cnQ2c0lGajtHaWxLOU1wSnVETSlCR2kjYUdy
Sn0Kel9Ze0RsIXd8U24wSCVOX156fFM+OXZEVm15RF8kTl59PjZ1STQwfnNkSUNJSSh8cHt0bn5B
IUdZNFpTMDIjcnRWCnomXllQfUNlTE4oM0RDI3ojMnJfQiEleVp1aTJ3eUhXKjE3KWlQe1laTjxr
V1VFfC1FRXJSWXA0alFRcmtvJSV0SQp6YS0meyNyc2czbHdMbU03bChocGYoaDRJcCtoeztXMHh+
fXM8d2ZBbUFLPTF1UzBiNEpOT2FicVgmWG0jUmRtPk8KejNYK0xrRDRCU3FfaFdAcUlyRnRjO1hz
OT0key05U2xzTHFUKD5hPX0hPzd0QjRpXmVxOX1hakRySGNgeEV9RyU+CnpBY01gM0lQNG48WG97
cDIwNDVgfEN8WUJJUEFoYkdaTUtPPGhmQHNNSW1lPkEzTll4T05DOUVWMHRfWl85WXRtfgp6PD4l
KjdObDg5YyFEWHRpRFd2OXhMZlg/KEVJYHVgTXNmIVJPQS05JDdIfUBKNm5tSyVubUdLO3okOE1H
UjU+OCMKem5ncXY1ZlR0MUg9e0NsNmxLdld9aTh0LVcrcC0lcXMjRUI3YHFBZkRfejx2Zz51JSZZ
QEl5MzwlTyNCTVdUVSVWCno7KGE+LW5xLWduWnVHLWw+SVhGUyk2TDhNYlJEe1NwYFJ8REAxeWYp
YHNtRTVLN192ZUZwfSR+TGtEfEJoaVNOJQp6aEs3MHRtI0dnVXhnTHo8TSNnZGdyYHx6bTJ5aXJu
JDYtOCp1Ky1VcWZWdV9fUVRNPU0+S1FzcHk/YytiVWlSLWwKemBSJmxiUSh5SiRKXnBFOU9XJiM3
IXQlekx4VX1mLXM4fHlaNTh2c2kyPjJLTmBONUs0aUdReEpHX1diaEtXQTd7CnpqJW1FY1okM2ZC
bEpaUHJHRUx1P1l4Kzw1IVRRc2BebmMhV0spI2hIUylfXz82I3dtakoyaU4kSHdEZSpZYF5sewp6
bmxuO2RsUHwjKDBCUW18UUBtQmQ+IXxFYmFifTlFNVQ7RHxYZjZZbCh6SSNIczV1d0xlRzM9UChP
amY1UGl4N2QKemBUQU8jRGwxbSVFP1Rve2dfZzAmMjBoRUk9MF40b3coQzlJOWs9KWdkZjd4Skxe
YEdBQnpQMjtXJTxAT200fGlwCnopV19gYD9ucFUjYlRJNEUxPn5sIzl4cil4Xkd3LWBKTGY4WGBg
fXtMPypVVlBjPzM3PUBsfWxUdUNXVXg+WnZyPQp6YCNTPl43aiV2WXRgcT8zNik5dzx7KFMlbjg3
emRfQTZedDg+Z0d1dElxaT8zdTFhcXpOd1B6eis+OWM8T359YDIKekdkYkNBQXVCVTArT1UyYj1e
TlZQI0xHNFckP1hKU25sYUIzRzZPaTc8SXdfLTN7eTY2cCpVUjVxZGF6Xm9QO0tHCnpRT0BJdllY
YzxCNUh8TiowWihveSV5ZFRedzxqJU09U3laPSo8fWhOJilwRmU3ISprJUFyWE01MENJSFJNT0w9
WAp6dzBfR0R6Pl4pUkdkeTh5YUstfF8oaX5JM2xaZ09ONks1a2RKe1FndDEwRzYycnpfKkA7ayRq
amFWTk0+KiFCfWYKemMrZ15vQ2BsNGJETCVnTGVRRVRedSUkVGk4fHpOSmB0aj1sT0xWVTAwPGMp
figxRTRCSSlwWUBNNC16a2hUS3ImCno1RD1VIVI1fFEpaSR+I1I2eHohfTtYVmJVMUJ5ZkYyJiVJ
YjFNNmNxMExTQHc5Kl9OR255KGQlWk4zbXg4SEQxVgp6OVBZQGl6flM5aFZGMEt3MDh8KmpER2FW
dDdAIUczY2pJc1g2TUN5bUJXUjZ6QitqaXcoZ3hIYFl6RlhjdjV6NE8Kemhad1NQaWJkRXhtUiE4
aTtUNCNHRUs/R35ARnszbFBwNlhOWV50bHQxMUpeSlU9UWIoKmoqfmVDPVNecmZZTkQ8Cno8SWRw
NSs8QkIpVU8yKFdjUGp4K20yakQ9a1locW0oXjxZVEMlUjBjV1opentqc3NBeWJEZX4zeVlJPDV7
aztLNwp6JFVhQD87NWgwRXAhK3hhPSQ7X0o1KDUpLWB6b082M1pVc3lBNj5pOU4wLWpeKEZLTzRs
TUdHMEdIQnwtcmQkczsKejwrP0dGPmpvKEd6Kip8MDR2Z2dYSzwlQTw3e0BfZj5AKkVSTHZXWDUo
QTJqZHo7c1htcnRaTmIweDxPckFFKjkoCnpDdXMxJURIPUw+bilQenskb1gmZkEzT2gtZnJEcFdH
YDk2MCYmbjtXMzUkcGU0R0U4MEAzTVJNTD9hYGtmOHQ3awp6dT9+e31Pbyl1fCZsIzMlT0hSPk1g
bDBkTVBrbGBQXkVsLW5fSUVyZzUyZmZ2djMxSVMqIWdiQHNzSmZ6dzh3dj0KelVgck4lVi1QR19l
RWlPUUk4KERSQDBQfVZrfl91aXYwUjcxPCgkJkVrMm1edyt7YXNlWGdwV3QmQXlwYUtoflR4Cnpi
RWRCOSFudzxyRW0ydShxYHpiZnZReVNKN09RcjY+QEBLVl4wV3p6NHxSO21OJVRsQiVrbkYlRC1F
Z0hReTBAWgp6KDNhU0B6YkViQihTZ2o8Q3gmeWJvais5Zz0qcjJtLWArWjN7bmVjZHdjcCpsU28w
RFlEdGc0YVJ6cTs3PSF0QmMKel9hRXkoanIyKjQyQl9ELWx4KkI1anMxUztha0sqXkladWpAO0BJ
JTw8emprdHNnTkZBJGZxbFpRP1ojQk0odzRaCnpSRj1BZlFwMm4kKVlEalNwfCZGbld4aSFBdHpL
PEklWEdIVmR7cT1ecUVLQGRBWjZ4IVF2c3F6MH5HZnVJZnhATgp6MWhpKT1KRUNabHdOdWJjN0o4
JCZKNCk9MmY+WHNwZyNlZHZhLTtjdDRSPSEwX01+TWl5Wn1kanc5TyV5SmlXdW8KeiVPe2s0ezZm
Z3ZDeSpTUnl+eDdHaDFNQnc3dk8ySi1jfVRDO19FXzdgVl9RX1BzR1RNIUQtVExqUDIlSDAta0pY
Cno4Y0lLQnBmejJ7SjtDTXJ8SlhZVkBWMmgzWXlhUU9fWUVeY3IhI0hTcS1nXzkxNU1rTURkamN8
R2N6K2clKjskPwp6VyhGQiM2azMqPGdYSztjKUFPJT0/bWcwI0JnSjsmRzt3fEFkRztlJlJ2aF9F
cXgpKkR6MU9+e0pLJWB9bHVgO24KelgtZi1COz1aVHZKMFooZXZHU3grSVVtMGQ3TkUxUHUyPzx2
Pns5bXA4IU0wdHdGLU9OKjBESllIbkZBNHVgZHM/Cno0bGlQI1RUZlZoLUpuKT0jJDtlZWt6ZDZk
LVBKflJHXktZRTxwTmV0KENYWD1mMWNNO0N8fiRfazFzPEgpTiZ8Vwp6JWhAQSt2QjNHfDY9KCl1
MGhJfWo/VEQwa2V4TWg3YWZsYXxgPnNOOzwhVXgkKyF7MnJ1WSg8akNDX3M9dlJQMT0Kejx9WE04
KGtnX1d1MD9Md01yM3d2LXZNYWEjZn1gXzRWN3N4ZFlTZzQ7cmtIND1fdllgaiZvKG5seWVHZVFx
RGtDCnpCNHI1JE5UTzA7PT9vTW1RM09zKG0wUVQ3NlF3OWw0TkkjKS1LcWQzbiNPQT1eUWp+ampw
bmgpaTs4N2MjY3swQwp6OXRVK1A0dDg3fENna0dLXmNARkZFezw3RWFtO0xwMTJEejAwc3ZFUEhs
UWdoNClGcXtHe3ZJJUl9WUZrbF9AY2YKekRAPGdgTVpsN2FmRX1tNmteKVRPRiM/KlBHUjNQWlE/
ajFMcmVyJlNETiZhWFhmbSpyT2UwSXBHQkk3WWd7OXxNCnpuSiZsclUxbmE8SDx8ZkdVIzkzU214
M2FhXmdIJCpKLUtBcj5jeHdmZCVaWWc7bGtUUVY2JTJvJkprWFR7dzBraQp6cj02N1pHJk9oMlVP
P3B3bFA1cVlwcDdANlBYSG8yZ0hQJHYxTyFkJChXZVFUKX10djI+WFE7TSlmdmledT14bjYKemdn
UWwkYF96Qz07Yl85e3FsckdVYCQoYXA8az0ydEdrUytSVmZWR1dyKzFmbz8qJjczZEZydTh4PEM4
OygrfEQkCno8fHxNMzh7V1V+O0tgJDNBMm5+dnBveG9UNFdHR2MoZGIyK3koWD5Od1BEN1ZMJVpm
M0koMllxSyl7SnJAaTlTTAp6NE07fD5nV1VmYWw3K3U1SFRZYnZ6PypBenApYWN+QD97KlJwaF4p
KVhfcGRUZn1OKy04QW9hRHlvO3A+O0ItQHQKemk5SyVYcCpQQjFJaX5sdEEpTzZeSSRkbCZPQE9E
eiRETE43SjRIKGJmS3BHXklTeGBzU2Z5YmZuIyM4QGVhdmJXCnpiJFVLS3dydjkyeE0oMC1KaVJ9
Z0s1aF5qR2koVFpeWXROIUg1a2wjSnY0fmotKHdKX0AmKkItMDhkPjhMdjAhYwp6WGQ/QSM2dVMh
dyltPmQtXkhJb1ZIPjg7SlJXQiU3SmRDO3IlWkNMPndkVj11ZkdBUmdYIWpuIz1BUTBUcCorb0cK
emp7PV9oekNJdGo/aVJ0aVRNbHFxaVQ8WjBaMkhVdll7S04oUF5HMjw3JCZnQ28rc3JBVTxZe1dm
UTBtUmN1azc+CnpndH43Q3k4eypAeShXVUV5Sl9WTmV0dzdVKUEwQXUpRXl+TW5qKDx1cjdiOF5m
R1hFPWV4QyFFRDI7TTtGRHlWJgp6JlpjeXlMZT1td01eaWQlS3YkU2p6eylaODJXem0kNk59aVJl
Rj50TFZAS1g5SGY2P29IZ0N+Sl5vUE1OZHUySUsKellWU2ZsU2NxVX5rTSVibGtZI2xiVmktNn4o
V0lhQGE9flIxKEFtNys+NTtgeXRybncpWTYrR0tGWDg9SDQ/ZVJECnpAVSNwVEE7MVpXKUFJblE3
WUJKXmdeQ3Z9eG05Y3MpfWY0PXlwfk92eHNKX1R1JTBibXY2LSEyelpFZUhKRnUmNwp6SCM/NT9E
QmopJkZkY3tHeWdgUnBCK3xaUEJNKU9qP2c7dnJqdnxaYzdARUoyVkBlSm9tVTtwd3ZnSnIhUWhg
WlQKem1gRyhSckJaPU8wVm5zKzxPKWhvK3MtKiUqUHViJVpMU2xvV3BTPSNYPjd7UWIqQ0xCPzlA
ZlR3Tzk9N0Q3WDlVCnpvWE8kQE9gQHR4VmdPQXNTT3BXcSU1NT5NdkBuKzBFd1JqSWllKGw8RU1P
QFhRKnlCXk07YC1BRXszSitWcW5SfAp6IWpoeEw/XnlJTyNqO3A1ZjUjQG9WTnk8PW1XI3UqOUJl
c0UlQXJWSTB3fCVQNkcmWnhDNnw7NVNjMVpvM1dYXngKem1uR14qVmFrV1BSS1FaUTA4RHhfT1Zl
OGJPOyhuWFRnV288WSVEWTEmYXcpTT5HbklscTRldDxRfFQ5SnhyRy0pCnpCYTxfPj8+bG1JIUlE
Kzs8fU9fTntJbXJOey1MPnNYbWdtUHgrSG55MllVaHpIQTxhdTtRejZeWWN3Wm1SPi1waQp6Ujlj
JmwpRzE7MFE3fFY+XjQpPmFSYmx0aDskcFFDe1NLfjlzbTxzIyo+fnF7aClNWCpmNGI1XzxJYkBB
eTI5QDMKenB8U2coZ3gmWENwUG56ajQ3K2NARF5DcHtJXmN4flFeKXNQdXgkUkFPJmVCQmcqKUlD
N2E2I3hDX1ZZKU18bH1PCnpVdF5UeytybTZ3by18eUJVSX5KIUR1T0FTNTM0V29WUTReUz1USHxe
cHdoLTNUPVdRMipWOEJFRGZQU3xUczhLIQp6NlNDWVhUK1lZXld5Yz5DKj85eX0jbzBUVks2KHVj
SVhhOCZUUlcxaVR7eEk2bmxefHs4IzQmODFfUmhERkFaUmkKeko+RE0+Zz5AKUI1bHE8KV84cjFD
QDl1Jn4wTjcpXmtXZnhfSGBjdHxnTjRII3lOPzFtamUjd1AjbHQ8dWEqKm95CnowRilfSWR0Untt
TkVQWm44ODk7aWpwSXw8THI+M1EmJUhYMnkqWUZ0OCNSNzBuPzdxOVRkOzUkbj5LMyE4I3szKAp6
O0F0fThYKl9iRiM7XnctOWY0SVQxVyR2fS0kWj4qMC1nWDt1b2RzWjhYNXNsP0V6MnNeWi0xO0JE
QERaUiMjTHsKem4jUitYcyFxODs2fjIkPWNCK25lKykpblkzYVJPVURKTVg9dmpKVG5iTXtvdDEy
N1JweGZWP1YtaCpnYDRvRzl+CnpeNi00RGNVajBEZDNHXz54I2R2alI8ancxYnI+eyFDNDF1ZUM5
RGdnN3cqRmZuaHhGTztzMXhaME5Ic3NWKnlnZwp6d2JFbytAeVM1ZDlfJDQwQjgjd2RwRzhvZTc2
Rl9WdkY9WVNXKUQ4UzFaIWNJdkx7fHpoSmVvSG4yX15BKjM+RzUKelNGVUVtIzstKm0oXkBEXj4p
NW47PnllVmE1aDAoTypvTXRwNUx+JGZtZlVYVUA0SnNIT0RQSDFFdGgobjwpJmpyCnozSU5IQnk+
aSU+MmBkaH08Iz1mPXh6a1haJGQpNjhOZCticW5qR05OTFEwZGY/QDV+YC1ZYC04OFVhY1pRQlll
Nwp6ZktzY2oze0IheG5yODdEIzEjLU1SVENfc0QocCY/MGgmcSpWXzJ+emg4M0EmVjlDV1dRK15D
QXhmbCpqUyU5WHIKenY9fXNlTT8rYlBXXndUYEVJTzdaPHprXk8jWD9idjw8b05FeSFsJXdPc05j
JGFzYTF2XmYzYEkwaFdAV0V+Tm1MCnoxVFg9WGt+NSgmMGhyU0NxJWZKR0ZqLVYhRHE+S1hTUWVt
MzRgfFhHaWRuWD9sO3hQcD09UXJAT1UyZyhnX1dPWQp6NnhoIylNV3YtfS0qZm9qeXYxSEs3YzUh
dl53anpEfEU5ZiQkY2VjaEVIbFZvT21oTlNaYG1RR2liaXR8UXJJNlAKenEqLWVFNk8oJm5eSEd0
X00tNzhpcTU8OFpQUEszVUMhdFEhaTBqPlYtfkNWT29wTmJMellXZGt8NF5GSShMfmplCno2ZXtZ
VTsmQlBXP3p7YzJod3MxVnAydkgyejMofSlgKEE8N0gpaS03YjdvOCR6SkFNXk1MeW1xY0k4RCFv
UEl3IQp6IVJPMkxCJWcxeFFobzc7P3UkYHBVdU1lbyNUJlhXX0ZrYUA2XipFNlhoTjtUQyk7WVBq
fHhAWnU9fjZMUm8rbWsKeilaQ35CJkU/bkVYenBRfSYhYkFeMzhiMTFQIX4kQEdmP05DTSU3c2x2
dWV7cFgzPWU5RFokSF98QTg1N3xIZzRfCnp7bylhOTBUUms1ak9APF95KllzTz9jMUx7X1FYSSQ4
d3xtUDhzVkRWJjx7bj5naypCRSQ/aWhmWDFsS0Zob2Ehawp6WlYyRylQQmo3bTEmeyhuYj9ncFJz
ezRkMTBQM0VlbGQqVnIzVldjPkcrMSk4KzNTUG1XNkEzeEhmfU4mMD8kfikKelcmb2JYT3FoaVEh
Yyo3X1o7VkdHYDU0eXl2NjB3Q0h3LV4oMjtobTdyJEpEaXNRKEUkUFh0ZVJVRzFRUDJ8KCpXCnpA
WUVDVk1BYW1LUWVtb0QwNXUhJU01VGFLPDJfWVN0OW09QHpKfn4rUH1IYy07fXFzWE1GSSQ2b3l9
ZU1EPzAtegp6bll7fWhmOWkhcll8eVkzUH49dnpId0ctangqN2x4P0dFZlJocWIkSkhsX3x8QXZf
Zkt5OWtoPy1Gfm5SMGE9fSgKeldfMUJELTQ5ckwwMTVCaXBJcFJ4Sl9UVFVXLShJQzdlblAqIWsm
Q1pRTXo2a2h7ZXEjeXgwaTkrVzJZY3lfJmF5CnpFbSpvNHUhUDMlXzFvQTY/Mis1UDZIMyFRVmFl
QDVhM3c2YygxUXJCSmRFSlZXOVZQUEdGfHxhNEx3VV8hOEtIbwp6b09ZYm5ubWdtTD03ZEdwKHBL
SH4xeUQ3QnJ5OGhHKWhMPl90NDM4N041UEpaVykoJXpQP3deaUUmLU9UMDQyYloKek9AJD9NS0Ay
bkkjanR7JDc/dVpNJUZhQGhDYkh5NlgtYjA5NndnKHJJSCpYZDd7ISpPTnhBU0MwMjQxdiQ/QGlJ
Cnopc2o9OERLPVUzRnV7KH5MMCFycUo1QntBeioyZkg2c0VqRnohRTc7MEglVD42X2BwYHd4TlhP
MEdlX0VPfVhZVwp6bVM/RzhgUE5GaHtWdVB0PlQ4M28+aG1tUCQrX15Aak8xTWhqXztZaldZdl5L
JWU8Ykx4biMqLWFiME8+JkJAKisKemk1cVJeMVI1cl9paG01K1c8TTkzJnRkZ3B2Tz1nKzlIYFZM
Yk9Je0M1XnFFb3k7QyZSTV9EMTFkYF4+bmNsYHMrCno9em1rMihVQ2J0eTtCXyFtRWEwZmNrYCUo
anZlb1FAUDFAWkolJGpeZWxJXmlWKDgjRTx9Nj0wWntMQV5KSmJDQQp6ejI2RUFAJXVhPyU8dD17
MiVxb2JxSjNGbnRQZXx4X3JZWTM1MUxsSlMkP2BWN0t3VWVrdGp4P0cySyYmSH5iMSUKejE9V1Mj
ZkdLWSVSMDU8QmRxNk5IQ2lTayU9RjxkcVlOej07Kj8qZUhGWEZ4XjBZJmBROWVsYUBiTGE4QWI0
QUN8Cno2THBsODw/VW1KPGpwS0MpUWJmam95KyFaN3wqPXM0cWBKVzQxa3E0a2lHZkZBb2hJVXBA
PXBaJmJzeSomRi1hdQp6TztVTXlxeWdEQHEpNVRxeU1HYGE/Kz4rITNYdVpub3d9enhtSiZZell3
clF7QjZVTmI2ZlpASXk2P2ZzZkc0Tz0KelBmY2VwekNufDkzbE5Obk0pOWQrKzA2a3cmMHpoOVBH
UWZ6SFVXKiYkZm59KGdiNkBFK0ZqSCV0fTBKPWJPSm9sCnp2Pm8rNCFBODhCUjQlQW45aVZQMD5Y
UnNmRDVXfjZieCUqSVFmXkRETjsjaj9rKmlSbUctPyFBclpvMVJkUzVgKgp6UmN7NE0oSWc7cHNW
RXR9VUFJfEsoYEteVUpJLU1MeEBRS3Z5fkF8bVN4c2pUSzAxJVJeNz4qVnVkaVMpeSRiTkAKejEz
Mm4zaWB7K2lPbUBmSmM8eDx6LXJjeSpMMjVTbyh2KmVHdnskZVRSSVVkZVRabXxjTWVIR3tTJCtD
MGhDUjJHCnpKXmt1M0srYGh6R043cUhSSVRDVHl4ND9rWVk+eUw5JnJMMmt2cHtvSk5TMDhCUy1m
anV5UXtPXmdGPTlMJE9DTAp6O3hMUGtLRWpnWWotdlZkRDljSmRoQUJEZldqWD0xPV9GVH0/MF9k
eW1JIyowJSUwJiQzcm5zJk8qZ2AtNllFJCEKekAzR1NeMStNMHltfShXJUU8MkAhYnlvfTNOdDZJ
NGYraGx7WTU8Y0tuI3V+SjBaZFdNWmpORiRWLXp6TkxfPU1RCnpYOEFlTUVMUmBSXnFKOHRHZC1I
PSh4UT57OW1BNGYkdDQxb0QzMik/dW9NI3lWMlZ3RTRYMWAhIyRyO0FZJnBQRQp6Nmc3TmZOLWw8
TUlhcVJXdTtrKj0hPDY4IzxmIVJlPjBlNU5CYDEyQSRkYiM8d3tjaj9EdUJZbyl1bSNuT0NeOU0K
ejBaaXBBJnh9JWBpTkw5I3UhPFJNKXBVRWdwcz9tRWxmQ0ElWTspUCFzNj43SXt2JjYkRW1ec0sr
JW03VmVKMFBGCnpfWlBKLUxfJC1XSz9lRFlVaE0/NV9NU1ZLNUA2Kn1zRHdJMiotYD9pc0UzT0Jy
JHB9KiE0JjAkJn0xSjR0cUd2dwp6JkZEeCRyYHs8OVA1bm5TcWZfc2NYaCFGakExM158Yj9mJWZR
OyQ5TiRfdmp1SCloVV5JVTlIRSshSzU5d0N7T2UKenprcEJ1e1FiVFAyPU16WklNfDxzaDRgfVlG
ZHRrNWR7e3peNHwrMHUoMzliVm8oI1pMaEJ0YUxrWClRZ3hpVDc8Cnp2STM/NlJDUnpVciFxeDNR
YzV9RTQ+KGt2YzlkdDhOfUdEX0Fwelk1dGVuN2c1cyE7PD45dWx+UUtrN0FFYExWTgp6d1dfcm9W
V29MeyhHI191ckckN2ZwWnpufnd2ezg7dmVgcX1qMHI+N3NHJnBIOD9PJiVQZHopNV4+fTB+PihY
OzkKekFkMGV9MDQoUz87XyVldk97QTloTCVqaE4+SjQxOTBhRmlQWTdkclBgKSpAVVA9IT4wWUxB
fCU0cDV9LWV8UiRCCnpYJlFVI3JKM3hGTDM3I0kyQEJjR1MmSU5xYko+VjcoKmFNRFNsYCNpMUQ/
aVUhTEFCVjU3MTtDXipORjlMX0pSawp6JD5oXl4xVyhHfUE+Z1MpNGBKV0ExMUwxRkpKY3lwNU93
OV90XmxRbHNSczYqWVZ8M35sJmVDZXp8QHRHKF5PI2wKej90cV5BWFItZnVCNTwwe3soamR+X1Aw
Qnh2Y0xYJkdXK3t+cmwxIU1SJWhQQFl+WX0hdG5aNXAqfjU+X1duSis2CnpkLTQ0Q2M+WjFPaypu
MWFAWWZsU2IpNXlwYTVlJV89ZGY7MnhFXzNCMGFUXyU/Q0RwUXVvd0MqVzNMUWEmaWJMQgp6WTRC
KnxPcFMtcUc8N1lURiRhbjdPViVeNUhKak1odHl8ZkYxS1ppQGxlPHwrO0NffTZlVkYkeDw/N0ow
Z2wyRFUKeiNVWkcmc0RRI01ROFhQI3orYH5wTH1mZ1U0PGNINHh7QTYpSnghdW8rXldNJDc3eDhu
bykhVW5ncjxea3M3YSFuCnp7Wjc+UFJFP0BDailjTSMyYGVyVlAyVytsPEQjSDRNSWx4bzhxZ0ZD
WG9eTjNReHBgWUNANCUodTtpalJHXk9qSgp6U3oybHxgazEwdzB3KDJ6RWY8OVYlU2IzcDtXUXhe
TVVDR3w3ODVCPGshbFc7PXdwZ1EofDBfazxQdEM/TS1BVisKemUrZzReNHV5I35lSmtveDdGVTxG
Y0FOckM9d25qVnI4MX5YPCpkTTNmbF4+ZTZoVl9IVl5JeT16aWNSfnttTldpCnpgJm5MTE1PfEVL
WnBAS1cwVU4jNlo1Zz5AXkBmTExFTHJrcjRNNTImdDJfYUQwX3E5NHdmUXUxRXd9a1prPT5gQQp6
I3ZySTdtPVpadFdjNyg9YlcqMX1ja2F5OURHS2l0bFlMc2RrOXchblg3b0VLZX5PYVB5TFJuKnt9
WC1zSnBKNiQKeiZrZFMwWXIjcnZVPUtVKDlhUUhSNWMtaXtWQ1diQTBtMHR8MjhGUG9wZGMwJDlL
Yj9EMCQ0PHRLYSEzOFNYYDdKCnpscXB8RG5NKEE1NGRLbWxiV1dmbWIqYyFWZUk7bWVFa2wxc3JB
RERycHl+fGx6QjgpYmh4SVU7OTRUI3spSXxoegp6UW5fWUplWksmdWZSeXEmJkp+P3RISX5EeUJM
NHUoUHUkRjZlMyE2T3lRaX00dEghYkFiNFJoTTxBeCZJVV5vSWMKek41VjJmdzgwfnpwK3Q9V0VS
bUltMiFTcEdQX0pgJVlFTn1QNmAlXjEtcmUwMEJMSU45VExxe04pS0swNzBpNiN7CnojMDdtU2Qt
fG1yPTxBdXkxYGh7N2ppMUxSUG9hUiE4U0lVTGxoNn0yN0xEYmooZW5mPXUtNkRjN2FHP3c0UnxM
YQp6NnNXbEpNN0V0IW8oUF8oKlF6XzMoKmFLa0t4eFlmUVVwJmZfOHp6UzhWOU1YMUpzcXVscSlE
e3AtSjNWbHE7R0QKelk+IW5vY1hwbkVOeTYjdXcpT3owSkV5Un0rJitvQDFAUURZLTJVXjwkKmUx
cStNaHlCKSpFandWbFRiQ2ZJYT1wCnpKb0tvfFdxcHZge19yRG4qaDNHYCNYQEwyX1Qrcl9fKWBu
bTxJZ04kUG9TTyNJS0E5JkRIfHwrSVU2eDw2YEtmIQp6WTNBSloyKDhAMm1hV3t2KX4/JmlIcDc8
TndRQzFFeFBLPSphY25wOV5XS1hreSEpfClfWWd9PEkwRWJZSTlIYWkKejIlSnlFbTAyKFcyZk1w
TXQjVyo9czd4c096OXtrN1JUTC0oSmg/UTdEKj4zLUkjdVZBQHpnPjlSYjNwO3MqdkBoCnpSMEpC
bUJWZmx4ej5iU3hXcll6P21tPDtkOW0kSCFrKnA5MzZUeTxIQVBQeX1QP0BxLWxfXlY2bmJPaDZs
JHdmTwp6Q1AodShDNFZFMjJgZl5mdV83ZlptWVRqNWctT0g7a2pmTWxwOD0lX1AyYmVWZ2UpY3dP
cXk3TVI3fVpuZ140VVYKek92ej1FQn1XUHFwaCp2QyU3KCZ9Vl5tP3VWYUYtSmx1eTdeTldpMmpP
ciRjWU58UDN2MiVNLSlfRkI1VlklSCQoCnolM008V1MlSXl4N0Vea1ctaHEqOHg5bURGYm5ESzI1
Njw9U2BqWjRHJHFlIVl1Nl9heVo5WWUpbCQhPVpHMSo3Qwp6QUd+KTtDeyleSmJPQlFvLVlJJmc4
cnByLWo0bXVjK1NMYUlzXmM/e0tpPW9YPVU7cW4oU29JbTRqZWliNyFWankKejYlLW90VlFeXmw9
T0pPeW14RHYyU1dya2YzayhpcjFYRj1RITdNTl5rT2M8P3VuP3xKYExXMVFVbHQ4QERsVzxnCnpQ
fntEVSR7VX0pJiM+JU5FRzExcGdRaSN7QVkpd3dlZnArUColZypFPSQkJFB5WUNGX3pCNmJAN2Eq
bmRQTFZvdwp6TiRzRHkxaEFyVm8kUytvP1ZSJVMzfFVVIyh5Q0dKPzw9Nng1WmM3d2U7IUtJUz1m
MVgpPz5fYHlfYVJqWmVWZiMKeiVoPjY/dilJO0U2V0RAakwpcFlwIWBQdHlCY09WVyFvXyhjPi1q
TEU0V0tZfTFTczh1KWhRaml5djhCdz9rQGRjCno4eDI0cUMrZEZtTSFgfjMzVGZzamZ+UVZecn40
bjdndFlOI05EYC1BY0p0VlgoUjB8eShYLWZ5UVBiRyMxMTdQagp6VW1TOytmfDBRSk5PPjl3RmpB
fkxgbmx+ZTEkWS10MHJLN31HX01RZ2k4clB6JkZTcHtRQilrSkxeK159S3VRSXgKenA0MX5ITzZg
PmJPbSk8aHFsZkEka2t6cGxsR040R0hsQDJYb3gzIWsxRHFadGNwfEhDN0dFdU1YWG9qIz5aWT40
CnoxQzsqeT9AOD1Xd0BxWSF7S298TFNIUlA0YzxqITVybSR7IXsqJXdsZ15qbjZ5QHE9SWpmSmRW
emxIMmcxZHNMfgp6dSRUPVR4UmVkWGBrUD9AclF4VXshPE8te2h2TlEzXmk5cDF6WlIrUG4qZEFP
Km5VSWBvSCZMWUNRUW5PVk07RDAKens0aCgxST5KKDdrOG4jYTZNYW5DWH4mU3NMYH5vKXVvfnFR
YFVNcSokempQNk01KSFWWFVXbUtMe1M1eFQrfTVgCnpfTTlee3tROVFxZ2pJKVN6KHE3IUMoMzw7
eEs/JGw7VER9ejFXajZTc3dAZnpGb2tucUR6eVRkRUQtPnYydiVyewp6VjN2WGlzN24hdTZvYE4m
N3M+UWxrdGAhVTY4JWUyU2RTOVR2elFWUkRVUykzOVAqZkFYaUFSa0k4NGIhVkBmVk0Kekp7aCt1
eEpeUypvSW5QUCNndHJaYXUmRGI1Pm01eSh7fmM0PGRUdVlMPCY8SD9fcHxTJCZ0IyRgPEx2MUM1
O2AyCnotbGJlXyNRflBNOVk/X0FnZUxTY0t+YnQ9TXlqR313Rz4jPUxLQUAjbUFTWiVaWkRoY148
U0R3WUNweEZ0NFlyLQp6Mz1mRylAO1krZFp7VlMwcithTUp5WjRWMHBkPiFYNktNVmtYeVh0WEhX
NTFkcnlsPSpQXm5QZXw2bGsyKD45fHcKeik7cCFPYF4xRF9wQl9FIz9FQ2M3SnpzbjJ3ZFlxWlVw
NDIlTmd3YWZAWXU0NT0lbmB8cUxNeUV7PmtNcT5+YWJUCnprN2E/TyhKVVkrbEtCVVFHaGhFdT1J
YTsye1FRRCY4Xns5dTB7flYyRUk3filLOz9yR1kjKXFaZCZCTmlWSmdgaAp6N25kYCp4U1Q7Vnkw
VWw2RT9eM3V3NXRmRjNlVGBRMEZfWHRFJiFAclZHM1grZFo8KnU1fEhJb3RoOUBjLVFPMioKejxv
T25HaDd+bmI3Y31MWHZYMVcrcEpMVktCZGpRRUhfTCsoNzQ1VCg5bztkNXR6OSZkJjZfJExgQjF+
em9CYVMkCnplVE58KjNWWXt6NHF+MFU0YEJDcGdMVElOPko3azZlLTFkKlJOaylaTkhqckA8O0Nx
YTBNdmNHQ2FgWE9DYjhhNgp6UEctLSlJLUx6MUhpd095SUZGNFNHbXtNLUhqVld8eTc7cCVqbTdz
ekE+Iz48KXtGWTZVPSFaMjAySVgqYmlpJTwKelpYO240IVd1K2UwJEdCNXh7cmdDPWMxa3tyN3Vk
T083K0JqTT4lMXRCY011QDZSPD0+eDt0eDYzczlReHRKOGJSCnoxZlFsSiNDO1Nzd3pvJlQhcmUk
bnxJZldzKisxSiZXYERrWUJLeW1+Q2grPn16czlydztJVnI7T0ApMG9nRlcpdAp6WjEheTVkRiha
Uyk0Oyk0YnUoZks4JFcmLW49Kk1Obj5rfEBuPiVMPlRkLWcpVGUxbEtPTi1hRE1HTXhrYEUlQj8K
emg0YV8zSExFdFZvIWhwdXFsYjFQPjNiaUcjLXRwQDMxbFBQK2tePUArOGFrNzIjUjZIUVFzMFR6
PjshYndkNSM9CnozMTIoYUMxKU8hWE1ubU1kcmxLWUFhPlNXWkVzeU9WK21ZKG9yO35rUEJyUXhV
fFAqV3p+cUZjWn4jKns/NmAwPQp6ZUZLXmREbTNMZ3AoIWc8Z3tISjlPdiooZVN8QUUoLV9kfWo3
JHZ9eG4hYUpsUVBHcWZ0d3NydExCbl5mUiRUJXgKekwweVZSdE47ZmxIQnVsSVEqdF4/JGZhWEtF
Jn5jdkNZcnZwcGZDd19pVDV3QDl3dyFLREckSnVQcTQoVEh+fnJ1CnpCc21vJjBaUHRXNld8RndP
PT5CeXE9aEJ8Q3M2e1IlcTRaN21+QXl4X2A1PkBkJn5UVFdCUGRxZ2ckVUlGel5vJgp6cHFoWDJs
eiYyPTBHKXQ0V3klR3QySyt4bl5ySlhQc2d8R0M+WjZFJUcxPSRJP2p4MG8+Wnp4bWBYXkZ2eTh4
aGAKelNoc0cmUjNEJGY2SCMjfk1YP0ZHeDhvOVlBTEk2Tk9nIUdLNUY4aFZvYFRTYmNvck42bTxq
PCoxeEVwPkFePW9qCnpFRmQ3MTFxNm9SN0ZIanJRezMrSmh1IUF+V3MyLVJyNGM8RGNBcVpFVGVi
VjNQN3pSJUl6PlEqSylAMVFqTExEKgp6c2YwcFJxZnd+TnghOFRxXilVP3IlQyYjJCNzSE1eY1BP
dSstZ2JnajchSSlfe2ElKDR3U2s0NFNqLU09cDJGNUcKejhPUD5LOE8yNW84Xi0ha0tHYnVBKm5e
SkBXRGgoemZPWVFQQTRgWWQ8V2A8Z2h3a2MxU3hrc0owN1NKeiEjVlhxCnpROFJoQk42LS1kXmtp
NmZRP2FnUDF9NGc4dlFkRGlma1AzSGlIeFViNXM+LUYpMSVrfWtCazdvVjUrWU5pWUVXaQp6YCpk
JVE7akE7UHllPCFwZntIYTNGb3Y5fG8oU3loTEFJU3hvXkNXaVh7UCRiYlJWZnpFKCgrdXBsfjFH
KTdwYV8KejA3NHlMN2dEdGNJSkg5KGAoMGg4QV8jTn15UkY/TV5nMnlveDh0XjUkSH1aPz1QOWZR
NjUxYnNhdD9kcHJUSldTCno+T1hLWDgjLShXOCNmTHk0XnZtTmBBQlBEdjF9ZE51eXp5TXYxS2RV
eUs2Zjt2PTFyWTJYP1c7eElNVU0yZnNaSAp6VFExbWxGTjs8dTxARDtMOTVzOD5sJEB+UURobn08
aWxWUWI+WEsqelopbmZtRVAmR1B0PHg8Mlo2LWo4ajM+VT0KejRtPDVDWUB3e1k1TT5ReFd2Q0tN
Nz42YWhESUF0dUkyNUxFWDM3Z14xfUlFPElnI2pMaW99IyQ2c0Z7Jig4bTtvCnpjbWViPXNZKC1Y
e3ppWiRQME53ZTZhYHozdlk3Q0dxLUhVdEB6NkBfa0FvJEwpaElreEstMHRJNT9VIUQxcHJMMgp6
PE1pQilEKmBNKlZOeHdRLXRiTSthZVA5fjJ+N3NyYVk5KmdnKGhMYzJ+Y1d5PmszWWQwI3RGYENx
YFJzQzA8OGgKelZ0VUBma2ZfOTAwenduSWBvX2ZrVUlMVmEwZUohfmRqZypOcj4+YW5xbHJGST93
WmpsZHh8RmZDP09zMl55Z1FmCnpmNDsqVFpAa2ZhKTdJX2QweilEWCNWMlEybDJmeFVDYTM4P080
ZW42bzBPV3g7KiVoYUMrSU5NbEZCOVhORS1iRwp6UD14YGdOU3o5U0l1ISh+RkVCVSk3OVc1cjJ0
V21eRk14V2RnMj9Ya1hROG5CTFNna3Fnc0ZDNHZeVGY9KGh8TDQKemYxSlRZKGl2NiZwZlVyZjNJ
U0Jic3pPeD5nLVVeYGhTUG8yaTAmSFQ9XkV5Iy1QN20xUHJYKUdGVV8pSz9jIXczCnplVVpkfHVK
fDtvRD9HdWYldHg2eWVLJClEVGdRVHJGSmNGX09sUFlYamJxY3M0YElVeDRQdmpwR0xTdi08Tigm
WQp6JnBfQnBnUD1rb3JKVkFpMDhWI2U/YVE0IUN5Rk5IQEVFTVRkeW94dlUoWWU8ZHohJFdkMShy
KUpNPWpYbiQ4OWMKem5hVHpabmFvfiM5ampSb2tvaDIxdmsqTFcjPGJsJTBIJSZUNXNBPWFEQz5t
VmB5V0NSZG1yPipKdzU/X1FMcTZZCnpvYD9YK05kUEclcDcpQCVhaXN7UkxAQWJAUVhPYkFQbzIm
YVlMeGNZd09eYFh8Q0Yxcko9bE4zXjZMUHdhdWxaaQp6K04xQlBKcHcmTi1IaW5IeVJnPmcmZHlW
eksyNTtfPGpMJnp5QyhzakNiRXVMZ1ZYYiY4U0lJdFhSfXZkVEw0UkwKekRWc0VEMSFeVSlETnxO
TFpDVkFEWClSbH5kSVFASFckRERCVGBiNlpBQnprKyRQeSF1dXJ5NF5yQldnM1RMK35uCnpHWkJf
dERsOXBrJVg5KH0xTCRXPW8lPXUyfE5GPGNJbUNvOGF3Z2ZCTHpZODFvQVlVeVpHPT9MQSUhYFU4
YWN+KAp6NyYpS2tQfGwmcUFxbU8zTlhZcStRX2N+LWR3K2lWLWZzSTNwM20yRipZJFladWdCRz1S
JjBlZzdCQHp3akVzNmEKekRyX2B+VzctP2l2TGR9YkI9I2lsUkphYFMobVc2fGkrMjFGanxVY2lz
IzNnS3RiZ3pQRjE8d28+eVIqa0phTzM+CnpCciRvSitvcTJgNV8rfHhSXzZOOTJTfl95dkVJSXZ4
filOY1hBen0zODlFOzU1XnQ4Jlo2XnsmQ2gmaSVtc20leAp6U1k8R3czKGxkb3ktQSY2TGs2eFZ3
MV98Rig0MVlQX00kTkptPWJzMGkpMiF+ajVzKCYoLTk7fnBXMThOdD43anYKellWaUp7e0BQdTw4
UyEoQipCIz9qe1IoK1lnWX1ITSZ6JSpgWnQmTF5vbztVfkNVQ2dCQGclQWJ4SzxacWhuS0oyCnpv
eFNaIV5BO0NwOCNqdEkmdChIWnlWVWd9TGxEeHU0WWFuRGAmTUJySk1jfkc7ZzlZNjBaWFkkMDVy
NFBZe1BTWgp6Zjg1V1J2Nm53WD5ubFVPVHUlTm1qfj52PnUxb0ooeENTeSZwPkt3Z0tOMypAX0wm
SSlaV3ZINT5pUj8yQ0hybyQKekN4RmFKRGQ5VnxfUUkhRWJiV0s1QmleMz12cE0qQ04hMGZOVTBg
WGFNbGZkcURgSTlkai04IUFyVmZQe2JGflUkCnpZZmp6N1BecjtuKVJ8alVEQVZnRjNYOF9zUVlf
ZnV6R1ZCUG1zfEs7bFFYej42OE1oUE4+THQoKTZIS3pPPy01TAp6N0AjZF5YNmB9YSF1VkU/P0tE
WElUR2VPX0kpZ01pOTNwTnhackkjJV89UCtpVkt8IylHZjg1VmdRTnRFdjR4bEgKenA0dns/RHNK
Q0V0dSVDUHo0eSgmOEYjNkZRfXlZXmBBcCR0O1VMT0pzX2hteyU7QEVCP25BaTRsVUhuJHtjalRO
CnpPJUN8Rj1nMTdUQzVpeyFwVDxqPj5OUk04ald1OFdNYzxMM0JFVURtQUJZRDlFb1EqMGp7JSRz
TWlCKmFUO3tWNQp6JF9hcElxTnNMS2kqRDtJfEp3cHlvQURQeU9qX3s5OUpAYHFJXn5KeXVUYCs8
JUReTihKdSFDUWI1aiswelRrVFgKeikzSDY8I1lGRWlHIz9Pfj9KLTRUYkZqKSpIekVHIXRGRkso
PnVZSUElbGZwYzJrKC1tSlN4b0haMGA0ZXVadF5eCnp6dCtDbnpQMCh+PXAjUHxgX3NmVjBJSW9x
KGI8bztPMmMkRm92N2t6ZkdubWZGU0AoIyRhO29+Z1hAMHtfOE5HNgp6P0NTI1IhT1k/dGw7N08o
KVdEOVdvbmQlXkMkR3Y5MUBCai17aHB0XyhuaTttOTBQJmpHVVNNPFJ2UCl6O1RwRSEKej9sNWM0
SSp6Y0xVZTdwWG1MbHY4OyFqOGJCUUNKKThvJnIlejQpS0hEY0dMZSNWVz8je18oTWJSVDY3VDZv
Jk9mCnpWZDYxZ18+TXNnaG9KTDM3VnByelJ1LXdCayRsfXxCPnk+X2p9NlpTZlltTmd5ZmFUOXts
fHlxYj9GZENlSGx2cQp6NFNqdGgtK3dVcSRKPDVNNCs+XmJuUWNxVk50JCY/ODU1R1NDeiU7ZENg
JipjdUdjRGlrIzdUQmIrcTFaV21KPikKejwyXmtDSnx2fHB7ZGNSTXtHXnc0LUhZeTN7cWJxQE5v
QGp1O2RibEVkY19BP3QrVV9aU01VRlI/PV9nT28+WmYrCno8WlQmfFJqS1V0KmVQZjJ0a1FiI3Qp
JjdpRSRPayVuJnNiQEhlITwzKH5EUFlmbXI4fU1NTnJhalcwbVZkMnh7cQp6S19Ie3NhVVRCNDQz
dUQpa0RHMEpsJWhrUlkkNztoLVFmV3A/Nmd6IVoyMHo0a0RYOShNelRgKVN7cnA9dyNHSnUKektv
UWc8eFc8fk9SaWA2MjtGKCtFSj0oOXF4JkkhQy1VeHcrJCRqNEEmRmNmMlElREcrSCUpIzA1KlRO
Nk5mWlJICnpgQnc1TkZxRDBUKkNBcG9Uakg4Q3FmKl4tKXYxPDEmfFQ/PWtYSjh6LT5iV1czaHdo
PmpeZDghZVY7YDchYjJhJAp6LUhZd3BqQFRXYEliNjtzfDcrV05melZOVnNkNzlhRCpQfmszVGZu
VU0lJnBMV0dAdU5iWV5VI2U0RXZWZFdwPFQKekVWKj5hJWVtIUpJaCliK15yZ2c+aX5Lb3NqIXh+
MiR4SGotb1F5RUQ4KDUkeikrfGNIVVFUYE5NTV9oNFBlblJACnpEKFAtZTlGV0xYbEY1SyhJeHUq
UXhvWSY9eCkpXjRCSF4+bkM+WkZrYyslIW4lYnpmKVcmY20mYTdmMD5CS1A2Uwp6ezFHV3E9T3Aw
eFleN0dqYm5yYlFWYW1IbUs5MEFVY3FDZ3pFJjYhNm8tNkdxKTNPKHkqe3ctc1Y9LXhaTC0/QHcK
ekZDWV4leE00cHgwWiU4T1U+TVM2RXxIcipeVitkQSMyZj9SJXslTlR6I0lSTGdQI29rQXVDfEFX
RS09MWloSXExCnpQZ0heQm88Wj9sJHlVQFJSc15BXzB7X3NNJk1PMkE5Z15PVzl3LXFtSUlXfT1V
V18pa3hZOCM8WjVVd3RDNlNGewp6MWVCcEg9ZDJ6M2BqNyVfNSg8MUxxX1YkQ1RtIVQ5RmVwQy1l
aUd2ZFN9TUBEalZiLSktcDt5JkBVI2RtSCleTEMKemFxP3hUS1pGdSRCJUF3NWkzTTtVMGp+a1lL
LTF+Tl4pMnZ8dTNkZ2x5M1YxcEwzXlM9cUZzKipMN3pzMSQ7ZnAhCnpuTSh9MjJQc318WEgpc2to
YTMtOTJSSnN+Tm5mQCFGaj5RK1FvODB4Xz9jcXwrfT9jdXtYQlQjMkgmbm9LVTw+Ngp6dVFoNkFx
ZUI7LWslbSpeYE5+cklnWSlqYUxBOHNjbUU3a0lUeyZtRXJgXko8dztuRThOI2h5Nm0xbHZiLVpq
JXMKei1CekZwbXIkRFIrOzRgWnJQQDFXUC05TyhCfjw4USQzPFg/VVVwfGEheCVadDtYVFg5RWoq
QEZiVFUyZCR3KGtJCnp6fDJ7VF93NlpTYGNoZDsqentHVkdORV9PdD1KSVJOblBJdTA0ZGUhdDEp
WUI5dUdKU0MkWj9WPFlDUWpifWB3YQp6bHhme0Z0aXpGS0lKZ3glUig2LTNHO2Y9T0U/d1dXa1h4
e2pTKWcoPkFpd1IpX010eF9UWmhFN0oqajs5aHhnJDwKenY3PzI3P2VWa31iVX1SZWB5eEp4QU1X
ZiomRilON0VsJCNSbTRoSFdZSXA/Q0AkIXwhZEJkKkJMZyRrJG5rWFM/CnpkRGpeX1ZRbFN2UClp
JVFkWSMjeXlPVW94ZXIjMGdyRVR5N0V7MVV6V3U0IXsraE83RClBPV5qN2R1ejlnViRCNAp6Y1Z3
dSt0ZU0/T3dgUkRFN04tVGNYI0JaalhVZHtDWUYwfEJNZVkrY19JVEJhMXpIQ0xSLWNQNSVHTGdF
UyFFMG0Kej47NkhkTVc0dTg7Yjg1aVFuZ2ZTXnxXKlMoUEhCblJzRXBKPFpyKip6Vyo5RGhiMVMm
aip4VGZWPzElUSE2all6Cnp0WXxyanh9LStjdDhzZ0shPjB7YjR4ekFSI0lAVEZBRW0/V1pmRldq
O0JWUV44ezcpIWhBa351SXo3c2wtSkVYRAp6NHhtY3oxVHBRYkhHTF5zQ31hQ35pe2I0RmtxIU9J
eGMyRnlHP3hzIWhuVTg3YDNeUit1fjFeTklSXmBCXyZkOFIKem9Lb0BvPTRgeUprWG1FKzwoJj8h
VShBek5YZTw1VWBURWAzPiZEISN0dHVpb1NjfWdfNl91PjE2cWNyKGNTeCVwCnpYOXUkWitpRkxr
b3dPfT9IRSUrJSgpeiRKISlJKj8jVTVwYmJKZEdON0ZKK04/WDRIdHNudXhCZG5iZTIzTkgmeQp6
azJ3bUhDMTRiaF5hNCRKaTAoYk9MaCtnc20oZVdUK0lCPVhjeEEqMihoI1lTYG1GQlFYQ3xwJitz
JDVQbz5nI3oKeit7YXAqeyEpfUN4dHVGZl9fMiRHe0dlK3gkSjRCJXNeV3QkbU9mMlZlU2UhY0dR
Vl5tMEEhMC1KemEmfkxjVHZeCnpCQWlJTWI9dHtSMzRDODdeK2JMd1FETm1Ne2F7IStkUy1CY2V2
JHEmVGElbnxKNjIzbDxAX1M+WHpPaDZWUSVvRAp6bCFAeCgoZCpWckB2V0pPU3E9T3sjTFMwY1Z1
TGIyWDVvfUxfN3dOcEklUnY3ZWoyQHsjaz1nSktBQWNSZkVrUCsKenJmSVR7MH4laGhOVHxSYlFg
NWhieH5hWEU5YjtIemw1dCQkOCZyRDViIUZ0YD5tUmAoRVkqTEJZcE1idFkqMj9aCno5cVYxKjQr
SUhkVXhEUHxlMmhYTll3fHFnVHwjWHNVT3ppQGBYVEhjYjJDPT9PQTVaIVc0SXpCNmRnR297SUdg
Wgp6dVhULTckdlJ9VVM8Q0ZUQnV4PjdnYnkkTClDVGhwdG1xVWxBUFVTZj5lWEVLNiphWjJ4b2Io
QjFeWWY3dn5GfSsKejYyNnJWK3RYb3NOT2lAMT1PMDdWWkdUdGxkQnpBXj0+K3EoJVFpPlgoMGVt
YS1jU0liXiZiOWJjbSNuU0t2U3tCCnpySlZqbUFPTyRWY0FJbU1rRko9JEtQRzVTNl5LamRhT1Qh
RVZUV3hncz9vS3Qlam5jPjx3VHJOZGs3SlAqdmtqJgp6dXRTTmVIMDU2JXpBWCZ2cXBNK217S0g7
VFcwe1JZR3YoO05XaklTOzRMWWBWY1R2a05seEBaU1AlViEqQkZ+bXoKenwyQmw0b3tJSlRuX3J6
QVFTUmopYzI4QkJ1fEtLUV9KY3M/aGZfUChFJXVfd3FYK0ZMJSRsTHtORWM8O2E+Oz04Cnp6X09r
NmxXUWVRWF9EZDQkZEI4TXppLXVUekl0MUdfTzl7Zl9DazthYnpzS0cmXnlZTXduSn5LaHEhVUN3
dmdidwp6JX0xfGZoPnU+KUg9XzJ0QU0qK0NseSFyanVuRXk5RkNpNThrRFBudSskcGc+aCR9SGs3
IUF8O141azMzK0YhPkIKenB0cnE+Xn52fjAyczt7cGsrbWFPb2YlNmYoVG87RjVuIShvO1RfND4h
fDh7cEA1YmxCKkB2YChRUElfbHFWM1hACnpTS015aXJvWCNqalZDUWpDWUEhe0MzYnlHWTE2a0FA
fWNQSExncz9kPiR5fkgtQyphXk1UKkBAaSYpfUopZFBaSAp6a0dDLSkrIW99OWRFT1ktbGVFYGkj
b1YrdW98MTdpRF98YHZkRHAoUE4wJnEmPjdQWGNNM3VORjY0dnBPZzxZKUQKemYhWipxcEdoUnJh
c1M8Z2shdWdhfDh0VVpIZExRVVNNTlVpUiFZZjZRIylCTF54SUpMLWhkSll4ZEIrYWtjT2c8CnpI
YTd3bzR2YSNZTngmaXRSWTk+cTgrKDkrUEMzcHYxZE1HYXokYyNhbU5ib0RAKTUmVTd6MGIxNnBK
bF9ZantmXwp6SzRRdlgtdmB0aVpIUnMyQFVxY2hOR2Z0UHhYOVNeb2ZQUigwUFVxcXlNbHY9K1M0
bkdUI1dDZV88Yks+YyQwXkwKelNUMXlsXjhvNmBjSjN9TWBmbmNCXnJaQD9wfjJBYiYrSlZrXkVy
XiFxZG5+bHFFdX11enprNW5SfTg0WVhuVyM4CnpNMWlmX1d6dVRPeTJPZVRFcjN0Vzx0eTRXaVJJ
R1FGTnUxb15+WCRnY0RDTkI/TlZCKVpaUGJyWCYlK0JeRE5ZPAp6ZWRkblY4QUNXfEY/TWBhdyh3
Oz5lMFglVShiS1o7cFk4TCFOaUZDJmByNk8ocHA3K18lMFg8YHEtRndoKlRNXm4KemxebSp9aSY1
dEdGbnZgNVA4VnFNblkyejJ7Q2F3MkJIKklTbmZKTEhENmp8eUVQIzE9dXhnOHFYX149PCY7Qzkq
Cno3VClOP0I0WSYwe3tvaWtQc2BqNUVhXjNpJVd5fHxnWF5rRCVrOz5ocG0yNnM3NS1QQl9AOURA
TDQjakZMckk7bwp6a3QoT18pKUZjYWpKSXVvelE+WHZncnd1YiZfOSpPLV42WWBwUjtPd05ASEdG
SW9zTGpLSzBkJCMzYi1Aej9nVEUKenExWilXUHB2TEQre09xajdiMFMtWkQ3OVp4c2pxZGU7Y0J8
P3BWSFBvfjJlJUI4R0FJb1Y2WUZFVz53VkcheVh9CnotdisyZjJSPiU/bHo0T312ak5RTHFzclVB
dmxFSygxUG05RmB+X3M4a3hGXzJIMC1HUyV6NEBIMX5uRUJNdEItQgp6ZiFRcWFmZERLPUFXN1Ek
diVRZEVKbk0oUW5VRnBRKTwkZFB1QGJFXkJZamJhbkBPRzIzPWU3K15sVU1rQHw4TkMKenl8ekwm
QlpVY1lvPyghSmxXcnhVNEtVPEAmVnlnd21KMypCe1lYek49KEZpZ2VINTdmSVVYeWFBUl9DK1VQ
NFJwCnpMYjUpN2UreGluQz9MbDx1MVV8S1ZgZ05QV21UNiMkYCUpPXB2ZDBYTSYlSDVKWktDUlBy
SWleZDVkTyluMFRLNwp6MFpUTjU3QDVodzd9VTRnKnM/Y3F7P2Brb0pyWmtXXjdUQjtWaERadENg
LXlPNTU8Qz44KD91eWohfm9gO21mZC0KekA0MlNRIyZBbE41WEctQWUpWGUreigoN3pZUih4b19O
YTRzPGd+NlNlZjBfR082bkU1aVVnQSptb2Y1JFVoUWYxCnpUVn1BQ1YjejVhOUU/bno+eWlNN0Bl
cEQtdUJCXmNtdWF7Z0dUTX5pRlQoPWh1Wj14RGMyfityclpOSz01ezRISAp6NnowfjJFKTxkRTgw
N3Rqd2dUcHYjPGZEQ3JmV0N2VEpIMk54djliU3pEWjwlYn41MWAmfCVfPmN2O3IqSWZeQHMKeikp
fT47QDxZSENfblpsJSFxND9GUCVZd0tBaTlrSURZMmQyX3VpV2pib3RFVXFYJDIqNWZHRGArWCk1
UGZwbHtsCnpJP1gyNmZqRTFBMmxlbGZwWD9SZ0xCOV9zdj9oRjA8WWhmY2Z3WFVOTyh1V25USl8+
Nnl4SSVhQCNmbkg4clN9Mgp6YWN+dDktLX11dSU7KWQ0ejhpT3FvTytrJlg4ZX03JGNBYyQhR0Fz
R1NwfFFCTnExbGQqR0JKRXI8Iz1xbnF8PCkKejslK3hpODwjSWRPSyFXflFud3kkeGkoJjUhOzcw
ZzBVI2JiREspeT1QeE9CXzdIWDFpem15MlVoZTVrfUJpSD53CnpkRVZmUSs/LUZ8S1Y4ZlQoaGZQ
eD4tTntrM0daMn5PXkhxRylaTH1ZVV9gZmp2JnU1QWh9LU8/WjB9NkdUNH4xMQp6TjQ0eENaVkN4
JCkoZkx2V34zckVHZSRrdUMzTHBEbWlqI243VE1HU1lEN31ZI31LJHc3PytvKE8+Y082R0p8I3oK
emxKZ3xKNktMcHNWciZLfTVzdkZEcTUjTzZFfWdfSUt1TUU+WU1ofl9GcTB1dU09RXt3Qkl+SGxP
NXhnRilBVCVwCnpoYn4/dUJHRGFhTlI0Vm5sWGphcml2Wlk9UjA1ZW9nRH5scHxFaEtuISp7WDxN
JnUjaj9MfXMobTRFYEwpSzN4Twp6NT0jOSlReWNhckhXWjJfcGtHXz1HWW4jXmswamw/MkVSWmJz
PG9lS1oxaGckcmFqXz08UGN7UjZyb0dHcmx6SkoKem9UMkg9ZjJFaGA+bz9nMTI/aDBkWVd4Zm4m
QVAlemohSnxAT3lTRyRyRXMwUWxRZHFvZjQ+dCViLUooaFZMKnZ1Cnp3JGBae0VHUmlAdkRkfito
MzthXiRaJUVLJG5uejZZIUpIbVM2dGVXYW5pVyVJKzMoLS0zTkArVU1FVVZNbXBgSQp6JWRqMjg9
d2hKXjBoJDJYdSR1eG1ETHZ0NWs8KEJCd25IN1Z4WXF3ZCo8UkBWVSspTGZIVV5PcS1vWWA8ayNN
UnAKenhNQWIlNGJAUCVnPD10RTRzPDg+KF9FbFpVYEVWWXo1eHg9MiRONHx2ITctfnQ/ekMmdnx2
blhpUnZrJSViRj5fCnpKbnZIQGFtQVBhPzJGNzc1TDY4TWwhYCZWRj19JjRJO0Z9PUhwbDF7QX1m
eWY3TkB9Jl42PWxEeVdQSnd3Vj1pNQp6a2t3ZjNrQVcoUlZKfThzQipndG55STBDej9AYztmSHBU
eX5tPj9nNGNNQ2x9Pzdiclc7MFhnNXFxYzFgNlVeSmEKelM1LU4jWGxJeCMzQHltIXRtcXZlISs+
TlhXPyZrJVIrNypHVUhSP3lhKjtOUXdVYmB+Z3J4RUsyXyY0MDB5cVJLCnp1NSVBNjJgJCFMJEJi
LUtgQTxqUUZFPlZLd2c1PDVrdzVrVWRFfSRmKE1rS0BocVZ2eVhBSW91TT0lZjdVd0xHagp6UiFm
aClRKkY2dFVlfDUte3BPby1wMjwmZmZEJTV2NlA8LTRRYHcrZ2gzMGVgYjt9c0ElNEtLOGhAN2A2
UGxmOHIKeitPSHkhMDBfYWNBcHtUd2tiTnB7cmYqWkFWYkJ+N2ApKytGUX1vLWs5UHZgVzUkZS0k
KSMtZyRwdnNkem5tbEZNCno9UDhtc1JTS1hJK1F1eVZLO3opN0pufEordyhfNmNBSShiYSUxfWlK
YyR6aHg0OD43ViRWWmJqQ19yemZHfCpfUQp6aHVZYnxrVWElb3l+ckNxYH1JSXsqZG5lb3JSfFRx
Ym1vLWplbntqPDgpYXwocmZzSnlCcn5+P0FKIWU7YnhHdikKemprI0lYK35sc1hFV0tseDRaaDN9
ajlgKFZ3fj1PTkw3MElPJVc+IyhUMlRldFVNbWEobnNxNnhMPDJBXl9rOTNWCnpIZ2EtZylPfXpz
ITg9MW0yJFllNHg3c15Ee1dueylHYEk1anZ8UlhrUHluY0VrJE8hMmgxeVRRKzI5TEJrSzx6Kgp6
Xz9tKkRRRnlWZik3QHErdWB2WlVBWXxxakRxS3Y8KG84TX0zNUZ1ZStiYW5+MksyQjlOXmcmO0JI
X3FyRS11eU4KenokTEo+ajN3S1NiKnh2RnJZIU5TYkdBfUgrZCV1ZVZ5TjxVSFUqU3ZxS0d6QilI
WCshNV95WC0+QzVoUDVPQ01KCno2Uk8tTGBrNV9tKXpuIWxBJHRGWF5pcElRXkBCMV9pP0ZRQWM/
TnN4KGs7dn50SEM2Tm9+eXtFKmJWcHRWY21yUwp6PVpOdGF2RypoXmF8N1MwKzMxQ2Y1bUtwMF4w
RXFNQjB2LU9KMlhfYXAjYU59cENqVGp5Ym8hfUteREAyZUhXe2sKeiMtTjRFalpiR2RaYHNjeXMy
PypxeHhZVnoxXm8jSlVqOXZJRFBSJVVEaj83b2N5TWpXTVZgQ1FjR00/YD9ibSlMCnokUVlNPnxJ
X0MwR0dMVGlkcFU9TGUjMUtmYWpUWCVuI0dzbHA8KE1jblN3RDNkMTcmcUR2YFdwcyUqQnVqV2pP
VQp6RmF4PERsek1RJUkqc0BuQnx3R3Z1ZUcqSUY1Q1FxWXJ1QmFee3BxYSF7NFdTZkh8TU1vWSV1
dldAYUJzfDJ+JkwKekF5QHh3OHImUDVXUm5gTzgrQC1BZDlabVkrfnBWT0BZN0paK2ZaNHoraFNP
O01hI1BeQlZGMjJrU0kjTF47Ul9fCnomKVhlN2Q/Yl50O0AwdX48P1l0b2E5YU5QY0Y1SExxR3Jt
Q0trXiRCKnlEPiE+I1JvaTx9Y0V2OEVXSSl6ez15UAp6KUhPZm1rPiokfUw4d2hrWjMxO1lwbiRJ
RV47Pn1ZbEItTElwMGR1e0MraFR4eF9OJXV6KGNKdSF0YyllTXRnNnwKelckNmo1aHJEbD4wUSF6
TlpvfTZrMj9aKWtlMjRRMTJOKX5yZSkyVj5RPiRHb1prQjcrdyFrPz1jSlhHaEdpLV57CnokWEdu
SjB9KUhLez1HOFBRTkwlUClwWipKPEVEJTVgcTF0RjhabiRsN2YxcjJkY19kWXlzK1VlVkxLWHBR
JWwmNAp6ZShlSX5wYFAlPjhUKmhtTFpHNmtfcV4tTDFRQDg0bzFGeCk1WXlednRmUTxTPGw/X040
eWtVVDJaVGQqT0BfNzMKemBEXnBPcCEwbDdtZXxga2w4TWohP0NjSTc4MFU8Z1JpO3wyRjdee2Vo
OGolPjx7ZiRHTCRCfHhPZm01KT9CTlVvCnp3fWM0VD5mKjlhbjtOcSpvK3xiUz5mdkBjLVU3NXZz
SGtyMHVRclR6X0RDckVmZjFRO0g5JSlReVB5cjh4cihoKwp6SEhvOClrKSZ0N0YyZ0V8ZyZiTjkk
QldCLW1JM0Yre0JfOXZAc2ZmOHw2SzJLNWFfQEdwb0pCITZuMlp8a0IpY2QKejF+d247TnBIJFIr
QTgkaz1iUSp1PUh1JjYhfiRgTzBKOVApaCF7PG8wYj4mI1JZfCQwP2R0X1dfViNnZFk+eyEmCnpk
e01iRTxxcUYwNCRVXkJQdC1gI3d5K3t9KkpmT0B6XnYte0UpTk1jMWBofSQkREJuPz4tfj83NHdy
ZVRzeThefAp6NzZ1dEw+KlNAZ3U5eXhqc2VnbkJIZWB2TFAjYjA2eDcqd2Jpa3xrRj9jYUU5Pjwt
QXVRfmtyfFNFT283ZT4xczEKeilsQWFjUCo5RjNaVkV1WTFqSlBEPiYzMGQmeG5HKlo1JllKO0o3
MVFrLVg/MldqRDJVbUs7TlhqIz8/NyZDNTViCno5aD1qfjg5MlYzO0x5QDEmZEJYSmk/RSZ0U3Nn
aCshTUIxUT8+eFFieWw7MGFhMnxpbHJSM0A+MSRWfColc3d0JAp6SFpCN3ZNc0F9VjBKaHE2cmZX
XlJXQXFtSVhQNUc/QFlfYXZfT017cGVSKDRRYmF1OGlSYH1veV9MVjE4MnpLYDQKellrOSo3Nn5A
SmNRYXAkaV5OT3hPRkwpamRBPEtQaipFPlFpKEJtX0F7TWpWbGlpPDItbW82JHh0QCY4dCU/UVlj
Cnp8Tkh1dig0OzJHT0ZxJHItbWdLViY8cl4+UEEoTGhSSUF6NE5sYWtAVFl4cFl7TiN+djVFam9P
cCNWPlFxcFJOQAp6TmMwYzhnUS1PRitSQG10djcrX0N2ZTElVVRqdEN9dGQwS1VfNEpQLWkjeHpl
WTFaNkVwREV0U3hHMnxXVGg+UlcKenloZ0tuZV9ANjxhdj9BUDdUQ2RoQFNtXlU5bHd5NDcyQVJ2
c0hFMHNMU3gzRUpxfndBXkxsQ05UcjJCdVd3UUBuCnpKIXJrX2ZCM2BRMnE1fiViTlVAWSlMenxv
eXohOy1sO08zVHk/IzJ7WXYrKXdTQzIqO2dVeW1ad0VuTHVyYmNIZwp6YEpKQ2xgfXYpJWJRSTIq
NmdlI3ArQDkrRFM5TXIhVH59MlFQWCE1TiQ8dEZYQVExNikqRl9+UT9nNm9rOD4leCgKei02ODlK
PFRqTDlfREhqZlBOfF5EQFhJWjlzcT9fZ2ElMWBtRE0zK2lJZ1dibyNyUjYzb0p7QE9naWh0TnZ0
YyFnCnpsI0IkSkFzJlFQIVVfeGgjUTBtV3owUHt5cGBlbmM+Nkk2cmV3NTFUI15UPitRVGx7VlRZ
QlUmNHF5V2dIYiQjfAp6T3tKfTJTbkFsWSg/LTBiPl87bl9YfWlZYE4oNEpAPDAzVWAhMUxiKEJ+
NVBWUDUwWUB6RXh2U20rP19uaWhodCsKenZWajFlbit7aWcmbjVebE1id0pxXjJPd288eVpjRzVk
fmlqWCk4VT1TTT49QHFKbmdjVypAYkkzNHZfbnI2U2N+CnprUjE/aDReUn1mMio2UWwqJWNxO2Jp
WlYpPWMrejtXVzwpfE1vNzttc3VGLSVAVGNwM15mdUpSPCFzMmBfczQ8Pgp6V2FITCsrNThzNCkt
MnlZS0R6cklGRyM8Rj5iRUtCdEt1P35oRSZWZD1ocVdJJFVkV2dDMkxSZkQpdl8mZGxjJmcKemYh
eEhXPFgzJW0kK3dPJj0lREUzczx1YT1nbEdnSiEyWHc0ZzBkV292WWhAfSZRenhaYllVMm1Qenkl
YkMpYlQ4CnokJiVDNj9UKXshPXFuUFlGNHd8Si0zcXleTzx5VUNzekBGKj5EPEh6R2o0NihVaCZH
cDteVTBKQnIhKGohMHVCOQp6ZSZDQGM3e2U8Nz44UlYhcmUzLVZ1O0YwWEMhKnE/Vld8e1pBemFA
QyV5d3xJNyhrTDgyNj5XX1c0bm1GND8xSigKei1QO0lQUlojSTN6fk94ZypCYVNMWX5QZ01vV0hs
aS16O0lWSjZYTlY7dlZXRjNZTGlHaGU7eTE9K24/SiU4WUNhCnp3VnJlZVV1biU4Km1Lc0AlMTZJ
WVh3cVpXR1ZWb2s3NElOUkZ8Z3Q7ZUlDR0E7UUdqfiQ0SzA+a2dDQUM4PyFVRgp6Z0BxNGg+RkVg
byh9OE8qaXZIaEkzTWhae3txPXw2TC18dWBPbmlGKjVeXiVgQGlvPEJRPzc1dVVkNCpKeldsYlUK
ejEyOFp4aEJ6QUJIQlJsKlBHdUZPM0NKeHVJZDtnXiUqTlA9eSY4aiR1UC0zTkBmak5uPGtjfnlA
RktlO3JTUzkxCnp3Zz0lPENDO0B7KUc1SW8paDkkamxPSSMxc1Eobi0zTVd2RnQ0X0ArYWprNiFA
cThscW5NRWtkU0hTM35XNk47QQp6bmBTbl9AJU8oKHJLUU4kO1BjUFN5T0EySzFnOWx7dGEhP2F4
O2ZAYk1PWEtTOThFTENKMmNDR25STEtCeTI9fVEKekF+RDJAPGZvT0ZebmRvK1EyfFgpdUw/U1F2
RURgNGk7bmF+UjxtZGh2bUtsdTQ/KkZOUmFIMkgoVjliNDxHR1h9Cno+LSM7Z3JTX0lSWXF6I3Fu
MEtmVCleMW9LVXA3Yz5SP0N3ektje01sS0Q9R0tobzs2KDEySlZ4RCNLVTkjfVYwcQp6Ml9mOGF3
MVJSUmVRZXxNNlEweDx3JjR2JSQ3dD8+K31zRnlnKStsODE5bm1leCY4TUFVaDBMK0YtIzhDcGZn
flMKel9IMDB1JXR9Ql9jPmxMdXt0X2NYaTMleEUkPTZMXz9+ZmBXZF8+bkh6NlYkJlZ2fntNSyNu
ZXptdnQtK143ND5nCnpJX2JkZ184Y3AjKTUmUkc+V1hKakFDXlNNVHZkbV9aLVI+SWtATFgmUl5a
SGZIQz91PWN7SkRqal95ZSt0VDwkPwp6XnZKYXV6SkNzPGE3QUU9S1g4USFKY2xUMXRqal56MjIp
M3BOOTZ4ZVZyJG5EJDlQdlNgdWp0VGBYflMlQE5fWE4KekV2cDxzWnNhfVMhcW41PCQ7akorPCp6
Q0E0KTBmS2Z6Y3l4ejVkK0wyNERIRiUyZyV6YWZqPWRweyM2YitoZT5TCnorWWN9ZClnUn5kc1NJ
eFleZG1BKihBJXwwRG0ya0tlKS01OVV+KW1EYngrR3k8LXpwSHpWJWRIekd1c25vbjdyUwp6RFBa
fkkyUHNTTHZvWGQ1ITF+diU+RjJSaUFOVytDd0ltcTNsWWs3eyFubzRRdX5xTkVIdjdmSld0MlRq
VVBTWV8KelAlOWNvMTkrQTZRbmAtbFViQl98VU5Pd09JM340TWJ3KjhGYU90Sksya093WCFYI3Mo
VSg0UT1IY3JqSEhlcmtgCnpJe303UVV2KnY9KEZkP3M1cWBCfD4yfGZZaTg1bTlgekdXSEN5Zz1m
JnJ0Pz49a1Z1UihCczFBVnByQzJoe0BufQp6WnZqY29XIzMjJV42WExnPTM7O0MkVWcrbGF3TVAy
ditBc1dOaDw3c3B6c2Foe3BEWXMmbGBuRiotfShtVylZcEEKenVGSHZxUmhVOUAoSE1gSFR0MjUz
WnRZZ1NaYiFUbHtRVFY8RDFsRn5JS0l5ampIe1FUKXxzUVk+N2NITnB5Tk8xCnpsfWgtME1VQD5m
XllzMCR2RnNtNVZUKlh9VTwkfDRLWWhlWk9OcGFVUHUwaiRTMGRuKW1gdGs9MGNieHpmakhWZAp6
USloJCNqYSpDYExqcClJWmFEQCpIa0ZNI3ZZMigqYDF9MUtoX3FhRHQ/KzcxTy1qdkV6czlTdC1h
N04kanJtelQKelBLdXdaY2pURihLbUBfM2VsPi08RUZ2RDw/VGdQajg0NDR3RTFYMDZ3YzFfeWFZ
fG1WKXheSXI2OXltenIpMjtACnpVOWVzNyR8ME5KMnJIZFpKbUlySzs1UFVFPkpSeTwzNSYxJSpW
MGM1PTMwUU9KRnR5M1FJcUhIKkF3MD8tZ0skVQp6Mjx5YF9udVhsVihfdyVsYnJ5a0E7SX0hfmxj
a35RRE9fTTVkS0h1KyVZRlN1LWRkN1A/O2k9Nj5AKUVjeWE2LXoKemZCKHJDZV9ZZ1BHRnlIcyNk
WT9lMDtpMVojTC0qb2NEP25JMVB8SV4qa1M3cmdseHB9b2AyV31Nd2N1IVd0KWBPCnpTOUVGKFhf
O0dOYW5Sd3kjcXR8Mk5jez5TbSN3Uip4JU9McTVrMS1DT2B2Z3pvUGtwS2llZ2VKPEc5Oz5DV3dh
WQp6MmhGRCktJmFGVTAwPkcld20pU3Q7a3NPKT0zMkAjN1gxcjc8Nkd5NCl4KmNudDUjV3M5K1dH
R0d6TmpGKFZLdz4KekNxfHtsKzI/YEJBMlQ5SHI1UT54RTA9VUJ0R2ZZWlU8PmEhMFApKzghclNK
aXs2eDRNdDlyQiFhK3xwTjNSOE5iCnpnJGdZfEg3Xj97MT9OU141c0pLLXVtJmcpOEVjJH0yYHQ/
cVRhN0FkcilVbWFAVVU+Yj12OT8xak1SYkk0eG04WAp6IXdWS2p5fntaRyMlN2A1QU9RTSNsLVpv
MzFmMUJtTkQmU1hockk8JWJuYX1aVEhSKDdTZktQeUckajtNYEVTUGcKeiNNQzg9JiYqK3hHPipX
bHBUdTZLZGB9SWxfSHdOTEJpMEVwb2c7e3FOb2JFMUo8RDhNQFQqQjI2YHdkQ3opclJsCnorZlYj
aykwe1ktYkklaGcmbUNicTcocEo2KWxwNGNQeCNRPWE8dFhNKTM+ZD8+SilAemxqTWN7SFU/Nkh1
RnQ1QAp6WEp7JiprLXhFQGdmT2p5JnhSWj04QF90Z1c7QUppPn09U3hhKW9WU1NXbEg3Pig0ZzFB
Y1lFbi1wKzB2YT0oUXUKemBDR2xuUTNzY35RfmxUWl98VTJAYHRmOC0rfilNVlM5fmdzeGRGS2ZR
UmxeNzdUe25Bbm0hITlFWD0rOENuKFJhCno1K0pCd3Q+dyNCZUReeWZ2WmlHT1ZTWlBHSj80I096
VWM2PzJKdFN3MktCXiY1OEtxQFMxVCVeenNUeChqYG5ZaQp6a1poS29QZ1A8cGw3IXE4V19wQyg2
I0RFalVFO21UM25fUilOIyZJJXklZDdjNTxre01HLSVmdjIzZDMoJlpRQyQKemBDXj96SUNiaipi
fkpqbjF0c28xUio8cn44KTtlRzt6JXlhSX5tcD5gWkwrOSUrUjNqd3h5QEJrfSh5XlZXRHR0CnpE
KWJ5JEVaYl9CY0A3Tn5OaG5YfDVmJHNTazR5Y1FlMG1LNGZvLT5HWCNSVCNENjxrWkNGfFRCPXlT
dlZ1fil5QAp6QD9uQD9uSThUNEN7V2AwcDFDak9RdHxPV0pOfHlKI3J0bzZRcCF5MFhkTUdnTHl8
KCMhZGM4e3A9M3YzSW07YFAKelhnIWFzRFRFd2BTezZ+YTFkWEhtb0FsSUoqK34oYm5COWtBNmRs
dytPVTVsVUdzZGBDUEJ4eWVTTDc2OUtfT3VACnp2PVQpTVNoY29yMEwkUl8qUm80YXREUmBJJjJ2
WSQ3empwNyU8bCNUZj0+VkN3O2RPPHJ+dndLZlBOIXB0dnZmSAp6K3l5VT15JitYU1ckbmA2eFAj
PDMlQ0FyPiY0WGZSeGIxMGM8QWZTKCtTeHV3e1pMRyl4K2ZobWtodWVVZzsrUGIKem1Ccm92Vjd1
cjN2dTNyUipWfS1APDU4KzRNakF1cmx6ezkmKDk0enR0JU1aMipAby1SPnRPJSY2Sz5jbEV6KiQh
CnpGRjtDOFBoVz1EaEgycHx5I20ma1R1NnpwSV9+cXh6R0NGT25hOz9nQjtmbH49JDdwZD4wM1ZF
M35tSz14SGRYOwp6MlF+JnkheTB7ZmdsT14qKzRBd3soQWgydDx3ZWR6d2o3N3ZLYyM8Xj57Nkxa
dTZqdjd3ZTMrND18OXdNTDw+Uy0KemokdHshJFVwZXxUbilRYD1zN1ZZVG81VzRnRGtnN05qOTMp
aiFYWj4+aChNcUI1N0pnLUtnY19fYztLUVQyRW4/CnopQlVeTmE+RTVCNmZoKUZiMyFlTjArKW97
ODdibUB5TGpja3pSUFQ5dmYod3U4d3dvMnZfRkpXPmE7ezYtSj1geQp6c2g0P31qQXIhfUVqLXRy
MjRnXnllPFEkIzB7b04pPGFNUkNYRWVKWUcraX1KYVA1XmlEem58N2loWlNpQSo8YSUKejVAdTUj
KFZfKVREVkpfV2VTe0NwUEA4QzEmK3skOzZSOUNgdj9sdiEwISt5OVZlYSY4KVp2S35gR1RHY29t
d3IhCnojek5PMyhlSiM/N0ROOSZpdGcrVTZ4bCEjJWJ6d3NLQkIlLUBiQHtOcVc3Xn14SiE9dysl
eXxOanpoKXBvbyFEeQp6SCQlVXttdkZ9aXFERzVidXwtYyFVbDBEdEx5PEV1TFUmX1UzPkJuSFdY
KkczfEgyVylrbkluN3d9VEREJjIzfFAKemd3Z2dEaEZjSWcmTndmJEpjMz4zWWokdnFWekdwfUls
K0smN3goPjNuRClvSUEmLTVOYU8/JTd2ZHhDUTFvdXUjCnpQPj5XRUFvTkIlVkB1T0lHJnoyWSp7
NHNTUnFmbjRqZnRTaDkjc301WGtrU25oUEklaTFgZkk+Pj5mTn1lNClWLQp6cTJmazVGO3dhdHZH
YzdaRWNDT3VCVF4tXjwpUXwxX0Y9RSZjTnVSelpMZ1RmSzdzYDsjSG52QS1IRWkjP3goQnQKej1q
dmB6ZDh0fSpOIVA5fjl1UU9jeyt1YEdOMTtqaV8wQyZMX0pNREJ6Qk1hZjRxd1otUXpCJDtiQmpt
WDNDTkBOCnpuRXNYQWJMaWRvYzhxdUhvP01ATHw1JHZBVWdeb2pgU2l4O3F+TUxRLVdPakkjOEV3
bmUxOHp5cEJBWj8yTy0yaAp6eU9LJEEwbGhTVDl0TDdVZT96elZIfVpOfCpmTWwpWWwqUiRhYUtm
dCUmP2JqaWNiSUNkXm8mVTRvTG9ydWZyRkcKelYyV3VacyQjfVRWJXtwVmNjZSpLWjtUJHYjR0tC
YiNzZHJ8QFlLZCUkMz14QURLbGwmT2E0c1FoKT5DZGBVKlhQCno1YWA7Z0JTYzRYdFZ0TUAwYEwo
I0wqVDBMMFUjPVI/MVBxKURFVD5rKDR2LWV1Xn15KyhZdWlgQHlBU2dMdzdUeQp6KnZ8fCo8R1Zn
UShqXmtnQmA5MjxrRityJHJIVip8Ozx5QlJPfTk+byR7TUNMOCpnYkhkJWtaT29HTXFUK2AmY1UK
elVOZio/Mzg+d3ZIXyFHcGNtd0NpPkchaE1rYjUpR2lUeT1CdE9jWGZoYzBtNyNGeiUrbV8obmJY
clIxNz1fJVcwCnpodnUzNFJJNTwkdGFUMWpUb0RLb0VrbDE7cFI4TEVGdjtIQyV0PWRDMU1rIWB1
NDlFbVdqNnM/WCo4bWQtSzdudQp6THdEdjFQenRZeGBDNzM9JW0hYEFGOHE7QiEpY2JkKF53ZmJ8
TlBwUVoyWjJsP1o5UXI7SiZZX3JIYX4qb1FUPU0KenVLenQoeXBOb1FVaCkmMXl1ckpXKGNyZjhL
OElXWip5JXNwcWQoX3h0RlZfNWA9NkA7TklnTnJDYEp1N0E0RVNZCnpUPCpudjR0cnlIcSE/KDJD
SCFXdndSUFFEVilDPShadEJPNUp4NGR9VVlXbWk+fGVmMnV9WDV8Y24tbGxhYGdmewp6QCR7fGdG
Q3l4YCZ2MTY8MU8tU09QOGxJJWpeKUdiPEpFczBpKkJePk1DPSUwJTRoeyRwMmBRVWNtRyorJT1+
bzEKem1AeUVNYUYrbVlVVUVCNjlfUCpVLVQyd1piZ2dwYV5iMWdTTkk9ezhvOUZ3bCplRlEqNkxs
PkcyTEs1I3tWeldyCnplWmZrOE5VYnxaJGZweEVOVUNmQCFDTX5PPHB3JU48NnRNTT9DTllsSGg/
SzQ1PXotQ1NAdmw9aF88WXg/OVRUPwp6LWRZPkplbX5EeUFObmBER1RyNDY/Wj0oMF9XQDRWS29T
RV9iOXA8KFpeRnx4ZjFDUk1jc3RVd0kzYzImIz5AUVgKejx3QmFaTH5AJmIwNWV2YXA5Km07bU5L
ckcobihELTRtNj93JkdjMm1PMihHYUJTWHA4RWpsa1RTdTZfOE8oOT9LCnpsUyshaSsoVGhjeHwz
P0R3ZWB2M0JKKWpybXUkcFgmNnM+QndgY1JWM0EhbFE4aTJWPUVuMyZRI1NxKU4xJHdmWAp6bWg4
bnNMU15OO2goMUdIeUVleU18NEFFITZLXjUoclQ/R15aVUZHJXZ7Vmk1bjM9S3wkWTwxJTxFM2JJ
KzdsZnEKelkqVmtmP1lsfDk1fTlrNzl2ZFVwOWN5RENpaGNTWngzPG4/KEtzTHM5O2FCbXY3dmNn
YWc1QmxQbUcjQF9ob348Cno3TERPP3QwRGlYN25rcHBqckZ6KGg2VHtsTHs8K0NVRSQjOD8tYVZP
VmN+YG5ISD4xZ2hldE8+WD9UQUE4cjcqfgp6Q1ZMVmdseTd7RVBmO2VTVGJKTVZUO3o3JDNuaCpe
cXg7eSZkQ1RoKVY+Unk4KFNAQGdMR3ZNUVY+PXlnJEpNNTgKekpKc31WemxLfllGTlc0Q0ZBXzd9
KDxZRjVield3NGRAPzM9ej5Ib0VJKEBOPl9fU14ySHJhUkp3aXordEhXazBRCnowcjM1dHR4RTM8
bWNSVSlXel9TfUx5TiF8c25PczZAPytaWlV6a0Z4IWxJPjYhUiZVe0dmVzwwO1RXQUE5SFcwWgp6
NFByYzFUTWkoSyNMPXRjczRNMktFSFVMbDhqUnAzaTFGaEUyZ2FDQEA7ZzZ6VWcybFd7X1lscSZU
UntZenI0c14Kei1AVyVrPFdmVmA8eWdQb1dHTThqYVNlIWdtQFV2Myh3aTY/ajMqS013Rnl3a1Vw
YHdZdkNJRHZra0F4cElgMnlUCnpWek1rNFRnIUJAUyF+fVRue3U9PlQ7dzdSR3VCcnpxU196KnJL
TTw4KyowJlpUIzUzV0txSHwoUHk8YUg9XyNPNQp6X3Y7fVhvbXNSMjBuPTZUZ2ZnTjsrOShrRnMm
TnozbW9nI0A+PzVQcVo4Zn1LVV5HSWNyeWktNSgmN1A+JkVjPUYKelZEJmUlX0NwSkQ8YGsjNW8j
U0d1JU5tMT8obW4pSlVJKz1jXjlMWiZ6RUgoQUhnQzFTJE94YFZfVE1hN1QlbDdNCnpXdjAyMDk9
QWpzc1owZUtHWXRCOzR4VE4xVUVac0pXQUVyKC07d247JjgmbiYrcChzbGMkU256JT94YXIrb0pJ
cgp6T1h7eno0Sj5BT151VTVwSVh4TjRrbHliZ2FIb3s2dGxFK1Brck8xKGZTP2lYOzVgditrWFh1
QU0jMU5JRWFWdzwKeiFYdmAjY0IxR3cqeDdzUz8xd01FTTBTbFdhXytaJCljNnpLZVdSOCRqWkAm
V2tXS2RBPj5zXntqfnsmY0NYdy1SCnoqX2dsRyQjYFMxQj53anhFTipTRTFqWDR+VnZebkleZmp8
KmBPQ2V9JVRnQWYoakAtYVJoWWxBPCspdztQfDQ0Jgp6UTwxcDIhQ0E4S0hBXis+VXZWSmByV194
IW9xe0dBKlg9dlZ6QXgzaDJhO2d0KSZUMDtSeGIheVdKdDIrTEJiMkIKel52cW9uIWF9diFmJk1Z
bnlleSY9O2RpRnwhRkxaMk96ZWlEVSQ+O1AtOyhRWnglJDdXenJgTG1UUmUqc0hfdVY7Cnp7cmZR
V2V4PG5LS1RBKzg3IXJibz1TOTBVMylTJGAlJSRvfilHRUpFVU98TXpqYl9vTHRUYnlgKndXfFoq
aHB5UAp6KCExKEs7eUpXLWFiIyRlK1F2WWduVC1IdklsWSNXQTBfbFRqZnlRMmloQVdfcWtjTz8/
ZC1AdmZFcThWV0BMMkMKekczcHNWP09DKzc+KWBJbDkpbCo7aSh6ZnlDK1Z7MFN5Jj8+XmxwKTtM
Y1ZAYDNqWClaR3g2OFRnRmpSR0NgMHEyCno9d3FlTDAkSF47I1MrUlViRDZXSDtrczl9IUBFMFhe
S1pQMGVXWFQoOUglTnJySCN9OU9HYTlfeEZWNy1VQ0kwVgp6c3khPCEqV1U5YTtxRVkwc3xePGJx
U1AqUWQzaFJWcHx5RiZlYCkrZUt5bmlmQENUMTsleExtNSNfKUIoS0RtMFYKeihxdzR9eXJfVnUl
LVh5a2VMcWdyM0xYLXppbn5GR3h1SWRANkh7QWlqVHMpIzQmRW92UEV3a3dVXntuI1oocXROCnpQ
ezRtR0ohRy1CdUpxJUtzP1lmNHMjbztqeGFIVSsmMCNEJUtObXd7QyZiSytfZUxkcygqJiQkZjhY
SXthZ1UoYgp6SE97bWpUKXctWGVILWw7PzNOb21sPCVyTz1lO1pLY2xvWS0oQi0+ciZmSXJmQHo8
dVJwVUYrTjFnSzBrKmZVSWgKekBEb3VBYDNGX1kpdWdMWGpeTTh4YnZgX19UX2N9Mm0wan1tc1N1
M1o0YnZFMjwpYngmaGp3OSVea3BIJW9hUFZzCnp5U3whI0VTVUZET0goVnMkcjlqd3JxcmhJXktf
eng5USFQRDA1SzxkU149VChxWFo+NFdHJlNqJkROMX5PUTArRAp6TG5naGhMMEdyR3NLd1oqUyVn
P2EtYXwkTT4haDB5VWw8d1goNHBhMnp6Iz1+dl5ZfGpQOFR1UWY7PFUwTUs+JlIKenJAa1lXI0Bo
YFozV094Pjh5VV5rYD0+KS1SX3xqTWdaSjBnb2FzTyojaj5ecnFiMTdxJHk5Ny1aKTN9dEdqWVdp
CnpVd2RQJlRWTztNPFIhPlBHWTtKZitedUZsYFY2Ul9AdUwkU01wT2t9ZkM2enQ1S2QqVjk/dWI2
TUledkJze289ewp6JiZeVXczSmlGLUs1aEp6KTZsaWxEST5OOGIxfHgpejRlZWFANWsxRyNyYm04
MklaKTJYM3lTVkV3fklvQUZXOTwKem8mbk1RMUwzS3ZwST1Ce2B9Q19zM19TbzZXaVFDOyRvPzl3
ZElfYXEtWStrNTU7am9VYUI+V0MmXyNpNkpYdj1UCnpOWUUhPmtZfVAjeUQjSFFEVjBPYV5hfGJI
VnIoTVlVdWxQT2sxe2h7KHJ+bmQ3JVp2I0JXekNOKWZkKGp0ZmhlIQp6dyo7VDs8KH1eOSlpTU9m
cyRXZERkfk18QmJXUXdieypTaF9PYFhsenheVFd3Y0U2MlBeLTMqO1B9UHpKYmNYUlkKenFxRUI9
cTw7V29wazR0SnQtTlUkVVM0SzdvR05SYCVRMUBaMTQ4Y348RktTe1QzSnJ8NzQtfEFjQ357fD5i
d0RECnpfRnV3ZDI+Zz1YZT9UbGdqaVdeTmg7T0hlaDglSjkzV1Q7Mk18KFhPYnpkXj5aWWM9SiN6
X0wkPFhXKypgN0FseQp6XllwfEcwRip+Pylhblk4STlBflVYdW9vNFBRdDcxYjZefUx0JD0xNjBh
allkNkRzKXgkZztFVD8qYF91P3AhI3MKejstSzJMMkZPdUE1VXhhUEpvKSt+NjJ1NHVkKHZ5I3Ir
U0M5R3NeYGprPzJ6QHFeTn1FZ2ZWT19XdX5OPGA0WjxVCnowNzNDSVk/KjUzZEN2P0Rte1VlJHls
d15Vd0wjTiFweVU2WT9oUEFpbmxjTVhOIzVvY0I3ckUtU09idlFUeSk0cgp6OWI7fTkxJXM0Zig/
KDlCWH0qO2tLbTAwdWo9JWtfTnNyKl9jLThiVGVybGlvLXxfNmxgTyU7PT52c0tmaT1Ib1QKents
OCZgLTlvVnE4PDNmNTFeXj1XJitSN15jWDEtRmJmZjJ5TDM0eSNPSnU/RjhFO0ZUd0pDMzIpPjhG
aGxlRXYwCnpZJVhjbCVsS2U4a243PHI/aUxROUJEYlEhbDd9R30zfW5zIT1mO1VwUFRhd0pXayZU
KjhTNktKQEYxT0dyeXZOawp6a30he20haXk7ZCYtI1NSWG0pbj83aTNpbG94PnlUIUROOUBtOXkl
ZUxGTlJTOG9HVFBXdChYb2lBMlhDNVh0d0QKei1oenFZOzV6bmRvWU44fjBlZXxHKz5TSlVyUWRE
WSFyVSN8N1ckMkkhdXV3bmwrKWFqd35MYVFYWXJWZVkkUyVICnozPitoJTAwU2Y+Z2MhPlctQjha
Z1ErT2lobi1rbHhmfnpGej8xfWVSOWVme1IrSU9hTHtUMGhTRzB1OHNROXp5Xgp6b2B9QytYQEls
NUhZUDhNXjJLcmpXRz81QyVNQSZ8eXpMbHM5cU44UC1NLXM0QEttWVV4S0lQbWZzezczO3IpVGYK
emwqQVZMUmEqbkpxKFckTTgxWnNATHRQfUN7VVNKdTt5NU1DenwoailuJXdxUm4jJkEtI2B3fmpr
OTwmYXFYSk1JCnplbmF6ZVJzaEBFSW9GfHxSakJTfVEzTCp5KU92I3k1eTQlRCk+S15mIXZiWk1R
aDM2PHc+dG5rUXByTmA9OT59Sgp6P2BHN1QlTGBkS3dnNG1nayQ8WUNKN0tLRldgI0Q+X2pKSTIt
PWd6V2Z3SE1zJUU2YzBGVkVMND8wI1dDcU5QbV4KemVzfmRgcDhoQEkkM0RDTWBSKj5ZKWlDfFBy
aEQmdilyJDMlRlJDWEYqRE9vIWVFR0g7NUc1cmFAQlFiIUlTcmNlCnpUZCVXaWQ1dyF8QGRFPW1S
MHhSWmVsXjdOUUNKPWB7Tl92Y0phVU97KkJmTX1qMXY9VW82SmNRZEszZVpYZnVCeQp6PHpkRmF4
RGg+ZW8kOXY7eUA4SF9FNFNoMzh0SH5nY0phZWkzbXFOQnt4M3hhX0xkb0IyQCQyI3I2dTlJKDRQ
KVkKelVyZH5xTHhyOD5WNHlyIWl6SjFkTmxETWozR048Qk00S2c5bDAlVGFVdT5naClkeTRGVm5P
Qj5ZZDIjWWdXcTJkCnojI0hGVndUeWhidTVDYmN7VWIqJDk9QkI1YUE5NEFXSW9MMEN7VHU1LXBE
SGs1R3hMSjw4fS1Ab2kqJkEpPEFoagp6QGtMK01VMEI3fnhLOXF5QjxYdyMjemZTcEZkZj4te2B8
Y0ZUP3EmemlFaT93U3pFdUNoT1RfSkUjUVpfcDdgen4KemhVZjNDbGNeQXRzVnhad0BOQFB3LWl2
TTJ6MzJrN2JoPFB4aXtqK3dxUXg3TmJaTlhkTDQqPX5DPTVwZmZmNTtiCnpmZl9OfCV7OXw+SXJZ
ZHp5bnU9VV5ncmh3MW1SJTVFJVdKQEQ8RkxOUGw4ZG1QY2JhV0Q2XiplQFFTTjxXNmVmUgp6aWlw
WWkjKlhkNmcrOVNtYDtOKDklK3g+bmYyMi1YR0lRVDs7Z2NzRGN8cFYwN0I/OVZyJiY8SFktaW5G
ZXcqZkgKeih4SkMoYGZtMT9FfjY5KGVLKkhUc3J8KSNiQ2FYS2orMUZgKGkzQXw/O0FJWjtTM1pO
XkoxPE4jbWRiM2YrM1pCCno9UEN6akMydWYzbExWTkc7b3VpMSVnSlU1clE1a3tVYzJiI19xRFp1
bnA5JlE5VVl9eFJrUFJYeWR7Kng4RU53Ugp6NDRmMkJnd3RNUzE1Vi1tOV8qMjgpJCN5eTJebk96
XmltST93amR0XmNhK2hnNS1xVGAqUVA9ZzBKKD1OZXt1fG4KeiNTe1E3aE83VlNITj8+Mzs3aEtY
KFFtVFBGaShPP0dzYFZwQ3x6K3Y+Zk5RN0pUU200eSFfKT9PbzdNeUVzeXUtCno5XyZPdFRYMFZk
KGNAb15MJSgpPVN9Wn5HWUtUfCNNK0Z2SF47V3xLciF+YjFQdj48THFxclg5V0AtejNiZVhWKQp6
aGVLVjdNfV4hPz9WalgzMWU3dmhYV1NvcDVfT1NfYTchJCkhZHUmUkIwPH0+ZWNfJE5RaSZPO3Br
S294PE4jKyUKemBXIz4zVTJlJGFqSCM0PV8hUDs5O30hIV5rXzUkdTMyYEgwMjJnNH0qOG9oV0Zm
IVptYzEhZW83USN0Y3lTWjhOCnpMJGNvMm8ybEZWZWQ2MzFTdVQmJj5fMlZnMV9yRjEtdlF4WGVT
cX4tSWN0bVRUbkNBK3pXflJeekdEQ3FnYTNSfAp6b3B6UyY1R21Zc2xkWEtWUEclPDBFailRRipE
ejxjRzMwdCFsYDM4RWxofjUtSjBeR0tudSk8SG5JKz9sVTU3dS0Kem0mQ1I2Zy1FV1BEWmktMl4z
bTVTQkZ6V1QlJjdxSjdeN2RWPzJsVloxK19lTDReUSYqSWRAVispS1hJSVo0PzR2CnpZM3xrMUZN
MTxMd0JyNVopa3JRR3M8UEc3MDEwZ0ZpeHA3NHZ+LTRYZE9SRyNDckgzbUlOKmVjTTFMR188Y29T
KQp6KU9vKE4lfjheYiMhZ34zUzl0YSNOV35TSi0lPkdfMFB9RWE5RCFgZEttYTRtZkZ6O0JgNzZi
dCNHb2lWNl8mZHsKeiFEUDE/cDY7U3JiKyQ0TF9XbHVTaEhpNFVzeEZgIzRGaTwyUiQlWWQ9QjQr
TmMpcCU/UCpre0ZFXl5KJSp3UT1hCno4SWU+dFA9QSlWWW92bXJjdkBVJWhOTUo4Vkg9UEhsb0hN
Vzx3TChwaW9LOVpnKTdqY1d1QF8reSt2TiFsZWRYSgp6UjJrX0wwdzs3b2U8Tkd0SSRXdGEzPTB5
a0UmYC1ubWorWlhxRXFWb1Nme18yOENwNXhvOFEjVEQ2MzsjIyVXO1gKek1aMkoxaEdhWUM4K349
NDs+UXd4WTV9RVl3YnFqRl90MWxnUkZSRSQ2Xyk8aGR2MzFIbUgxfDtnITAzTXJwRW1ECnp3cm1P
fFRtRGZud3xETUNzQl9idGhSeiVfODxVfFczdHk0bmFheyQ0cXVjeGw4XkVMPXF+TmJ3KSN9TiR8
SjtSSgp6ITYzQikyfnBYVTNrbTYpZjAmLXlKKT4+eGJWI1o0N01SKHUlUmA/MTBgJVE7RSl8TDBV
VD8rcndXJlV3QzRTQmQKelJheyFsOW9nN2lAVEE5JD1AdnVlKiFCd1F5Pm0jJDMlXys8S047M28w
LT1+UEUxX1JCYFpHTnJ3YStocytIcDZLCnpWbXV6am0tSE9oX1cpP0xNeEk0NmBoeExiZSZePDJO
UkdvbSZ4KTtqNV9AVlFmbWJOKEhiI3drNT1TJjQjO2ZMRAp6PUNoJUl2SjlsWU9ESGFVVmN2dzZk
Yjlla1FlN1cwK01RNkxhMEFIWEd3ent6aiRFaEFMOSNLcWhFNiRnR30hREIKeiZwMSRAK1RjQ0ZG
dHJUSzFKWS0+NGxvKU03NjkoVkkmZiRUQk19KFczYCEjKyRTUDU/U0t7dF45M2gkaEFMVkhhCnpQ
TH0kbVU2MElhO1NONjtYMDxLZTwlTndXZHBSTklEcnBjTWVMZiY4T0sjI3E3c0pAakc9Tm07ZTAp
UkxramFzdgp6ZV5CfThCaVpoeFM/ODFDOXlsLT5lfV9MNiMlUTVXMnZ4YldFS3d5clVONX02T2hw
e056Yyp7YCloc0ZWMFJlKi0Keis2MTlvNC0/emwhK2lIdUZHbSY3UUJnJHNsVnBrS2Y0X05DJk8l
QExXUz1jSD4jNVI0Z2IwRlBoMnp6Q3pkNFA+CnprZHd2ODVAWjg0NjVhPGZHS2o4KHZsc0NpdDtV
UyYtaXJVVyNSZ2AtN3hsTT0zI3tXIU5HJmlRVVhXIVdNZG10SQp6TG99TzM/WmJVQlFobFc2WUtV
TlhZeTtRVCRNKUI5VU44ams2VTUmVTlHJUY1R3t3VCZtdHheQDghJGRNalpFNj4KekpZWmkpV3sl
NXpmXlArTW0rI1NeKXclKT9UPy0yd051clFuNVg2Kl5TcHNPdFRSMml4MGBCTzlpb1o3MyZRRk08
CnplOX18VHBeVEVxR1ZAZzUlIyt5QXp+WCVhbXJXSXVCbEBQKnplSF5fJWRsUWAyVytac1hmP0lq
T0Jhb0lhTW5oOQp6O2dUaFE7b2xAZXN+JUlaZmA4bWVyTCF6U214fDdRTT01YiNYUHBQdmd3eFV+
Zl8zQj1lJWcraXNmQT9HZX0mUEQKelZLTGtpJkU4ZD0hfn5qZ01zXnJMVD4ydjxvYz58TCNWaUJQ
eHVFKF4/U2UkWDk4ZGVsYWoxX1VAMTY5cSs4Xys2CnppTV5EX2sobWs3SDQyRXc8eUIqdV5NdVFu
QjtIZXdyUWBtWVo5STdfR3ZgczktcTRiSnkjNF85RGk1bnlEUnRSNQp6P0A4aHR2bTYyKmJmSzlX
eEdMYkRXJGVmRXRBSUgkUnxpbmdzMWFmeVY/bWU0anIhYnlrJT1DOGBleVIqcl9ZMigKempgQGZC
anwmNFhzdyppXnNaQ3V5TTJ5VDc0KT5kbHdFZko7JlFHKGk5JD82NHhYSShwOClHIWI4QnN8Izxg
bGBuCnpnfXNqYjR5ZFJ2QmxRSzJVZEN6ejBQcF5Ce2NnZ0JzKjJrT1I2Q0NIazg9LUpZe0FCdk5U
WkZRRiRCQU9mM01FUgp6XzhoWFZYRWE+JWhuXkNZUkd+Rkw/LUJiXz4/OGMrQysmcnhWRn1mb1Bf
LW1hQkJVM1NPZ1k4MFgqJihaa2ZiczEKej57IShUJl59dVJ6PkVYUTRvbl4zcXxwYHl4M2goPnNY
ZGxUYnA+a1Y8M21KKnYlVk01V2w8fWVmbSswX0deNVN3Cno8Tz5eYTZKWCtGUCNIb21DMjhwcDtp
eFdXNyNXIU1pUlZNPShtTV4/Zi1GZkBYejN2Vz5KbXU4RyhtTSZzMF44YQp6PHJCYllkV0RJQ3M1
YyZBPThGSEI4Mn1XKWxGNntUbT1jeWk9IzRvcSk8RV5Kcn5TR1JGc2dnSWRYSGtLZXpXayoKelZU
WmJJblV7fGh8RXdAOTk8UUdIbmZmVk55eXtifjR7bCpsc3cwPHV5aFQjazsjb0N5Zkore0UzOXY0
SyZtb1ErCnpEJjhDREVRSGBDbjluKUImM3lrPGtqYWM2YTRmMGtIRlZDcDtUTm9CPVg0PHhsSH5X
Um05KEttcnNTWDFRNzkqRwp6JTdHZmk3SEw0JjRsWHw1UEVgKWA1NHw+IyhhYEgkcjNYWD5POF5h
YGIldVRmLTF0VnhzZW1BZ0dnaUhkQD8oMmQKemIpIW45PVglVjxoS1dwNTJfKzRteHJNXko9bk93
JmE3PElCO0h6YG9QRXIrNHo2Nn05S0dYKCQpdHh9PkhWMlcrCnprbVVwaisjKlFmP2BqZVZXeSkt
KGJMJHJYa14wRnRoNnVNfTBtWHQtP0NXbXteVXVYWWJ+I2A0KX4rQFFGSXFyXwp6RHE/b2E9YWNU
Ul9Zfk1DOG5OQGx7Vlckbm5uNG5iXmBhOE84MTt9ZXt2QVI7enNPb1JSYD1xRT8xe2AlRkhndVgK
ekhTJE9IdjhtMkhXQkpCcjledjN7WXE0X3QmcitlKWYpJjs8UT8pZGp4VUVtaG0yRGotdWF0dT9w
RVRPIyNqQz4kCnpLZTthPWwwd3F9Y1c+bWxEYnl+cVgzZUdrYVlhI0E+Q09lQ3MrVUNqNElgaCk0
KTE1RE0oITFPWH0rPUskTllZUwp6UFVtSHVnfUAxM0I4Z0JOalY/Y3l5eCNhM1hwbitJISFKcUBh
c1ZjX3o4WHVyPmlMYzQ9WjlLaHEpUXNPQE1AcGoKenIoZlNfTU5fSU0tSWlDekhPY1NYb0U4MXxf
Xzlnb3BZJCh3RStgJEdfOHBfWW0/aW8kayM9QVZQVzBaaF5WIVNhCnpifXotSClySjV7NTcxdThh
cEE9Ul5rekxrMz9gJlM1ZndmQ0gyJl5HRWxgNX51aXVWaTF4O2JKakI1X2xOaChfRgp6KmxSYndR
SlhsTDlhUHJXIzsyTigpdmBYbHc/UUMtbF9QT3ZqOGxsMUhsa1AqK2N8JlRDcWAkTGB+ZHQmb3Z3
Vn0KeiE4QSFEd1NQbn15aEdNZm5ubmQqKWB3Z1NqaEN2OEd4XnhaZiszZUIjM2J4Y3EzMEw7eTk/
N30jQkt1MW5GR3IpCnpMKWc/ellBOVdSelR6VXgpUCRYXkloaXF4Q1BQbCYwTDBpcyptRDhZb0dp
U1BMbDNrV2ZCenAjKkJ3dnd8TlhDKAp6VC1tRzRCMyEjPE04KytJWWg3Rz5NY0ojITR3cWEpNS12
aXhfSTFzJng5cU52eXxRT1VfRmxpWSYtZUd3ZWNWNnEKekorSWc2ak9YKXQmT3oqZFk1JjBZQmx4
elEoM2Y7TkFge15vbTg/Wnw7UjswRnRWNmxQU1BpbiRyUWRnPj1NentOCnpteykhI2FDTTdIaU45
Qns1YEZQNy1uVnR6RkJYcHUzT1B9NFdGfSRFdU04dmV3O18zSlF+Rz5vcmNSVkNQYTl3Ywp6ISRr
cCh1dnM1JCQ0P3xpXkkjXypzUE83dF5WdnNJSXMkWnU/PDtBJDtaKio7X2BuX3FAYHpgfStET0xD
PzFCIT0KekVBeiRWZypxM1I1KTtacU1XcShSKD81Uj5SNzF2Jno1KjI0ZCZGNCNvejl3PyR8bEF5
LU0tMCU0NmNMO0JOKkNtCnooKF96Y2tzMGxaNVpSSDVmS2M4aWVhPGc8YkJwY2RsZHtDX0QlSHJs
YmFWVGAhZU8mKGJjTEtjPUBHQWdAVnYkcQp6JTY5VFF6PXYmKHErWn1ZelFFQzVDdHYod3FJeHsm
ZTdDUzMraSZyMWZQITF5MnRAV1NtTVlIYlN4Jkd7NHlwUHAKejApRWtOPFBWNUdLYyV3fk9WOzgj
PHMtZ19yMV5lbiN+KzFeVUBtQDFiOWpkP1RJYEAmNXZ5QnpnK2E4cHdQamopCnp3P0YlKXYoYVFI
UkA4Y19yYnh7X2djQ3pEajVgbUZYPFdjZyVIZEx5JCpyX3s+X3xTQVdee1p3VE0mfCk/S0lJWQp6
X3lKajUyKXpMRyFiQkNsK2FufkU5ODJfSWhkdVhKJkktQXx4Oz0+Smx4PV9AezcmaThjVGtpc19E
eSopWCVaezAKekM4WF4yVXlJPF91cm1FMlpVKiR0Z3h9amp6S00zdkc9c1FGMEtLcGQtbTwyfiZf
P3NEQFljd2V0VXAqKVItRDVoCnoxRF52VzkkZXV2WFdCfmNfRSVCdTxSJiQ4WXdxSkdpWnhoKzJ8
ayUzbHlhUTZMcSNMLWpUNjwjeURfbWFZJFhkSAp6d1ZBVUYtPiYtN2FtRVpEQGBHZEMySGdkMXRw
P29eb14kNm14JjJabU02QjFwI1R5N3xMNmM2OHdMTDJqTTB8MXcKent4Tzs/dD1sKnpGYGEmJDJN
YnpyLTJUTyM4MW9yJFdeciErekcrMWklNHR2Uj99ZmhSWnEmYzAjeGtGZSl2flRYCnpgYmstbFJr
JFd0ZlVDb2RffmA1VHJSbVlDNH0pQFgxaUVefjU0ZVo7bkNrajhLWjd2eTJeP3JmOWFGZzJRWDx0
UAp6ZT44SjghSllCYXZkOGVKTVppNG8wdEF4UUA8Sk9naz5qbFU7WFplTVhCKEhFRWFUdDU0Xj9w
b2lPcmQ7aGE3XjwKemg3KUhATTN8UGUkMnRZbkVYXiMjbVFCXytQJE5SWXpoKDJAKT09dyNvWCYr
YUdMUihSUVlXPyVoJCV5NXNHLUNBCnohQldIa0BCT3VPUUlVaTA/cV88UTNDQzUzcEVNNj4oRFBt
XlVeP0Z+MDhkXlA3UVhSIyZDKDQ/YC05ZHU1a2BIZAp6UyZjfHQ3IVdpNXc1JD4qMip3all8R0B9
e0QwREV5R0U+aCQpfV9PWkRVUU8hY2BKcm1BUG5Qay1rY19IWH4/UTQKejVFaihGJHBucX4wQlZT
PG10cU1RZF4wKSRPJT5RdlljPE9nKE00JmNqUFBAfD05YllmXyVyPWk2WGc7TmV8Xm5lCnpiP0c0
bjs8el9SeDZPMU5kVnZoaHJEcmpqM31VYkRAZzE1OC1UbGoyUH42bTJAVnYtQDVgcEFIWEtHNFdN
aWw2bAp6b2B5X3kzZHZ7YSNQZVYxKjU2QE0rUFY0ZUo3NyY4I28mVTJsPngxc1o8ayVuenpDXyto
Xnx2TCNBcldjZ3lZQWoKemt4UFktZ2hqRyoxek1vemQ9VkUzJHE2Qj1zUVhZfChHb0U7KFR6NUdo
KC1RIWplUndXRXN4OENGT0c8SD5BX0J9Cnp0SWlpWTgwOCE0Mn0xJkZWNUNKU1A9KmxEWCpgVD1R
M09QSXpuZDBJN2x6biM9V3Bubl42e3k0OE1gXkpkSWw3Mgp6PmhoQzU3OGV3dnclNUIpMkpaQFpI
WCZzVm92TFFWbml2RiQjdCNLcm15YjNeQCRCOSpgKmlTSC1KJHBFX0hwQDIKemdNeHg8OUI1Y3RC
eUNyKG57SVp7bzEyP0VQKkFYTiV9S2I+bWpGQ3VefWFedCZrTnpZU0xOc2MwXzVvcHJUYF5XCno9
NCtfNyM/OWgtY0JETiV6MT5tYTNnMDYqVlVlNUFFaTZaJlpYZUdsJDxMNXtiaDB9cCEhXzwpeXtk
Mzg8TXxTOwp6O2QySkA2e0RWVXdSIzZ9SiRGV15RdWBjPzA5YkBqdG9kViYmWGMzKzkxIyF1Y0gh
Vi0hUWlUJW0mV2UhS3xkb1IKemxlVDskeSlKLTFuRSFpdzdranMmN1E/dTteZ2JkK0NtenA1a0pW
PD1tQEtgYnRwVWFpVD5kc3RsRE1rQGxIUVA5CnpHbEk0NWZuZGFIX0o1RGRfI2FyaEopcUZvc3gz
NWF8RC0kMnQkYW1tI1NZPV49R0ZsTExmSHB6VVR7TFFYVHE4UAp6P1ZRQ2h6eVB9cjBlcl4tNERt
I2g5OUZGSFhDbDtQI295flUha3BhV3I8cHc+RkN0bShfKTM+PSk3PWNJUi1pTHcKek4zUWtnWEle
VEhKSEBifjNlUmFaKV54TXBMfGtRV2djITIlPExyaWpYYD84XmE2TzZAUXFEMVAqcSp6bjl7cGlk
CnopfTg7c1k1RSM1YHtzezBEZm4pKHBjYllnNio9V3tefWIhbEM7Zi1jNGxCcj5WM3NldCswPlVe
Vj00VnZfJGlESwp6Jjh5PGI0ejFCRy0waksxKEpFUGZCbkRNKT9fSzhrTGk8VmR7cihBPWRuRHN6
TmloSHVrZlJOLVN7VjQ3YyVWN18KektaOSFIZFV0YypfSjA5TGoqVnhPJSptPXYmeW8pcFZEVis/
NWZ+Z1lkOGw3RUp9ZUUjSS1SWH5mcT16SHc/alZnCnpjb1pYbVh2bHZqZj8/YlJrIWB4ZVgmcnVB
Ujkma1c3ZCo3RHAqak5fbHFCVWJqRmZAez5wRSZVI2slNTFSUTBuWgp6YmRkRG9KdDM/WWx0WHJY
UGgmN05yNkZhREJ4PmJvZ0YlTHomfUlZeXl3PG58aTYoflo+KzwyX3UkNVJTNEshJkoKem17UkM4
b007IU5fQl9xbXp7PllXK2xQPlMtc2xzaGF8Sj8jVzFTVSNSNnE7clBBRms9djhBRTMjSXtHP29o
RCZ+CnpVJW9CMEx7TDM4TmBSNGpqXjluQiNrakNTMkB2dGk/aHgobCs4UUVrP1ZqcitvTnZXaUZB
KX58Kmk+cW1GR0loLQp6c1B2S15nKlM/NCNyNXVXeWR9WlhWfDkyZ1JGZTkhMm9NY1Q+Um1VaURh
JWtRRyQrSypJMzdZMHJsYUoqMERSZygKemxtd18+PHR2Uz15JVd7NktoJFMjakltYnxhSyEjaSo/
NFJpTmV8KW97VVRUQFMoTj1ke3w/Wm5DNiVgVCp1eUdXCnp6aXNRODU7ZzhUMDVYPSo+c0E3PnxJ
dC02Sy17ZktOTUdhPDE0aXQqVkd1fXVUO29rN3RnQjFsNGBYN1FxeSo9fgp6Zz5NU2U4RyhyKVpq
bnZeMjtDdFliRT0kU2FrZjZYOVJXKjZhKk5hYlVXfDxONzNYUVdqTU9AfTBPYmx4dyhEZkEKensx
SD91MHRIcktjXlluem4+JDcoI05QMjNDS1NBKm5CVFYpd2Nfd25ZTG9zZ2gjbksjKykwdXFUO0lD
cEx5KEpvCnpaMjE1N1Y5Zm0hcV5DRWZSUSNHUjJjJD1Hdz4xXkVndXQyWlZQKjBXXntTfT9kYSMm
YU1SP2x9NitwdzFKZl8tewp6eHVWbWJ7czxSQzd7UjhAZjRmfkE7YCNNYXB6NjtUb1QlezBIPXJE
eVY1clhNUDRJOWd5UXVPSE4rQjxGbk9GWTkKenlBSDx9XyolN0pXX3EpNGFKJEJ+X1JlKSs4UjBl
a3ZUZDBYNHxeWi1LMjUpRUVFVSk/Rj59TGlnaD8tQ21DITR2CnokQiUhdm50V0BkZD5kJWE1b3x4
T3hUfmBGdGcoV1Y1PEhZVUhkRyg7RWolZ3U+I2N+QjZrQEZZeUIpTk1Tc0pvawp6PWRBOVhxcElL
aTI+RlFUJWwxZypxdn0hdmoyc0I9JnFJTFlFQT87Jjx4czM7bGdXNjJhLWY0eEhhNlA1aEJNQ34K
ejFpRjtnRmxgKlJ7SnwxZzthQzEpclJIUF4zQVVVKzk/MmdEUTx+LVUlfiMxOEZiPlJBT2BSdGc7
PURidGA8Znp4CnotR0k0YSp2OXFUQ3xIenhEa1ZVO1U1cnxnJnkhWEJvJGVNYnBXNHZJcmx1SmB1
ZUZCSStDNnVBPShpU2FPX3A5Ugp6WU07YHpgJXRyViFyQCMzeXQjV0xyY3smfVIzUilPWmZqPyVx
cmE2RTVFQj49O3g3NXwtPzg3MDhnM0ZGN25uP24KemdtTDdlVDJfT2skc0ZfUGpvQDNIOUJhQnJH
eT1ue1NLemAzQ0RVN0RCYjZjaDtPNGJ7QyU1WlI3eW40em99UW9iCnpxMWVCWXY0QnNYd2J0YjQ7
WSklIyhKRCN+aDdxYEl3Nn5tPSotQnxQUFZNKnZ7REFDPENLZClxZXtPMTElTSNaNgp6b1NkN1dZ
c20kPC1gPUMpcWwzTj1tMTZFUGA1cz1zTnI7JFk+WEBIIWhoc1AmP1VFYWA9ZElsT3ByKk95R3Bv
TDgKemFVV1ZTQURRPj0/PUM+WWZ0e0FUQ05fcn5abFNDZkM9enpGO0xqc0tueXkzYHh1RXY5SEw4
X3tNQzRrSTF3UXB1Cno1MXVYJGlSJXB0UkA7bUA3KU5UanI9T3llNFk+YyZiQHppYnZgSnU2eWEk
UlAtbTJ9MHVIc0F7SCQxWC1IQiU8Rgp6Wmw4VURnZDJ2MlhWUXpXYE0hdjdsRnVQbDtqNG11QnBl
U1hSNEs9UXZXbEAra1IkV0hpVGtTYkt2ODM9OS07SXoKenBQI1N2ZXA7V05hRFA+Wk5mRV9MQ1Ba
NjQ3USpFNUdoZUkqTH0hJW4kISs0Yi1odH53P1g7bnNUJCQ7NCM8WDA1CnppJT8+RmhvaXN0M2dS
QEdkXnxnQyNNMXxhXnkwQ1I0ITFCSHJRM0AzTWZKPFotbChvWCs5ZmBmR1FMUHVRQkx7TQp6S1lX
WUpsWmBmQVQpJnozKiEhXk95TH5qZEs5JFlKY01fNTtzcyk5KSpRMVduQTR4eHYtbmNYKE1BelR3
cm43NzMKenJEalN6VmxnWFRsSzBeO0lXbXAmemFfakhfQnk3RCZ7eD1zZX5hcyM1Q1A3SmBvTnpN
VTN4ST5LPiFnX19vKiQ+CnohI2VjRVowNGFzZGB0U18rVkh6REpfR0J7O29YRz5NRSVuI3FnTkgt
P0EjZVZIRGNiOUFae2lsKXQ5WTQyKDs7Sgp6N2EyP3NwMiNkajIweTtLQXooZEpPWWBzcz9TRjJr
ZkR9cVhna2p7cVpgO0owbm1sfikpXkxtaTVkWiFFWD54TE0KejJDJjZ7XzMlP1BiKnRKSlowKFlI
Pz1PJElNPC1hbmhyTk8hWXZVUVA+amFTUjd3Nz4oYmxvSyVOaFkpTHlOUEsmCnp1Tk9JM2VQZmR6
Sio5eXxoKlhpSlpBcS18TDF5fHdJcGcyMDFDYThvcnhDSEJDQnViaD4hISl5S051M3lxWGh+Qgp6
WG9oTFE9c1JIZ2soemZkZzFDYjJHSldGUTcyfW9tSlpwSzVSUDZmT3t8KVAwNmdMRilWc2IkazQ4
fiRwZSh0SXkKekVBUERhe3s4aFo+bEtFN0tkYUQ7JjZOZWY7Pzg/UlNYWU1iezVKKGZOPjFYKkBW
eXMjXzhoS2hNWS15QVg0PUEpCnokczw8b2YkfClFdUp6TyEkZUI1WnJKcFUyVDNmUXBIdnJoUipU
eVpGdzw2PX5qSTw/PT9gVTEqdnFSM2NzWWt7Pwp6N0NYYmRUekE5PzNjRGBwbWNFPzNxcXNWY1BX
SDxBVzliRz1pPEdgSVB0aEJGJko+JlJgbkk8MW9udElIKXphI04KeiZSPiEkST1ge2VRYTg/K1c7
NC1DUz1YYTJebEREKGE4fSVLWH40fklDKXM2QTghV31NQmlCbEFGNjRfajd1fER5CnpNNW51IzdO
SDg7QEBeaElJO3d1I01jdCRTP2dBfis1UzVNdSRnel84ZFdvcyFpVTd5RjUzNmxJbEUhbVd0RDlH
Pgp6cDc+TXZWJnAhOW1PfUQ3PUU2YmlWSz9EdmZedTM3eTNEMVZYSWtpJjZNY0ZPWnR2M053WHkq
NWRMMm5fQ15hXyQKejcjOFFBQHZZT2tnJSlFUCZ4NiZ9dVA2dGpkQnQmM3ZUI2J8X3RCdzZDVmR9
VU10VGhtXmAxYU0zOF54RnhaQUVQCnphNVord09WMUJYaj52OXQkZWt5MEBvSm98OVBjYl8/SCFW
e2U/WThtIVg1VGA5RX0pd2NCZ15aTVN2ZmtBOGUqUwp6UCFIRWhgRUJOaFJpUG1TekIpcTwjRDl7
UnlhVTRyNk5tMkc0TGsjcTAzYjh7UXA+O3FpRUdHWjI2OyNxR3xONGQKemxmQkM1QX50KW5SYjQj
O1U8cCZCU3xAOWgkN0o+QXlXTElSJWZraiZKNDNvIVEtMGZCSkQxXm5OaFcqMDRzUktICnpHdGdV
dU8jWlJCXmkwe0E2ZVcya3lKcl5oUlQ+WVhHZGhPMmlWbHxEbnY2Ny1pKUhvamF4JmNFPWxaNEZ0
V1EmZwp6Yl5VdC1fPT1fcylHbDswI2lDWSlIVTgzWEBacEpHKj1IMS1aY0t1TmF+I1VgcUR6THwj
QC0oTD1waTN6N2VAfnMKejRZfURmaE1eNGQoN2ZiWUVFcGUheWxyRUElbGt9M3UwRWdWWG41QHNK
O2I5Wih6RTVDdWJfPGMtOEBnN0Vxd3hyCnpgbWBBajJfQih5IzBTRUdXI1BQSztFMndTOUgjd2A+
YzZUTlpsN3dzSWhqK05ubW8ydnhqWTRZe3xlZEx0PzNKPAp6WHR+cVg4NGxtbzNfczYqPDEtPT5h
dnIrSEtOMkZpdEVgYnxGVGducU5zKztlPypkYkEheGdLU1p2JFgrPzxNYVYKeiVFNSpUUTJAZE1q
Y3koY0MjZCsmQDMqK1E3NiFgZGBlIXhhcFpeKXFWdkpXamJRPkxmMitza0IlXnJCWih7IS1mCnpw
VmVCSz5TckR1cD16MlE8RSlQN2c5d0prQTJGaDFUdEFNdVMhPHxyQGVnXjNkI2FKWl9+Q3pvPEde
VHVsMkRhYAp6PmpWV21qfj8/VVprMl96dUYpeSU5YjN+MChGenh6d1lANDRBY2VCXmlsUWxfSDJW
SXNycEU1fEoraD9APFJnSFkKemUqbElZJStzdy0pZ0FTNXl4YWNLRyN6KyM7cElBQXhpPyg7O2Z3
Z3MrT080eHJlIzdpcnRrVUBoTD0oS3JOSmlaCnpwWkY/eW5sO3RMTyhrcyNgajE+Z0w+RFA8PzQ5
aCtKamFKQE5vTVc3bjk8ZlklcFpScUp8KmJ8P2tocihKfUo9QAp6RHEySCRRQVM3VmFNNUBSNSpF
ZUxFZDd7cHVRPlZJZkVlfn0jTzR9JHIpPmNHKWZLbiYhWUE0cVR8b3tKc2FgPHMKejd2ZH5FeVhI
cCV2My15JHY1P1Bxd0NOJXc2SmtwaztPI1JPeGs4KHJLYzJQWEJRa0FkJVIhJnFTfX1ZN3BDcT9S
CnpTJmhiYCl6MWd3Tmh1b0BHeHdsLUNmQ3xWX2NzXkhBbHZ8PCQjOVYxJU49TlBiN1d1RkAhNEZm
Y0dHOWphMEYwVAp6PCNmfGdnTkJQdHN5dGFGb0MyZ0Vfd2ZSOWR8Yzk4b2lCY2gpMDtKbU8tdTVt
NUpMIVkmKiNGXjI1KSgxdUUzQjMKelZ3c00hO2RnPVRLa08hdmtXOVpuOE40Y2w1SyNSSTBgclo1
PFgwP2xYcSs1ZWFBPWJSSkxTJDxuTkUjT0lVOCttCnp7K2ZQYDA9KW9HcGt2XilZdjJDZVAzJXA1
R0UteUk2VXVaISpwa3JNbVdOdjNLan5tcT1tIyFTWj59cERKVVJEYAp6JmV2PjBrM0M7WkhldEpx
Mk1MJVVkNF5NRWtJdjklRD1FVVU9IVZJR1c8JCtKTUskOFdFUFEtQ3U+YkV7ZDd4blkKenxObkot
KU8yLUc9RDlnPlFLSnc+ZDFYfVBHUG94ZmE4RTdNRCg9MG1zMmxoPHNVRnFBVXE+QkdtbGR0d3F6
a3ZuCnpXKFB6OHxMVl4kNDVEb0NocUxyaWlJZz5lQz5VNihFUUNUQzVSaktkaTFaemxsVyNwSXdY
WkQ+QExfcUhhJng0PAp6VH5HI1MoUiN6I3J8Pnpxd0p9U3pvK3JkJVQ3fHJYUlZgOH0tbSlxayVY
MHdyMGZ5TilGdXI7Z2p+emIwemV7Y2kKekRNWE8qb0dGVTg8TSNHaF5INSVDNDBAMkkoeWR+Znhy
fn1XeGUxa1QmUFBDeWk3O049cj4mMG5ZaSZYQCRVI1pRCnpfQ34pK3I7Pi12NWV9OHNFTmJTVE13
YyM/Wk4pRDZnb1hkKj9TaylYTDlZVzYwVWBFcWJNaCt4VyNefFdeUU01bwp6R1RaWktqTCRvR1BJ
JldIN1Q1TzMqWTg3WE5jcVUlbDNHRXJweUIyVF9peCt4cTVlJHxaeTFuNUFhRCpzdFN8Xz4KemAl
JFNQMTtEc1A/JVVwUikjfmxMJURQVHo9ZE0jKVAlNE9FTmNRTkBVZ3oxcngtRTxLUVArVWVhKk05
fHR9bHd8Cnpfc3hwc1NVOGV5cD4lQFdAKVQ4KHVeP3tJJTtKaTBRK35MLTZBNV9HJU9YWTFWSjZK
cWkhdDgxUklqTTczQHlXeQp6KklnJm5aRkFORDZxKGBtO0dlK016VFhqQXB1O0p4dCVqcCVgTH4t
QjJrOSk1Rjg9Zjc3T05XeyM8RiNQKjhjZnUKemBaNE51QSVsZkBgRjFqYCFFM0hsNm0hfHw+WTMw
RDJ9JX05IypgQyRPOS1jK2g5dD1vJH4ocHkjV0d3MDUpb0ZNCnpiYCQqJEMwNSlGMlpuOGFGPGFP
eUdtbHIzKkdYSlM/bmFGeC1yZHd8dTN0X2okR0RAI1FSYzstWnw9NCtFTkU5Twp6S2FabCU9QFpJ
OEo1bjd8ZnAtKnNzNkVrWG1OdXdQVVA1MSkzUTY+U0A4RUZYMDdzdlkwPG9Pd0ZEbDxRJkQkdzwK
ejEjYnlETiN9ZSRXYUhEMEsje0owK05rVTluNkU4KWZJMVMreXlmcz4/KGMzUyZjSFNXcFoyTm0h
VEZTKCpkXm1aCnpWOV94IT9XKj5BKzcmVX0/KFVVcj8pSyVrSHx4RWZeK2VCWEZ7RXBeTEh0NT4m
SDh9SEIxRylAVmVVZyFrK3FgIwp6WDJTLUZoVGtHWjhBaDhaJFYqeGZoJlpSeChaYTNAd0FAb1Za
eXo2RXRTNkFYSHZ0YShncDM7YyljPHNmaClRUHIKek5NcTlUZkI+b3leKzd9R1lpd0hMU0xhZWE3
MzY2RURCXnBlTzMtKER5Pklod2BBez5WNGskbUkhVmg/SjJOeVQmCnpCYDdjdU1MSm57OyVrISND
djBfYT0zMCZxWUFMJEkrVUMteldjMTF5UClScD07fWQ2PUhLN30zWlg0I297enF8Nwp6dyg5cSlR
bCZqaypLP2lnSUJxflN6fHBHR0FTNFg+QG9DWno7fWRTUEY/KWAqIURvWlpaMnItN2o+M2JebDhq
RFkKekJ9XlpzYlg3PVgoajtXbzRhbzJeOWtNWVBySjt7Q0V0M3p3T1h+O2E3Zk9keyRMODx8JCpp
ITtHKlc0bWFjeH42Cno2fjR1TnxDI3VZbWNjXz1HYzc3fldhYFJ+N0o7UmFSMn14Q2Qzenl3eGlA
KTtII3VkLUd4VFhaQCNqRTM0ZzgmNwp6Syp4I1RWSi1Qe3pmPzlVeFY5YWkqJXhQRnxIdD11U0Uk
MG5NPVVyeVcmPGJ4RnNOTCV7OCMlX2xWSHNvZEBwWCkKelpDYCUzS2w/Vz03aTNBLWt7TmUrZXw+
bFUwbXtJa0coaXBOTXJTfCFaNH5mYD9tciZuI0xnaF55OCN9fDkyaUwyCnplPkdHfTNMflY0dUhf
UWE9WEBTYlErUU19WS0tRkEhSFRWXjBaMGV9JjhFbCooYVVGbTVnVExpaVBKV2slPil8ZQp6PUh+
TFc/WUdaM2FFPDxGbTsxdjg3OGx8IVNNfX5JamltbUJ0KF8+UF9BUFotY2xaZENwJkdjKitKWlIp
JF5aPj0KelV9WitEWEttJHVyQzY5KS10RGwrQkd2MVBHYWRAKmJsK2pFTFh+eFM9dVY4VDstTE1+
aUNfcjQwKj5qdWRPIzErCnpheH13bTQmKEZgQClzUCR0PmVgU0tvRzM8bDdrKjUheFo3cDBNU1o8
cl9wMFl2QzVnciNQQVBMWUtyQSZ7dGszdAp6Izl0JFFZeSFoKVpyRyZoS2M5RnRFLTw9YmBINUpS
I3EtYjBFMzFMSF9xNWdfZ2JhNDIhQHFgN1YxRG9geH00OVgKekJxU0hySipLRWQ1cT5SOWQ+WWFP
TnFibFBXeWk8I1BpIypQTS1AVkVvZVpZUWxLUCQ4Mj5DPTdePGdJQU85RVNkCnpVbGsrcDU0b1lA
Z3hhKGlZV3Z5bTxYUzApfDEzcSloI3xAIWMlSGBSLVBIaUJPc3hTUGJUYTtJMH43O1cxZWo4Qwp6
RG8wWlhNfEpLQnBXSUM4bmMkVytgKjlNNkRVOGc7K00/PUlBNWI2OzI7a24wSkZnTXtBc2oqeTVD
eTBNNEdJQCQKelI3ZCtlUkNtfXwqe2lyOD5UI3FjSWFYJVgwT2IpZSk8JjJ2MG1NRFRUTkA4WGle
ZCNYWHZ8RzlnR2pzeXB+SHdmCnpvNVNOSTMyVEVWQk4wRklqZy12I3pEbihOUHR8IXtBcG5JLUVv
SFl3Q0diQiVTUG45fk9jTXpGcyRpcktxfWBQQwp6X3wxSSFBLW5XWT4hZ1NgMCY0Z3hfanZJYXV4
T3FweHc4cWdZP0RtdV8kUnB6TW1hYnZuIU1fI1FIb0RLVj9DOzUKei1qSlhnblcmSHh7e0ZSaU5u
K0c0PzgwYCUoZTJ+QVJKRUcmP1YrMyY7cURPZXNEPTYlKDteZEdjcypybHchUn1OCnptUjJrI2xE
fnRXTnFjazw5LXNAdHY3VHNVaWUxMjQ4blklRGZwWFN6aiR6ZEZ4JVlEM2F9eThpI3Y7eH5vcmEj
egp6VCs2alNlQyp4YEtBTnpZWjgranhCckczcmpDZVBgT0ZaJDV0UXNgNTVHe1klZ2c5MHs0QDle
eHwybU8hMj9XK2oKem1UUyU0b1NFSUdjJk02bTQrSF5uZyhINzs8RlEpQypSK0FwM0RJUiY7aW5q
eEwlP1NSX3BFI3JzcVVBQihfKCZlCnprPDhMc2JOfCorMyRnUjE5SDBtMzVkbSNKJTc/blhgZX5i
WCMtRHNscD58ZXptbHRQT3RRPU4rQ3t3X21ITWhEZwp6JH03XjQlRS0qWHd0YWdRJmB7LTZVMHdS
KVA1SiQ3KlYmMkg+aGs4ZDRMPjc3b2JzWEtuU2VDbmwtPjcjby0lPFEKem59VVZAWGdPPHg4eWV2
eDhTLSolT3tqOFMtQnZ5JFFKeDtIXlYmKytlZkpVSTsoYi0pT1hfO1FmOzErPUx4SHc8Cno3NX15
QWhPO1hnOFNTZ1Y/WVkpS0RUZzhLT3decjYlWUV3LXRedT5uYjgrdmYqcSRzZnUqYzZQQ1JtbiZG
bWxUMQp6cG1xQVIrNWttQHU7cD1BO1l3cTI2Wj5wJSZEY2xiNT8hT0Rmal9qbVpsaSQoaDh7NCFh
anA3VyRJTURgQSRWeWYKekwrX2p+RWVmN21aMWhSS1Z6eDdAdGRQK1BWZWw8SjBXKFAwbnpRbTE5
ZTM9Z2ojIVlmJEJOazV3dT5UTmpnNTMpCnpkdjY/TCtSR2ZaKjR5dmJsVW0lM2h9P2xKJSNZK1dW
YHhBRUg3VT9MfDBYQm1YMkt0fCNEZztJdHY+QjthVFElNAp6UnVDZntAV3pTRDVPX2xETUU2TVNn
ekgxcChMKWdLQCNHNi13UntoWVhUSC1hVGdATipUPGJPfigrQi1aaUxueXkKemNNX1dIOUF5YyNL
dVM5I3B1Qld+PjtQXk0tZl5uLSV4Z24jRVUrJnFEXmo4NXJCK1YlNjclbnJKPU1tVjROO2RTCnpf
bTRBeEo0RD9UcVZ9bTVBOzVGZjtyTWpEWCkmYypUYldyZDx0U2JQeXUxOFIxJkJVKFRkcWEpRm1v
ZH5iOEp6KQp6eUV2ciQrJW9UP1JUX3FMQ15GREpzaCN7b1c9ZXJVaClmZn0pI35lfG91fShKbXg/
QmpHPilqaUdsXmYmTWN1dHMKejRSTVo7T0lDN15yVVghcV9OUWNHamZvVz8hMn5JZCEkRipxOXMr
SCpmb2piTSR6UTZeeE9fVztPWk9ueGNfLWdUCnpMRyQkYTZjKyltJDFIUzc8ZDNseTZvbWQjcFZq
Zl5gPDlBLTx8UXY0JHQ/WUxiJkhTRztvcU57cWVBbkIlZkJBJAp6eiZzT3c5eUA9aHVmalRzJk53
ezJ0VEZ2JVkyWGROalZIIVomcGhLPWc5cFo1TWBgXlBwTHc/VHM+WkEtPWxTYV8KelI1RllJak9A
RVAoPm59NT9BP1h4LUktPnJHck59U01qU3EmUiRgQmMkeEhOJFNZbkFoMElKfSQ+UHNHakBjZiVe
CnokdFZ7QSgzOHlhPSg7KSlwNiU3amFiNTM8bzZRS2QwJWB3ckZqXylvQDN+bHZFfTlfdihRampL
PTlLQDZjPCg+Twp6Ml90dyVLSnZjTShBVX5NNzJCcjZTbD5gdHVsbTlxa05PWjREYWwkPj45Kmlf
PT1fNyE+M1Rqcyp9eiUqdEZnblkKenQqZVZPVGl7Y2J5cmpaaGNXSz40ZnA/WT8pNzhqejVQcTUt
TzJLbC1MV3JmfGRWYzw5Wjc2P31RUH1pd2R3MHBhCnpnaE9oJTtqVzxRaj1HTDw8d0ZKNiFmcyo2
SVk/cjwzSXVVazAlVnhOdVl0VVRuO3N+a0tQfHFBZiZMUT9Iemg9YAp6QFlPR2E1SjQ1ZEp9cDU/
JkF4Qk44YmVENUBeZFd5Umx4bXZPT1ZqeXVyMyQwMz52eUYtTWA1QzlUS14oMnomYygKejF0fjF9
VSRsQkRjSEhtZSR5d3tVR29JXmlIKmlWMnkpUSVgd3tAS1coWFA9PSFBUzUpMWwkWXxDSHF+M3Zy
Pj5+Cno7P1RSQkJzZFVnREtXe2A+YHIzclVQdTM8bWAlWHJ8OHZCPko4KWhsUDl9dUl2bzRgaGFD
bkFHeHxzYnlnS3FBeAp6alQtQ2pMJjwxJWBHJkRra3o+UEdaKnw8PGR8bTg0Z0VyfSEyUzxeNHRg
KGxDbFloVjQ5TmplMjNoZFhvRVc0NE0KelRVVXdhTCEhYm0/S0Awe1RYY0RMKFl3U2pBcmc0Y1JP
SEctbUF3clVePj0tNykmXndhRiFaNVIoTF90RE9QeSMxCnpqMFZZdkJhUk10ens+YjxmemZMR0hT
UURGUnIjaF5gbnFEOysxKHhoJFYrPmFRQ3otRlpTbmUhezxJX3IwSERERgp6ZClvbSUocC1KQF9h
OFJRI3hGRzleUDFuPyg7ZDNQXlZMaGR5PzFScm5JSXNxWHVzWHVUaiN2azcyYEVgKzBkUWYKekJV
fFImYER5MmppcnFYaSlVQnl7QG5lMFY+SDNxP15BO180YTZ9Xn4yQERFRUhwbG44IU5OZSV7eHEy
dUJWNFVNCnpFbmF0PnJeSSUkTF9hKFowTzFiKDYpZzI2PGxlSEFMVkw3ZWVmflJMTnpHM0hXQS19
Y3paLVZtQ1FjQFRCbDd8Pwp6TWI7PUcrTUJrMFg7KW9xIXxPTWtDVGpoYyF2YERkVEMteFVWaDd5
dDk9QCQ2TW17S3h4Rn11JSplZlpaRUMzRykKelM8TH1nI1JHKF5VaU49cTFhPnJ5cHQ0O3d2ZjtI
fWxuKSRgS2JIcihEUH5jSW0td1BYOyRqdWZRTyFBUkl3PlA+CnpQK3JxNWM5fi1pSklJeWZ6cDlr
U1o7WWRCJGVIQXRvUjt3U3tEOGxAJXRHeGNEIy11dmlKVmpjcnxqZkRXITI4ZAp6XzhHcFgkQHNV
YUgmTkxwXzRiYygpOyFDX0tYVTdVY0ooK21VZntjTDBpYnlgKCY2MUdfS2ZeXmA/LT1XMCFnTWsK
ekB4KlliP1FZTU9CZStEQkZ8OEJjUSQ8c3MmelFUJDhudXxyM1VQS25JZUBeXkh0SVdhfDFrJjU0
Mz9Ye3IxT3o8CnoyNVhoZ0R+KS0qb2pldGtRSjtQKUpISz1mRj0hMkA+S2lvbm4hb0hwVT4qYj12
N3pqWSl6K0lUI35pMk02UVdSKgp6P1BuZlJ4cXA4ZWtAUzZ+akhxUVpwb1FKTGRLZlhDdlVLJnw3
LXk2ZyN0MX1HVUNUITghOD9RbjVMc1ZoYHozISMKej1XKTVlVUh5WTU0Z0x6OEVtPzczOVNAJWFX
VSRFSXR3VUQ9Nzl7WmVDez0qYzR4PEhCM3JjfGd5Rno5ZVlOcXV1CnpoIzEyM2BQJH0oUV43NX08
KmQ1bkUpYU59bTJPJE9eYz1eZmheWVZzMih2PiVAQX1hcThmblBLSz58UVlmVSUxcgp6N291Zzlm
OyYoUiY1JStzP344b2owZEQyWWBhX0BITVAtOXg8MHIzSGROMCV7KzJ3cDVLWSlseiRVVz4laDxT
Tj0Kel9ldE5PayFSMnBPPS1URjF9Nmh7U3BiZ3lXP2g9X0d6ZSF1enxXS3F3TEJAIUgzR14pTHkx
MilwP1ohbGduRmgmCnpsKTJsbj9qTGd8MmxvbkpFKTJNXyVnP2o8MD1iMEduKmBxOXpNOD03IWtL
WDhweWN1fSltS21aYDRkT1l7V2lWTwp6TD9xLX1CfHxFakFrLXZmXmBeQVRwSzViKk0hXjd8O2Zh
R2QzREBiRzx6dis9VTNpOVE+MmVQSCM2R0ZmMmBaaUYKekRfVUdjQmRPbGUoai1kS083YUlrVUMp
RyZoZF5QS2ZEMStHQX5XQ1N4YChtMTZeSHFxdmlQQ1ctOEp7OWU9VCk4CnpwcnU7Nj0ma20+KCFK
aDJeTG15N3NKKypzJikyVGphPGRCSyhVJlV+YV4lcllHQzhuUDZZWmZRYWctUFBsUCRFewp6bkFm
UClvWD8qfmZQKmN0dHJWP0R6TFB5KCZMQC1IUnEhNVYmP3pKbipLbytES0Y0aSF3UE1xRGB7UmVm
ck5mPVEKeiRZV0FySG5BWEgySkREQ01TTXYpTVMzIz5OUW9TISM2Z2Q7cFRCZV5mWW5vaGFmOTtr
dExMSThRJUowejw7b05sCnohJipLR0lwWnprYG5UPS00U3Z5MWRzTHJwTVRlXml3SUZePExBMCs+
NkwwVV8oZThEXjc2YndDQ2UhUjdBXmxUMwp6MCFIdjg0OTUtNHUpckRYclhgVDZBJW9XemAmOzVi
KjZ2MDs9ZHdmeSl2M3VGQ2YyNURIQk0lcEY4I0J8dVB6aigKenxEeXFpTHJYZSM0T341VlhCamFl
UU9mSjQqcUU9Mzs2WjdvS2JPdz90Tm1BKmF1N1kjbndWdXZORWs0JWBFcD1tCnorJiM+QnNAQ3U0
SHtIZmchcigwM0VaVm5+TG16fDVPTHJQV2FKdisxcUhAaz17ezYrKiRtQHskXmZRZWBVOyFMLQp6
WEwtaiZKQlVCdWp+dDlwRlYxLXpGSVRuTjZOM0l+OWBHTTJITX59d3V9ZX1sTkI1Y2xWITEjQXdS
ZWA7U0cpKkMKeksoSEV0UHhwQEgzM1JScVJIbFN7ZnBNfENKbkNPfDJrYE5aeXFrYWdVb1h0UCUp
MX58Yz0+MnZfaDU8TTV6fC1vCno9N1l7aUolb0F+VGFvS3I/VUhkZWBtI3Zlcm9wfnhXXzQ/WC1o
YCUpcm8+PlFIQUBjTEdWaD9UPz9GbEQ9PXd2ewp6RkotSXhpUHY5UV45Z0AxJCZNQzNyb2ZmRG4/
MmJNV2FMejV5RCFkbSs+JT1TJGY8SkBtVW9zbD1jYUhWSiM5Nj0KemVLZnheUUI5Vk5BZjJiWmE5
SE18M3JDdjFKJTc4cVZodWxoaCVeVj8/S1pwcWVPdEtIWTdCfHN6UFVwMFFCbDVBCnp6IU90UFkj
KSUkJGk3aHoxZHhwOWBOTD40Pz0rJE12ZUhkLXV5WkZjNVB7OGUpfUxIcCVUZXZrMSRXelJNTTZ4
MQp6P0lKQFhQJnwjd0pgbiFiaHgwJDtsMHVEIW1mKFJpNlRkeilrZENrZnlMZW4yU1Nmc1FFV0E/
PjB2PkxBYz8xYHMKekFJZGpCS0s8c2ltdkdDcEI0REF1PSF4ZzEld0laY011dFFPbTJUMWN4RU5h
IU1GeE0+P1Uyb2R8NHR9P2s1bVJ8CnpRdipPaWBtIW5wMEgtJD5xdF4+dE83M1B7cilVQDkkekp3
Mmg+OEdxVX1FKiVIXzstOUcqQlAmb1lHbng3OWRQRwp6OVE3ZEkzPU9leGRLQDFEQH40U1BWfGkt
KEQ9QmJhRShRamN4O3VTfiUka21XZTtXKTdabjJgOXIrdmc5YClFKFoKelgzPGJDYm9jRkBnbFI3
ZzlYbiRjanslOExISWcrbXJnJkleQXdXbEFIREVFUF9aaEhOVStnNFlkeVNjI0RGSVRsCnpfJmEm
WUNUTkh4dEJDKnBxXll6I1J8em0+LXQxfUtwcnZJWDhofVVlfEtaIUY7c1lUM1YyS0pVUztCZE9M
ckh7UQp6UC1kRE9tNEB4RF82TzNOeEl4PlZIQSUxaiV4ezI2RWNeelpHKXFEUmcrK0smRXolT355
X3Z4RHo4TjwmQlM2e18KelFLVDMqTHBAPlNVYFRreUB8ZVReQUQkbyt5NVdvaChpYWdrPiEmVW02
QSRATT5yQCZYOXw3bTdgV0BuOWYwfClqCnpoRlNyZXsxY0w0RCY1NkFqfnstS29AJCg/VSpsY0Fo
ZDMrRktwQjled2F8R0QtclJwTz4lSzxfU2tCfVIxSlJ8Jgp6bTxobX1IWXFCJWY4YHVsQnlFWl9z
VmZaISl1MCY0TDsrRERjVFMzUU44NzZsX0Mha2luVHA9XkpSbiR+NkVtbEYKemFTNkRONmRFO1Vu
TEA7KHVoe3M5SCh4RDE0TyZ4fk9YbGtNPFp0Jllnc2tzbD5mQGIqO2RPfiQofCs0K3xMQU45CnpV
JCMofWhVPHlnbWhFaj95a2QhSHg8UE42MDIrUjVkWDRRM3t+aUhVZS14XlY+P3ZLWT85aWtRQGY4
Z3ZAY15ITQp6QEFtbjNQTkpYWXhOQCk7cFFRcD5VSTBUdlEkVD8lS3tVa0BlUE1YS3VzcDlvRyY1
ZEY3KElmfDNmO31mZGhXc1QKeiZfK0dJZjF5TFImVSttSCg0PXpIPS1ieHNvdmNRSnh0OyMtSkMq
eF9kdUteQ3NDMWo5QHh+RX0qdCZgbDAxRj1HCnomNClfbT9QZTF5PjNaa3tJVU1wUW50KDlCQU5R
dG83M0Z4JDd7Yjw/MDJEZnYxYlZWKWd5KzVZWGUkSEpGanJoJQp6VTRLcENRfihyQzNxYXZLMkVq
SFhJciZhSEloa1BEYXBWRzhFUklscF9Ndj5yX1ppUUE7TWQ2X3dfPVJTbUpkdVMKejlYOFBpRUxG
dSl6QVo9VWNDVmcyd3txdzswdVg0ZiRDTHlxUj9KI1lWdzY0T3ZBSD1PbEFRXjw4IWNOXmB6TX1J
Cnp4SH5MfUMmI0oyTy0/NCtzK2BmbDYxPXJSPHFGbz9Ydj48Y2ReT2o5S2gwUmZjenZEI0JReCRK
T3l8USlVVUpMeAp6RTApS3xUamluR20+O3ZpXiNGXzE7ME1ERlBTUlV2JllWWFdYZ0V+azQ8amMr
N3RMXigySDlMUlRoUjUhNlNKPzAKejk/dG97NmZWQV55e3FTMXU5eUNeTyNmcVIoKysjQlg/Tmho
Pz9zN3ttSUYlQDw0KzVWRy0kei1waXEjSyNvayp0CnoyZ3Fvc1YrNGJVU2lHYDZKSVhRaE0/SVU3
NC1xTmxNI1J1QXlaM3BHa14yZnxhK0JUOUB+TnxFcnpaPGMlcnJFUwp6JGUheylXeWZzPzdEeWBi
eEphRnxJRHF3O1F3MiklUlJCc3h2R2QjTm89fng0ZXFSeExwUiRIOFJzYSUjQnYpYU0Kel87YGFN
YWU7MntJP2NTWmMpJU5ZT2AkfiQoP0llQihJQk83SHp3Rzh2WSY7QXhOU3gtZmU/UTB7NWlQTUxe
JD5vCno4UnY9YUw3VXo/d1FuWHI8Jlp8Rk9SZHBTJEl2cFE9em9iIzNuVnkhVFJiJjdkSHkkeSkm
YmJETzlvSXNvWlI+WQp6RTZhVDcoO24ke1kkbGw0OGtiezZ8QkZhV05xbkBXRShUMEwjSChoJW5Z
VFFqJSlrR1hPYHNIVXN9RT1AOSQ4fFQKelBPeilFKUIjdjxXYEc2MTtHRz95UWolY2I/NHNpYjhx
Pz8kPU1Ka1ZpZSZKaSZvbUxYNSNrdTYjIXpKR0V8MnE2CnpQMmZkUER7bGpsTGU/Tns/MDNBVnlJ
fWgyOT1Ia2c7UDxQdmw8O35NI3xwRSRxVEdyeD1CQk5PKGl0R1g5cD9PTgp6LT4lKTl0MjZOLSpx
N0tmcUJoNnM3SnlyfTR5QUVIJWgtPkdZc2MlaE8+PylgOS0jNlBPMUQtSV4oKGhjZ0MjMmwKenl9
dlhJJjx3OHlpLXxMKWc7ZlgoKzBPd0BzXzQ4dnA+X3xCM3t1PiFneXs/IV9tal51V2YjK0UpXjIk
Xkl5IShDCnp5PiFld3ImdUpiVVJIPlNRbGAkKSVmTSFzOHYwb0FNO0ZTKHolfXtsTnRgSHwjYTg+
cl9aVFZuampMUF5Qa1NiLQp6KHEhblVTIXY+UUp9Mm1IWWxjcHIoPEl9WXZZakI1YmdLKyomcnNK
ITkoezBLeD81a0ZzVH4wMm0pb0pkSHBmdUsKeks2SG9QNFhkXkt7dUhFbGleTChZRn57dmlXeHVD
Wlh2WDR9X1ZXZGlZKG5tbU0hPzVqayRJfl9uNWRPPmVMdzxYCnpAeWQ/b3pvN3Z2JjE7bjNjVkFE
MmY2c3Q3PGg/TU1abjVydVVTd00xQEZSblpfbFdke1FiK3MhPl9xT29tREV2IQp6T2J+cEFAVD42
cFVJaEs7ZDRPWlEySWdgKlp2Uj4zMGJvYGtWbVAtNGhlQFI0T2MyO3dlQjlBJUM3Rk52bXBJYyoK
ellLcjVUcW8hdFctP2RSOXwxKmw2N0UmP31zRU85WG8/UV5AUHhYYndeTiFUUm58V3NjZE00eEZw
VDRDY2FuZXlaCnpzZVRpZV9DQCstaGEmKVQtS3Bfa25iemFnSm9QNU0oWWRIZGwmU09SbWFGWHdR
PWtTbCU5e3Y7Q2UkbyRmS0twTAp6Yn5yeThtMHkxc0BHYCtAdXUpNipqZSFWKCteRmFKeU4xVjkm
eWA5ZG9peWM4d3c/Nm0rX35HTzA+JGk9T3E9eWoKenFHaTFpNkJrfUJqZ0VHNjsta0gxKTNJRzhv
aF99NkdSa2QxMiNpWklxMjhAKXt9MW8hO01wekxTZSNnS0BKcDZDCnpmWkNAbzN7VlpEKnxBJSNF
dj58OTcxQF9meHZ7bHNId1ZPJCRzSD9NenljT29IO0t3Pj1LRiVjKDRTWT1vWFIkbAp6YmRVZ3sx
V1UyY0pwb3JkbnktbWhmYT5WI0RNMVB4YkJ0aSQjQih1I2xlRCR3JnFQWCQ+akZCYHtLTEgxPF5P
V3IKelZQI0tgN0Z6VTNAPTsxKC0qZDhmOFdjPG0qZEJ4LSNgNXEzQWY3NFhFbEtZMWBrSUZ+R18t
LTd0JCpOIVpNYWZQCnptJWsxcDg0KlM+JEFlP2BRcCl7fVMjaUk0b3ojcitqO1BYWUxQVHI9Mj10
fnpScS1qfWM5ZUJzMztsRm8wQ2JlJQp6cUBXQTxtNis3dCFIc1ZCemhSdSRAeGs1eiY9Pit3Vygz
Yjd7P15YeC1OZ2ZYVHdiRUVuVmoxfmhxSWQzcnF0VyEKek5mOXc9ZSZMP3ZXTlU5cCp+Iy1hSGsy
QzZ8QW5Tc2RjeE5eM2dCWEdjS18pa2ZMV2szVWpYViE4RWVCUFNUOUl5Cno/KmY0Y2ByWFVJdFhm
RCg5bT09cUE8aHh6Wj5+JE9XNlJXTDI3Ozgje1E1WnJ5T0dibyt9LUR0PzAtbGM1TEN6Xgp6dUNt
LWRVO3B0fllkWlpScXBGUzdIfFkhYT02MyE5dm5DSm4/fnJVKyYyOEh2IT92KS1jK0o1SD1UVnp7
S0ZmcSYKemhjd2lPazQoVHcwZzw4JDJ0OTs1c3tZR1hZbmZQbyVNLU9oRjktWGdoT08/RmYrdHMk
ajhwPThlIVdKKjBITSF7CnpJd3JKUzVTSWtkOXVSXnA7WUs5Uk9QSEU1R1VSV2lSQ21aXjMlJDct
MVRMSGVQWD1qZkZ7WksyLWUxIXZmQEQwOAp6QXcmaTZMZntAMkx8Pjstci0tUEB3X0A9bktnJHBA
JTU+Z0ZNd0soMj9kPD8wWUg5WGwkKDJpTTdYSj5TbGQwSTgKej4pOHxPZEY+V0Q1ITBvWE4zcnBl
IUdzYz5BQU17bDdWVFlvbE9EUExEVjhPYkpVST9VRFlhIVljSTIoRDR9U20xCnpMQzdxdUR9aCMt
WklvNktwTl9zeTBNQD4tOFY2aHFAUG9JOXV+fDVSWFBNPSU3bT5XZGZYfj1DYEBTOH0xdE5LVQp6
SSReNEZCfmUlcHsqI05MIVY1SCZadX51ZWNRKjRAeF9je2w8MW9Feko/ZmhMa31zc0k9NnM8R0xm
YihgaSslY1UKekk1YHhfME5FakVuQnBPNkctdTheaWNkRn1ZT0xPOENBZHwman1eZXtCZE1ZX01S
e3xWUXV9Xj0zbXxKPmJ8bFIyCnooOEVAZSFFQHw1TzkrVGZpPnxySC1kbikxNzY7R2tia0xBKnIw
T3d2VCNHT2hDYkl9dENCYXZhO3hZKVdgU1kqOQp6di09NC0pczFaayg/ayU3THNBQklIezhpXypr
WDU9S2o1WDxfcDM4WUd3RFVaYXNiOEo4WklManVUMEpUSnRMWDkKemw8ZFA9QFJ9MGUoI3VYd1o8
cTEhZEpCfjxHWXQrfktlOVMkb0lrVEJxSyl1PThFIT40JElBVHw4YWRWYEhwTEE1CnozamJDYnk5
LXVfXzhvfVBqRztSIzd9LS12Iz1WeV9WZngwfShhMHtmTFE0SjdhcV9MbGRFMGloVDE2fWJATTFj
agp6Mnc4KWBJY01BY1FIS2cmXjFrPExfbDBETFpLclBgMmt3OEdlRTR0JHlWYyp+S0pHTDZ2QkE1
Z2ctRmJ3I0psIWAKekloR1VnYW9vSWElK1QtPkJLfj4oQWc0KnJOZWwrPz88Um51WFgmVU49dCZ7
cGNnaHtqVSNCYXhSRmpWPngoLWQxCnpGT3YqTS0zN35QYGBoJD4tQ0dgREZkck4ob35pJVdXKj5P
ZkhITk4jV3ArNiF5QEJzVygmaWowaDxfMEs0QUxWKwp6Oyk8SWYxbUZnKDtmWUokVDlLRXhqNkZV
RURVKXhKZzVXbE83bTEqfUpzQmNnd25VNExYJkgjKTEzVGMzdVU9a0QKektjdn50VztuSmg2ZlBZ
QWFeYWxKUlEhZVJxSmxPfER3OH13TEQjNEhpc30wPGItZlIlJmQ8cjA8RTMwTCs7PG9NCnppdV83
eXZVX35qVmZoQ2F1amQpKl5BNSVLWXpFJEpueyo7WWVgNGZtIWY2SkMxRGApdXU3fUtnPylIUXAz
KWFgcwp6MjAka2lGQnpRNGpBdDdIRkI5KillZzJzTXBBOHheKCR5fmRgSngyO3ZucnV5KiFxczI+
ckI4dCkhd3I2TU5WUigKej01PlF8OD1sQ0hvT2MkVXNlKzx+NGI4UU5VMT8ySERmUW9nQ3R1JERk
QDdLRzx9IT5VYnM4dl5RUXo9VDc4ek8/CnpFUGQ/XzxrdCQ3bmAwSThXMikpOGpSWjdGRip+KFpm
fil+NHo4TnBme0lldHkrX34zJEheZFU8QlkpTndDSjJofQp6Pnh7WEt6QU56Mk5iKjVfajQ7bmo4
eUZ7bV5PJXFiMiQhXm1qRkc1VW5GWFZjQm1geF5nVl95VUxhdVcpVnlQQyoKej82TVVoTl9pRkFZ
Y0ZgRWZxOT5LTnRGZXlpZk5EKVZzPyFNYWFWOTMmRFZTYUsxJHNsSnEpITl8N24odGM7dCtaCnoj
JHBBTlZVcUYweypEY0FPamM5QWRYV3pDaXdPUTdGRWQ/eXNTcnkoSmkrMT5ZVlUjSXZuUTVzeUdO
YUV1VFVJXgp6VTlaPnsxYjkrdkdxYEsxOT5XViNeQjRNMGB3S3NPWChRY2ZKVSM9cWlaT3pneEN3
QVZybXs8MDVHYG1OKXNvZVUKendta2gpYm1eYGxPYldFTmgxUWBJVWxYUCZSVjVGakRMIzEmRGk5
JSokbExmKztrdz5XWEIrJiFXI05HQXIlfWFOCnorPnlPYWFhM1d3PihfQT1BITJQSUdPaGhHbSZl
Y3klVntfPGxBamJoMzx5cFB5QClrND8/Yzc0Zm1FfS0rKD4oZAp6NndxalVTbG9gcElnbVQpKXJe
UEkmSChGTEwlcERPVEtsbj1sLSgxN1BpMXA8QHRvSCRjSmVWbl5hVlVLQTRyMUcKekktMl9JTi1R
QWtyR2heRGZ4PXZ6Zm1pZDgwJFFpPiNtO3hqXiR9PEQod0JYV3NvdUl8NncjXj1kR25hK2lASjRB
CnpHckJyLSlyYlR9MzNPPk9oTytZJWl1VW41VDFQQzdvUWRFZUM0RnRiZXJec30lR0xkVTIxOTA2
blJySyRodVJGewp6LWxqI05QcXkxZXBaUkIrPFU9ISg+WFM0VUMzUzxJNElaeDstWmhRNDYma2Zv
Zm9idkRHVXVpM1FqazlKeEdEbEIKek91Z3d4SHw1OSNoNE9DOGZCYmV1cXBAVHFUOU9lVENoSHd8
U0hTaUJjO15yUEo/QWgxXilUdmdnYnNlXisrZXhTCnpMVkJYeGFyMnowdnpIWm9EX2tSN3dXfDtZ
Pi1HfmNiRz0wRDFMSmcwSDQkLXcpZEBQRyM8TUZvKSY0bkQ4RlEwMgp6QG4mVXFEaGlLS3NScEBH
NDhKd0BIdWZ1S08hJTZHNWdXI04wSyZ0NiYlfiNHKDgrb1pmPyQmeiEjRDs9aCVLa2IKelJ8QXIj
WGRRTjdqdDFHMUJvWEhHKWpyI3JzOVU8NkI7JkNEcUtVeFpCTVI9JHhINUcqRSQ9WTcqREktMGZx
cytECnpSc0hQczlOcGNLKlJJYHBvIUFzO0ByRnJoRU1AZmxeKHNCTTN+QShMNXtTO0UwTzxuYnI0
TlIoUmRwPj1xfSZnJgp6WTt9aHZ2aT59ZjJOMFBiKU4hQm47dUd4T2FVe1dxJGQkOyRNQVUjN1co
YmY7VSlTako7Z1k3bldtdXk1P3ZqbUsKejBiJUVwYCMhNmY+JVM7YWA2PER+MG1ERHxERE5wPEo7
YHpUYD0yQyRDeXl4VVVSTGZCd19WcUtTb2ozbTRXY0VWCnpGNzFKUFgpd0xgR3ckUiUrTHZ4az4+
K3oteE43SXRsXzVaYnZQQmFHT1hWK0ZANzE8e3kzPGMtPUNwc0ZzTV49cQp6bWhCYz15dDB+bUBi
b3ttQWtaKilnSW8mJFBDQFlEb1lmJU1rVihXNXVnJmNhSG1OJnJuKmpMb1ZmXipGaEd1N1oKenc4
Vj16MWpHVC1JVykhYj0xbFZZRXwzRUF2VHMza2VJUG0rP0EjeFdZbGpeN0xwNGtpSFlmYkhrcnBv
JE9gVVh9Cno9TD04bnp3cz96YXRFbDAoJm9sMmh4YHViJlQ8eHdgVT1JRSZFPyRSKUtxSDRGfk1l
fWEwRWB6KDM/SXRBS350WQp6az1ibF91aD1kJXlkQ0ZPWmB7QDU9KmZRfjlfaz5gLWNvUlBOZmts
b2khdEBoMHhBOWpTbE4hLS1veXxNeSFVflIKemBXJkIhcXNDbVN0PHFTT0dONDNhSHVnPn5nZHwk
R15pKnk/QENuMUhvOTcmU3N2WTV6JCQ7S0ZgPlUleTheNmU7CnoqSX1JJGQzMWttUG5rb1c/KU8x
LTtRMnp5KXh9b2VtQWJMRl5CRV85OzJBSmUqa0RuQzFZckplQyF9KFhmRjJ3Twp6OzZwUCotSD9P
bjhMJGhBbkleVmBYfHZVK3dHVy1POzE5ey1qXjw2PS0zYzFUV3RPY0czd2hfZ0E8RGRxSmhAQmUK
enV6blcjdURjJiVLXzI4OTBDQktlWlV7KHFwfEB6cighUXR1TjB4RWtUR2VrSnF5a3whMDl7Skk1
bEpRNlBMZERUCnpyP2xPNVA2RkpmYFFzJjVWSilRUUVSRzskMEBhRzlQJEVibilfJTFWaiVvI31Z
e14taU5NWH5EJGkoNj13TVdlewp6WTt1P1BWa3tyM3FJUTBzKXxMd25oUzM4LUpgPnIpNyo2I1dK
WEUoYWtxNzlkUkZUZy01bGJXXl5GWTwraEIyLXEKeilDKExwSDlrXihZSDU5c1hTP09DKVV3OUl7
QmVhKFV3Ny1hYFR7VGFOK3YyQ2s5MmA5dSptJUQjfl4kITwrfD1SCnpwSzBfRGoxYiNSa0JqSE0z
bk87MjAmaF8hPExMLWUkXzEhcXtOOX1JOEAtb3NueU9peGpmcW9reE0rPiN3OStBdQp6OHtDYERM
fjIwJHN5O30qOWBsfn5TLUJoPi16cXZkVk8hT0YwbXgxZmA9YG5CczNaMCNrdU5sRz9qSG9HbXVO
cVoKemIzVkxialB6eFowMDQpWjE1VUIxRiNvYGNPZmZwMnAzUl92V3JabW1xcSZyempKQzAzcEtr
VjNVOGBIa3VgdUJUCno7eW58V0RaVjlJKytYe29RWDNLVGh5Tmx1ZiFuaFYkVlF+eEdlWjJtcldu
bS0lVVRHXyhMP15XZHtUYm5ybHdiSwp6MHhXYXhXSzsqSytEa2NkejBASzdDK31Pa1V+elJpWUJC
QSUpZ2I+UFhGKyopX3VoWGxTdVJLYkBUPlNpOC0/JXkKejtRbkpkZkNOa2dKVnZrMlBVNGpMP2Zs
S1ZEXiFrdnpTZVpEJEkmVEtuM2d3Yk5aWjxjVHA0YmxPZWhgR05EUz5xCnp1cDQ5bUBqI3QzNXV+
Ulp7bU0te0lScSNMWiUhNl5DSjtqP1dISyE5e2EwXl5LPlUzPUU8QEhQP19TYWw3PSRZRQp6OTg5
XyZaXzVKaTtFK1czXjYrfCpfdj5MS3Vye2leWnVlIzs8YnwlRyYrKH1fUit8YmdMOWZLfSVjQT1B
RHFlNFcKejF2bXQrSi0pNDNPekVuazA8Z2NhZU1yNEVqOUJ8ITEzNjRQV0B3blZyfkVMUmE5RD5p
NFQxNlFyRTN1QFZaYFM1CnoxT1khT257YTdEPGU8VVdUVCYrb2NoemdgYCQrJlVtQWYwOXtWUkN6
VVZwZ1N5ST9NaCR4MUtSR2VELWUpJHwjUgp6dUskMXMzWllwLTlTUzBlbjk4JWo3Sk9FJm84Xipy
SWYyR2ZPdVRhY2pobXd6QTFCJHpRYnVoPkoocWdZOGVYKlIKeiN1cUhKSzZaMCF2VXZVS25ZV1lp
b24qWDd0fkorLXZnU3srWiM7b3Vse0BCQVBMWmVpR3UqeD1xMCN2ZDA4UTZ6CnpQeWItQUtrfXt0
eFElfGBRV3lTeyszY3R6VX1RZz5BSTFXWXpwTFhjJGs0a3VCYyZIMFoqeWIpekhjV3RGajArfAp6
QnBJXjxpS2xCc2VtIWxKYjYkZ214PEIwRTspUChuc1FPJkstaUhTNyV0Q21jcUo3PztEYkstK25I
WkY8a25FWTYKejxAZ0RwSEVgIXhgaHNfUklxM0ZAR15EZmwkelBgOWZ6WnYjTiRuZi00VSNaJkVw
ekErUDwmREl7JDUwQ0xgWSFyCnpXeG5yMUNaSFI1QklyU3w9KXF6TFMpNF94dGwjdHA9Tz40U2Fz
ZC1Gb2coLTdwR2U9IWxIdSs/WDcyKyF7KDR2Xwp6KWN5ckRVZ0ghRlpCTn19eVNTbkVCMHo3NXQ0
OFM0TkooJWc1TURuWmh6TD5xUDNET05fdWQwdlkxPnFwZztCNH4KejFSKmI9VX1WeWBVVnFKOzF8
byVJSlBaRzxMRjBeXiZQJEpwNDxuT1JFKztWWkRTdiU/X08wWTVKX35xdzQyQVY/CnpgVXQ7STg8
cXR1NnFALV95Ml5YdkJfVSMqNHwlbHs0TTx0R19WJk5GbHdeI1VfUCNhcm5UWjRjNTM3S1BNWk4/
Xwp6R2s0Xz53IylGcmlRJVo2bTglcTZ7PU51fXBWRzUqdzt5aFBzayhBRXNycHkqVUtFaHJhZkBK
Zmk1SlBkcjNwdz8KeiNKfVJSJn5Dd3kyI0xEXyhSWDMkT0pvOTZjWlckQ1haOWkpaDFoQypIKi0t
PnkjN3J0dHV3SnhGeVBaLT9hISQtCnprXmwqQTxJaUJBTlFvej89Jn1yKWRlSyMqS2REKllTVEwy
bFZ0OXVeUihVK2twelJ9eXB8SEIxUVZQeT1eNDImYAp6dXdISEdNS1FYWWV3eVVfRVpRTzk8NVBq
c1pMejNAaU99N1lEYUMpOFBfc159SVRLKEcwKSRBfT1TeiNiV1h5X2MKel8tVE1VcmFXciM9NUls
UmZfOGZCVVpRaShpdV5CZWdJOF5OdWVOcTVabD1FLW43c05NI29+MXQyNiQrSFpEYTNVCnpMVm49
K0JrU20xZjc+ZysmaHA4RkF1enI/R2Fxe0F5U2NrdmMpR2dYKkpybTZ8Mjh6Zl8lWDBrVXtHUz1k
bWdnJgp6XlllJDAhc0Z9Pi13bWBjNzQ/QnNHYTE8dTU9aVBsLTZVZHZkNnhoJDYmMDJiajJ0aTRf
MEdIc2NQWXVjcm09bXEKemYzdEFJe3MhdiFWd3slMSg1RkV5X3JDPz9NRiQ9fjFgV35HZDlwUXsw
alF0ZF49b0B3YVpNdXVpIXVjWVdpfUQpCnpJcHwxS3Q1YGZLSDt6cVhEWmcmbFMwVGVVcHlUNT41
Zms3OWVZUCRhT2Y9N2shJEx5MVopZWkmNUEpc1dwYz1HWAp6Yz4zKWBtfXAlbXp6IUgtY342NmQ4
UWgpSlA/KEBNVm1gYUJreGZXKXc8VXJ9ZCFuODxAaG4qZFB7enxAQXxTPWgKekZRO3lrO0lKRiNx
JENOdT1uKFhWUH5KdGJhX2FWQjtNPld7aT5wakI4NmFNZVczU19kMFNmWGlqKn5KI3V7KUgtCnpf
IWBLJjMoU084anBMREdxJEo5Z2VqNHdLXmpyZHpOcG1Pd3RmcmhPeDlAQ2VJRSFYYD83e1BaPWYz
bmZgYilBRwp6KzRlcmUrVF5+fHgpOzd6aWRafEFCditydWcrKlg8a0VObUhoTTdlQnIjaFRvU1VT
PTFMWExtaE5ERXoxR1JjVWoKektFaytfLT1TQVF1Y21FeyNfK0VUNz1YRH5SRC0wfE1wQklyRztS
KmxkdlooLTVLanc5cC04e0RnKmReO3FzNlohCno9enZmfjVedjRmX1p+R21yWl5ve3hfJEZBYkhO
cWAxXzAjQzsjMkVCc0A1T3YzMGtYPypeamVtb2B2MCNlYmFGQAp6dz5lMzU4RiFrIzNLWDchWGFr
ei0qU0pWI2BpNzk1Tld5LVkre2xNQj1QTHBOOSVCYD1gYHpATClGViVZRkR6O18KejVfcExWSlBw
LU87fWN7bzYzIStLTjM7RDRBMCQqaDBaRmpSUHFCQ0NUdUp9NTd+U0oyVXs4OHMmPjFgNjgoaEVQ
CnokYFY9aXE1IUUoZDBMSz9NfnwqfChYfWBle2lwPypkNWJ5ZjtjTClQJjU/VkxIUTVgIUIqJG4h
UWM0LU8tQigqfAp6UGR2fUJ1WiF7WmJAQEY7Mko5PTJNbkwraHhDPj4xQT5SUCF1PHc8T0Eyang5
NFVKbHBfMSE8dFRrYko9PzdmN20KemN2Ul4kYEU3MnxLQ3RRWWhxZ2FzX2I8az9fc0A/IWVEQEwh
azZLI0FBR3pmYTBgZTZOJllGIU5zfnF1QlRPaGV7CnprYkBGQDdkQkJfcFlEQExYakE2M0RVfGtZ
JCh5LXM8QEUmc2g5eV44NDBHTXZ1QzQzKzxgYEs1MF5MOU8hNWRDRwp6PHZ9O2MrQWYtWXdeKEFl
dVFIR3QtKz5EM0Ihbz1ZSm8lQ0I8P25hX2dQc1ltKjtSSmV0S1d1LUVNeE9KWm9MM3AKeiNTNE49
ISFgZGR2U3Q9VDRDKUZxK0lhKmszWnxFdko/bER4VksqRmlmTXN2N0pNKWEkeVN7cnVJbHVJRWRo
aTgoCnpQbGFsM2w1YVZPcD9De3IqbHxBRXkyKDZsaTRFUVpFb1hCT3hNN2N1RmNeOENYRm1ZSyRp
RFBFZThBWktGcnYpYwp6YlYleHQwcWwmbU5OP3J1Jk5JVitPamJIP3ZHQ0Npekl0RFg0bEtqeFlh
JDdsS0tVbVpYMVpJcndEV21LVWgkYU0KemM5Jnh2NzMqcWF6e1AzUGR7aGsyYzJgVDVuZkg4eXcp
dytyb0RQVlFoczF3YFMjekRSUXRyIyF8MjxmeykyeSswCno7QWE4ZXlFN2VITGEmM2pqVUtEQFUl
fElfWU5xWlVsQi0yVl5wRVFma1dXOW84WFQ/WDtPYDkxYkBLdytrNl5+JAp6QF5edDA5IS0/eXFK
KFVESHJMSlEqVyg4eWsqbUt+dnZWZHJIfm9Ea0UycEwmITF0S1E7SmZeTSpaR1VQQ1htdDcKekEz
VVFgKUstdX09Z3Y/b2hNVzAtY21aSWp8QXUjPUs7dE9PSTl5OTNVR0N5UTReVnhNSE0tOSVEPTdD
SmxaM1kwCnpibnZWQDQqVlphVSpYcXVgfjZLeTI/Iz9fVDc9T2tOUjk1Pz0jbW5vSjRTYShPNlAj
bDlVYFNQZn0oVkhFOFg0awp6YCoxKHMqWWdobThgcEtOYktaM1Q3X0UzTXR6RTFJUmhoWSs3I002
SFZhczJzeFAwKkJ6SmNtUC1DOHM9emA4UTEKenQ5RFVZVEMjM25Qe3FLKUZKd1FgMWs/TVZRKV9O
QSNoe28xI059JGhmbVFkN2s5UT47PFZhQ3tiPT4jbkt8K2tBCnpSMyEtP0lHV0pFMyskdT58R1d1
ZFg+VjgzdVRJR0RLZGpXZC1LV0BqeUpzSGI7bF9yYCo4K3o/NVBSbFVGNGY/Jgp6ekxxQUVqcWV2
UitAaDdveXd1P0FXKEs5a0pnRXhfOz8ycz8+IThVV28lT2d7KlgheThmam5LKSZ8Sm5iRlp4MFoK
emtaXihfdmNqdntgdE5UUGM3TnAwbklDaX1zKFVFMCN4OTNuWE5+N0FHT0FLJE4tZ0F9dFp9I2Bp
antANDNEb2FhCnomcXg2ZHhUP19OYFlZVXtjaFcjd3laJGohfE5KazZUP253M2xnemo7eUApSlp7
TCNMRnowP3RvWD11WUlediZsQQp6RiRmMkFDVyEqXnc8ZmNidjxmQ2BCVm4qQihmP20ySzBtUmc2
OVR9UGdrKUt+RmpiJEc+ZG1tdWYzZVVrZnEoVWwKemMlO3o9am4pZVpsQ3NKKUN4bzlCcU4ydyU9
P204TjYkV2EyQks0VmdYYUpTV3w2Pz89TXc8KFo0IVBYYGFxKDBPCnpxcTMzZll0JnZ7e1RwXytt
TV9yX3leMjt8QERnUlElTjg/M285eT5CS2ckODskeH0wbGt5ZCV4T0tDYU11akVtdgp6b20yJCRF
ZGRvbSk5JnJSe2FRcHZHPnwme1BhVGBXKU93amBqcGhzRnI8M19rMjdXMU9MKzJaOG1jVlMzPU5F
WDkKemxkPXAmc1NHPX5pXkBZXk4yKiNKajwlR3khdCVOdUtMNT92ajZ2aSpaUzsraW9GVF41OSY+
UG9zMzdLKEI/RShTCnozKGVtektyd3E0JFhgQDhYJUolZXM7VlMwPHdxKnFXYV5lRT1qbF5WMHJL
dHdwO0ZDWVNEcmxVXyNPSipfX0c0ZAp6T3p1RGdOeVN3IztiP18pP1JPXkZ6d2kwIUV2MntgWFA3
MGIzZHRXYXFlX1Q8KnZwZEk3JGJATUNZc19RRGpje1AKejQyVkF5TyZwa0lQcSZrcVV8SmdMRDd9
dj1Mbkh+NCNXZz4oPmJSS1VNT0k8S0ltTX17dVdffHpSIyQqeFQ8bkw8CnpPYUBqaHA7bikoPEN7
TzchTCM9dWdiYi1kNSgwO1RxVzg7MjhRbnQjNUMtUnJyaE9fb0xWPiNvXl48dWZ0d3B7NAp6P2ZV
fjNxQnF8RjBCQVRXZ3BnXz9fVmNlamJ7bl45JkdDVW8+IWdMc257WiNtdCZAKzlwTm11VTcwKlFy
JEsxN04KejZGP0JtTyFnJWEwQCFuLTNpaENfSnN+aVg1NiE2WE5rME11a0ExOTdMYTYmWUt4VmRZ
MTl1dip6empgeFpHeEh2CnplRFI7SUZ6WlZaVzxaSmI2NVNHeEVzRHBLVDUwYCZyYXtxJigpJlJq
Kj5SVG5zSmtnUSt7Qm0wdXgtMkVFXmh+aQp6a0RnMThiUSZBNGVTUlU+ZkhodCElTHFsQGJ8I3B5
eztyJjxIdjNpODhiKXgxQUB4KUNtand4OUF6NGMqIXM/ISQKej5KRTc3Tmp2fkBiUW9JRVgqS2FF
d0EwMT41NGJ8Pyl6ZVZtbVh7SG8/KEZRNTM3e1cxRFBzcXlWT2Fvdj4+Kjk1CnpgfVk4MWEqTHJ+
QTtoRDwmdj8zaXlqd2VUcEZwZD9NcEAoc3lvMTI+TWZUcGFpIT1GbUNHWjN5KHxGdX1wb29ucAp6
b24/SWMwJih1N0lafD1ELXQ7aGxlYmxgZHczPUNlPDAwOW9re2h5RClUMmlYVGNAXztRRmZiaTcy
M0Q4Yis1bjYKemdzb04lYjs3TUVGTldGbnVPT2ZHSm5EZk4kNylYfjdPO2ZZOzFQOzNvVWlnUWhH
cnRtSEZGVThHTWY2eiM4K28xCnpOa3h0Tik5IXFPb3IxcD0lOTVPP1VoRz5YRH48dW5OPEBBez1D
ZXBwQyo9IUchO3pFQ2BsK0VDSV49OUFTZ2JFcQp6QjE1JWZGTjIhaUsraDJtPncydUxZVlY+S3N9
R0FSYi13O31JdSU8R2JYYVVAUzg8Nl8wZnNfI1FMKkQ5PWs3RkgKekkpe0hgR0ZMa1FITUA8JlBw
ZCN0SkBjczYyMXgtUkJXK0oqR0ZEdHVjRnszZERRbmpLYWFLO0woJjYrU1lSZVo/CnpfUUkwSmw8
djs+eD9MIzMtZ25FbjM8JUlZLVh4KngofkVzQStVPk43MGZAfFA7Oz1HWUZAanstNCZiRHFYfk8w
bgp6YnlfeX5ENEhoX3h+R2QrViMlR0lmfHomP3kpfFpydXtaJkZoUldBRGE7QDNLSVM4LVB4Rkh+
S1J5ayh7PVI1djEKejMyYVRoU21gYnFkJUQwOTljOTk8dm97I2NtND07PzhzZiRWXmttKm49a3R3
U3khSCE/SmBjSS16bTshNz18OU83CnpsN2ZwaSs2JXxAK0EjUWlDR3BwUUFObWNkZ1FoWHxYbUpa
JmhqWnIobWhVbUM0Nlp3eVRAeHlkbzVBSDVpb3hDcwp6ZnwhJUktaVNxeWN8bHNBKEY2dW8+ZD9A
c18oIXFydT49NlZCRT1NdTlTP0NudXJhM3BXPTdvO3kybn4xQ1lUJXMKekp8K08jUy19SkduJlRv
XiMoQ00pSG9pS2EhJFJ4UEBgJD5IUGpIP0tweGFPRyp9OUBCR0RWMEtDcG12QDNsKW87CnpHYjUp
TU9zc1NwUTF7YUFAamdDJWh3Ml44VmxXV1krcCpKZiYpbmlaezdeOWQqX1E1MGJISjlNPlhnfXZG
K3dTOwp6dH5+VkRkSUBSR1ZUanBPSEJESX5EZjBaUGt8S3YyPFRlcE5UVz8+PEVZdXNNclpEWlV0
QERVMkRWT1U1U3FvMDwKelZpRU9oeDE/SEdiRTlrfHIyZVZMKkJuTkx7WnxnYFdAanw3QHdVfGgz
cClgaGJePlN0PGIobFU3JEE+fVhiUWZRCnpGUTt1WD08aU9jOE50ViF0OyomU157V2loX2lWdE8q
fSV8ODxDVUtUS0xfOXhIT2E+Njw3V2p8P21pRTBeTlJySAp6VzRnQTJ6YV80fm9jKyNYVyFTN3d0
QUMtemNXTSV9Yz5uNUVKa0kqYCZ3ZX5obUlzd295WmdzUDl9UiMldFhGJCUKejN3WSZmT0NSO2BE
JW92YSo+P29iVCs/eCVvbUUhZS1mQ1lpLWhsT0J6RE9ZTU80REsxeTw2MXV2QD14RWA7QjRDCnpf
ZmB9cHVnQnlYSHg5PlJ6R096bipVQkIzSVZHaER3Mnt7c2F7SDZ9eSVhKG8pdnBVUEFCVWNReipz
Kz4kenw1Zgp6VDVDUSkpb01NXkIjamw1RFlVdnJsUmA8SVkjT1VMbnlveSo8JTJkNlZJZTd4eHhK
OGIwRipidCgpX0Rpb3ZrJisKemltbnxudEZ4MX4pbH16VUxYPnFUKU5+Jno+Kzg7SzZzO0Q+JSlK
TEopKU5xZjEzQypJPm4xViolVSFaNSNjcmNZCnpUJGYyPXRybV5vS1M4N1lkRmg0cXA9XkokYkk8
JEckTWVLQD5gZG5tRVU8NUlONlZ3eHshTVM4dF9+P3ghQkV2QAp6allSYE1MfVNrNkZ2RjY7NUBi
TVNhV09SZ3soN3txQDMrSEp5fkR6KjdXa2BLVDQ2ZmdOX3k0UTNxJExhdDgodHYKekhONjZLIVJ1
VzgkenBFdjx9RlUxc3AhI18jP1BlcE5+PkImb2lfaHxSU0tRZUZSUWIkdlgjbmd1MFhVantmVCZJ
Cno9NX14TzR3emtnLWZ3V1VWUHo7KUR1JU5eRTBsU2AjUURWWkFNKnFrWjFvYXlURldvZ18rY2x7
VX1pSykyRUc/IQp6cCFuV25IVU9xZllSQ2lMa3BqcntXLVl1Z2NgMW0mV1JAPUBOcDc9KVZ8VkxN
dGVUKUprZzJCY3lOJTVwYyhGaFAKeko+KGBnbEdUYj5uZmRFZClzP3lqQVM2Sl5xcFBvVEVXcSFu
ZGoka0piNXt4V1VTMGZhT2Z9eHx3UENKJj0rKTdgCnpFNnB3Vzg/MH0kUmozYl9QWm53YV5RbVdQ
Snx3ekB6bUQpUzxhZEdYMSU3bTlqbV5PaTNyPCh9SChta3t1eDYzYwp6Wjs2WHpRa2tmfUkhVUM0
YklyPj1PRihwaEF+SWt1dkAwKUhBMl9IQWptQEU1QTZXPSMmJks9SDtmd245PUtuRykKej1nIytw
SmpNbS1YfUxNeEBHeylrRGlwMVpqa0FxdSpFI0F5MGt1N3Y0dnt7TytQK3BKSHRAYV9MWUh+bWFl
PWQxCnpGMGxzYlVjU0w3ZmVYYztwa1VoVUA0NSN0bUd4fmxVWHktWEIyN1d3NXpHSX1lIWExay1f
bHcwP0ZgJHVfWVlAawp6ZiUqREljY0NkbSRnZV5TajhEPUJxSEFPPSpVS3lGV0E2S3Erdn5gUWEr
LW5eXmkhKyo7Rj4pLSlsYCY7Z2o5bTcKeitRJWp3WGdUR3gyWmI8Z3QmNUs+d1coPiMxbnBfTXYk
dldwd35qfUUjKklULTtSO3A5XlhtI3smLXdTZCV4QCF2CnpYUGh8XlRDSW1WenpGPWczLWtqfTB+
TnU1PWNRWmhLbG9mRlVGdFBJa1BeODVDJEN2d045JkAjdTs5fWl5Z1JRZgp6SGFheDxmVENpfVZH
V0AkeFEraVNgQzMwaW4wK2NPSjFzdWdJNX5RPUJ0K3ZOPyhuO0I4ajdMK1pxbUBMIUEpJVIKeis7
XzduM0oqZHIrd35VRHRSaVVvQGYhcXZrKWFZJEVrN34+KXcxS1cwUDQ0cUNyQ2dPdkVTUnAqaDF+
RzQrM088CnpKS3Ywc01rOWI+QDxoT0diVkVaLU1aO1htKjRvVWM8fn5jS14kMVZMd0U3NV8+TzRJ
eUs7MiZXeStjX20qdFdyWgp6OUBsJDZRbTx4VHMrMUpqKSFqQUsqaUNIQ1VlKERfUShJQkNrOU9W
PGJodyFqfDJCO0ZBUFA0QmlOMj1uUzZaV3sKemE+bnRzYkU/VXtYZUVXVWRKTiE/d2dBQmw8cUky
Jm9wOTgwZlgtek40UTE+I2R4ST1DQEYzX0B2UlBgQkEpa01XCnpIPkI8WHVLMEZQVnpkTl9WdWRO
WjQ7OXV7eVFtKV9ARSs4PzdteFhSeCEyIylEVWhgbyZLc1opbSQyM3tIP181dgp6JkBvayRiSlc8
Q1ooan4/Um10RSo5djxtQVU7WnJKWTlecDB1Wkl1YWBgUGY+ZEpeRDsmPWBMQUB3RGd8JWN8YkgK
emV9Y0lrT1ZUR3tFcFI1KkxzPiVNaVc0dVk0ZSkzcHNOZTl5PkwybEdmVmNUc0NCJnE+Y2VxdmMr
UCt5TGVIKnskCnpIb2ElOHM4eWJNUDRKdkAtdFRYbnpsV0cqRyQpcnhEK2VTVzElR1hfND97S1lW
Ukk2KjxmRDFMY0Zrejc3bWY7eAp6bHp9cEZCTDxWamdaaiU5TEwyWCNTcSFtVVI3I1hraylxbnZv
JjxEJFJiUHtHe3RKQXIlci1XKih1YU4ob2pkdU0KeiMhfn58eilIaFpPX2RsemdZTkomNSg2Vms3
bXtQdW1SUVAqblJmNGsrfFIldHB3cl5pN2hgMkpXJmZnbnpPVmVACnp1VVgkVWhmZWtDMiV3WmNQ
Mjtzdys5LXZ1KlgwVyV3XnQ5ZE9ZUT18azx4JWI5QHl+YHBaS18/bjhGb30xNFNBPwp6Zz5FK0JT
WTRfRStfT1Itckh0VS0lRHl6Y3B3Wj16V15UUGZRNlV0SSpiZUBae2Q9YDxfPjk3eFpOWW5hbGMq
cXgKekYrX0A5X24rRlNMJFRAMGNEVl8/SFdgeWZHKnU0ayhhSGl+JG90RmtzNnowSnMmc1oqbERl
MH5WOU1vbkk+VlhGCnp0Z05IWChZU2JDKEtzfmxZYTt1Rlo4RlV8U3hTM2AxI14zZUVMdUBwUDY/
Z3haKEMqUCZecktHRTBxMEp7UFJoZQp6Ry1sUUBBO2ZSPj1obE12SWhBZiRNV2J9TlIlTGRCUHZn
e3x0Q1EzPWh7ZlAtbkBURk88M3tEcHNmQW1pdE5RbT0KeiY8TSpuUld+WWo+RWE4UG1hd34mVUJR
PEhwN3xVVSN+WTh4MjdvN15HMCY+cXplZTtuVW8zazI9aXlJfUBBcmJWCnpzMjhnUmhCY198eSs9
RVphaXtmSD5iLXpRTFUzfGwpYVJDQD07TFZLLT82ZzRXNSooTGdLdkZoKUlCP1VQYl9QIwp6RChW
bVJBbihtVFg+em11Ul9TTXhQT2QxKExxNmhSSF9JV3k4dj56SVBgcmJuK0FwUEZwRXlyWm1yJlRR
e0slX04Kej9LNTdnI3whfFhpUilTMyN4d1J9QWBteiNXezkzPHdSdGs+LW8kKlB1SEAxK3FNV2sk
PVk9V28oVytiXj90I1FHCnpmNk5gYmklcUxmTiF7Qno7dSh5KEFtVl9wZj08WXM2YGkoSmRTR2Mj
P0ghX2JGYn1uNXBXPjl5KlFgZDxTSXZtcwp6fElMKCY1OWhsbndadE82WF48TkhzVll1V3xLVm9B
V3pPKC1sQHtlcCRRcVU3O2RJMml4cE53ITh1TnwpeUNgMSEKeklabCYtQ2Y5JGQ/ME9LfSNaSERo
ME9Ha3N5TUNBYik0TnwxQzcqaXhNaFBwMyhNeXpXRSNqbTBjK2JqYEQlMEI7CnpfdFJIIzxCVnJf
KFdJcGhJPTxOOzhwPF9JMFI0UH5ed14helplaHxIWUR4fWJyIXBhWXhsM191Tik5VGdeMEF9QAp6
aU9GR2wjJXBIPHI5eH42bHIwYGRrP0FeVEhDTk49OW1+c3FGd2B8OSl+fGxuMXJhak8ySXpWNnAo
aitHeURMMVoKekBjPkRsVztTKks7K2VePzdFMHVBZn19fHp2RH5YPj5mOThJYzEjVWw2VkAtWFN2
UzJ9WnVeUUlBZD0hKTwmbWZOCnpvVEdQM3FaYGpCaV9CZ3xuSXhXRnk7N0FnVHx+XyNgbUo+QmJz
Kn5UeDErKH1oQncjVWBCeGR3JklYJTcoPz5lQwp6TXh0N2FBIT5mSj9yM2RHRnwqc3Q5JVhTPUZW
b1d5OUFXMCptP3RgaSlHbWFyN2plV0BuI2olOGh7YiNpQT1RSiMKekBIYVY/YyY5JjkmQGBnLThD
TUQ4ZiMkaG0wTEwqUGp8YzEySlJqKHhOMWx1bU5eP1ArYjE1SD4rV3MkIXNYSypeCnpeYHVsbGdD
YVVfYjlObmk2UHFkR0lReGQxXlF9LVJsWXB2ISV5bilLaSFYWHlRJExWdGhndEI1cDUpbjw+eyF4
MAp6PGYzVTEjZ2dVNzlDfGdhYiVmazM0WDt3dFpZZTVTNEtRKjtFVUduSVFaM2xxTHdYd0YqYk5u
ZjU9SjFtdjV9Ym0KemBPQT5nQCRqQCZDSUIzM1BxYVhiMXJFMERNdk1YMHF9XjxkLUJDQGxqUmwp
LW96THh+bGlgKGk2LWBuPj5ZQDFWCnpgPDhZZzhUQj9gR3s4e3VAWlc7Y09xUkghVHBVUTw+Rz17
flE/JH5rbmcodXFkITA+YWQlQj9kVWFBKklRWFNGKgp6aTZhO1A4R0JTMm16YEsqTUZ4T0Q9OFNZ
VzB+akNaYWs0NmV5bl4lajFwbitQRDxPc1UldnpYWmVpaXBrVjh0UksKekBYPEdIP0EhdjR7STNg
OzNgYHxgUTlaNSZjKmEmWSE+cV40KUtTQjE4JVNBJntaZSMyZ3Jpdn5OUmNsfDRMUjliCnphQ0pP
ZnN9SmlZdiVWe2ZyXmsjY3R5b0Yke0tCQWE0LU1UWUY8JXBfQyZuV2JSO0xxRnIlM1NaPEJrNm83
aDBAWQp6V0dAXnJgcEtGX0UwYS1nJFBsTV81UWdKSD1hfD0tTTU5cXVge0F8VXZaQThYLWlEMGNu
KFM0fD0oayF0K1lQUS0KeiptRlNhOWxCfU84eDt3STtlRDJpQ2N1cyU1VWMya05HIWZQcnh4K144
ZiF6QloyP3FLd01KKjNVfUtNI0E+KlVKCnpXLTF4JF8jdUIhWElGZDFLSUF3V3dxeSR0JGEkcjhk
WD1eKHhIKj0hcmNtV2Ipa198WGBPRHByOSFmeX5NLUdzUQp6eT8/JWhhfjJeJklUe0EhWF9aezRV
Qk1xb0JURXk7V2UqZGd6REo7Vm4tTzJUYihrVmB2S0o4VzAoNmFYPnt1fSUKeiojcTFfP3xBTHo4
dG9vTjUoRHBsYTYma2J1NHxlOWRfb2lRJkZ6eUFPYDI4VjA5RyozXnJvVyZZOEdRUFBrPXJXCno/
Z3FUMCZJVUpWOShqeDRhcmU5PUJnSlg+bm5rO35afEY3ZyotSiNIQz99YndLWmJ7dz0jKmBIVChW
NlNiaXsxIwp6QmdsMjs3MTI+ZEBtO1ZhMG5MUi1xeGFIPzBSXkFLaGd6PllAWURXRSM4PTBhUEEz
NCNxV1ZOIyNBbj54M08lUD4Kemx0a3ZmQWVsYyQjU2pqO18tdUdkRHw2Kit1IWE3endSa3d9VUNv
WSlgKjBHfmRwQi07Q158ZCRPRE8pb0AkQXoyCnp5XnYlMjZzJDR0RyRAVU9pOGp+T1BBfSo/NHg9
TmMqZHRrXz5+VSgmS3VRMjsqXyMydiRhOzRnWEszSTxvbEMqZwp6YzBIY14/dEpAMmxEbm1nckE4
I2E/PXYjYyp6clJLMHVjQ0RBTn1ifjFWKU9vUWRSP2lSQXRCTk9+K1hpNWQlZGcKenAoJGMwSlJp
UnUmQDZJQFdaNz0jVkVnaldzfl9EOG0pNU1fVT1pV2c+MDR4ZW5+RUliblk5NURxcygraj9HXmpE
CnpVSiNHZ3l2elNMX0xzPXxDSFhVQXJ8cTlzKzMwezVhUzNnMCNeJGNPQD8/MDcrdz1aYkleU1ky
NlleczZlI2N8VAp6Z1hqUD5nYzNzP3RoPDE5X047VWcxNzxvRktQej5eWWdNRDxFN307PDV3UjxQ
cys0cGpDQWlQRGZnXmZ5QG9fZTAKekcxYztLJXlOWHQ/bnMhM3dLJU5ARS12byUqTEN6PEtzbm5Q
RHQoXn0kaldBTV97bj1HbHBQNzRNPW4tdXMlTmB0CnoxMlRfRyg/NjkkVVhxaiQ9VW8kRTtQVWVR
NWhRSkxXWnJaOzM+MiVqSy1ISGtCZ3xfN0NFcFU+MG1gTFRtRmk+NAp6WE5DMmZfQWRTIXE7NHl2
dUNMaXo7TU16NVJfclpCQT1WQUpuN0hSZnVVYFdnQH4oYEkyU0BXc1UwLW5TaXt6NVIKemBaZGVr
PlNwNGhTQyspbSVPTitaSUxPSElMRGJCX3lmM0JxdGs2TVVkaypueEd2bGk7JiFXR0k9fnQ4MnIp
LWl8CnomUiRoR0VGZClKTHtMIUkkNDtNTXgpJFhkM35Ddn05cztxayojJlB4aityTGNzWjdBMjBY
NXZPSCRNJSs/RTdTdAp6dng9YFBLJW5eR2k4OEcyO1NaPitWSS1hOXlySiVlLUh0OCheTkkmRnJl
aD1DSTZVRWE8dU9WMllNQ1dkQCtDP2gKejRwJnN5OEdmKGI3T2VpXk8wNmVXQDBsKkM+b3ZSZEVO
TFM8MjFFblAmbX5wNkJkMyRZczQtXityRzBWU0B5V1NNCnpVYmh0fkMkdyhEO0dIMm9VcFVeXjBN
YSpLdE9qYn5ITGBzZ1Z1TlN0YWZVRCghI01taWUydFJGYTRyYzxmTDdecQp6UyoqbFVBcXo0MTlU
KmBBOFZBcCNBcUlVN0coN2hlPWx1dkt3JHY0ISZWRX5CYC1gPyRwSnF8MkpOYkd3ZH1UeFoKejlI
aT5oXkhPfGVXVGJmTEB8dWRAP1J0Mzc7SElIITtrKU09P3c1S3Z6ezNmPV5vNzFJUXApMGRjMURp
cV8+Zn57CnpQX3hjN2kqWX57eVhAeiVaSXlTWFRxbTFJaGI/RTdTTDlmOzJ+PXgpdUxJaXBoKCsw
dVN0O0tYNEFgbW9YQSVkbQp6Y0dhPDhwNTM0YDBvMmomZjI5V2dPMUtqRENmNG9RLSVDcmlwI2Zt
UjhPSG4qK2ZqPC1hTmVBUDU3eF5DeDZoNSYKelA7K0xaMCQ/SjMoR2lHN0lOOCZnWVMqMHZWSnJk
fkF0d1BeRmNWITVOaypuRyZkOEpPTFVaelYzQEwra1VPKkZZCnpuRmx4JT5pYW9iQ0t1NXNOQzQw
Ql5FSGlacWIxWjdJYi1KJT0rZlcmc3BfcWBkeEh5VVcyYkBRcVAqPH5hIXlFQwp6YmRoM1hPMlcw
UmlLPn1RUmlSRVhVeiFAMUdhUnQzRn49WDNzO1hxNWBQQHB6KHVuU2I0VDtINCs1dmQtN1VHUDsK
eiF1Vm0kQlNlPVZvNzJTMlVrYmxQMnEyPzJuN2MhQUI4b1F0YlRjTUxrcEV5bEpobVF8QkJlNWVq
SV9hZTtkSiNsCnoyay1uenR3RGpIX3BhanRWJDAqaFJqK0BeJm1HWClIOCoobUIoIzRNM2UqRW9t
RndLaXV9cWVUbEtAeWt8SkRIMQp6V15JSH5tWWxQUWBwTEZNaiZmRiNUOHYrNFlPMHFmP0J7JlZS
OW89eCp2Pyk+KypudlNoRSF7SWgtSSpidW0rUUYKenVwIWd1VSpMKntxRDVUQXMtQURASzxhQFJu
R3g+TEMqfkdzPSpvbkM3bCtVUXBsO1VqS3I3ZzYqdU5EVlkmenNFCnoyTm45Wjs5U0BvUUw1NU9D
RTkwRDcwaFRvRjlEbE1AQ2VGezEpcl4zfDJBTlVzJFdxRENJJkZoQy1mSFoyND4lawp6O0BTK1Zz
b2lgbkVqZ0NWdWV7eU00OWJKUWdyc2NPS195aXN0bGJQPF5tVFJSTyFjMj95fldIdEN4a2Y3M21Q
NFcKemkkTDY2ZXd9Q0NrUGVlNF5YJX0oNmRMc2IpQnojTnZYUWc+RzJYdiFteyRzVFZ7LXxANEJP
OTxLanI0QityVU9fCnoyQiEpfSNhdzVFeis/fko+NlRZPFBEQ3UwN3VkUCk9Kno5TCN4bzkrMDx0
ZWombmBjdlVqMUM8YUZ4UEs0ZGtgZQp6dkhpQUhqdXA5PVdUOXA3JVVYK3o+fkJVdFI/cWFARCtK
dn0tX1l7WXt+JnBwP1poRiVlaTZKMTlSdT53R0leMXQKem5WSHJBdXgtdVZ6NkQkVF9Eb0ZHMG8x
VzIkVEg5UEQ8YmNTb1phOyY2MnslXjg/QFklP0JeLXRleF4wcnt3Z1h1Cno9V2NES20tPXBQXjtg
X0UrbklRb1MhdH02T1pAX2dSc2JoTT1BIXJWXmRoXzl4dmZzQ29BN2JFKT9pdyo8O2Irdgp6bV5u
Yz1SdF9JaXckPCkqZ3RBUX5XSHdre3Q5OD9ZdH14O3stNFpiMkNaXj8jbHxpfHNXelEqQFZjWXtk
Z0x4b3AKeigyVUVlYXBmeStwM0d7e0ZuenxheHhhLTlfaytoNl9OXmRDR09OU2EyK0xlKl5xUypN
N3p9e1lAMl97fWR0YmsjCnpSdjQhJElVbkIkX30hI2gpcmFBdVRXRlA7Mz1tfkF3RmxFfVYtXnpz
JnxkIyNrQj4re2krSzRkUj1vemdsI19ldwp6akVtQGZFX2c2by1xVnxpYyN6c28xZVI9fCRFeTl3
S3VCPnNYVlF3e1ZiN343JDVPfV9pe1JuVlVOcUZ1MWZ3eGoKemFYVz5VNzk3dHs+R1R7d0tPZ2l9
KWxzYGtwREBIdkY4enljVmhrfVZVRz9Ed1pgMiZLNj5mUnVeRHFkRHpUc3JvCnpCVExNUTB5LUlO
WHtFODNZYGVsOXRLVG1zdiVDcWJYMX19TXBzbGB4V3FmbHlOPXUoK2RXKkErQG47S2ZkZ1RnPQp6
a3t3bnpOZVNkU2pQNFIzJGEjYktMY29aO3s1RyYhYFg4aT88cF89PXZBWE4ycFg0eG9oa09RR1JW
Y1c3YFhSaGkKenVkTHNAPjh5KE5fPDBZPTYzKngtRSFofFZmY3Q8MT5XbUgwVzdEKDdFKFZuVGFK
a1EwZChDRyV2c1FvNWYjYjdACnpGT002Y3ohOWxEO0w4VVlKSCQqWGFsakRjcCROaXclSlVzRjRN
LTA0MUslc2o2dXpsYG1zbEF6KTM7LV5rYCo+Xwp6TWtARik+ODxlVVo3b0NgRj1ldDY7cD5USFl3
PzxQJihwN0hIUGBqMUgoZTt6TTBYQCExQyhBUytYUk9pbUNRdFcKel40fGMtLUdLVDJ1UTZTWiFU
PmhlQUxqNkxvfistI18xcmZIYjt8e3pUKUVzb0NZeihMOCEhXiMwVlF3WmFxay18CnpFNnpkWHQ9
cDJYLTNIZ3ZxdXkrdlJNeCtRNnBnTHxuPSpYVlFiZEhuJXNgU0tjeiNIPEExZV9hN0p+I19PVW88
Jgp6WSoxbH00WW9AVkA0YWpHTTZEYCk5XjYxIUBiSmBXY2hjNl9odEJxaTRQYVVBVkY3UEcmTzsy
MTx1cnk7QjBQeWUKek5nPEsrQHB+VGdNbjYrYjszP2pwU1FVbktCRjAhP3h8WVl8T1hFND5uRm9n
JmlXMkc+JXxibU5iZFZqRHpLQEtQCno2Kn0rTTAzZT1OcT9BdTZFKWAxSHQjM1lOSXRiTmpIN2RC
OFZDZDVWNjEkeWxXS0pjb3VBZk5ubT9ZRTtmd3lvKQp6bDtydCphTjxAVGFyKEBHUlVpYCFwbEpT
VDhEZSZQUW4xPGFaMkF5KjJ2eitVfDh7fWJEKmY7UlRMbGUpVUV1aWUKemNzbngpJk01PU91RCVj
bjl1fklkLUpqJSpIcFF8ck93Z3E1SiRLbTEkbUx5fHZtUUd8VktqKjA8bUZfNF9tKylnCnpRSU04
QF5ZSDd+Wj9gP2pjYVVQNncjZiNpK1grVm8jK2dSfWMwSHhBLXxmbGV3X2JgNEU5O21GMnEleE1E
bW4mPwp6RT8qdXhJTVF6U0dAOVFUMGJKMko0Mn12JkphSlZQNUBmWTx4fXc7VDtGaDNkR2h+JklV
RztIRC1tPEN3MyhmSGEKemFOZm9raGI9cGJ1NXBlZE9ORmpvJTN8MUZHZGFrO3VAPVlAXzN0QCsm
Tj99YCY7V21rYDNKfmVqYTdSbEghdTZ+CnphN3I1PVY4RG5FVjxGTDA2YSEhaz9wQWZnNlgoS3N6
KyRuKUQzKGtfYUAxNDtFUEt1VzY0YDt7Q3stPG0zO0t8Twp6N1A/KmpIfWQzems+fGxpczdnODtL
Pmk/aGxNbkp6dz80TCZtV2ElJFhkclg+TkRJeEAkVHw+eChhSCtTKGMhUjIKell+MFcxQ3dTUHhw
Q1lDSl9hU0FNO2Vse3B7NFpXQ21hemcpSmtxaTJxPGMjZ3xLfkpiJGdjSlEjdl9NUVJjalAxCnps
KFR9VGUzZC0xdDxseDkwQG0qa1F1OFAleSgxVih6MzwqJSZRN3JDN1JwMTFNczdrLTd8Q1ViYTEj
VC1ZN0lEdQp6YE1AI0ZUXzktQz8pc1NDLXhFa0IrYCFseipwQDh8UURQO2dNOXJaOEooZENYLTdh
e2RkTSV+ayhDfF40YFpNPWYKejI5S1I/d3leZ1BZI3BwOUxQYDxlVThxPEgyUn5nWUh9OSgqSE1M
SkdjLXheMGdLcV47NiE2M2NTYFVhaSRKLWRVCnplWFNLcWsoMCtaeE1DQlhXdVM/VnE+RDQoKHh3
eE9WWUZXZ3opdGwtNDJqTF5YKDdhfUpVclhvT2Ukbzw9IUhxMwp6N141Kk9IZWtPT2Q2SzErd3N2
bl5YRiYteFFhSjQ5THdAQGZwNztCTzsmN19WSEAwZ1Jjb2srMll2ZlViWDZ4X0UKek0hOE8raH1D
UEphejxEKzRUb1JxSlBlbkpJWTAtcV99Nk4mQ2crUVVaKF4jWnpuV2EhNChQZVY0NFZEIV96e2BH
Cnp5Vz0kRjhpclo/dUdTeFZ0Pl9mOU5RfjdvcShJK2B7bElvSXB0fXN4TF54ZnN7NTFTeVdoNV9e
SnwweHBDV2I0Ywp6Wm4lSkQ3R05mNDtndVU3WCtRaVlYJm4kbVA0IzI0VUxUaThZTUBjcj9haypp
TGlEfkFfT2pkPCRxIVNfU3A/PEYKemVEPHxrTmw1PEp1KllBRyFAVHhOQnY3QEhoX2s3VC1yKVhz
a0FmcncpN0Z7d09YS2kzJCVIKDJqQURTQTI5eHJDCnpObHtHdUJiYDlQe0smQn1mb31EaFdBK0B9
bnV6PTg2UUktfkozcWMydk1zRUNzMytCS3dfJlVKOSVvWk1mdHR5Wgp6ISMocGlAIWZHfUsxbDVq
e2RIYzlfcyFMPXNLOyl7YGQlfk5temlvU3p7MTY5KFRAO0pSVVhYNitUeXR0bHRqTyoKekV8IWc8
eW5iUSFqKSlFUXFuOX1JSG1Cb3EyTnBTUlYzWiZEYGEmVT93JDN7eT9AOFV3MkdnYCEyXjdESntn
O1JVCnpKOWorS2hMUmJiUU5wP1kkKWQrdj9TSnpxOzNFQituPC0qRW5vO2JnalRHPWJwe1k2VWoo
K0woPTFoWldPZWpBYQp6QT8mQDxRNGF7cW0laVJDQDAmMjljTHNHNTw5O05yPD4pUzZfZjNFKlhu
Y3hTMV58Qk5meHNwdEg0X2xWaHhRRHoKemJJc1FCMWZgSGdRR3NUUiFFbnR3KllqNGVXNlcmWWNf
fkdVaCQlTz1sK3FWIVItYTlabWNuKmtNaEtsZXsmcmtoCnpYYVNGd29fSyNYYFM7V3xNN0w7VGAo
TlRhXzE3a2VDUzd6VSFGUTUkTUErMFdobnBrbmJNNlBDYj49N01TeTl5QAp6WDRlVkh0WEEoMm88
JmxvMHJAeWwrej9zQ1JAcXFVYD92Mm1PYjE0ISpnN0tLWSFfRFJaQ2xWOz1DIzdkJExNb1AKempt
ZmA8UT5ZfUhBK2VRTUskVTdscE9eNyg1T3dGMkd0UE1oIWMqNjhQPiVXSDklVH08S3MoZT9sLThU
eVBZU2RICnpfKnctP2MpJH1eQDtpb1Y1eXhTRit+VmxaRHAydm9Ae1RxJlpGdCNjZVV+QD05M0hB
S1JjNGJAMztZPWFTeWs1Xgp6KVZOU29PZ0RnKWgwRn1qSWk8Oys+YG1vbCpIdGV4d2Z1Oz5GOFI4
b0B5U0c+RTU9LVZEY1BPUDBvMDdEdShaeVQKenJ6KFJCWnVRbUVsb0p4OSRtKDc0TVgkUFQxZHlC
WTN7TkBuTGdTTilyYVF4fnBjPTQxY3g5SmVPTzxpa1pyKHFgCnpSX0huTXlZUihKRk44PH5pOGhe
bSZUZl91e09IUDcoJTl9KFRNcXNFUkdVYWVnJGRjOF5vJm5GTnFAUyoyPU19UAp6JGxOZGdkPnM9
IXJ4dDIqbj9tfDMwdShFISNvYVk1QGZxWjteLTJPbUZzamxRPCFzPl9oSmRsIU8tYFNXe2I+PEcK
ejw3KFZOaUs5flQlaX1gQDB+VnZhZml9dERuc3JPI0hfUnsrekpPMEJxUWUyJHNPbnVSaVglZlZK
bF57KDNXPUc+Cno9Sk5+VkU1YHFoU301YWlLPipCNyFCZGhvKXtBYDsjS30oZkU5MmU8Rml1bX1k
KT0payVQTDxrZGw4dzBobVRHQwp6RHFkez8hbDMlYnBQcmNFc0F4YT5INmNZdXheLUNGPFMzQ3pq
M3MoWXM1dV59Y152PUZ4c3BveVApZmNpdW56ZUsKel83XkV2NnhQJGNpMFdQQk87YTNQVSkyS3kq
dkM8enVmTGhOSUdFcVByNUQoYnskTW4kM0xWXj1oWnt8R1NMI2h3CnowUE5MQjVOMT57Rnh6YFN4
O241VmhgY1ojSmBKT1lvWFRJKmFge3s/VkBhY2JjZTVzVlhjTElZZzcxQF9qYmMlIwp6Zy1hOWpp
emhaQCVhP09VRVdsNHVka3AlO3k4T1VhTC1uMlJaZFZEOUFOVHZwZTs/TylaRHJ0YGFHWCM0YkZz
QkQKenJaUkp9QC1OZjE1JkdldSU8OStkZFgzaUkkaCR9VD5LQEpXN29fVVhvQFd+LSVDVHJQWlM5
T2Q5c0FhXkJAdEBmCnpiWHs9RCQ3ODZBKj1yUHZycGZYZ3hNRWZzMzxOVFJxcjMlVXpCPSVFV0lw
KEMpRVl4aSVpdDBYJnMoJU1kQ0szRQp6eTtRdGtZXzBpSVhBS0BFKnFlUX52OEc9P2lpaFZOcEN+
aXpPWWtmUzROPXckPlN4cXo4fjxwV1BwNnA9N0gkWnIKej1CblhDWkVGQ1ZsI1o4ZEhGXyhwQ185
N3tycyhyM1poSTIyQCp7LT1mfS1PVS1WdT0jcTR2OyZjeF48aTAxQk5jCnpRP0c2KiNfPk9RK3Ep
KEtvX1A3P1A5IUsxdTNLLWwqeTFVS3VPRT1lbjt9MDc9ZXhicnkycEdKZSUqPkdjYkpHSwp6MGhJ
PU9kUiVFdSlyPDRKcl5+QXNJTl5ZS2Y4LUVRZ3M/QnZLTWR6U1c7c2FZdEZmdSVGMldTfXtFIXZ6
ZHxAYjwKelgrYz9HIS19JH5GPGMxNDkqLSZ9UjRweyo7WURANzVYQyM0ek8+NF5DdUcwaUVubHhe
KjwwTGFBWiQ7SDFuYHBPCnpHPSRtbHY9bE1TeV8oSl8zJDYlKXhSYWZNSyFYSmp6JGUxKGVaPH1L
N2ljZ2kjPUNHZWB0dDN0cU4pfHg/R0QlTAp6bH53XkN7K1AocEZUWEtlcng8dyVLTDBFNEdVQ1po
NlNaZC08JHhaI2FEclJkbyUmcFYwU0w7MDQkaVBIMXEte3MKeiFvcHZFKjtzVTM3d3UjN1FOaTVh
I1llJX5McW5mP3ZLUy10MilgcjJrY0o9NSRoV3VYQDV1MT9OajJQbGp7NkliCnpQNHsxUE96O05q
eCRKNU9EQHQrT0NFcURHYkhpKjs8NXY/fFQ1P208KVQ0ajBpO1Ffc2F5QSFYZipXO3JQemZ2SQp6
OXJkfj5GV35me2pzOz1qUTNgSSUhLWhzeT1VMktPK0ZLNi1zOy1zMzIrNnlfWXRqPklBJGtlQHla
IWNER3AxYU4KelRnVzQqKDdXPyNsVVR0Z1dWWSYwdWAkOXE7ekRwc19+PiZOaU1GNGdFd1hPNlVL
bm41Y1diPHdLRGJ9SD1AQ1VQCnpnNk4oKzlvPk5ZWjNzVkNeaCh2PHp1Q1hyJDUqP0JlemJ7TVlj
I3Y9QUxOVDdHUXl5U3BrM2ZraHhCTSoqaDtYZAp6dzQtWV45M1FVNktEWWshajYybHBfeFNDbW5+
azB+PnB7VHFAYntubkg1SyFLNUExSyM1TUNkNzY8TS1zLTQ3RjUKemx7MHAhb1RoWktKNlQ0UnpJ
Wlg/LVZodihodDIqaEtSRyE0NypUdV5FUzB+dVJXZ3khRHRNbjltUlN8fFdzQzBECnpKSjx4YllO
JiNOcVBGcFM3PklwOTZJXlZ6X001USlvYzs4MyNNN0xDIygmZnp6aXMhWlZ5VkJAQHBBTDxFaHJo
cAp6Pz1ZakAzTH5nblZYK2F+bj1SbzM1UkJub0okTXJzbVJGTEJKdWRvalI0VmwkPk13M3ZDQStt
KUwxNXpVYEcrK2gKenV4RD85b2l7OyZ7NSRpMkVfUndMSU5KbDdPYVBIaTUleFR2NW9pdzVzWTFY
Xmh7VGlnKy1DR2koflduJnJMM2BmCnpOPVM3Kkp3RVM0U2w+PkE3WF83ckQpaVZDYipfQSEmdWZZ
YkhEZD85bH5XS0NTY1N5cWtPI1Z8T2NBSUMlV25mIwp6NXJDbUAxSWs1WipQV3lZOzwpK2I0VTNy
UjZ4NjRodTRVU0hIPnZJXzNUK04wOzVRdmxje2kqUHZya3hlXnFMalEKendoXzMhPDwkYEZJSFct
bUdBYHZNTzsjSytJV15IZ01WVWpCI2w/RnFkd1Y0S3tDdj42cX1yWDtHaD5wMXtBSFcrCnplZn5G
Tkd9JnJ+QklzdE9gV3dDNVh6WCFpT1llUFRmfXRHekgwe2JfeWNsfmw8VTE7dHVZVlg9RC13cT9A
azNnTgp6Yy1wRmJWJSRhQExyYEJsZFkqJlFWa1JnPW99aGt3TUVMaGdPNWRxYHdnYyh3NHMwUEdq
MTxjMTJ1M2Y2NSRLYiUKelNJcTtKQEtMK0dAQGUrO0c9JDtgPEl7RFJHeV5IMVdjKzVmcmx+fSMh
RUx9ZV5CSWpkVWFqaHdON2EyMW9yKS1wCnpgR2NBZlZ+XktvY2Y0TTU1KiFENDRDX3c/amFUciVE
alNJUCkmN2RTJEo+UFJuNzlNI15ia2djJntTUEVEMyE7Rgp6dVpMcFg7ZVB6TjwoJCRWND9AWSMj
ST9wazFNUFVteEZZZkV4bkhAbG9NeFNNUngjTSk2X0ctcHtid2U1WnJgaWwKenB6djtWdittNDJp
TmkzfChPUVR6UHw7RzdFTlc1amREKXxTKUR4Y0A/fVJFJiFuNkRqV1YqNHhXdXhGJWdub1htCnpH
ez1uWmxiPTJsVTtqeCkjLT5GNzIxZHZLV3QqWnpVO19aXiZuYTVjUUpndnBhSmF0M3QoJGdBZWI2
cH5iYEJMbAp6dGNheXNLYVBlbFJ8e0U8X0ZHQSl6RkNEKHpERyp0NiFIc01kMGlAfS1HV31DMDts
TzJIWEF3Y3kqWnN9NEx4KiMKekx+NntST14zME94OUF3SGt5OGBXWEBBTVp6ZlVWcXReREBFNSRh
KVV7b2RKSnspNHp4N2defFlnXkN8YFYzcFd1CnpeIWd5fHEldzc3MnJVJFRkTmh3QjR8bG1FXzF5
PUA3d155eWBPMnJtSG5SayRoRFF+RG1iU0tzYmk8T0s3e2FjZwp6KG9Re0ZGTnNFdXpNe1N8V15E
MWZvekY2dS0/TyEpV0hSbj56UX5tWD5wZ3ZYP2p2PXZIekQ9TzI7fjhOVloqO3oKejBwO05gUmM+
UmMmTUlxXmhwfVBaMiNxV15DNWBMSDVXUVI/Y0t1SGk+PzxoVUdfaX4kbzJ9KCFhbWoxeGRvU2k9
CnpOX3Y2TUIjeGV1S1MyekJSVGRhOFAtVHtoVVI3SW1mTEdDMCFoJXw4M3hyeH5XbENyWWdpTlFG
RzBoK0RnSzJjJQp6TCNUNkRhSjlFN1ZxJXFoT00kQnNBI15PY21PQWwpdkZqVUc9d0Y9aSpJZTsk
S3hsPlVafEsxSzU9QUBldEJ1VCYKekZWZFB8TD5QU0dPYV49OEZLK1QkLUI7O2doKFlkZTdjaUNh
NG84QFlfbldLcSorfHglb2YzRXpfcSVXT2pHViVaCnolJiNFQVR5ejRRWn4zYDk3cDZwfjdaPTlu
PTZgSVo8dEJmPTh8KF47XzM9OClJZzw1MC1+STQ7MDc1NFhCc01LOAp6WSoyPWVlWm50Tz1+RVdI
VjtMdW8jZSN2cCk1MFZXa3xLJGVkXnIjK0clR2NDXj9NI097eVZiRWJaJWtUPj8lWVkKenNndkw+
SDU3TWleNTRKdkowWTY/Q25yJjReaCViRkxJKVcwYGleei0lVFpwP2d6WClXRSZyQlY9KGhCaVlE
Vnp5CnpSJj9QbWxMVzVCY2V1QDUmVjNlUWQ2Q05CakJwRi1SSVBFVU83aH1PVFl0cX44Y3IwbDIh
WkNAYEw3RGAtVFEyMgp6PHZNcD5mdiVwfVg/PFI1NHN+RGV5cD50aEtCZypZVlVZNn1zfHpnX0lX
fUphKXJXPSZrZSFKS1l+SEB8djxKfVQKeihhPilzZ3laPjFoanAlTmYmQlI1PTkmRChsbkduPVBu
VmZ3NG9tZWtAfTJYZW8tVyU3T09qPkctazRpd0d8UkI7Cno9ciV7T1Q0en1HWURqMG1yTjwkdXh3
ZURTenE1cyR4Skt2ckhiWkt8bG1pJnpaelR4YElPLXI0VXR+dzsxd2gtRwp6VUYtOU1TPE41Uj9G
UXxOJCYme1pLSTBPVmU0dWp7YX5aVW96WkBhbEl1Vl8yeGRNXmM0XjAoWUIwOGk/N35+UWcKenUx
TitRNn56Jj4xMXElb0B+aGt0ZGwxamp4XlNXMiU1S3BwSypAUUY3RTZSMER1elFgbjFaPkU3anxT
eSRWYHxKCnozfV9vOytoZlV5VFBWbS1HcD9AJXdlOSQoWVhpfUUyaGY4JHlHKTM9U2t5PE91NTBt
Rmh0eD1aeiVGeXMjRHN0MQp6akMwWWUmPz0kbGtHYXRIIUc9XjxRM0BKb2V2RzdOKDJwKDlkaFQx
aEZJe2ZiM0E9d1NHO3dTfjdReG5kMjg1OzgKej5PYXFmbndqLSUmQ0dCZl8yNGplPCMrbnIyS21t
PHdgVDI4V3lLPD56SClQT2FuNX5SOHMxYz1RI2Yhflh1Nnw5CnpQX318c0F1bD9sVF9kTHYhUHoq
WW5ZJmlSNDZTKV5mKCY/Q3pYV29PKUVkVz1LeiZ9YlQ8aC1oK1c8KktTRztgVQp6QXktNSsqYmVP
SUMxVHtjJm5kIXV7Tj5+MEp1K2coP2d1ZiZGO3hnaEZfWlktWVI4ZFFpe0tNOEcjcWJVS1p1aSYK
endla3hFUzg+UkJvPVRqUUV1UWF7NF4tTl5RQyp6NjteUmloTSsreWJyWCRxMzs8Ui1pRmdeM15w
UXJHfm1GazxKCnp3Sik5R2VBdkp0QT52P1d3R09GQGRSP1VhLUE1TyFHSFklMCl+ZlJySV48PFhA
ckdybSlEeT5KJmE+RGJ6Zy0kRAp6eSpHVW5FZ29EWHlfYzlVXzBGfVk+UnBxeGBTP2Nid3B7RnUz
dV8+JG5KRk5PIzVoVn5WeGtTez5yQnVVZi1OaGkKemskZ15sZ09ZYjZJdlA1dXk0ISpFI1FVTzZh
KVM4X0BzPXVkKn5SYSg0Z29ZPllLZH14PzlfWl5OeVAtaU4tMkBNCno2eTNjMl47R2VuIzNKYDRV
K3FeZ2tBSlU1SkVWUGFPKEMzUyNFRD5JdntkfSU4bHBefmBVYH5+VUEjcEQmZDFAdgp6dExoRnlP
ZE0zQFZ+XnIhR0JoYSl2NnVpTihsPk4oZDtVczRAbmlEaGQlKExFcyZzYm5PSjNhbVFkPE0oYnZp
amMKejVnPypZTVdpOD9rXzxGbE1jTkRRdF5NUz8qd0E+QkQrUXp6Sz1rcXFMK29wOGFmZ1RyO3pl
M3trR2Vyb251NG53CnpWcXskQDxFbyVPaGN9TSQ/NEx3UUY0c2AmTVQhRTU8U31CfkdWJCpyMEFx
P0p0bk5lIzZ7bD17MHVST3U2K15TXgp6PEotM2NMaVBOX1hBQ1ZVXnQ+NlokIUQ9eCVFKUsmNnNA
O3dQODluX1lmb3piQzJ8cXg2QkVEZyU9PnRVRS1BNiMKemdCRTFCdStSJDJHS2Y4PlpHY1ozOHlo
ITleZUB2O2tkcyZEO2AycFBPdjRJckdUPEx2MlVrUWBje2tueSloTE1qCnpHdkFaNj5XQDFiUD11
clpSUHNtJkExVG9EYzxlNjIhZjljTUx+IzZBMnA+Q25QM0M1JSQ/SHFMaV9BYW09fEVUYQp6QjlQ
JSNITGEyUS1KbmtWQCFMPmgxSGpUbURmOFpSd25YU3ZoSlVwQ0YqZm5NezJRSTVLUD9sVHlAVF4o
ZUVkdVQKekI5OzhGbnw8aHVPUm0pbm8kaCRSRG9KOSU2NWxUd1F1byNMRXgrWSo8ZEV0YFAjNGIo
eGhYZDZ2RXxMdmZ4eGZuCnpKSEM9MlpEek9TK0NnT2Ukdn5EYnNReHBSWiglWmlXaGdfa1g4UVkz
T3F9OVQwMFU0MCM2I0hsanUoZTshRjh8cwp6KzF+RUtwWiVUQTd2bGZBeXUhejU8P1prbmwkWXt1
eypfQ0c4PEpjPkM2RkxQQEg0UCZWJm5qWCRVMUAjXldydEUKejZENVheMW1UMX0zeDt1NzUkbk1U
cFljPXxWNz43TntafmUhSk5VdV44cnA8QHNsPz1ueEw4TTIyfClAZSl1P0A4CnpAeUNidSlYZT9a
KUFQKzI5bEVkSU1OeDU3ODR+PDN7KDlzaktqVGBPVU1NKnVvbEk2QG5mNyF8Q3tXaVBXMUgxZQp6
aUo+UFZTUk1wUkNIWDV3O1pqVEREOT8kV3VneEBudGZuX0xKaEw4aS1feEQ0enRYZkdnRGgpR25M
SUIwRyNpdyMKekp6Q0sreHw8WHxGViQ7Pjh5bCV+TlFtPjw8cGwzKGdYYEhMU0ZPN1gjS185N3dk
PzJqJEhXQFFIfiRBfm1PV29rCnoySFhZczRUJlJITXZBWTdVY28tM3RWe1hnTFlGLXhmbWYqV29L
aiVwWEErS0QxMTs9JEojIXZYSlJ8dCtnO2hjcQp6eVFAY0xUY1pXV3tsTmJVQ31ESH1hV3ltVnVf
PzIxbVRKRDc9Yj5iN1pJbyVPZjU8NStiTGA7STNpflVgRH5kWFQKemAmYWQmNmtaLSFvfWhAe2FR
UShYVlVhejlpSygoWmZ8KD1fcFBPJC08Q3YwbjRAaWQ1Xk43e3lxe3g9d0x2R0sxCnpBdl5mJHcm
SShHbFFmPnNNXmwwYGBhMENLbWx6cWhNUVRYYnVPPnBQUjVrIVBZa1ZpPGJXaCtMT0U9XzcyczdO
LQp6cV99RlN3XkBjdCtGViQ9OHJWM3pXQyt9Tm9+bXVXUEQpQiZZKnhmVFVubkNoXjl1X3JKTm9l
UzIrI1RPX34+aUwKemRna1pXZV5zeHc4b1lgflErN1RfNlNPT1hpWiRzIXc8QCY+eF43VT91aX5F
fCEzQlhgKmZIeztxNWBSWCl5Tyt2CnokaGd7Z0BnRkMyeF5Yb3k0M1YzSDA2VGl4RDB2YGdgeSVv
c2stXmE0IzAlKTYhYmNCfVolbE1ZVnBQQyEwbW4hRAp6SU1MVH5CIT5KVUdgSSktI3MhIVczRXom
WnVWRHdQQTlESWM7fGF8WVRXalozYDNSbE1xYDwzO1crWk1LJiEtRz8Kek50fSkpYzs/Tn5UKSlX
UWBtSj5tNG9LYXs7Z0NGQ1g3UDtpZiN6ZV5YWFh3eHpUPURGVSZ2dV52aG5SbylOWjx3CnplTiVy
PGZWOHNTZDBBZk51KlhxWlg0QjdGIWxYUlYtJFJHKTtVajBNNXcwd2pHdih5Mj5ANnNXMXdZQngh
WGtKewp6O2ptPDNgUTcrO200VklLPjZ0YldzK1VQM2EqOytwPz8oOVZ5U0dPbkxiOT9yNEgoOXEr
Jn4/Tzg9P1A9S1lWKVgKeiYxRHNvdCEmREAweilrLWs2Vns9amNpfn13OGJEKE1MKFhMTkI7eCYk
VU80QC0hYlhLMkhzZ0tiSUJpbHVXb1Y9CnozOD56UCg5TlF9KGNxNF9lJndxKSg7Sio1cHwqJTZU
V05iZko9LWpCaTZ0dX4mMWp5Ykd7bGtkaG9qPjlzYjklZQp6MEV+R2xmPkVWT2V1NTh7XkhXMmlD
c25QXyNvOUNHSUs5Wj4/NVVFJDByYHUmeW5PZXhBYSpQWklWNDU3IWB7bWgKenRLSDN0M09qckhR
NExpVUhQeUlleS1ZK3hJdDNeciZZNnlsWXd7aUsrdiVSSnhlTSRvMWl7U29eWl4mMlhyQkE8Cnp3
OCExUEA2QlF1aj9kZyspKXphVnI3KE1UXjRaSmxBJT9fOXYlMFdNTD5kZng4eUY9SWJaYU9lZSRC
Nzl0QDk4QAp6M3ZSM0heaDB5O2JNQnJqSUd6MTZ1d1Z0NmxRTlBCVUxwYmRiMGRzKHE1eDZKIUIz
Oz5WWj5fND5FMil7OFopOEkKek59UEohcnE2UURrciVMYyU9aD1nVTJLPlh4Wm9HVm5wPVQrR0lY
NnBgJEd8fDElZi1IO2RUN2VFdnBMRmZfQXp6Cnoobzsrekw+VmRiVH45X0Y7WXo8VVFnKlh8NEVy
OStDcUMhP3c+a3RYIXYyJSNfakV6Mm9YITM/SGdgOCpabFMhJgp6VCh8NlgkeWtNS1hKeGNaJklz
UFdoaWdBVGVjQEElWDBHYm1UVSQqe15BZlh9ZVNlME88YStzXktUbXhAUEU1VDwKekAjMk1afEQz
a3c9KzUkTCZEODl5UWEwfWZGUnw1aWN0UFhEWDZCckQ3VG8zR0kjfGR+VnVPPFMmfTxhckRzNTJJ
CnojRClNVmdoMDctZkokJXFUfmZ0KUgpI3w+fDhSfnl3YFI4QiN0e1lhWmtVUURyZzUjUCNaVSYh
dnMweDJxVn1aIQp6VVcoK0gwQTRpQTl5RTJQM0pXfHlvJUhWYjB1a0RrX0FDZTI8aTspN3ttKmhV
dlBpe1QxbDU/YUQ9KUVeU25hcigKej54NloxeE5aeUY7fjdhNGk4RnE7KjVkRkg0YnYpeUFYSGFy
aCZaQiZobzlGTT8men5GZlQ/Rz1MeFhHXjczNHFpCnp5eSUjMlkjN1lsPlB8dGZZJldJRSlidXRY
PTVQUHpqWXJSdSpiWldUM2J8Nn1PXml3JDxKP31hN2RBQ0ZIK0RRKwp6e3hSVVBibWNNRUt4SmJv
YTd5YUBHZCNUZ1JQJGlJYCRNTlhWLVVNfHpxQVl9VHApI3ZtWn5jXzNAT3VlT0MyczAKejRrfERr
Zm5iJXN3O2ktZlR3bVFMZnNOOG42KzVhUERFUH4pJkpGIW40flU3TFFBcDZ+Z1BjUmRje31odkE0
KjE0CnozZWpgQDN3PXIpJHdVY09sWGlWRV9hSypnS3JMK0RLSzUmMllLRChpaD1ZWnJsOHZGZklA
YDJtPXRPWlJUIzlHJAp6LVY0SnpqIWA5VigyUUE9cWUpb0J7ZzBlcVNWRFZwMVNyMCFRNT81bm1t
PEFzPGVna0ErJjRkVSZnO3EwSEA3b28KelVaVkc5NCFoZWBXZSNAaVUraGJtUy14LSN1JEtLOXtL
RW1AMzxLRClGfGJwP21xaD16NGBeKVJeSWlYe15Ke2xSCnpKfU9eIzdtLXF3M1loSXg4RigpLWgh
V2NrWm5hQmJZKWh8KF94d2wrP15hUU13Kmd4UW43TyV2MjwjWE1NN1IhZgp6MkFwWC13NGNwa2Ew
fGlSMTlsV2dhMGohU3l9bCVGKnc4YGh7WEtjPVB4MFRvKzRuTEsofnFmVElvdUxHJkhnQjsKekBN
U2dkYmpvcEBOP1p6TXJDS2ZBZl43N1BDMVZEdV9mWi0xNk97X2hyen1YZHZJbSV9OFlQQDU8JnQ3
NWcpfWQrCnpEMDNwSFRVdit7NCRKZm9DVjU/IzNNO0ZjeGlORnVZdHBaKG4hVjlAbkNhbmF6QWtQ
bl41T18hek5nNUx6JUpnTgp6SHo2UTxzUypwcFFyUTMxVD5Mcn44emN0YGpUP21zQF5MeHNeQlQw
bmJRWTxMQjAkb0ZgVWsyWHYxQitKKylrQXkKemNeVXsrIz5NcEh0emVvO2UpOGY5VVJ1QD85fkU0
NUcrYjAxPDxncUpJOD9XV3JOKllgKlk9QCQlbF4paXQqR0ZvCnokVXlpeFVtbVZwNUt7NlY2MlAq
TzF8Zjd4M2lCdihBWDM4M2UpcXdNWVo1M3ppa00kNkZeJGB9eDZYV2tUcEVkUAp6OTM9RzM+JiZ7
KzM3cj05KFByUThte0paVDlPcT5FSzFQeH5eYHc/IWlUQSZ2TGR9M1N5REI4LT4wdW17Nmg/MGoK
elh0endheXNiZTg/WihOTzFlbXNkcj8qSFRMVn1MQyg4QW88T2soNS1ZV3h3OT1hYkc1b2JGalh2
Xz4qemtaWHh2Cno9R3BrfHRxeGNUbiR1UzE2cXQwOHFzZWcqMmN9YyhvUlMoVm5zWUdecWFGQzEp
dT5jLVNkUU02X344XmtfUVU/bQp6N3RQWm5kX3JSaTFGaVUjUkNtUVQ4SGxMOWEjaypRNnI1T25S
NT9gVT1jaH18dFY3MygpMCowXkBWQ09ZPTNpNU4KenBtVVpJam1SUX1nRThOflIweHJfQ3VzTiha
NEFCMD4hZUBNPDwycFRRRj9GMFRkTT9OKiFCJV8oZyFAeTJLbVlwCnpDU1MlMiVyYW1lJihSNCVN
dihfNTh2RVBZfDBaQX5qMSlZeUFoOH4yPGVfQXNseVJgVW9NIyVyOXxLUjFfPH1ERgp6a3F5fn4t
Q0VSekc3Zk9KcWRHakhtKFFzSE9ndVNCYnZRTm9nRFV9LXA8ayZyWnNCTUNFamtxKj9tKzc7JUl8
WigKekt1bnM5Tkt6YlN2d05oZD1gSGRINWIzZ3w9VVdHdjteUzhXNnxFPno4M2JHQzNWTDt1bS08
dnk8PF9eQkhHSXUmCnpEUW45c3NiQ1RQbEVjTz4lcXFJQnAoZisjMHVBfmRrcjx5ZXZNVCEkdypQ
NjsmRiNzJFk+WHskIThIa1B5LSkwWQp6PCZzUF5XXylwfkY8U0E/Z09ZbVRNaEZoJkYobylEJldw
JkYqPG87ezRWfTFaMEdsOXoxNTN7dXVPN29IZmV9VlgKekg/LW9YNmd5THh4cHE5ZktLSjlYZWdM
Q01JRlhMWlMmO2tUdnwxOzwwKClYVm1UaEZFNUsob2IpbVQmWil7Y1c4CnpeJSMmSDtedTIpd083
M351clNtbSR9aHdOPGNJTEdIQGlnQkgpZGNLZXVtUXojcG1pdj1ZXnxgPFc+cF8ld2xVOwp6WTM/
aitjVUx2bmFybWNSazZHJjNCSXNMQWRhdUNyRWt7PGteQk9iOyNFVVFGLVQlKE54c2JtU3hKdiNS
NF9rZkIKekxfYHxhVytCejUrVCgxb0EwM15ZUEohZnlRLXA8JnYtdjc8MjQ0YHM0RUx5Qkd8JGh4
YjdeYkxJIUBvI14tXlRECnpMRXRIfV53djcjKXE+UChsJXlIeUx5XihwPWk+NWo+O3xiXmg0KCRm
Y3tpUmAqelRQe1ZlRkZgWD15JVVwQUkjLQp6amVVWkpVfC1ZPiN9dVJEIUdHV2BxQUhQSSgoQD1x
UCZ5cF92PEA+KjApVzZ4MWl1PCFIXillUWhlKTl2Njg7LVQKel54Kk58Tz9lVFJ7SFgmQ3Q8WjJv
M3BYcUBpU2JydEk7ZkxHOUsme2Qla0dqV3pRaUo0dHU0S3dsMGM9U3NJcyotCnp2XishR05YfHB3
P1czLXR0ZWZ9JW5GYz9nT3ZFKihOZlA3WDN7PUE9YDl0aVBzdUF7ZCojI205UlI9ZnU8QD1qJQp6
JnZ5Si1PPlNGPj14WXVCTV4+Vj1XLUFFayh3cGBBTHsyVylxJV80bnhraT9uWUhHZjJ7eGlOZlZp
bkBBZmFhY1MKejNzJDZ7XyNJcVN2XzRtd2Q3KGFBcU9UfV9Rcj0qe2FObmUjNn0wPGleX184VjBw
TXxBWDM9bWw8QnBJQXtvKCFsCnpXSH1lOyt2KUsyIUxZYlVMTW5rJWM1I0gxe0Z+eiokMnU1ZF4t
dGk8QTJ7cFlRVUFCcCRBPVl3JH5hJTtCI1VqYQp6UD9EbCV7ODwmM0F4eX05d0tmdjkyMldFYDhS
K3YpOyVARG1UcGExPHFoLXMpNGVMfG1pdXcoX3RaIUNIQ2shekkKemlQYVg+eiQmYnZWbSU7TVBU
IyFKZ2tCVThyemFzZVNuQ0p4azJ4MjFYJUxxKzR2eER+UmMpX2tHan1yVj9HTU9ICnppPHU1Km83
VUdPdz9BenNMXmt+bThqWS0mNUJqVEtgZl9IKTM1Vkl3bWBKcnNvS1o+Rit2fHE7QzJUclYmfVo1
Zgp6e2JoJEpFJTZCbEBON2I2dDkoJUwoQjF+KGpUVyV1PiEpbnxFV259MlhwI2R1MlB4R3phKjE7
MnptdSN1bHxjPHMKenplWSRRangrJDZBc2xAPF8xfWYpel4+NTJBak8qfEBuZ2F1NFUpblVDMFFr
aChnQkh8WkdrX3N8RkU5bSpqZW0zCnohIU1rMnQ2RWs4OSlYbUZsNnJ1cDxRQSRZKFdvJEpRLUFg
cVVGTWt8Q31lTCpDYClQOSNMc2RFdSZSQnheVXcyQwp6bHYjOUZGJW9afDwwdk5fUUlDLT5zP29R
b0NNQGp4Kkk3dlA3PGg5I0gzZHRxJUt3NGEob1phcUJod25pa0k/ejkKenBMQUViME9JRDVGUXVp
MEhzNmFITl4xLUx5Nzx9fiVSQX1IeFhxUnBqRjxlYDxhZ1FxNChNKVhKdj0/Qis9QHoyCnpfNE1a
S05LO1pNd3dCZ2tDIy04N0VWZHJsOWRveG44NFlwcWowMGIkWjw/NW1OPV5Bb2dseCo1MCNPM2Jp
VEcldgp6bSh5Zj02VHg7clFmT2hvYyRDUilsPm1sZD5jMU9UZCZjUEhYcFEkeHw3K35+d3czPzI7
TDBkeU89IUhZKT5lS2cKenZEWSZCRjx0NXlKP1h8UG9uPyE1cDJ7fUM0U2g8QiE4fCs3cFhQT2dp
NTI/aypLO3VhVDcmdGo3SWFPJExmbFYyCnpjJFRtKkB+dXVPaDV7Xk1vRCtUM0I5RnVvaWplOEh1
KlopYm54fXQjPjYpPDdNKX42OUwrMHI4OGBhZzBuWmQ9Qwp6dDt4YXJfQGVkdyNpbWFVbFFvZnV2
WV5nVUEzQ0w7dVV+UERVIytZZEF7UTZXMlJaREVRWUkoOHpmI0Y+RSR6NCsKekVQajNCMyRHS3Vo
e1VjaEBOZUZibVZlVyFJd0h1SihHaFdhaTtAS287KGolKVJ1QmpAKng/aiR1eDAxIXdVNVZ7CnpP
cTsoIzxaSW9QMX0ldUV3djBPP21YJGw7bT04R3JgYHBCNlFKQSlvbWdyRjg8cXRwYnp5OyhHVkRl
fi1eV0J1Ygp6WDBXd01mM0xJOD8+MFpTSUpZNVhZNl44JDE7aH1fVEI+SmpuUiFoK2psVTNuQzEk
KlY1Ozk1YWZsbTZxPExjbUUKemF7PSMrQkV7TXxHeHNQQ2hqVnBhYnkyJVBCSUUxbXJeXj1kTkQ0
K3pgPCNaaGByNUxodWVsWDk9UHMlfVRldEg7CnozRkZjSXg2PWhscj1ZSzJCYXA4Y1VzSXc3MStt
UXcyQCVYcjFJa2xSZHIqM1pENDRHS1F2PWh8PntwWVdALShoagp6PEhTZz90dWx1VVZsfmZAaCVi
a0UyeGs7U2Y/V3RrJFlxNypJbSZCQVl6an4pQnZhfUMqVk1Wa0d5VlNtS2olWmAKekcoeUJNVzhA
Rytsayp8bFl+KWFpJFNLU0BCamhZT2wkQDIjRzNKPDQyZ2pVfl5DNm9gQzh3TXdJcD5oKl90THZR
CnotezFiKFUpeWNodUdlKXZwVT1uUmVteVUoYithUyk8V0hGeS14ZTg7YilTbjEkMktBRGdJSyQ0
bkBZK2FTcFF9KQp6V2lQckU1T01MdCRIUmp6VlM/MzEhRF9yT288KXQ1ej00LX5yTDEwVDR9RHNf
PFlSTnwlZmsrenR5diUkTyVJT1kKejcjejF4Uyg4Rl9KZTZSbmRJKUtuaD1FT3lLIXJVaClBNjhv
UFVtPXlRd0VRfHdLTih7OG1pd3AtJm5Vc3N6UGFjCno5WGNDbGNpJW4oTkprIXhTbSNITyk9WGEl
ZDM+TklWIUJpPWhfT3F+ZjFBeERxXzUyfTFpIUMhNllKbitAe3c5TAp6S0hkP0dyWkc7cXBZVlY9
Rj9RbzV2bnE5WWBnPlVDbzU4UG5WKXJhbDtCfiNySjt7bWVncDRLd08wR1hySHBxSFgKej52d3ZF
bUM4WHhZflNrRW1hPiQ3dnV8amA1Skt0V1dmRFR2Ujh5PEVhUXVTQWw5XlZESzM5RV8rNzU3Vz1W
Myp4CnpLO0N7d29qMUkwTEIyVlBeTGg/a2hPQU9kYygoPTd5dHdQLWFJeys8UmNmYjFeSSF7aEFo
Y05AMnNUR0Y2QG0pKgp6aFE0dDcoNHRjTSRzdSlwVEM4aXU8fWxSRzFjZ3xLRipNXjRKZH1fM2wr
MXNTeTw/RTY8biZAUl89V35PU19KTE8KekVxMCNKaER5PDstOTVYUDtoRG51dEUrOG8+KXFqV29a
UWM3c0hfZ0wwS1FoNXUrc2tRKGV9aClebjV+c1lhZFFaCno+Z24xM1ViIUwyM155K2IjNEVAcnhW
JG55QEEtOWMqPEZ2Sm5RP3pkQVFUTmlffUdqSVpEbW1RVjs3JlQkZlM4Pwp6RkJ7YGJ7NU5oKiR8
RChwUF5vQEFBanlTNzMyXk92MkpLVSpzcjtqQSloQzElbnN6PT9VZ2pkdjVvaEYoLT88XkUKeiQk
IyFCaXZUPmdGVSY1Qz8pSCZqQ1pISyM7WTY3IU52JWdNRE1Xc3h0P0x3NT41bV5MWkExJDtoYD9v
bU9OaHEkCnomJHxwNEZHaEVoJW1FWTUtKzkoTnRHRDFQLUc8KWEkUzhHKXFNenF0c1pXNz9rMT42
NzhTMCZgclVKfStDcWFPJgp6ITBaRTRHP1dgeFNzYj5qVmBWWGshQ1VQeENsfUBycXZ4R2lZc3o3
O0Rwe0RNRG1EYEBVUUIreihFO00zezNAYFkKenV7Tz4rQG5VPVp4WjNoXm5MO0ZtZ3JmciUyISFD
djB9UTdgeWpEZDJicDNzSmc7fUlibyMmVGItRHc7YmtDY3l6CnpUeU4jJU1MbVh0ZiE1YX42Z0RB
ITJ3X2JeTU9sX0BjQkl3USp3S0dUVGQ0UDFwQHdRcXdkVlg2OSZNQDI7fj1rTgp6UnJpXzR4SmA0
QXUqWmRKN15Vajs7PEFtZ1V1dXxzTSNqJDtSIyFpTF93KEQpVG9LXlEoU3l5cz4qV18wM2x5KUoK
enk7byp8OUpNZiRMPGFaKV4pZ1U7aEd2NVlrOGk1cShQXjspUG9vWlFLaTg5fW9SdDElNFRnRDVp
fDc9KDUwfW4wCnpTVjR4cjxndW9eLTQhIz5SZSo7ITFsaTdCeDNjKGNqejFFc0xoIzBXKUs2VmFg
T2kxdnZ3b0YjJlRqNFlFUktQSQp6cXh3UmpHfV5iail0a34lWV47THpKd18zQUxqd2NMYm9UYFV7
RCpWMChJdGZ+RWZhPSVTKXM8ZVFuJTs7RTErSmkKejBRSThXMCpWITc1c1g2cHNWX195cmt5UWFP
eyV+Y0JCUXQ4UEZDJGhnelEpQXBBSmNfc2VkeUNuNFhxJTh4K2JtCnoqN3c+e3dZSXtTaG1DVDRA
NUxnTExpeFBhdHM0YHNWKV4rKENaaDRxUHAwVlpue1VKeVlEfDx6M3p6ZWs8blJ5Tgp6eXd2MDko
WFYpeSlaKFo3TjFZUjdkRWBMJGpORWJ7UEd9I2xrJGVIWiZpfTM/My1Efkh4NiFyaylXdEl7P2tr
SnMKem0wcX5CNzNDRkRsQ3A5PUokK2FkI159TGAjRHBLNEtpSmk3Rk9SS0Bha35lJDRHaWRuTz1g
VU1PRk1SJDZWWTtMCno2KHojNjxAcUZYIW1yaTNIVDFnfEA9OCNHWSMya1plcyRxOGokRDRKb3JG
cGQ7NlAzN2BoJjw+SjxoLWVkTSRAaQp6WmFlfXhRc3xuXz9RbTsrK0IwX2daPmIwREdXVWNeVnF3
UElZX0Z5NyN4VnhOPDs1dTc9eE89ZD1FWndJe3I3aVAKelorT0B7SE41V1k+THAoUSF7TVVQOFZJ
N21NTisxQ2A3QVE2a050QXVyWkBER1llQnNOal9kfmtIVCtUc0RVdihVCnpBPXhkVk9mZn1odXlJ
eyE8anFHeipiTm1DaEZ8QE1vTTsraHpVSD9kNzBjYStseGxyWGp3O3BxblpIK2x8MlVALQp6Q01R
K2EpODdsalYyQXIyOGV6fkVJNj1JdGB0NlNyK0Ngb2lzNU9WTUJVRlZ4LX1MS3JlTDt4KCp1NCpu
PVFpUVUKemZWYW1kMjE1aC0lKm9eM24lIXdFVzBsc2d3aGMxMlkyMT5hPVdnblp4N2xhbiRCMyFB
R0g+Unk8Ums5TmJIYVd+CnozIVlgfkt+MF9oMG8jWnxTelRMdy1Ld31AP0QlaXYlUTx6Rks2TzVq
RWprc1Q0V3g/IUd+SEt0Wk5AKVQ/NXtiNAp6TyZ9K21iITx4NWNMWXY8X3JBUyhvOSlDeVI2R1ho
ZyZ2Ujs5MiQ3cXZfO35PT2UqZUc8Vyp2dVpRUyVuNCF2JWAKekxZQ2YtJXtGfH5FcFYxQnp8QU5D
TzNkT1NLayo1UzstYTRaQlNxbEAmfjVFOW1UfDNQY0JfMUp2N1NgMio1amg3CnpTIVRTeHcoJVNT
K1NMWT5OamhvaSZ4MX0qMXslcj0zWU5PcHV3TEszUUdlcWs/cGI8JXBhamBUVl5fZH5halpPfAp6
bjRVNEIrPio2Qi1wS2M7cDYmdG16JEMhQk5LcXV0NGtHTW1uZH5DM09EQk1fbVA9K1koPkZDX3tN
YDtPe0gtR1MKekFgQmpjTG5DdytNVzgxMygoR29FUDRhR3g/KU4rRkZxcFVMMjl1a081JCFxYjYm
fjV+PmNNd3VCWHomfTBFamZ2Cno+X3RDeDFISSVxJWwmUlJCfT03RnpIM1R6RHVSNDJxUzNqTHc2
NStOOEhKKDxUSVV1Qk4pWH1NZ2ZxRlNMM2ZjOQp6cktSandzPm49eV5XRERyYVlBTHpeZXUoRT9D
PV50emp5Q3pCemRJWCV2fX5vP0NEPkZRTG45XlRXMWt6bWtAUG4Kem9BbkFDYz13fmF1eURAQyFO
RWEyV25McW4lNX1OZUp0UH1CKHl5bkhLRz17cjhUUnxidyt8YHNvI35paVBlPSMtCnp4Tj5TUDMp
R3ReREkqX0lmSCQlbEtaWkA+MkF4TSVJR0kkUDloNy1RVXM8N2B1US07bjspbHItYG1VUThydXNL
Pwp6RmlRdnpjPThMcy1YWDtyIXdZMjVyYjMoJSFnZCRqYCVmTTRfSE87XnZjb18xRnpReHdSfGhX
Um1IZDxraFJMKWwKenJuPWhydXMqRmFaRUJiNDxXSVgmVzE0Ukc7bWJ2RkNiVVh+UEU5fTF0cVcl
PFoldTU3I1loNjAxfT92cz85bXQ5CnpzUTttTjdfUTZjZWc4Q0gpK04pbi1ZKXBOUG44b3tQclc9
IyVSUzRiV1VKMGZObEZnKDM9QTB9UU4xU343JGRoNgp6PEt5dGgqO3drdFhCP09BajYzOHVyJjRZ
IU0wKH12dDwpQEwoSXVQdjROO3I1XmNFKGswV0NUJW1ORTw7XmhoRSMKejZndDZpVnR9bTwlRXRH
JnEjUih0WjUjOUJxOG5NdGBKR057I2xOJSUhIS1VNXl9KTJmTkVaUisxZTwyKV53TU5MCnpQbTJs
MVZ2eUQ4RjtvXjs5bGghNUNyP0s5ZnF2UEslV01QPj13OTE5N35RLXchdEpVbVI8fmgjTWY+ez93
V1QtRwp6NnxPO3hec0tZRXJEYnR5bDZmKW9rfXM7MHMpbyVSYGE8ZlopVS1kTk47aCpPdzlKWkxv
Qjw0fiEzdHxTQnxvZSsKelBxRXdTalIqYUcwQUtrMDhOJVFrb3Jye3ZqeWZ7dTElNzc+PyZ0MEUk
Jmo0SXJLQS1GXztLaEdhYnszKkh9QVBQCnpJdmZ7UzVIclAhNkhTNWI2WjleRUk3YjZEUSVqNV5T
Z3RGJitDR0RMfEoqVSVBa2Y+OUZBYFY4aFNoJXRAJT83fQp6dUxLN0NVVmhQfFZsWlVgRVppT0Ax
X2I7SEFxWHF3KGY3figlfDtOe3lVRUVeOGg/TXlzPCYlcWchU0lRRkVJWVgKenVsI31PazRySEQw
NH1nTUx+VHNDenomWnZ5Pz9Md0hMMEs4TmEmfnZfZXtqKis9S2g0R0U7c2V1Zk1QYD1tTClKCnpl
e1VINjhRbkdIWEVKI2BYdGo7YHA1P1lPeXRkfHV3ej9MMGBJYDFFbHF7QiowIWxSblQqPj9jSSQ5
bTtybCNQdAp6WFU9NF4xOUUzZ1k3LWB4MyQ9R2xOdHdCcF4hWWF2LT1mX3kwTlolMyMzWXYqZHp5
bWBZLVZtXlNhODEyX18yWVgKel9JTStgbGpXOCpPSjQ5b3ojYD52ZiQ3TjEhUGt4JjZmcT4hd2po
RnliYVNrdHtjJGEqem9rSFkrZ0pUNUElcXZxCnpSMHdPPlFmMVdBbHtVd2woVjZHeklHaHRBa2Q+
N24zXmVnUGUpMXRrPlk/R2xOKmhGfnhNYlZPPFl4YV8mSnFNaQp6MzBzKkRLT2UhPSlqYUNETis2
QHQ+T0UmeEdib08lbXM1UDx5ejMxNyFhNGpPV2FmMjJzKWc7YlJwSFp4QkB4PjkKelBjSTQtVzwq
M1pNISg8Z0JkWHJTU0xUdF9SM3pqeTVuXkgmcXxTLVVOSjM+dCM2KDVPQkokXkZWYENsPDFKMWgm
CnpvdDQlOFV7VFNqKyYxUlFyN1FxPXVwYHNZSz5pcVZkUiRRYEJwdypKYjxDIUVrYFYhcGR0WW96
Q2g7cStaR1pOWAp6Q0pRRDI2Zi1wOW83Qj5+WCRTa2ptMzU3eC1NWVdJVWltVGxRP3Q0PCZeZUs1
Vm9SdG84Yk1NTXI0MVd2QCFTNykKej5lVHhTUz1MUzIlP0NQTTlpcGtteG9HTHIxNSlMQyZyNiF0
b288RktkQHRtWjxpUnh0XyFBK2pTXlJTd2l0ZCFiCnpXT3g1ZTxtaHRlUilZV2wyX2UqIV9XfiFV
ZGlEfH40eW9fQUQ+KzU2PmN2azUwSHZxRD9EKz1rQ2RpQ3opXmtoPAp6dXJkIUA0aTc4R3ZoY1RX
RGU5bylSMk1LPHRtZGIld0pCR0h5Ujh4NWJ5VXNDdWY3NXBsPW8rUDk2Jl5zRUAhfCsKem8+PFEr
anpFXzdiJTxpUCltS1VMO1VHQEFMSmo+MUFgc0BBNUU0SjxKS3R3SGpmUTh5c1p2WFlgejMwMm1O
ZnA/CnpUSF5qVT1fLWp3PkpNeUErYkZVTCFwcnUrZy0mRlMoX35rUF5XbWdgZkt7O0wmOTUlQXYk
SEVhMGl3IUUmfnRVPwp6V1MtOFBFbGo7cFM+b31eV1JpP0d6fnNxP2FHNk9ZaTM8aX1hJDl2VGRa
KXx9NFVXdCRwTVBAI1cwYyEhKUkwUy0KemElIVYqWkk+SE1ndnhHakNsMzFWdXFEPHw9QzM8Z0lV
OUk1OzlwYVQjUVhWViR7cXAxZkV6e2QzVj9WR01sZXI9CnpmV0pYS2JiTyQlJVNwSH0rKUR8cnBp
QDJQbnpBc0YkMSk8VXptUm5WYUVLOSVQJkItdSY/S2x5WlhecylmYGpjYwp6NmooRzwhQnt7eDll
OVopWGMwUn1zRmtlYXordkZ3UGI5Pm5nX2I9Zyo1M15PMXxLZDx1VHtqWSttTiZZN01aPlcKenRv
U3BvZlZyYTZYVTZxWGI3SVg2SnMhSGJYMTYoTFBfY3xyM3BRcXFHQU4jWFEjfTlVPUE0RG08STc0
bkx9LTtoCnp5alM7KWZpenRKOH1fQTkxK2ZgSlZiUn1xMT0lPUBAbnROYUpwd1hrS2tMcWQ/QURn
cXNNZ0xAZlQ4b1N0dmIpfQp6eUhPPjBgc0ZKWWZUNkBZJDghcU1weXhVejNYNXx8Z05XUjxISjhW
RUFjPXx0VDNYRWJfP01rZWkxVWs5bVg9O3sKeld1P087OVc5SEk/e342JERFJWVJK1NUR3ZZflFA
I1VaYjhMWWpXPTFDQndtZDh2P3Zuelp0TXk2K058UDY/O2kyCnpKZ18kSTdmQWJyJm1sc202I2dx
fjxZfHFldzNZeyNra3d0c0gzdFU0Q1pkSmN0dElrRlglMSsqNFEpeSlGTmJMMAp6KUt2UXFxZWAz
aUgwPnRtPl8lV2VPMFM5MmlPKVVjam4oPyV4eXFrSTdYaDR6eSt1VFhRQ0E0WmBeMDxrTnNGPlcK
ek1uaFN4TWcqKmQ8V3M3dEAjRz5RcTRNeHE3YSgkMnZldWwxSnVVQi1tWHlLezQtQkFAbTwwQzMx
TyZleipVYTQ0Cnp1VjFJOz1iY3QmWEo2Kl9xI1JEYTJBYjVVK3pGZChgUWp6T3d8b0YlclZNM0Vi
d0c0dnM2WFhtbW5Dbn1iPGtIRAp6PUE8NUFMYFMpPF9LO0EhMVlpQT0wODxHQU1hdDkhNjV0Ujch
ZV4/dD5CSEtNSH4ocURmYmB7a3c2YVNqTThqQUoKekQ4KWotZDYkZXJ5RFl7eTlVY31hTGYqUWR2
OW9YRFIkYDJDYiZ4RipWYCo8MGlWYTE1TV8kJWx4UXluZ0h9WnEyCnpiUWNYdG5IOXc7RT50QjlY
U0ZJUUJrK09WITVpZU13WHBecGJwNyUmS2NCMUhEJUkxKSl2SyV3UzlWc21PMTdfRwp6eCkqOEdr
QkskSkpVUHNlRVh6OHNGfjcyYyk1bEYrMVdyJFUoVH5DQDAmR2ZERnFBMFU5QnRlR1AoWUtRNjg+
T2AKelRWIytrYDN8NVdyb3crdGd0ZERsdDc5WUtCWGYwZ14pJH5BT2diIU4yO2RVWm90TE1HNHtO
NzxNTndHOFVhay1SCnpxNWM0OVIrK2huIWQ3X3ZxfSliRVQ1UForZmQ4YyNmVTtaZj9sM2BFeHA8
TT5vR0gwbjV5MGlAOFRhblpOdzV1aAp6TGM3KUpuakJebiQ8TDRYVyVqI1M0Sip+YFNUNzMrP2d0
MEJGWkgqTl5jbyZHeC1aZSNFdipRPFFVT29RJWhqV3oKenRuP3tOLVArcHBzeVEoYC1BWVNpdHZx
JXRzPFctNjxvcGlFaip8X2ojNztSZllBKCpzKnhQenwpVj1CR207dj9TCno/ai1zVUNxeDVSajIm
a31mcEQjN0pEUUNiMnhGdCRqWHRAdkp2Y0o/R2k9Jjl6eDgpNlR4RyEja1R5TSF3TGZhcAp6ck1K
OTRnc31DfjNeWTA7MU5JK1lDKmVNLSNxVVB7USMwWjhyeSVEMkJBRlJRSipJemI0aT5XcFJtYVds
SDlackgKejJ7ITsjNWE/eVU+OGxfckUzZntseGBiNEF0RTkzTkE0d31TZUJ5LWheK2hQJiUqcTB8
WTV7SyRiUXYzQlpGMjF6Cno/djlhLTVnUHJvYmd7bmtaQm5ZOCN2elVONVZ2ZEtEQnomR3lTdntl
VDMmVjZWTGd3e29EZ3FWIUAzVnFEZjN6Mgp6Qk1Obyp4ZUswY0JPbWFtQEozMHtqSjlWY0Mybn1P
SWAkQyFFYTloPmBSNSpTZktpMztaZlJAfEN+anVzQThaWmMKem9EXjZGRUl4JWlecGc4OCQydWxm
P2F1S1Fse2Q8YDVKWGJyRTQoTCtqJmlyPlZuQ2RMamJGSUV5IVg4JmdsU1MpCnpTXjNNTjBHfSgq
PDIyNlg+PkhMPmQ+U2p1WUFZWjFuS2ZwOUJOQztocER3VylfRFBmUjhePm8tTykwdSE0cXR5Ngp6
PCglK2FVcTQ+MDBZRSl0cE44ekAta2Z3Nz98N05lR1o2R3lheDRYa3NSRkE7NDAlMUhLfFRnQHMz
dUdZSikxJkkKekRXQkBFSFVHRmxBWSVZKXlGTCkkJGl8UFVqczZpd05hMXdDZ0lpdTZQYWdSaVBv
R1l8eCM+TUUoRDg0VG96PTQpCnozNj99IV9gRXdsRTZZNiV7Qzs2aEJ6SlBeanBneCVnJmx6TTQw
fUNTOX4we0JMYytSVkMmJGdFRW15fm5jYSRgQgp6cT5MPyhNPCRKcSFnRl97PXBYa2l4X3IoOUoj
bV83WF5FRWdea2p0SmBzNmJrYCVWPUVkY3AyOHZvKkFHMEd4U1MKempDZnBrJHkqfFJEdjREKSVh
I15zO35rRz1uMDZNT2Z2LUF1T3pKdEozR2ZKYnZnVlI3aGV+KH1qVShJK05DOHk5CnpuUWkqMERy
S0F6NmlZdlNMdT1ieTc+ZlE/QGB2PzFsRDRqWlheJGAyKmFtbFBeV35xTStFM25tYXcqaE1gMWZu
egp6OGo2KyY/aHRQRnk4fkp9eTJlPXpkbjB2JVhSUGIkZz81eTsqRVNTNGYxSzNkO3RRQjVkN1BO
YkRJVUlCVFR9RHkKek1ReUUobSM2MlVNbyRWcnBzWiQ2Q311aGArOEklQkNVTypqeTZTNGBYQEhR
YVlsX29lWkk4ZkUyZmd5TnBXRmVwCnpTe2JuJTJQI09zJiooQUNsemVZTClMVWRZO3lmO09WVCM9
PD5URV5ac31xeHN8RllGXiZiUjJpc0koWVE8cz9idQp6Xik7WjFxdk8pMlU7NGJKN3R0MXI7KWQh
dnR7bG8+UXp1XjUtdX43M3s9TURaPTRNSlVBZFNTR245OTlXVTEpemUKeihIeWtuX1VTcDAzYGZH
NUlfTHYwMGZGS093UzdzJD82NG9hQWIyUVNiSGs5T3JnUVFzemUqbXpFQTBMcVpONksrCnp5I1Ru
ZTh9WXc2bSMxeXl4WVUjOEVAX301KDQtWnE3ZjEzKjs9dSVJPCUyVXZ4X3tGSFNKbmlGK1M+eVhH
fndlMgp6RlNXXmN0N0s0Xj5mRUY9T0JFTTJaWXszVEdeUH5ZcHpOaDUmNiEpXzE+VipiMUZPQ1Rm
dk1CVjBON2A4N0x2QW0Kel8yUmA7PHMoOE0qNEZTXjRoVjN1Tkt9bXQhQWJtSUxHc1ZyKSRxMXBq
V249e2p8TWp+T19kMm4mfStZJUZhWClqCnpVdnpMXjN9S0lBMD5MJiE0eTAjbVd2cChpPjM7WXZU
Pkk1X3lVVD4+cz9fNk1wQHV4KGp+TSZEczlmTSp6X0M0bAp6MD4lSnM9QzNxaTBFIzZUJUJjaXFQ
TC1zLWdBVV92NTNjKmgzSTl7Z2YmNXwza0UxP0R0MmIzTG5mPUdvKTJkTHoKemZQNWBtRnJsMyE2
UHRFTlhVbHB3TVA4fDZpI1pBQDd6WWx5YWxMeUImRFcrKW9QfklnQVM1SXI5OVc/dyM0aX5ECnpt
V3oxd29ITGtaTHJ8Yy1iKk1TfF9sPHYzWTxve0U0K1N+M0hEfnUrRVBmN3JaakhhYUw/KUtJTkRy
Kk88bFZRKgp6dGl4YldaemBTdU0oP1Q/UyMldGV7Vy03SU1+PyZlYUZJYyhDXmwqU1dpTVh6WTF+
YGBQdzQ3PTx7ei0pa0VBSXwKent9TzlJND9IND5qQWgkQ0k/O1EqaUxyPF9iN2x8Pj0+fDRpKHAm
d19xUWhXSCYlKUxzJkxNcSQjekZnMFBtOyMhCnolfENeZUEmXzB7VlNIfWh1YXxYKGIyPz93OT4l
Vm18STF3O0w1PUQwO2E2eklOb3FDemkqbmxlUSEtP1Q+NiVEZgp6REt8MypHWUBOa2M4Unlre3p8
S3UmOVRRYl99eFlAX0VZV0FrSzc9a1dVMjI/eGRpVTRlOTs4T3UjQlF4KyVgU18Kek1tNjk3M19H
cG17KVgwN2A4ZTlSX0dsc2RWXk1ZaldGY251NGoyTz1hKyVTZF5saj1KKFMmWG5WU2ZhZTBSYmY4
Cno+YU1adC1CK2dYZ0t+IXVsX3I1fEpOJDwtfE1JPUlgdnl9ajZpRSZ+P0lKQzIkM1MpblFaUHgl
bnJUd1pTck1sZwp6KX58PDM1PGxsYiZYOVZoUzJ3ZC1kKlZMfGBlP0VUTWV8YSVTV3hWYWpHJDhC
cztldDNQcUB1UXdNbHg5I304eH4KemEyPDF8dmttJT0yPFdCQjwmZnlHMzsjQ3VIZkFMQSp8REw1
cylMM01UOSgoIUohJGppWHBhMGh2aWJ3ek5McFM1CnpfQjVtU2g8YzE2NmRrPHRLZHAlYExQQ2hm
OGk2fFFZQ0I2IXRGNVR0NUFqVHtLdFFwXnpySUJNKjgyQitnbVdmdwp6MjdxWWBKcD8+VWF+JVFg
UnM7U0c1KHBeY29OeDhaOVVIIURTOGJBVDRVPXhXK2tlWChkMEpffmg8JjNYPTNKKE8KejkzRDI8
V2JwcmUtXztkbkhBI2VKLTtTTEIhMmtEd3xOQn0lNWclbSE2JjVAYiZIbXtHaHdDeG1oMC1fRHRK
SlpMCkZ7Q2B6dD5YWk5nCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1
cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1ob3Jpem9udGFsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM3MDI5OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ2IEBA
Cit0ZXN0CitIwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCDCoG93IE5vdyBCcm93biBDb3cKK0hvwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKgIHcgTm93IEJyb3duIENvdworSG93IMKgIMKg
IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgwqDCoMKgwqAgTm93IEJyb3duIENv
dworSG93IE4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIMKgIMKgwqAg
b3cgQnJvd24gQ293CitIb3cgTm8gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKg
IMKgIMKgIMKgwqAgdyBCcm93biBDb3cKK0hvdyBOb3cgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoMKgwqAgwqAgwqAgwqAgwqAgwqDCoCBCcm93biBDb3cKK0hvdyBOb3cgQiDCoCDCoCDCoCDC
oCDCoCDCoCDCoCDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoCByb3duIENvdworSG93IE5vdyBC
ciDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIG93biBDb3cK
K0hvdyBOb3cgQnJvIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg
wqAgd24gQ293CitIb3cgTm93IEJyb3fCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuIENvdworSG93IE5vdyBCcm93biDCoCDCoCDC
oCDCoMKgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqDCoMKgIENvdworSG93IE5vdyBC
cm93biBDIMKgIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoMKgIG93
CitIb3cgTm93IEJyb3duIENvIMKgwqDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC
oCDCoCDCoMKgIHcKK0hvdyBOb3cgQnJvd24gQ293CisKK3Rlc3QKK1BBU1MgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgIjEwIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiMTIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICIxMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgIjEzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiMTQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICIxNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjE1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiMTciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIxOCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjIwIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMTkiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIyMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjIyIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICIyMyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
IjI1IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
MjYiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIy
NyIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVu
ZCIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnByZWNlZGVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRl
bmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdmYTI1MwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LWhvcml6b250YWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKQEAgLTAsMCArMSw5OCBAQAor
PGh0bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgc3VwZXIgcHJlY2VkZW5j
ZSBsb2dpYyBvZiBTcGF0aWFsIE5hdmlnYXRpb24KKyAgICAoU05hdikgYWxnb3JpdGhtOiB0YXJn
ZXRzIHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVuIHRoZSB0b3Agb3IgYm90dG9tCisgICAgb2Yg
dGhlIGN1cnJlbnQgcmVjdCBhcmUgcHJlZmVyYWJseSB0byBtb3ZlIGZvY3VzIHRvLgorCisgICAg
KiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlz
YWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2Us
IGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVz
IHByZWZlcmFibHkgdG8gZWxlbWVudHMgcmlnaHQgdXAgb3IgYWJvdmUgdGhlCisgICAgICAgY3Vy
cmVudCBmb2N1c2VkIGVsZW1lbnQsIGV2ZW4gd2hlbiB0aGVyZSBhcmUgc29tZSBvdGhlciBjbG9z
ZXIKKyAgICAgICBidXQgbm90IHZlcnRpY2FsbHkgYWxpZ25lZCBlbGVtZW50cyBpbiB0aGUgc2Ft
ZSBkaXJlY3Rpb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3Bh
dGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsi
RG93biIsICIxIl0sCisgICAgICBbIlJpZ2h0IiwgIjIiXSwKKyAgICAgIFsiRG93biIsICI0Il0s
CisgICAgICBbIkxlZnQiLCAiMyJdLAorICAgICAgWyJEb3duIiwgIjUiXSwKKyAgICAgIFsiUmln
aHQiLCAiNiJdLAorICAgICAgWyJEb3duIiwgIjgiXSwKKyAgICAgIFsiTGVmdCIsICI3Il0sCisg
ICAgICBbIkRvd24iLCAiOSJdLAorICAgICAgWyJSaWdodCIsICIxMCJdLAorICAgICAgWyJEb3du
IiwgIjEyIl0sCisgICAgICBbIkxlZnQiLCAiMTEiXSwKKyAgICAgIFsiRG93biIsICIxMyJdLAor
ICAgICAgWyJSaWdodCIsICIxNCJdLAorICAgICAgWyJEb3duIiwgIjE2Il0sCisgICAgICBbIkxl
ZnQiLCAiMTUiXSwKKyAgICAgIFsiRG93biIsICIxNyJdLAorICAgICAgWyJSaWdodCIsICIxOCJd
LAorICAgICAgWyJEb3duIiwgIjIwIl0sCisgICAgICBbIkxlZnQiLCAiMTkiXSwKKyAgICAgIFsi
RG93biIsICIyMSJdLAorICAgICAgWyJSaWdodCIsICIyMiJdLAorICAgICAgWyJEb3duIiwgIjI0
Il0sCisgICAgICBbIkxlZnQiLCAiMjMiXSwKKyAgICAgIFsiRG93biIsICIyNSJdLAorICAgICAg
WyJSaWdodCIsICIyNiJdLAorICAgICAgWyJEb3duIiwgIjI3Il0sCisgICAgICBbIkRvd24iLCAi
ZW5kIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5U
ZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBh
IGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9j
dXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGEgaWQ9InN0YXJ0IiBocmVmPSJh
Ij50ZXN0PGJyPjwvYT4KKyAgICA8YSBpZD0iMSIgaHJlZj0iYSI+SDwvYT4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7PGEg
aWQ9IjIiIGhyZWY9InAiPm93IE5vdyBCcm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIzIiBo
cmVmPSJhIj5IbzwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0iNCIg
aHJlZj0icCI+dyBOb3cgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iNSIgaHJlZj0iYSI+
SG93PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IDxhIGlkPSI2IiBocmVmPSJwIj5Ob3cgQnJvd24gQ293PC9hPjxicj4K
KyAgICA8YSBpZD0iNyIgaHJlZj0iYSI+SG93IE48L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjgiIGhyZWY9InAiPm93
IEJyb3duIENvdzwvYT48YnI+CisgICAgPGEgaWQ9IjkiIGhyZWY9ImEiPkhvdyBObzwvYT4gJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8
YSBpZD0iMTAiIGhyZWY9InAiPncgQnJvd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0iMTEiIGhy
ZWY9ImEiPkhvdyBOb3cgPC9hPiZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaWQ9IjEyIiBocmVmPSJwIj5Ccm93biBDb3c8
L2E+PGJyPgorICAgIDxhIGlkPSIxMyIgaHJlZj0iYSI+SG93IE5vdyBCPC9hPiAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIx
NCIgaHJlZj0icCI+cm93biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIxNSIgaHJlZj0iYSI+SG93
IE5vdyBCcjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsmbmJzcDsgPGEgaWQ9IjE2IiBocmVmPSJwIj5vd24gQ293PC9hPjxicj4KKyAgICA8YSBpZD0i
MTciIGhyZWY9ImEiPkhvdyBOb3cgQnJvPC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBpZD0iMTgiIGhyZWY9InAiPnduIENvdzwvYT48
YnI+CisgICAgPGEgaWQ9IjE5IiBocmVmPSJhIj5Ib3cgTm93IEJyb3c8L2E+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IDxhIGlkPSIyMCIgaHJlZj0icCI+biBDb3c8L2E+PGJyPgorICAgIDxhIGlkPSIyMSIgaHJl
Zj0iYSI+SG93IE5vdyBCcm93bjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyA8YSBpZD0iMjIiIGhyZWY9InAiPkNvdzwv
YT48YnI+CisgICAgPGEgaWQ9IjIzIiBocmVmPSJhIj5Ib3cgTm93IEJyb3duIEM8L2E+ICZuYnNw
OyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEg
aWQ9IjI0IiBocmVmPSJwIj5vdzwvYT48YnI+CisgICAgPGEgaWQ9IjI1IiBocmVmPSJhIj5Ib3cg
Tm93IEJyb3duIENvPC9hPiAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGlkPSIyNiIgaHJlZj0icCI+dzwvYT48YnI+CisgICAgPGEg
aWQ9IjI3IiBocmVmPSJhIj5Ib3cgTm93IEJyb3duIENvdzwvYT48YnI+PGJyPgorICAgIDxhIGlk
PSJlbmQiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorICA8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NjY0YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tZm9j
dXNhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorYQorCisKK2UKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0Igor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1mb2N1c2FibGUtY29udGVu
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzY2I1MjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24v
c25hdi1pZnJhbWUtbm8tZm9jdXNhYmxlLWNvbnRlbnQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8
aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyB0cmF2ZXJzYWwg
Y29ycmVjdG5lc3Mgb2YKKyAgICBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTog
aWZyYW1lcyB3aXRob3V0CisgICAgYW55IGZvY3VzYWJsZSBjb250ZW50IHNob3VsZCBiZSBpZ25v
cmVkLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05h
diBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2Fk
cyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIp
IEZvY3VzIG1vdmVzIGZyb20gInN0YXJ0IiB0byAiZW5kIiBieXBhc3NpbmcgdGhlIHR3byBpZnJh
bWVzCisgICAgICAgaW4gYmV0d2VlbiB0aGVtLCBvbmNlIGJvdGggaGF2ZSBubyBmb2N1c2FibGUg
ZWxlbWVudHMgaW5zaWRlLgorICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
InNwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAg
ICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiAgLCAic3RhcnQiXSwKKyAgICAgIFsiRE9O
RSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xp
bmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAg
IC8vIHN0YXJ0aW5nIHRoZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0
TW92ZXMobW92ZVRhYmxlLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0
ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQor
CisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hl
YWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4KKyAgICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4K
KyAgICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2lmcmFtZTQuaHRtbCIgd2lkdGg9IjgwIiBoZWln
aHQ9IjgwIiBzY3JvbGxpbmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8aWZyYW1lIHNyYz0i
cmVzb3VyY2VzL2lmcmFtZTQuaHRtbCIgc2Nyb2xsaW5nPSJhdXRvIj48L2lmcmFtZT48YnI+Cisg
ICAgPGRpdj48YSBpZD0iZW5kIiBocmVmPSJhIj5lPC9hPjwvZGl2PgorICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtbm8tc2Nyb2xsYWJs
ZS1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxlLWNvbnRlbnQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmOTI4YjIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1p
ZnJhbWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CithCisKKworYQorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVudC5k
ZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgIjQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1sxXS5kb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQu
ZGVmYXVsdFZpZXcuZnJhbWVzWzFdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICI1IgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMV0uZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiNyIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVu
dC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMSIKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1l
LW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLW5vLXNjcm9sbGFibGUtY29udGVudC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwODFjYmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJh
bWUtbm8tc2Nyb2xsYWJsZS1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPGh0bWw+Cisg
IDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgYmFzaWMgaWZyYW1lIHRyYXZlcnNhbCBj
b3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikgYWxnb3JpdGhtOiBm
b2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDxpZnJhbWU+IHNob3VsZCBiZSBhY2Nlc3NpYmxl
LgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBl
bmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0
aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZv
Y3VzIG1vdmVzIGFsb25nIHRoZSBlbGVtZW50cyBpbiB0aGUgdHdvIGlmcmFtZXMgaW4gdGhlCisg
ICAgICAgV2ViIHBhZ2UsIGV2ZW50dWFsbHkgZ29pbmcgdG8gb3V0ZXIgYW4gc291dGh3YXJkIGxp
bmssIGJ1dAorICAgICAgIGdvaW5nIGJhY2sgdG8gdGhlIGlmcmFtZSBvbiB0aGUgdG9wIGxhdGVy
IG9uLgorICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNwYXRpYWwtbmF2
aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBbIkRvd24iLCAi
MSJdLAorICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAgIFsiRG93biIsICIzIl0sCisgICAgICBb
IkRvd24iLCAiNCJdLAorICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJVcCIsICI0Il0s
CisgICAgICBbIlJpZ2h0IiwgIjUiXSwKKyAgICAgIFsiUmlnaHQiLCAiNiJdLAorICAgICAgWyJS
aWdodCIsICI3Il0sCisgICAgICBbIlVwIiwgIjMiXSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAg
ICAgWyJVcCIsICIxIl0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxO
YXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBydW5UZXN0KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6
IGdldCB0byBhIGtub3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0IikuZm9jdXMoKTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRl
ZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0
OworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50
IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdj48YSBpZD0i
c3RhcnQiIGhyZWY9ImEiPmE8L2E+PC9kaXY+CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9p
ZnJhbWUuaHRtbCI+PC9pZnJhbWU+PGJyPgorICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvaWZy
YW1lMi5odG1sIj48L2lmcmFtZT4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmE8L2E+
PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUt
d2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzM2FhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1v
ZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAK
K2EKKworZQorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCitQQVNTIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5kZWZh
dWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQuZGVm
YXVsdFZpZXcuZnJhbWVzWzBdLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIyIgorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZXNbMF0uZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNTIGRvY3VtZW50LmRl
ZmF1bHRWaWV3LmZyYW1lc1swXS5kb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiMSIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgInN0YXJ0IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1vZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LWlmcmFtZS13aXRoLW9mZnNjcmVlbi1mb2N1c2FibGUtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYzk5MzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtd2l0aC1v
ZmZzY3JlZW4tZm9jdXNhYmxlLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDY2IEBACis8aHRtbD4K
KyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBiYXNpYyBpZnJhbWUgdHJhdmVyc2Fs
IGNvcnJlY3RuZXNzIG9mCisgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIChTTmF2KSBhbGdvcml0aG06
IGZvY3VzYWJsZSBlbGVtZW50cyBpbiBhCisgICAgPGlmcmFtZT4gc2hvdWxkIGJlIGFjY2Vzc2li
bGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0IGZvciBTTmF2
IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAgIDEpIExvYWRz
IHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHkuCisgICAgMikg
Rm9jdXMgbW92ZXMgYWxvbmcgdGhlIGVsZW1lbnRzIGluIHRoZSB0d28gaWZyYW1lcyBpbiB0aGUK
KyAgICAgICBXZWIgcGFnZSwgZXZlbnR1YWxseSBnb2luZyB0byBvdXRlciBhbiBzb3V0aHdhcmQg
bGluaywgYnV0CisgICAgICAgZ29pbmcgYmFjayB0byB0aGUgaWZyYW1lIG9uIHRoZSB0b3AgbGF0
ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1u
YXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0
aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93biIs
ICIxIl0sCisgICAgICBbIkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjEiXSwKKyAgICAg
IFsiRG93biIsICIyIl0sCisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjIi
XSwKKyAgICAgIFsiVXAiLCAiMiJdLAorICAgICAgWyJVcCIsICIyIl0sCisgICAgICBbIlVwIiwg
IjEiXSwKKyAgICAgIFsiVXAiLCAic3RhcnQiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAg
ICBdOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKHRydWUpOworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtl
eSIsIDEpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICB0ZXN0TW92ZXMobW92ZVRhYmxl
LCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgd2luZG93Lm9u
bG9hZCA9IHJ1blRlc3Q7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlk
PSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAg
ICA8ZGl2PjxhIGlkPSJzdGFydCIgaHJlZj0iYSI+YTwvYT48L2Rpdj4KKyAgICA8aWZyYW1lIHNy
Yz0icmVzb3VyY2VzL2lmcmFtZTMuaHRtbCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBzY3JvbGxp
bmc9ImF1dG8iPjwvaWZyYW1lPjxicj4KKyAgICA8ZGl2PjxhIGlkPSJlbmQiIGhyZWY9ImEiPmU8
L2E+PC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zbmF2LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMDcwNzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
YWJsZS10cmF2ZXJzYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3QgdGFibGUg
dHJhdmVyc2FsCithCWEJYQorYQlhCWEKK2EJYQlhCitFbmQgb2YgdGFibGUgdHJhdmVyc2FsIHRl
c3QKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEi
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0Igor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiNyIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgImVuZCIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjciCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI4IgorUEFTUyBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiOSIKK1BBU1MgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjYiCitQQVNTIGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMiIKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjEiCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZl
cnNhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtdGFibGUtdHJhdmVyc2FsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmI4MThkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRyYXZlcnNhbC5odG1sCkBAIC0wLDAgKzEsODgg
QEAKKzxodG1sPgorICA8IS0tCisgICAgVGhpcyB0ZXN0IGVuc3VyZXMgdGhlIGJhc2ljIHRhYmxl
IHRyYXZlcnNhbCBjb3JyZWN0bmVzcyBvZgorICAgIFNwYXRpYWwgTmF2aWdhdGlvbiAoU05hdikg
YWxnb3JpdGhtOiBmb2N1c2FibGUgZWxlbWVudHMgaW4gYQorICAgIDx0YWJsZT4gc2hvdWxkIGJl
IGFjY2Vzc2libGUuCisKKyAgICAqIFByZS1jb25kaXRpb25zOgorICAgIDEpIERSVCBzdXBwb3J0
IGZvciBTTmF2IGVuYWJsZS9kaXNhYmxlLgorCisgICAgKiBOYXZpZ2F0aW9uIHN0ZXBzOgorICAg
IDEpIExvYWRzIHRoaXMgcGFnZSwgZm9jdXMgZ29lcyB0byAic3RhcnQiIGF1dG9tYXRpY2FsbHku
CisgICAgMikgRm9jdXMgbW92ZXMgYWxvbmcgdGhyb3VnaCB0aGUgc3BhcnNlbHkgcG9zaXRpb25l
ZCBlbGVtZW50cworICAgICAgIGluIHRoZSB0YWJsZSwgZXZlbnR1YWxseSBnb2luZyB0byBhbiBv
dXRlciBzb3V0aHdhcmQgbGluaywKKyAgICAgICBidXQgZ29pbmcgYmFjayBpbnNpZGUgdGhlIHRh
YmxlIGxhdGVyIG9uLgorICAtLT4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InNw
YXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBtb3ZlVGFibGUgPSBbCisgICAgICBb
IkRvd24iLCAiMSJdLAorICAgICAgWyJEb3duIiwgIjQiXSwKKyAgICAgIFsiRG93biIsICI3Il0s
CisgICAgICBbIkRvd24iLCAiZW5kIl0sCisgICAgICBbIlVwIiwgIjciXSwKKyAgICAgIFsiUmln
aHQiLCAiOCJdLAorICAgICAgWyJSaWdodCIsICI5Il0sCisgICAgICBbIlVwIiwgIjYiXSwKKyAg
ICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0IiwgIjIiXSwKKyAgICAgIFsiTGVmdCIsICIx
Il0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtu
b3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMo
KTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisgICAgPC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEi
PlRlc3QgdGFibGUgdHJhdmVyc2FsPGE+CisgICAgPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBs
ZWZ0OyB3aWR0aDogMTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsi
IGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIxIj4KKyAgICAgIDx0Ym9k
eT4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRv
cDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjEiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAg
ICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRl
cjsiPjxhIGlkPSIyIiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMyIgaHJlZj0i
YSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRk
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0i
NCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxp
Z246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjUiIGhyZWY9ImEiPmE8L2E+PC90
ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246
IGNlbnRlcjsiPjxhIGlkPSI2IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+Cisg
ICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI3IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAgICAg
ICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48
YSBpZD0iOCIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjkiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGJvZHk+CisgICAgPC90YWJsZT4KKyAg
ICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjEwMHB4Jz4KKyAgICAgIDxhIGlkPSJlbmQiIGhyZWY9
ImEiPkVuZCBvZiB0YWJsZSB0cmF2ZXJzYWwgdGVzdDxhPgorICAgIDwvZGl2PgorICAgIDxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRy
YXZlcnNhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FlMDhiYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRpbnktdGFibGUt
dHJhdmVyc2FsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACithCithCWEJYQorYQlhCWEK
K2EJYQlhCithCithCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIxIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiNCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgIjciCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
OCIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjki
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2Igor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicmlnaHQi
CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI2Igor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMyIKK1BB
U1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjIiCitQQVNT
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIxIgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi10
aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2ZXJzYWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzBkMDM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdGlueS10YWJsZS10cmF2
ZXJzYWwuaHRtbApAQCAtMCwwICsxLDkzIEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVz
dCBlbnN1cmVzIHRoZSBiYXNpYyB0YWJsZSB0cmF2ZXJzYWwgY29ycmVjdG5lc3Mgb2YKKyAgICBT
cGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobTogZm9jdXNhYmxlIGVsZW1lbnRzIGlu
IGEKKyAgICA8dGFibGU+IHNob3VsZCBiZSBhY2Nlc3NpYmxlLgorCisgICAgKiBQcmUtY29uZGl0
aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAg
ICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMg
dG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGFsb25nIHRoZSBl
bGVtZW50cyBpbiB0aGUgdGFibGUsIGV2ZW50dWFsbHkKKyAgICAgICBnb2luZyB0byBvdXRlciBz
b3V0aHdhcmQgYW5kIGVhc3R3YXJkIGxpbmtzLCBidXQgZ29pbmcKKyAgICAgICBiYWNrIGluc2lk
ZSB0aGUgdGFibGUgbGF0ZXIgb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0ic3BhdGlhbC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsK
KyAgICAgIFsiRG93biIsICIxIl0sCisgICAgICBbIkRvd24iLCAiNCJdLAorICAgICAgWyJEb3du
IiwgIjciXSwKKyAgICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAg
ICAgWyJSaWdodCIsICI4Il0sCisgICAgICBbIlJpZ2h0IiwgIjkiXSwKKyAgICAgIFsiVXAiLCAi
NiJdLAorICAgICAgWyJSaWdodCIsICJyaWdodCJdLAorICAgICAgWyJMZWZ0IiwgIjYiXSwKKyAg
ICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0IiwgIjIiXSwKKyAgICAgIFsiTGVmdCIsICIx
Il0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtu
b3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMo
KTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisgICAgPC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8YSBpZD0ic3RhcnQiIGhyZWY9ImEi
PmE8L2E+PGJyPgorICAgIDx0YWJsZT4KKyAgICAgIDx0Ym9keT4KKyAgICAgICAgPHRyPgorICAg
ICAgICAgIDx0ZCBzdHlsZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSIxIiBocmVmPSJhIj5h
PC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9
IjIiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTog
c21hbGw7Ij48YSBpZD0iMyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICA8L3RyPgorICAg
ICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9
IjQiIGhyZWY9ImEiPmE8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTog
c21hbGw7Ij48YSBpZD0iNSIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHls
ZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI2IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAg
ICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTog
c21hbGw7Ij48YSBpZD0iNyIgaHJlZj0iYSI+YTwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHls
ZT0iZm9udC1zaXplOiBzbWFsbDsiPjxhIGlkPSI4IiBocmVmPSJhIj5hPC9hPjwvdGQ+CisgICAg
ICAgICAgPHRkIHN0eWxlPSJmb250LXNpemU6IHNtYWxsOyI+PGEgaWQ9IjkiIGhyZWY9ImEiPmE8
L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGJvZHk+CisgICAgPC90YWJsZT4KKyAg
ICA8ZGl2IHN0eWxlPSdtYXJnaW4tdG9wOjhweCc+CisgICAgICA8YSBpZD0iZW5kIiBocmVmPSJh
Ij5hPGE+CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDUwcHg7IG1h
cmdpbi10b3A6LTcwcHgiPgorICAgICAgPGEgaWQ9InJpZ2h0IiBocmVmPSJodHRwOi8vd3d3Lmdv
b2dsZS5jb20iPmE8L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJl
Y3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtdW5pdC1vdmVyZmxvdy1hbmQtc2Nyb2xsLWluLWRpcmVjdGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhNTMxNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorU3RhcnQKK0VuZAorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIHRydWUgaXMgdHJ1ZQorUEFTUyBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiZW5kIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0
LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4tZGlyZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwt
aW4tZGlyZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Yz
NzQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXVuaXQtb3ZlcmZsb3ctYW5kLXNjcm9sbC1pbi1kaXJlY3Rpb24uaHRt
bApAQCAtMCwwICsxLDk2IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVz
IHRoZSBjb3JyZWN0bmVzcyB0aGUgZm9sbG93aW5nIFNwYXRpYWwgTmF2aWdhdGlvbgorICAgIChT
TmF2KSBhbGdvcml0aG0gZmVhdHVyZXMuCisKKyAgICAxKSBUaGVyZSBpcyBubyB1bml0IG92ZXJm
bG93IGluIHRoZSBTTmF2IGFsZ29yaXRobSB3aGlsZSBjYWxjdWxhdGluZworICAgICAgIHRoZSBi
ZXN0IG5vZGUgY2FuZGlkYXRlIHRvIG1vdmUgZm9jdXMgdG8uIFRvIHRlc3QgdGhhdCB0aGlzIHBh
Z2UKKyAgICAgICBwb3NpdGlvbnMgc29tZSBlbGVtZW50cyAxMDAwMDAwMCBwaXhlbHMgZmFyIGZy
b20gZWFjaCBvdGhlciAoZGlzdGFuY2UKKyAgICAgICB0aGF0IGNhbiBjb25zaWRlcmVkIGxhcmdl
IGVub3VnaCBmb3IgbW9zdCBvZiB0aGUgV2ViIFBhZ2VzIG9uIHRoZQorICAgICAgIEludGVybmV0
KS4KKworICAgIDIpIE1ha2Ugc3VyZSB0aGF0IGEgYmVzdCBmb2N1c2FibGUgY2FuZGlkYXRlIG9u
bHkgZ2V0cyBmb2N1c2VkCisgICAgICAgaWYgaXQgaXMgdmlzaWJsZSBpbiB0aGUgY3VycmVudGwg
Vmlld3BvcnQuIFNjcm9sbC1pbi1kaXJlY3Rpb24KKyAgICAgICBpcyBwZXJmb3JtZWQgb3RoZXJ3
aXNlLgorCisgICAgKiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05h
diBlbmFibGUvZGlzYWJsZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2Fk
cyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIp
IEF0dGVtcHQgdG8gbW92ZSBmb2N1cyBkb3duIHRvICJlbmQuIEFzIGl0IGlzIHRvbyBmYXIgYW5k
IG91dCBvZgorICAgICAgIHZpZXdwb3J0LCBmb2N1cyBjaGFuZ2Ugd2lsbCBub3QgaGFwcGVuIGFu
ZCBwYWdlIHdpbGwgYmUgc2Nyb2xsZWQKKyAgICAgICBhIHN0ZXAgZG93bi4KKyAgICAzKSBCeSBz
ZW5kaW5nIGFuICJFbmQiIGtleXByZXNzLCBwYWdlIGdldHMgc2Nyb2xsZWQgZG93biB0byBhIHBs
YWNlCisgICAgICAgd2hlcmUgdGhlICJlbmQiIG5vZGUgZ2V0cyB2aXNpYmxlIGluIHRoZSB2aWV3
cG9ydC4KKyAgICA0KSBTdGVwIF8xXyBpcyByYW4gYWdhaW4sIGFuZCAiZW5kIiBnZXRzIGZvY3Vz
ZWQuIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlhbC1uYXZpZ2F0
aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZTEgPSBbCisgICAgICBbIkRvd24iLCAic3Rh
cnQiXSwKKyAgICAgIFsiIiwgIiJdCisgICAgXTsKKworICAgIHZhciBtb3ZlVGFibGUyID0gWwor
ICAgICAgWyJEb3duIiwgImVuZCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IiwgMSk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3Qg
aXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIHNldFRpbWVvdXQoc3RlcDEgLCAwKTsKKyAg
ICAgIHNldFRpbWVvdXQoc3RlcDIgLCA1MDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAx
KCkKKyAgICB7CisgICAgICAvLyBBY3Rpb25zIGluICdtb3ZlVGFibGUxJyBzaG91bGQga2VlcCB0
aGUgZm9jdXMgaW4gdGhlIGN1cnJlbnRseQorICAgICAgLy8gZm9jdXNlZCBlbGVtZW50ICgnc3Rh
cnQnKSBvbmNlIHRoZSBiZXN0IGNhbmRpZGF0ZSAoJ2VuZCcpIGlzIG5vdAorICAgICAgLy8gdmlz
aWJsZSBpbiBjdXJyZW50IHZpZXdwb3J0LgorICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZTEpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICBzaG91bGRCZVRydWUo
U3RyaW5nKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wICE9IDApKTsKKworICAgICAgLy8gVGhlbiBp
dCBzY3JvbGxzIGRvd24gdG8gdGhlIGVuZCBvZiB0aGUgcGFnZSAuLi4KKyAgICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVuZCIpOworCisg
ICAgICAvLyBBbmQgJ21vdmVUYWJsZTInIHJlLXRyaWVzIHRvIG1vdmUgZm9jdXMgZG93bi4KKyAg
ICAgIHRlc3RNb3Zlcyhtb3ZlVGFibGUyLCB0ZXN0Q29tcGxldGVkKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7CisgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiPgorICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+U3RhcnQ8
L2E+CisgICAgPGRpdiBzdHlsZT0nbWFyZ2luLXRvcDoxMDAwMDAwMDBweCc+CisgICAgICAgIDxh
IGlkPSJlbmQiIGhyZWY9ImEiPkVuZDwvYT4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGViMGQzMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXZlcnRpY2FsLXN1
cGVycHJlY2VkZW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAordGVzdAordGVzdMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGVzdAordGVzdAordGVzdAordGVzdAordGVzdAorCisK
KworCit0ZXN0Cit0ZXN0CitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICI0IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgi
aWQiKSBpcyAiNiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgIjgiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICJlbmQiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICI3IgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBp
cyAiMiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZp
Z2F0aW9uL3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi12ZXJ0aWNhbC1zdXBlcnByZWNlZGVu
Y2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGU2ODBhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtdmVydGljYWwtc3VwZXJwcmVjZWRlbmNlLmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPGh0
bWw+CisgIDwhLS0KKyAgICBUaGlzIHRlc3QgZW5zdXJlcyB0aGUgc3VwZXIgcHJlY2VkZW5jZSBs
b2dpYyBvZiBTcGF0aWFsIE5hdmlnYXRpb24KKyAgICAoU05hdikgYWxnb3JpdGhtOiB0YXJnZXRz
IHdob3NlIG1pZGRsZSBmYWxscyBiZXR3ZWVuIHRoZSB0b3Agb3IgYm90dG9tCisgICAgb2YgdGhl
IGN1cnJlbnQgcmVjdCBhcmUgcHJlZmVyYWJseSB0byBtb3ZlIGZvY3VzIHRvLgorCisgICAgKiBQ
cmUtY29uZGl0aW9uczoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJs
ZS4KKworICAgICogTmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZv
Y3VzIGdvZXMgdG8gInN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIHBy
ZWZlcmFibHkgdG8gZWxlbWVudHMgcmlnaHQgdXAgb3IgYWJvdmUgdGhlCisgICAgICAgY3VycmVu
dCBmb2N1c2VkIGVsZW1lbnQsIGV2ZW4gd2hlbiB0aGVyZSBhcmUgc29tZSBvdGhlciBjbG9zZXIK
KyAgICAgICBidXQgbm90IHZlcnRpY2FsbHkgYWxpZ25lZCBlbGVtZW50cyBpbiB0aGUgc2FtZSBk
aXJlY3Rpb24uCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0ic3BhdGlh
bC1uYXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIG1vdmVUYWJsZSA9IFsKKyAgICAgIFsiRG93
biIsICI0Il0sCisgICAgICBbIkRvd24iLCAiNiJdLAorICAgICAgWyJEb3duIiwgIjgiXSwKKyAg
ICAgIFsiRG93biIsICJlbmQiXSwKKyAgICAgIFsiVXAiLCAiNyJdLAorICAgICAgWyJVcCIsICIy
Il0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCh0cnVlKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0VGFiVG9MaW5rc1ByZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkKKyAgICB7CisgICAgICAvLyBzdGFydGluZyB0aGUgdGVzdCBpdHNlbGY6IGdldCB0byBhIGtu
b3duIHBsYWNlLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMo
KTsKKworICAgICAgdGVzdE1vdmVzKG1vdmVUYWJsZSwgdGVzdENvbXBsZXRlZCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworICAgIDwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6
IDQwcHg7IHRleHQtYWxpZ246IGxlZnQ7Ij4KKyAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0
OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSJzdGFydCIgaHJlZj0iYSI+dGVzdDxicj48L2E+Cisg
ICAgICA8L2Rpdj4KKyAgICAgIDxhIGlkPSIyIiBocmVmPSJhIj50ZXN0PC9hPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOzxhIGlkPSIzIiBocmVmPSJhIj50ZXN0PC9hPjxicj4KKyAgICAgIDxkaXYgc3R5
bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI0IiBocmVmPSJhIj50ZXN0
PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDgw
cHg7Ij4KKyAgICAgICAgPGEgaWQ9IjUiIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICAgICAgPC9k
aXY+CisgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgorICAgICAgICA8YSBp
ZD0iNiIgaHJlZj0iYSI+dGVzdDxicj48L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDxhIGlkPSI3
IiBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgICAgIDxicj48YnI+PGJyPjxicj4KKyAgICAgIDxk
aXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgICAgIDxhIGlkPSI4IiBocmVmPSJh
Ij50ZXN0PGJyPjwvYT4KKyAgICAgIDwvZGl2PgorICAgICAgPGEgaWQ9ImVuZCIgaHJlZj0iYSI+
dGVzdDxicj48L2E+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
IDwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdXRp
bHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAxMTllYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9z
cGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIE9yaWdp
bmFsIGF1dGhvcjogRG91ZyBUdXJuZXIgPGRvdWcudHVybmVyQGdtYWlsLmNvbT4KKyAqCisgKiBD
b250cmlidXRvcnM6CisgKiAgICAgKiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9y
Zz4KKyAqKi8KKwordmFyIF9tb3ZlVGFibGU7Cit2YXIgX21vdmVUYWJsZUluZGV4ID0gMDsKK3Zh
ciBfY29tcGxldGVkQ2FsbGJhY2sgPSBudWxsOworCitmdW5jdGlvbiB0ZXN0TW92ZXModGFibGUs
IGNvbXBsZXRlZENiKSB7CisgICAvLyBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIs
IF92ZXJpZnlBbmRBZHZhbmNlLCB0cnVlKTsKKworICBfbW92ZVRhYmxlID0gdGFibGU7CisgIF9t
b3ZlVGFibGVJbmRleCA9IDA7CisgIF9jb21wbGV0ZWRDYWxsYmFjayA9IGNvbXBsZXRlZENiOwor
ICBfbW92ZSgpOworfQorCitmdW5jdGlvbiBfbmV4dE1vdmUoKQoreworICBfbW92ZVRhYmxlSW5k
ZXgrKzsKKworICAvLyBXaGVuIGEgdGFibGUgZW5kcyB3aXRoICJET05FIiwgY2FsbCB0aGUgY29t
cGxldGlvbiBjYWxsYmFjay4KKyAgaWYgKF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXSA9
PSAiRE9ORSIpCisgICAgaWYgKF9jb21wbGV0ZWRDYWxsYmFjaykgeworICAgICAgX2NvbXBsZXRl
ZENhbGxiYWNrKCk7CisgICAgICByZXR1cm47CisgICAgfQorCisgIC8vIHdoZW4gYSB0YWJsZSBo
YXMgYW4gZW1wdHkgZWxlbWVudCwgZW5kIHRoZSBtb3Zlcy4KKyAgaWYgKF9tb3ZlVGFibGVbX21v
dmVUYWJsZUluZGV4XVswXSA9PSAiIikKKyAgICByZXR1cm47CisKKyAgX21vdmUoKTsKK30KKwor
ZnVuY3Rpb24gX21vdmUoKQoreworICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgn
S2V5Ym9hcmRFdmVudHMnKTsKKyAgZXZlbnQuaW5pdEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB0
cnVlLCB0cnVlLCBkb2N1bWVudC5kZWZhdWx0VmlldywgX21vdmVUYWJsZVtfbW92ZVRhYmxlSW5k
ZXhdWzBdLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOworICBkb2N1bWVu
dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKworICBzZXRUaW1lb3V0KCBfdmVyaWZ5QW5kQWR2YW5j
ZSAsIDEwMCk7Cit9CisKK2Z1bmN0aW9uIF92ZXJpZnlBbmRBZHZhbmNlKCkKK3sKKyAgdmFyIGRp
cmVjdGlvbiA9IF9tb3ZlVGFibGVbX21vdmVUYWJsZUluZGV4XVswXTsKKyAgdmFyIGV4cGVjdGVk
SUQgPSBfbW92ZVRhYmxlW19tb3ZlVGFibGVJbmRleF1bMV07CisKKyAgdmFyIGkgPSAwOworICB2
YXIgbWFpbkZyYW1lSGFzRm9jdXMgPSB0cnVlOworICBmb3IoOyBpIDwgZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZnJhbWVzLmxlbmd0aDsgaSsrKQorICAgIGlmIChkb2N1bWVudC5kZWZhdWx0Vmlldy5m
cmFtZXNbaV0uZG9jdW1lbnQuaGFzRm9jdXMoKSkgeworICAgICAgbWFpbkZyYW1lSGFzRm9jdXMg
PSBmYWxzZTsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAvLyB0aGlzIHN1cHBvcnQgZnJhbWVz
IG5lc3RlZCBpbiBvbmUgbGV2ZWwgZGVlcCBvbmx5LgorICBpZiAobWFpbkZyYW1lSGFzRm9jdXMp
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZShcImlkXCIpIiwgZXhwZWN0ZWRJRCk7CisgIGVsc2UKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImRvY3VtZW50LmRlZmF1bHRWaWV3LmZyYW1lc1siICsgaSArICJdLmRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiaWRcIikiLCBleHBlY3RlZElEKTsKKworICBf
bmV4dE1vdmUoKTsKK30KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA3NWQ5NWFiLi5h
NjRjNTM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTg2OCw4ICs1ODY4LDExIEBA
IGZhc3QvbG9hZGVyL2FwaS10ZXN0LW5ldy13aW5kb3ctZGF0YS1sb2FkLWJhc2UtdXJsLmh0bWwK
ICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTEyNwogZmFz
dC9tdWx0aWNvbC9jbGllbnQtcmVjdHMuaHRtbAogCiAjIEZhaWx1cmUgbWF5IGJlIHJlbGF0ZWQg
dG8gRFJUOyBjb25zb2xlIG1lc3NhZ2UgYWxzbyBoYXMgZnVsbCBmaWxlCiAjIHBhdGggaW5zdGVh
ZCBvZiBqdXN0IHRoZSBmaWxlIG5hbWUKICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNTA4NgogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1u
by1maWxlLWFjY2Vzcy5odG1sCiBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW5v
bmV4aXN0ZW50LWZpbGUuaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVt
cFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbgor
ZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmlu
ZGV4IDA1NzJjZGIuLjQ0NGE3M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xMTMs
OCArMTEzLDExIEBAIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tY29va2llLmh0bWwKIGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tcmVmZXJlci5odG1sCiAKICMgRmFpbHMgaW50ZXJtaXR0ZW50bHkgb24g
TGVvcGFyZCBhbmQgVGlnZXIuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTE1NAogc3RvcmFnZS9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC5odG1sCiAKICMg
QWNjZXB0IGhlYWRlciBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyCiBodHRwL3Rlc3RzL21pc2Mv
aW1hZ2UtY2hlY2tzLWZvci1hY2NlcHQuaHRtbAorCisjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2
aWdhdGlvbgorZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZAppbmRleCBkYmM3MGFlLi5lYTA4ZmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAg
LTUwODUsOCArNTA4NSwxMSBAQCBmYXN0L2NhbnZhcy9kcmF3SW1hZ2Utd2l0aC1uZWdhdGl2ZS1z
b3VyY2UtZGVzdGluYXRpb24uaHRtbAogaHR0cC90ZXN0cy9taXNjL2ltYWdlLWNoZWNrcy1mb3It
YWNjZXB0Lmh0bWwKIAogIyBbUXRdIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qt
bm9uZXhpc3RlbnQtZmlsZS5odG1sIGZhaWxzIChEUlQgc2lkZWVmZmVjdCkKICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MDg2CiBmYXN0L3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LW5vLWZpbGUtYWNjZXNzLmh0bWwKIAogIyBOZWVkcyBwbGF0Zm9ybSBz
cGVjaWZpYyBBUEkgaW1wbGVtZW50ZWQgaW4gRFJULCBwcm9iYWJseSBub3QgcmVsZXZhbnQgZm9y
IG5vbi1NYWMgYW5kIG5vbi1XaW5kb3dzIHBvcnRzCiBmYXN0L2xvYWRlci9hcGktdGVzdC1uZXct
d2luZG93LWRhdGEtbG9hZC1iYXNlLXVybC5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25h
bGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBO
YXZpZ2F0aW9uCitmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKaW5kZXggMThlYmI2OC4uOTMwZTlkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKQEAgLTc1OSw4ICs3NTksMTEgQEAgbWVkaWEvdmlkZW8tZGlzcGxheS1hc3BlY3QtcmF0aW8u
aHRtbAogaHR0cC90ZXN0cy9taXNjL2ltYWdlLWNoZWNrcy1mb3ItYWNjZXB0Lmh0bWwKIAogIyBU
ZXN0cyB0aW1lb3V0OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUw
NDEKIHdlYnNvY2tldC90ZXN0cy9mcmFtZS1sZW5ndGhzLmh0bWwKIHdlYnNvY2tldC90ZXN0cy9z
aW1wbGUtc3RyZXNzLmh0bWwKIAogIyBOZWVkcyBwbGF0Zm9ybSBzcGVjaWZpYyBBUEkgaW1wbGVt
ZW50ZWQgaW4gRFJULCBwcm9iYWJseSBub3QgcmVsZXZhbnQgZm9yIG5vbi1NYWMgYW5kIG5vbi1X
aW5kb3dzIHBvcnRzCiBmYXN0L2xvYWRlci9hcGktdGVzdC1uZXctd2luZG93LWRhdGEtbG9hZC1i
YXNlLXVybC5odG1sCisKKyMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVy
VHJlZSB0byBoYW5kbGUgZW5hYmxlL2Rpc2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uCitmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVkMzFkYy4uNGEwZWUyZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMTIgKzEsMzMgQEAK
IDIwMTAtMDItMTggIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgICAgICAgUGF0Y2ggYnkgQW50b25p
byBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5jb20+CisKKyAgICAgICAgRXh0ZW5kIGtleWJvYXJk
IG5hdmlnYXRpb24gdG8gYWxsb3cgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2NjIKKworICAgICAgICBUZXN0
czogZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaG9yaXpvbnRhbC1zdXBlcnBy
ZWNlZGVuY2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLW5vLWZvY3VzYWJsZS1jb250ZW50Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LWlmcmFtZS1uby1zY3JvbGxhYmxl
LWNvbnRlbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLXdpdGgtb2Zmc2NyZWVuLWZvY3VzYWJsZS1lbGVtZW50Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXRhYmxlLXRy
YXZlcnNhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi10aW55LXRhYmxlLXRyYXZlcnNhbC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2
ZW50cy9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi11bml0LW92ZXJmbG93LWFuZC1zY3JvbGwtaW4t
ZGlyZWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LXZlcnRpY2FsLXN1cGVycHJlY2VkZW5jZS5odG1sCisKKyAgICAgICAgKiBtYW51
YWwtdGVzdHMvc3BhdGlhbC1uYXZpZ2F0aW9uL2xpbmtzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IG1hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vc3BhdGlhbC1uYXZpZ2F0aW9uLXRlc3Qt
Y2FzZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdh
dGlvbi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlczIuaHRtbDogQWRkZWQuCisKKzIwMTAt
MDItMTggIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgQW50b25pbyBHb21l
cyA8dG9uaWtpdG9vQHdlYmtpdC5jb20+CiAgICAgICAgIEJhc2VkIG9uIHRoZSBpbml0aWFsIHdv
cmsgb2YgTWFyY28gQmFyaXNpb25lIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVrPgog
CiAgICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFs
IG5hdmlnYXRpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NjYyCiAKICAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBjb3JlIGxvZ2lj
IG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJlIFsxXS4KICAgICAgICAgSXQgaW1w
cm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5IGV4dGVuZGluZyB0
aGUgYmFzaWMga2V5Ym9hcmQKICAgICAgICAgbmF2aWdhdGlvbiBjdXJyZW50bHkgYXZhaWxhYmxl
IChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbCBiL1dl
YkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9saW5rcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBkNmVkN2MKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL21hbnVhbC10ZXN0cy9zcGF0aWFsLW5hdmlnYXRpb24vbGlua3MuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+PC9oZWFkPgorPGJvZHk+Cis8cD4KKzxhIGhyZWY9ImEi
PmE8L2E+Cis8YSBocmVmPSJhIj5hPC9hPgorPGEgaHJlZj0iYSI+YTwvYT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlv
bi9zcGF0aWFsLW5hdmlnYXRpb24tdGVzdC1jYXNlcy5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVz
dHMvc3BhdGlhbC1uYXZpZ2F0aW9uL3NwYXRpYWwtbmF2aWdhdGlvbi10ZXN0LWNhc2VzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzI4MzQ2ZAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3NwYXRpYWwtbmF2aWdhdGlvbi9zcGF0aWFsLW5h
dmlnYXRpb24tdGVzdC1jYXNlcy5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgorICA8dGl0bGU+U3BhdGlhbCBOYXZpZ2F0aW9u
IFRlc3QgQ2FzZXM8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IHN0eWxlPSJtYXJnaW4t
bGVmdDogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CisgIDxoMSBzdHlsZT0idGV4dC1hbGln
bjogbGVmdDsiPlNwYXRpYWwgTmF2aWdhdGlvbiBGdW48L2gxPgorICA8aDIgc3R5bGU9InRleHQt
YWxpZ246IGxlZnQ7Ij4zeDMgQ2VudGVyZWQgVGFibGUgVGVzdDwvaDI+Cis8L2Rpdj4KKzx0YWJs
ZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCU7IG1hcmdpbi1sZWZ0OiBhdXRv
OyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3Bh
Y2luZz0iMiI+CisgIDx0Ym9keT4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90
ZD4KKyAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwv
dGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAg
ICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+
PGEgaHJlZj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+Cisg
ICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7
IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGhyZWY9ImEiPnRlc3Q8L2E+PC90ZD4KKyAgICAgIDx0
ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJl
Zj0iYSI+dGVzdDwvYT48L3RkPgorICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9w
OyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBocmVmPSJhIj50ZXN0PC9hPjwvdGQ+CisgICAgPC90
cj4KKyAgPC90Ym9keT4KKzwvdGFibGU+Cis8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+PGJyPgorICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0
OyI+CisgICAgPGgyPlZlcnRpY2FsIFNpbmUgVGVzdDwvaDI+PGJyPgorICA8L2Rpdj4KKyAgPGRp
diBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9h
PgorICAgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+PGEgaHJlZj0iYSI+dGVzdDxi
cj48L2E+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogODBweDsiPgorICAg
IDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6IDQwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAgPC9kaXY+Cisg
IDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBw
eDsiPgorICAgIDxhIGhyZWY9ImEiPnRlc3Q8YnI+PC9hPgorICA8L2Rpdj4KKyAgPGRpdiBzdHls
ZT0ibWFyZ2luLWxlZnQ6IDgwcHg7Ij4KKyAgICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4KKyAg
PC9kaXY+CisgIDxkaXYgc3R5bGU9Im1hcmdpbi1sZWZ0OiA0MHB4OyI+CisgICAgPGEgaHJlZj0i
YSI+dGVzdDxicj48L2E+CisgIDwvZGl2PgorICA8YSBocmVmPSJhIj50ZXN0PGJyPjwvYT4mbmJz
cDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsKKyAgPGEgaHJlZj0iYSI+dGVzdDxicj48L2E+CisKKyAgPGgyPkluY3JlYXNp
bmcgc2VudGVuY2UgbGVuZ3RoPC9oMj4KKyAgPGEgaHJlZj0iYSI+SDwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvPGJyPjwvYT4KKyAgPGEgaHJlZj0icCI+SG93PGJyPjwvYT4KKyAgPGEgaHJlZj0i
cCI+SG93IDxicj48L2E+CisgIDxhIGhyZWY9InAiPkhvdyBOPC9hPjxicj4KKyAgPGEgaHJlZj0i
cCI+SG93IE5vPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdzwvYT48YnI+CisgIDxhIGhy
ZWY9InAiPkhvdyBOb3cgPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCPC9hPjxicj4K
KyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cg
QnJvPC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE5vdyBCcm93bjwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd24g
PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93biBDPC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93IE5vdyBCcm93biBDbzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJv
d24gQ293PC9hPjxicj4KKyAgPGJyPgorICA8aDI+U3BsaXQgc2VudGVuY2U8YnI+PC9oMj4KKyAg
PGJyPgorICA8YSBocmVmPSJwIj5IPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDs8YSBocmVmPSJwIj5vdyBOb3cgQnJv
d24gQ293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG88L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dyBOb3cgQnJvd24gQ293PC9hPjxicj4KKyAgPGEgaHJl
Zj0icCI+SG93PC9hPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPk5vdyBCcm93biBDb3c8L2E+PGJyPgor
ICA8YSBocmVmPSJwIj5Ib3cgTjwvYT4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5vdyBCcm93biBDb3c8L2E+PGJy
PgorICA8YSBocmVmPSJwIj5Ib3cgTm88L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+dyBCcm93biBDb3c8L2E+
PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IDwvYT4mbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPkJyb3du
IENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQjwvYT4gJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj5y
b3duIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnI8L2E+ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93
biBDb3c8L2E+PGJyPgorICA8YSBocmVmPSJwIj5Ib3cgTm93IEJybzwvYT4gJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+d24g
Q293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5vdyBCcm93PC9hPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyA8YSBocmVmPSJwIj5uIENvdzwvYT48YnI+CisgIDxhIGhyZWY9InAiPkhvdyBOb3cgQnJvd248
L2E+ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsm
bmJzcDsmbmJzcDsgPGEgaHJlZj0icCI+Q293PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93IE5v
dyBCcm93biBDPC9hPiAmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7Jm5ic3A7IDxhIGhyZWY9InAiPm93PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+SG93
IE5vdyBCcm93biBDbzwvYT4gJm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyZuYnNwOyA8YSBocmVmPSJwIj53PC9hPjxicj4KKyAgPGEgaHJlZj0icCI+
SG93IE5vdyBCcm93biBDb3c8L2E+PGJyPjxicj4KKyAgPGgyPkxpbmUgV3JhcCBUZXN0PC9oMj48
YnI+CisgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDM5M3B4OyBoZWln
aHQ6IDcycHg7IiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMiI+Cisg
ICAgPHRib2R5PgorICAgICAgPHRyPgorICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7Ij4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0iaHVnZSI+CisgICAgICAgICAgICA8YSBo
cmVmPSJhIj5XaGljaCBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW5zdCBkbyB5b3UgbGlrZSB0aGUg
bW9zdCwgb25lIGlzIGcsIG9uZSBpcyBwaSwgYW5kIHRoZSBvdGhlciBpcyBlLiA8L2E+PGJyPgor
ICAgICAgICAgIDwvc3Bhbj48L3RkPgorICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWdu
OiB0b3A7Ij4KKyAgICAgICAgICA8YSBocmVmPSJhIj4zLjE0PC9hPjxicj4KKyAgICAgICAgICA8
YSBocmVmPSJhIj4yLjcxPC9hPjxicj4KKyAgICAgICAgICA8YSBocmVmPSJhIj42LjY3PC9hPjxi
cj4KKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKyAgPC90YWJsZT48
YnI+CisgIDxoMj5KYXZhc2NyaXB0IEZvY3VzL0JsdXIgVGVzdDwvaDI+CisgICAgV2hlbiBnb2lu
ZyB0byBhbnkgbGluayBmcm9tIHRoZSBmb2xsb3dpbmcgbGluaywgeW91IHNob3VsZCBzZWUgYSBk
aWFsb2cuPGJyPjxicj4KKyAgPGEgaHJlZj0iYSIgb25ibHVyPSdhbGVydCgib25CbHVydCIpJz5U
ZXN0PC9hPjxicj48YnI+CisKKyAgPGgyPkZyYW1lU2V0czwvaDI+IDxicj4KKyAgPGZyYW1lc2V0
IGNvbHM9IjI1JSwyNSUsKiI+CisgICAgPGZyYW1lIHNyYz0ibGlua3MuaHRtbCIvPgorICAgIDxm
cmFtZSBzcmM9ImxpbmtzLmh0bWwiLz4KKyAgICA8ZnJhbWUgc3JjPSJsaW5rcy5odG1sIi8+Cisg
IDwvZnJhbWVzZXQ+CisgIDxicj48YnI+CisKKyAgPGgyPklGcmFtZXM8L2gyPjxicj4KKyAgPGlm
cmFtZSBzcmM9ImxpbmtzLmh0bWwiPjwvaWZyYW1lPjxicj48YnI+PGJyPgorICA8aDI+RElWczwv
aDI+PGJyPgorICA8ZGl2IGlkPXY+CisgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8ZGl2IGlk
PSJEaXYxIj4KKyAgICAgICAgPGEgaHJlZj0iYSI+YTwvYT4KKyAgICA8L2Rpdj4KKyAgICA8YSBo
cmVmPSJhIj5hPC9hPgorICA8L2Rpdj48YnI+PGJyPgorICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxh
IGhyZWY9Imxhc3QiPmxhc3Q8L2E+Cis8L2JvZHk+Cis8L2h0bWw+Ci0tIAoxLjYuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49463</attachid>
            <date>2010-02-24 19:59:32 -0800</date>
            <delta_ts>2010-02-25 06:34:54 -0800</delta_ts>
            <desc>Add directional navigation to WebCore (v15)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>46248</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSA2NmJlZjNmZGYyNDA5OTllMzI0M2I2NTg4ZGNmN2JhMWNmOTRjYmZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNCBGZWIgMjAxMCAxNjowMDo1MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl
IGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZlYXR1cmUgWzFdLgpJdCBp
bXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IG9mIFdlYkNvcmUgYnkgZXh0ZW5kaW5n
IHRoZSBiYXNpYyBrZXlib2FyZApuYXZpZ2F0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgKGJhc2Vk
IG9uIFRhYiBmb3J3YXJkIGFuZCBiYWNrd2FyZCkgd2l0aCB0aGUKYWRkaXRpb24gb2YgYSB0d28t
ZGltZW5zaW9uYWwgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBieSB1c2luZyBMZWZ0LCBSaWdodCwg
VXAgYW5kCkRvd24gYXJyb3cga2V5cyB0byBtb3ZlIHRvIHRoZSAibmVhcmVzdCIgZWxlbWVudCBp
biB0aGUgY29ycmVzcG9uZGluZyBkaXJlY3Rpb24uCgpIaWdobGlnaHRzOgoqIEZlYXR1cmUgaXMg
dHVybmVkIG9mZiBieSBkZWZhdWx0IGluIFNldHRpbmdzLiBQb3J0IHNwZWNpZmljIEFQSXMgbmVl
ZCB0byBiZSBhZGRlZAogIGZvciB0b2dnbGluZyBpdCBvbi9vZmYuCiogT25seSBlbGVtZW50cyB2
aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4g
SWYgdGhlCiAgIm5lYXJlc3QiIGlzIG5vdCBpbiB2aWV3cG9ydCBkaW1lbnNpb25zLCB0aGVuIGEg
c2Nyb2xsLWluLWRpcmVjdGlvbiBhY3Rpb24gaXMKICBwZXJmb3JtZWQuCiogVGhlIGxheW91dCB0
ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lwcGVkIGZvciBNYWMs
IFdpbiBhbmQgR3RrKS4KCktub3duIGlzc3VlcyAodG8gYmUgY292ZXJlZCBpbiBmb2xsb3ctdXAg
YnVncyk6CiogQWRkIHBvcnQgc3BlY2lmaWMgaG9va3MgdG8gZWFjaCBEUlQgdG8gZW5hYmxlL2Rp
c2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uLgoqIFN1cHBvcnQgZm9yIHNwYXRpYWwgbmF2aWdhdGlv
biB0aHJvdWdoIGZvcm0gZWxlbWVudHMgKDxpbnB1dD4sIDxzZWxlY3Q+LCBldGMpCiAgaXMgYmUg
YWRkZWQuCiogTWFrZSBuYXZpZ2F0aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkg
d29ya3Mgd2l0aCBhcnJvd3Mga2V5cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCku
CiogTWFrZSBpdCBzdXBwb3J0IG1vZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0g
aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KCiogQW5kcm9p
ZC5tazoKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3JlLmd5cGk6CiogV2ViQ29yZS5wcm86Ciog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgoo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgooV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpmb2N1c0RpcmVjdGlvbkZvcktleSk6CihXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIu
aDoKKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OmFkdmFuY2VGb2N1cyk6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0lu
RG9jdW1lbnRPcmRlcik6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0Rp
cmVjdGlvbmFsbHkpOgooV2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZkNsb3Nlcik6CihX
ZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgoo
V2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlv
bik6CiogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6CihX
ZWJDb3JlOjopOgoqIHBhZ2UvU2V0dGluZ3MuY3BwOgooV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRp
bmdzKToKKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoq
IHBhZ2UvU2V0dGluZ3MuaDoKKFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCk6CiogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6IEFkZGVkLgooV2ViQ29yZTo6
ZGlzdGFuY2VJbkRpcmVjdGlvbik6CihXZWJDb3JlOjpyZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3RE
b2N1bWVudCk6CihXZWJDb3JlOjphbGlnbm1lbnRGb3JSZWN0cyk6CihXZWJDb3JlOjppc0hvcml6
b250YWxNb3ZlKToKKFdlYkNvcmU6OmFyZVJlY3RzRnVsbHlBbGlnbmVkKToKKFdlYkNvcmU6OmFy
ZVJlY3RzUGFydGlhbGx5QWxpZ25lZCk6CihXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2UpOgooV2Vi
Q29yZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6aGFzT2Zmc2NyZWVuUmVjdCk6CihX
ZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CihXZWJDb3JlOjppc0luUm9vdERvY3VtZW50KToK
KFdlYkNvcmU6OmRlZmxhdGVJZk92ZXJsYXBwZWQpOgoqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24u
aDogQWRkZWQuCihXZWJDb3JlOjopOgooV2ViQ29yZTo6Rm9jdXNDYW5kaWRhdGU6OkZvY3VzQ2Fu
ZGlkYXRlKToKLS0tCiBXZWJDb3JlL0FuZHJvaWQubWsgICAgICAgICAgICAgICAgICAgIHwgICAg
MSArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgIHwgICA3NCArKysrKwog
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiB8ICAgIDggKwogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAg
ICB8ICAgNTMgKysrKy0KIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCAgICAgICAgICAgfCAg
ICA0ICsKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwICAgICAgfCAgMTYwICsrKysr
KysrKysrCiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggICAgICAgIHwgICAgOCArCiBX
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgIHwgICAgOSArLQogV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcCAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmggICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcCAgICB8ICA0ODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBXZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCAgICAgIHwgIDExMSArKysrKysrKwogMTUgZmls
ZXMgY2hhbmdlZCwgOTI0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IGMyNDExYjEuLmIxZDJh
NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQu
bWsKQEAgLTM1MSw2ICszNTEsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklM
RVMpIFwKIAlwYWdlL1NjcmVlbi5jcHAgXAogCXBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKIAlw
YWdlL1NldHRpbmdzLmNwcCBcCisJcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXAogCXBhZ2Uv
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCiAJcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgXAog
CXBhZ2UvV29ya2VyTmF2aWdhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjZTc3NTAuLmExOGZjNmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcg
QEAKKzIwMTAtMDItMTggIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgQW50
b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisgICAgICAgIEJhc2VkIG9uIHRoZSBp
bml0aWFsIHdvcmsgb2YgTWFyY28gQmFyaXNpb25lIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3Jh
LmNvLnVrPgorCisgICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRp
cmVjdGlvbmFsIG5hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NjYyCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBj
b3JlIGxvZ2ljIG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJlIFsxXS4KKyAgICAg
ICAgSXQgaW1wcm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5IGV4
dGVuZGluZyB0aGUgYmFzaWMga2V5Ym9hcmQKKyAgICAgICAgbmF2aWdhdGlvbiBjdXJyZW50bHkg
YXZhaWxhYmxlIChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCisg
ICAgICAgIGFkZGl0aW9uIG9mIGEgdHdvLWRpbWVuc2lvbmFsIGRpcmVjdGlvbmFsIG5hdmlnYXRp
b24gYnkgdXNpbmcgTGVmdCwgUmlnaHQsIFVwIGFuZAorICAgICAgICBEb3duIGFycm93IGtleXMg
dG8gbW92ZSB0byB0aGUgIm5lYXJlc3QiIGVsZW1lbnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZGly
ZWN0aW9uLgorCisgICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVyZSBpcyB0dXJu
ZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gU2V0dGluZ3MuIFBvcnQgc3BlY2lmaWMgQVBJcyBuZWVkIHRv
IGJlIGFkZGVkCisgICAgICAgICAgZm9yIHRvZ2dsaW5nIGl0IG9uL29mZi4KKyAgICAgICAgKiBP
bmx5IGVsZW1lbnRzIHZpZXdlZCBpbiB0aGUgY3VycmVudCB2aWV3cG9ydCBjYW4gaGF2ZSBmb2N1
cyBtb3ZlIHRvIGl0LiBJZiB0aGUKKyAgICAgICAgICAibmVhcmVzdCIgaXMgbm90IGluIHZpZXdw
b3J0IGRpbWVuc2lvbnMsIHRoZW4gYSBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcworICAg
ICAgICAgIHBlcmZvcm1lZC4KKworICAgICAgICBLbm93biBpc3N1ZXMgKHRvIGJlIGNvdmVyZWQg
aW4gZm9sbG93LXVwIGJ1Z3MpOgorICAgICAgICAqIEFkZCBwb3J0IHNwZWNpZmljIGhvb2tzIHRv
IGVhY2ggRFJUIHRvIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbi4KKyAgICAgICAg
KiBTdXBwb3J0IGZvciBzcGF0aWFsIG5hdmlnYXRpb24gdGhyb3VnaCBmb3JtIGVsZW1lbnRzICg8
aW5wdXQ+LCA8c2VsZWN0PiwgZXRjKQorICAgICAgICAgIGlzIGJlIGFkZGVkLgorICAgICAgICAq
IE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtzIHdp
dGggYXJyb3dzIGtleXMgb25seQorICAgICAgICAgICh1cCwgZG93biwgcmlnaHQgYW5kIGxlZnQp
LgorICAgICAgICAqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQgU2hp
ZnQpLgorCisgICAgICAgIFsxXSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYXRpYWxf
bmF2aWdhdGlvbgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpm
b2N1c0RpcmVjdGlvbkZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRl
ZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoK
KyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkpOgorICAgICAgICAo
V2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZkNsb3Nlcik6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVj
dGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L0ZvY3VzRGlyZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpp
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGlzdGFuY2VJbkRpcmVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3REb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjphbGlnbm1lbnRGb3JSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpp
c0hvcml6b250YWxNb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OmFyZVJlY3RzRnVsbHlBbGlnbmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OmFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZCk6CisgICAgICAg
IChXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6aXNSZWN0SW5E
aXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aGFzT2Zmc2NyZWVuUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0luUm9v
dERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmxhdGVJZk92ZXJsYXBwZWQpOgorICAg
ICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjopOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDYW5kaWRhdGU6OkZvY3VzQ2FuZGlkYXRlKToK
KwogMjAxMC0wMi0yNCAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDI5NzVmZmUuLmNkNmFj
OGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMTQxMyw2ICsxNDEzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmggXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwIFwKKwlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAJ
V2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgXAogCVdlYkNvcmUvcGFnZS9V
c2VyQ29udGVudFVSTFBhdHRlcm4uaCBcCiAJV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuaCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDc4YzFlMWIuLjhiZmE0NDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODc2LDYgKzE4NzYsOCBAQAogICAgICAgICAg
ICAgJ3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGlu
Z3MuY3BwJywKICAgICAgICAgICAgICdwYWdlL1NldHRpbmdzLmgnLAorICAgICAgICAgICAgJ3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uaCcsCisgICAgICAgICAgICAncGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaCcsCiAgICAgICAgICAg
ICAncGFnZS9Vc2VyU2NyaXB0LmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODFhYzEzMC4uZDU3NDZiNyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC03NzIsNiAr
NzcyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgXAogICAg
IHBhZ2UvU2NyZWVuLmNwcCBcCiAgICAgcGFnZS9TZXR0aW5ncy5jcHAgXAorICAgIHBhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwIFwKICAgICBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAg
XAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuY3BwIFwKICAgICBwYWdlL1hTU0F1ZGl0b3IuY3Bw
IFwKQEAgLTE0NzUsNiArMTQ3Niw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvU2NyZWVuLmgg
XAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaCBcCiAgICAgcGFnZS9TZXR0aW5ncy5oIFwKKyAg
ICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuaCBc
CiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGFnZS9YU1NBdWRpdG9yLmggXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOGQ2YjU1Ny4uYjFkOWRkZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMDk3Myw2ICsyMDk3Mywx
NCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BhdGlhbE5hdmlnYXRpb24uaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IGMzZDFlNWMuLmM3OGQ2MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0yMTY2LDEwICsyMTY2LDE1IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRF
dmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAgICAgICAg
ICAgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uID0gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoZXZl
bnQtPmtleUlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uICE9IEZvY3Vz
RGlyZWN0aW9uTm9uZSkKKyAgICAgICAgICAgICAgICBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIo
ZGlyZWN0aW9uLCBldmVudCk7CisgICAgICAgIH0KIAotICAgICAgIC8vIHByb3ZpZGVzIEtCIG5h
dmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2Vycwot
ICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJm
YWNlRW5hYmxlZCgpKQotICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50
KGV2ZW50KTsgICAgICAgCisgICAgICAgIC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNl
bGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2VycworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkK
KyAgICAgICAgICAgIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoZXZlbnQpOwogICAg
IH0KICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkg
ewogICAgICAgICBtX2ZyYW1lLT5lZGl0b3IoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChldmVudCk7
CkBAIC0yMTgwLDYgKzIxODUsMjcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2Fy
ZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICB9CiB9CiAKK0ZvY3VzRGly
ZWN0aW9uIEV2ZW50SGFuZGxlcjo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3Ry
aW5nJiBrZXlJZGVudGlmaWVyKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBEb3duLCAoIkRvd24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIFVwLCAoIlVwIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBMZWZ0LCAoIkxlZnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIFJpZ2h0LCAoIlJpZ2h0IikpOworCisgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9j
dXNEaXJlY3Rpb25Ob25lOworCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gRG93bikKKyAgICAg
ICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Eb3duOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZp
ZXIgPT0gVXApCisgICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uVXA7CisgICAgZWxzZSBp
ZiAoa2V5SWRlbnRpZmllciA9PSBMZWZ0KQorICAgICAgICByZXRWYWwgPSBGb2N1c0RpcmVjdGlv
bkxlZnQ7CisgICAgZWxzZSBpZiAoa2V5SWRlbnRpZmllciA9PSBSaWdodCkKKyAgICAgICAgcmV0
VmFsID0gRm9jdXNEaXJlY3Rpb25SaWdodDsKKworICAgIHJldHVybiByZXRWYWw7Cit9CisKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lz
RXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbikgY29u
c3QKIHsKQEAgLTI0NzQsNiArMjUwMCwyNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFNw
YWNlRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAjZW5kaWYKIAordm9pZCBF
dmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiBmb2N1
c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5jdHJs
S2V5KCkgfHwgZXZlbnQtPm1ldGFLZXkoKSB8fCBldmVudC0+YWx0R3JhcGhLZXkoKSB8fCBldmVu
dC0+c2hpZnRLZXkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
cGFnZS0+c2V0dGluZ3MoKSB8fCAhcGFnZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQXJyb3dzIGFuZCBvdGhlciBw
b3NzaWJsZSBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGtleXMgY2FuIGJlIHVzZWQgaW4gZGVzaWdu
CisgICAgLy8gbW9kZSBlZGl0aW5nLgorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRl
c2lnbk1vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLT5hZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0
VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIC8vIFdlIHNob3Vs
ZCBvbmx5IGFkdmFuY2UgZm9jdXMgb24gdGFicyBpZiBubyBzcGVjaWFsIG1vZGlmaWVyIGtleXMg
YXJlIGhlbGQgZG93bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBi
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA3MmExMGY3Li5lYjVkYzZiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEV2ZW50SGFuZGxlcl9oCiAK
ICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgorI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzAxLDYgKzMwMiw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CiAgICAgdm9pZCBk
ZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRB
cnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdE
SFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKQEAgLTMyMyw2ICszMjUsOCBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogCisgICAgRm9jdXNE
aXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7
CisKICAgICBib29sIGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVz
RHJhZ2dpbmc7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNfXykgJiYg
IUVOQUJMRShFWFBFUklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKaW5kZXggYmRkMzE1MS4uOGQwZWE5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTQ5LDEyICs0OSwxNCBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUg
IlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
IlNwYXRpYWxOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNw
YXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGZvY3VzZWQpCiB7CkBAIC0xNTMsNiArMTU1LDI0IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpz
ZXRJbml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBl
CiAKIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCiB7CisgICAg
c3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRm9yd2FyZDoKKyAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIHJldHVybiBhZHZhbmNlRm9j
dXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3VzKTsKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6Cisg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgor
ICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShkaXJlY3Rpb24sIGV2ZW50
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9j
dXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCit7CiAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNl
ZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTI1Nyw2ICsyNzcsMTQ2IEBAIGJvb2wgRm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2Fy
ZEV2ZW50KiBldmVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVy
OjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZy
YW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50
ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50
LT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVz
dCBtb3ZlIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rp
b24gdGFiRGlyZWN0aW9uID0gKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwIHx8IGRpcmVj
dGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFja3dh
cmQ7CisgICAgICAgIC8vICdpbml0aWFsRm9jdXMnIGlzIHNldCB0byB0cnVlIHNvIHRoZSBjaHJv
bWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50
T3JkZXIodGFiRGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gTW92ZSB1
cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAgICBmcmFtZSA9IGZyYW1lLT50cmVl
KCktPnRvcCgpOworCisgICAgRm9jdXNDYW5kaWRhdGUgZm9jdXNDYW5kaWRhdGU7CisgICAgZmlu
ZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUs
IGRpcmVjdGlvbiwgZXZlbnQsIGZvY3VzQ2FuZGlkYXRlKTsKKworICAgIE5vZGUqIG5vZGUgPSBm
b2N1c0NhbmRpZGF0ZS5ub2RlOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3Vt
ZW50IGhlcmUuCisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwor
ICAgICAgICBzY3JvbGxJbkRpcmVjdGlvbihmcmFtZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGNyYXp5IGp1bXAg
YmV0d2VlbiBsaW5rcyB0aGF0IGFyZSBlaXRoZXIgZmFyIGF3YXkgZnJvbSBlYWNoIG90aGVyLAor
ICAgIC8vIG9yIGp1c3Qgbm90IGN1cnJlbnRseSB2aXNpYmxlLCBsZXRzIGRvIGEgc2Nyb2xsIGlu
IHRoZSBnaXZlbiBkaXJlY3Rpb24gYW5kIGJhaWwgb3V0CisgICAgLy8gaWYgfG5vZGV8IGVsZW1l
bnQgaXMgbm90IGluIHRoZSB2aWV3cG9ydC4KKyAgICBpZiAoaGFzT2Zmc2NyZWVuUmVjdChub2Rl
KSkgeworICAgICAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCktPmZy
YW1lKCk7CisgICAgICAgIHNjcm9sbEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24pOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBu
b2RlLT5kb2N1bWVudCgpOworCisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGZvY3VzZWREb2N1bWVu
dCkgeworICAgICAgICAvLyBGb2N1cyBpcyBnb2luZyBhd2F5IGZyb20gdGhlIG9yaWdpbmFsbHkg
Zm9jdXNlZCBkb2N1bWVudCwgc28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KKyAgICAgICAgZm9j
dXNlZERvY3VtZW50LT5zZXRGb2N1c2VkTm9kZSgwKTsKKyAgICB9CisKKyAgICBpZiAobmV3RG9j
dW1lbnQpCisgICAgICAgIHNldEZvY3VzZWRGcmFtZShuZXdEb2N1bWVudC0+ZnJhbWUoKSk7CisK
KyAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmZvY3VzKGZhbHNlKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCB1cGRhdGVGb2N1c0NhbmRpZGF0ZUlmQ2xvc2VyKE5vZGUqIGZv
Y3VzZWROb2RlLCBOb2RlKiBjYW5kaWRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9uZyBsb25nIGRpc3RhbmNlLCBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3VzQ2Fu
ZGlkYXRlKQoreworICAgIC8vIEJhaWwgb3V0IGlmIHxkaXN0YW5jZXwgaXMgYmlnZ2VyIHRoYW4g
dGhlIGN1cnJlbnQgY2xvc2VzdCBjYW5kaWRhdGUuCisgICAgaWYgKGRpc3RhbmNlID49IGNsb3Nl
c3RGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYg
fGZvY3VzZWROb2RlfCBhbmQgfGNhbmRpZGF0ZXwgYXJlIGluIHRoZSBzYW1lIGRvY3VtZW50IEFO
RAorICAgIC8vIGN1cnJlbnQgfGNsb3Nlc3RGb2N1c0NhbmRpZGFkdGV8IGlzIG5vdCBpbiBhbiB7
aX1mcmFtZSB0aGF0IGlzCisgICAgLy8gcHJlZmVyYWJsZSB0byBnZXQgZm9jdXNlZC4KKyAgICBp
ZiAoZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgPT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpCisgICAg
ICAgICYmIGRpc3RhbmNlIDwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLnBhcmVudERpc3RhbmNlKSB7
CisgICAgICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAg
ICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgY2xv
c2VzdEZvY3VzQ2FuZGlkYXRlLnBhcmVudERpc3RhbmNlID0gY01heERpc3RhbmNlOworICAgIH0g
ZWxzZSBpZiAoZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgIT0gY2FuZGlkYXRlLT5kb2N1bWVudCgp
KSB7CisgICAgICAgIC8vIElmIHRoZSB8Zm9jdXNlZE5vZGV8IGlzIGluIGFuIGlubmVyIGRvY3Vt
ZW50IGFuZCB0aGUgfGNhbmRpZGF0ZXwgaXMKKyAgICAgICAgLy8gaW4gYSBkaWZmZXJlbnQgZG9j
dW1lbnQsIHdlIG9ubHkgY29uc2lkZXIgdG8gY2hhbmdlIGZvY3VzIGlmIHRoZXJlIGlzCisgICAg
ICAgIC8vIG5vdCBhbm90aGVyIGFscmVhZHkgZ29vZCBmb2N1c2FibGUgY2FuZGlkYXRlIGluIHRo
ZSBzYW1lIGRvY3VtZW50IGFzCisgICAgICAgIC8vIHxmb2N1c2VkTm9kZXwuCisgICAgICAgIGlm
ICghKChpc0luUm9vdERvY3VtZW50KGNhbmRpZGF0ZSkgJiYgIWlzSW5Sb290RG9jdW1lbnQoZm9j
dXNlZE5vZGUpKQorICAgICAgICAgICAgJiYgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLm5vZGUKKyAg
ICAgICAgICAgICYmIGZvY3VzZWROb2RlLT5kb2N1bWVudCgpID09IGNsb3Nlc3RGb2N1c0NhbmRp
ZGF0ZS5ub2RlLT5kb2N1bWVudCgpKSkgeworICAgICAgICAgICAgY2xvc2VzdEZvY3VzQ2FuZGlk
YXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUu
ZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGb2N1c0Nv
bnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9k
ZSogZm9jdXNlZE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZEV2ZW50KiBldmVudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzQ2Fu
ZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsK
KworICAgIC8vIFdhbGsgYWxsIHRoZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRlIGZvY3VzQ2FuZGlk
YXRlIGlmIHdlIGZpbmQgYSBuZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9
IGRvY3VtZW50LT5maXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRl
LT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgLy8gSW5uZXIgZG9jdW1lbnRzIGNhc2Uu
CisgICAgICAgIGlmIChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKKyAgICAgICAg
ICAgIGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5kaWRh
dGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CisgICAgICAgIGVs
c2UgaWYgKGNhbmRpZGF0ZSAhPSBmb2N1c2VkTm9kZSAmJiBjYW5kaWRhdGUtPmlzS2V5Ym9hcmRG
b2N1c2FibGUoZXZlbnQpKSB7CisgICAgICAgICAgICBsb25nIGxvbmcgZGlzdGFuY2UgPSBkaXN0
YW5jZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5kaWRhdGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiwgY2xvc2VzdEZv
Y3VzQ2FuZGlkYXRlKTsKKyAgICAgICAgICAgIHVwZGF0ZUZvY3VzQ2FuZGlkYXRlSWZDbG9zZXIo
Zm9jdXNlZE5vZGUsIGNhbmRpZGF0ZSwgZGlzdGFuY2UsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgRm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZv
Y3VzYWJsZU5vZGVJbkRpcmVjdGlvbihOb2RlKiBmb2N1c2VkTm9kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlKiBjYW5kaWRhdGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEtleWJvYXJkRXZlbnQqIGV2ZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzQ2FuZGlk
YXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpCit7CisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50
KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7
CisgICAgaWYgKCFvd25lci0+Y29udGVudEZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IERvY3VtZW50KiBpbm5lckRvY3VtZW50ID0gb3duZXItPmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVu
dCgpOworICAgIGlmICghaW5uZXJEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGlubmVyRG9jdW1lbnQgPT0gZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkpCisgICAgICAgIGZpbmRG
b2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oaW5uZXJEb2N1bWVudCwgZm9jdXNlZE5vZGUsIGRpcmVj
dGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CisgICAgZWxzZSB7CisgICAgICAg
IC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHtpfWZyYW1lIGVsZW1lbnQgaXRzZWxmIGlzIGEgZ29v
ZCBjYW5kaWRhdGUKKyAgICAgICAgLy8gdG8gbW92ZSBmb2N1cyB0by4gSWYgaXQgaXMsIHRoZW4g
d2UgdHJhdmVyc2UgaXRzIGlubmVyIG5vZGVzLgorICAgICAgICAvLyBMZXRzIHBhc3MgYSBjb3B5
IG9mIHRoZSBiZXN0IGNhbmRpZGF0ZSwgdG8gbm90IGdldCBmb29sZWQgYnkgYQorICAgICAgICAv
LyBmcmFtZSB3aXRob3V0IGZvY3VzYWJsZSBlbGVtZW50cy4KKyAgICAgICAgRm9jdXNDYW5kaWRh
dGUgZm9jdXNDYW5kaWRhdGVDb3B5ID0gY2xvc2VzdEZvY3VzQ2FuZGlkYXRlOworICAgICAgICBs
b25nIGxvbmcgZGlzdGFuY2UgPSBkaXN0YW5jZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5k
aWRhdGUsIGRpcmVjdGlvbiwgZm9jdXNDYW5kaWRhdGVDb3B5KTsKKyAgICAgICAgaWYgKGRpc3Rh
bmNlIDwgZm9jdXNDYW5kaWRhdGVDb3B5LmRpc3RhbmNlKSB7CisgICAgICAgICAgICBmb2N1c0Nh
bmRpZGF0ZUNvcHkucGFyZW50QWxpZ25tZW50ID0gZm9jdXNDYW5kaWRhdGVDb3B5LmFsaWdubWVu
dDsKKyAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlQ29weS5wYXJlbnREaXN0YW5jZSA9IGRpc3Rh
bmNlOworCisgICAgICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGlubmVyRG9j
dW1lbnQsIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBmb2N1c0NhbmRpZGF0ZUNvcHkp
OworCisgICAgICAgICAgICAvLyBJZiB3ZSByZWFsbHkgaGF2ZSBhbiBpbm5lciBjbG9zZXIgZm9j
dXMgY2FuZGlkYXRlIG5vZGUsIHRha2UgaXQuCisgICAgICAgICAgICBpZiAoY2xvc2VzdEZvY3Vz
Q2FuZGlkYXRlLm5vZGUgIT0gZm9jdXNDYW5kaWRhdGVDb3B5Lm5vZGUpCisgICAgICAgICAgICAg
ICAgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlID0gZm9jdXNDYW5kaWRhdGVDb3B5OworICAgICAgICB9
CisgICAgfQorfQorCiBzdGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAq
bm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggMzJk
NDA2MC4uNzU1OTFjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
CisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtMzMsMTAgKzMzLDEyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKK3N0cnVjdCBG
b2N1c0NhbmRpZGF0ZTsKIAogY2xhc3MgRm9jdXNDb250cm9sbGVyIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKIHB1YmxpYzoKQEAgLTU4LDYgKzYwLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGlzRm9j
dXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9CiAKIHByaXZhdGU6CisgICAgYm9v
bCBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
Kik7CisgICAgYm9vbCBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1cyk7CisKKyAgICB2b2lkIGZpbmRGb2N1
c2FibGVOb2RlSW5EaXJlY3Rpb24oRG9jdW1lbnQqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEtl
eWJvYXJkRXZlbnQqLCBGb2N1c0NhbmRpZGF0ZSYpOworICAgIHZvaWQgZGVlcEZpbmRGb2N1c2Fi
bGVOb2RlSW5EaXJlY3Rpb24oTm9kZSosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRF
dmVudCosIEZvY3VzQ2FuZGlkYXRlJik7CisKICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgUmVmUHRy
PEZyYW1lPiBtX2ZvY3VzZWRGcmFtZTsKICAgICBib29sIG1faXNBY3RpdmU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVj
dGlvbi5oCmluZGV4IDI2MWM3NDUuLjhhNmQ1MWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9G
b2N1c0RpcmVjdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0y
OCw4ICsyOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVj
dGlvbiB7Ci0gICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3Vz
RGlyZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25Ob25lID0gMCwKKyAgICAg
ICAgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJk
LAorICAgICAgICBGb2N1c0RpcmVjdGlvblVwLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkRvd24s
CisgICAgICAgIEZvY3VzRGlyZWN0aW9uTGVmdCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25SaWdo
dAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGNjOGY3YWYuLjA2OWJmMTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtNjQsNiArNjQsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAg
ICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkpCiAgICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dl
c3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWUobnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkKKyAgICAsIG1faXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShmYWxzZSkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChmYWxzZSkKQEAgLTI0NSw2ICsyNDYsMTEgQEAgdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKQog
ICAgIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzID0gYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
Ym9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKK3sKKyAgICBtX2lzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7Cit9CisKIHZvaWQgU2V0
dGluZ3M6OnNldEphdmFFbmFibGVkKGJvb2wgaXNKYXZhRW5hYmxlZCkKIHsKICAgICBtX2lzSmF2
YUVuYWJsZWQgPSBpc0phdmFFbmFibGVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCAwNmY0NTcwLi4wNTA3ZDQzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaApAQCAtMTE4LDYgKzExOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwogICAg
ICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7
IHJldHVybiBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7IH0KIAorICAg
ICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKKyAgICAgICAgYm9v
bCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQ7IH0KKwogICAgICAgICB2b2lkIHNldEphdmFFbmFibGVkKGJvb2wp
OwogICAgICAgICBib29sIGlzSmF2YUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSmF2YUVu
YWJsZWQ7IH0KIApAQCAtMzA5LDYgKzMxMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAgICAgIHVuc2lnbmVkIG1f
bG9jYWxTdG9yYWdlUXVvdGE7CiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRp
bWU7CisgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseSA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVk
IDogMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgYi9X
ZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM1YTY4NDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCkBAIC0wLDAgKzEsNDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICog
Q29weXJpZ2h0IChDKSAyMDA5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgor
ICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhU
TUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRp
YyBsb25nIGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UmVjdCYpOworc3RhdGljIEludFJlY3QgcmVuZGVyUmVjdFJlbGF0aXZlVG9S
b290RG9jdW1lbnQoUmVuZGVyT2JqZWN0Kik7CitzdGF0aWMgUmVjdHNBbGlnbm1lbnQgYWxpZ25t
ZW50Rm9yUmVjdHMoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
Jik7CitzdGF0aWMgYm9vbCBhcmVSZWN0c0Z1bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK3N0YXRpYyBib29sIGFyZVJlY3RzUGFydGlh
bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
KTsKK3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJ
bnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOworc3RhdGljIHZvaWQgZGVmbGF0ZUlmT3ZlcmxhcHBl
ZChJbnRSZWN0JiwgSW50UmVjdCYpOworCitsb25nIGxvbmcgZGlzdGFuY2VJbkRpcmVjdGlvbihO
b2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBGb2N1c0Nh
bmRpZGF0ZSYgY2FuZGlkYXRlKQoreworICAgIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXIgPSBz
dGFydC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVyKQorICAgICAgICByZXR1cm4g
Y01heERpc3RhbmNlOworCisgICAgUmVuZGVyT2JqZWN0KiBkZXN0UmVuZGVyID0gZGVzdC0+cmVu
ZGVyZXIoKTsKKyAgICBpZiAoIWRlc3RSZW5kZXIpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFu
Y2U7CisKKyAgICBJbnRSZWN0IGN1clJlY3QgPSByZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3REb2N1
bWVudChzdGFydFJlbmRlcik7CisgICAgSW50UmVjdCB0YXJnZXRSZWN0ICA9IHJlbmRlclJlY3RS
ZWxhdGl2ZVRvUm9vdERvY3VtZW50KGRlc3RSZW5kZXIpOworCisgICAgLy8gVGhlIGJvdW5kaW5n
IHJlY3RhbmdsZSBvZiB0d28gY29uc2VjdXRpdmUgbm9kZXMgY2FuIG92ZXJsYXAuIEluIHN1Y2gg
Y2FzZXMsCisgICAgLy8gZGVmbGF0ZSBib3RoLgorICAgIGRlZmxhdGVJZk92ZXJsYXBwZWQoY3Vy
UmVjdCwgdGFyZ2V0UmVjdCk7CisKKyAgICBpZiAoKGN1clJlY3QuaXNFbXB0eSgpIHx8IHRhcmdl
dFJlY3QuaXNFbXB0eSgpKQorICAgICAgICB8fCAodGFyZ2V0UmVjdC54KCkgPCAwIHx8IHRhcmdl
dFJlY3QueSgpIDwgMCkpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICBpZiAo
IWlzUmVjdEluRGlyZWN0aW9uKGRpcmVjdGlvbiwgY3VyUmVjdCwgdGFyZ2V0UmVjdCkpCisgICAg
ICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICAvLyBUaGUgZGlzdGFuY2UgYmV0d2VlbiB0
d28gbm9kZXMgaXMgbm90IHRvIGJlIGNvbnNpZGVyZWQgYWxvbmUgd2hlbiBldmFsdWF0aW5nL2xv
b2tpbmcKKyAgICAvLyBmb3IgdGhlIGJlc3QgZm9jdXMgY2FuZGlkYXRlIG5vZGUuIEFsaWdubWVu
dCBvZiByZWN0cyBjYW4gYmUgYWxzbyBhIGdvb2QgcG9pbnQgdG8gYmUKKyAgICAvLyBjb25zaWRl
cmVkIGluIG9yZGVyIHRvIG1ha2UgdGhlIGFsZ29yaXRobSB0byBiZWhhdmlvciBpbiBhIG1vcmUg
aW50dWl0aXZlIHdheS4KKyAgICBSZWN0c0FsaWdubWVudCBhbGlnbm1lbnQgPSBhbGlnbm1lbnRG
b3JSZWN0cyhkaXJlY3Rpb24sIGN1clJlY3QsIHRhcmdldFJlY3QpOworCisgICAgYm9vbCBzYW1l
RG9jdW1lbnQgPSBjYW5kaWRhdGUubm9kZSAmJiBkZXN0LT5kb2N1bWVudCgpID09IGNhbmRpZGF0
ZS5ub2RlLT5kb2N1bWVudCgpOworICAgIGlmIChzYW1lRG9jdW1lbnQpIHsKKyAgICAgICAgaWYg
KGNhbmRpZGF0ZS5hbGlnbm1lbnQgPiBhbGlnbm1lbnQgfHwgKGNhbmRpZGF0ZS5wYXJlbnRBbGln
bm1lbnQgJiYgYWxpZ25tZW50ID4gY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCkpCisgICAgICAg
ICAgICByZXR1cm4gY01heERpc3RhbmNlOworICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlLmFsaWdu
bWVudCA+IGFsaWdubWVudCAmJiAoY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCAmJiBhbGlnbm1l
bnQgPiBjYW5kaWRhdGUucGFyZW50QWxpZ25tZW50KSkKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0
YW5jZTsKKworICAgIC8vIEZJWE1FX3RvbmlraXRvbzogc2ltcGxpZnkgdGhlIGxvZ2ljIGhlcmUg
IQorICAgIGlmIChhbGlnbm1lbnQgIT0gTm9uZQorICAgICAgICB8fCAoY2FuZGlkYXRlLm5vZGUg
JiYgY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCA+PSBhbGlnbm1lbnQKKyAgICAgICAgJiYgKGRl
c3QtPmRvY3VtZW50KCkgPT0gY2FuZGlkYXRlLm5vZGUtPmRvY3VtZW50KCkpCisgICAgICAgICYm
IGFsaWdubWVudCA+IE5vbmUpKSB7CisKKyAgICAgICAgLy8gSWYgd2UgYXJlIG5vdyBpbiBhbiBo
aWdoZXIgcHJlY2VkZW50IGNhc2UsIGxldHMgcmVzZXQgdGhlIGN1cnJlbnQgfGNhbmRpZGF0ZXwn
cworICAgICAgICAvLyB8ZGlzdGFuY2V8IHNvIHdlIGZvcmNlIGl0IHRvIGJlIGJpZ2dlciB0aGFu
IHRoZSByZXN1bHQgd2Ugd2lsbCBnZXQgZnJvbQorICAgICAgICAvLyB8c3BhdGlhbERpc3RhbmNl
fCAoc2VlIGJlbG93KS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5hbGlnbm1lbnQgPCBhbGlnbm1l
bnQgJiYgY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCA8IGFsaWdubWVudCkKKyAgICAgICAgICAg
IGNhbmRpZGF0ZS5kaXN0YW5jZSA9IGNNYXhEaXN0YW5jZTsKKworICAgICAgICBjYW5kaWRhdGUu
YWxpZ25tZW50ID0gYWxpZ25tZW50OworICAgIH0KKworICAgIHJldHVybiBzcGF0aWFsRGlzdGFu
Y2UoZGlyZWN0aW9uLCBjdXJSZWN0LCB0YXJnZXRSZWN0KTsKK30KKworLy8gRklYTUU6IFRoaXMg
ZnVuY3Rpb24gZG9lcyBub3QgYmVoYXZlIGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybWVkIGZyYW1l
cy4KK3N0YXRpYyBJbnRSZWN0IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KFJlbmRl
ck9iamVjdCogcmVuZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAgSW50UmVjdCBy
ZWN0KHJlbmRlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworCisgICAgLy8gSW4g
Y2FzZXMgd2hlbiB0aGUgfHJlbmRlcnwncyBhc3NvY2lhdGVkIG5vZGUgaXMgaW4gYSBzY3JvbGxh
YmxlIGlubmVyCisgICAgLy8gZG9jdW1lbnQsIHdlIG9ubHkgY29uc2lkZXIgaXRzIHNjcm9sbE9m
ZnNldCBpZiBpdCBpcyBub3Qgb2Zmc2NyZWVuLgorICAgIE5vZGUqIG5vZGUgPSByZW5kZXItPm5v
ZGUoKTsKKyAgICBEb2N1bWVudCogbWFpbkRvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKS0+cGFn
ZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBib29sIGNvbnNpZGVyU2Nyb2xsT2Zm
c2V0ID0gIShoYXNPZmZzY3JlZW5SZWN0KG5vZGUpICYmIG5vZGUtPmRvY3VtZW50KCkgIT0gbWFp
bkRvY3VtZW50KTsKKworICAgIGlmIChjb25zaWRlclNjcm9sbE9mZnNldCkgeworICAgICAgICBp
ZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSByZW5kZXItPm5vZGUoKS0+ZG9jdW1lbnQoKS0+dmll
dygpKQorICAgICAgICAgICAgcmVjdC5tb3ZlKC1mcmFtZVZpZXctPnNjcm9sbE9mZnNldCgpKTsK
KyAgICB9CisKKyAgICAvLyBIYW5kbGUgbmVzdGVkIGZyYW1lcy4KKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IHJlbmRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKEhUTUxGcmFtZU93bmVyRWxlbWVudCog
b3duZXJFbGVtZW50ID0gZnJhbWUtPm93bmVyRWxlbWVudCgpKQorICAgICAgICAgICAgcmVjdC5t
b3ZlKG93bmVyRWxlbWVudC0+b2Zmc2V0TGVmdCgpLCBvd25lckVsZW1lbnQtPm9mZnNldFRvcCgp
KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVjdDsKK30KKworc3RhdGljIFJlY3RzQWxpZ25tZW50
IGFsaWdubWVudEZvclJlY3RzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVj
dCYgY3VyUmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBpZiAoYXJlUmVj
dHNGdWxseUFsaWduZWQoZGlyZWN0aW9uLCBjdXJSZWN0LCB0YXJnZXRSZWN0KSkKKyAgICAgICAg
cmV0dXJuIEZ1bGw7CisKKyAgICBpZiAoYXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKGRpcmVjdGlv
biwgY3VyUmVjdCwgdGFyZ2V0UmVjdCkpCisgICAgICAgIHJldHVybiBQYXJ0aWFsOworCisgICAg
cmV0dXJuIE5vbmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0hvcml6b250YWxNb3ZlKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICByZXR1cm4gZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodDsKK30KKwor
c3RhdGljIGlubGluZSBpbnQgc3RhcnQoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiBpc0hvcml6b250YWxNb3ZlKGRpcmVjdGlvbikg
PyByZWN0LnkoKSA6IHJlY3QueCgpOworfQorCitzdGF0aWMgaW5saW5lIGludCBtaWRkbGUoRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgSW50UG9p
bnQgY2VudGVyKHJlY3QuY2VudGVyKCkpOworICAgcmV0dXJuIGlzSG9yaXpvbnRhbE1vdmUoZGly
ZWN0aW9uKSA/IGNlbnRlci55KCk6IGNlbnRlci54KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50
IGVuZChGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7Cisg
ICAgcmV0dXJuIGlzSG9yaXpvbnRhbE1vdmUoZGlyZWN0aW9uKSA/IHJlY3QuYm90dG9tKCkgOiBy
ZWN0LnJpZ2h0KCk7Cit9CisKKy8vIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiByZWN0cyB8YXwgYW5k
IHxifCBhcmUgZnVsbHkgYWxpZ25lZCBlaXRoZXIgdmVydGljYWxseSBvcgorLy8gaG9yaXpvbnRh
bGx5LiBJbiBnZW5lcmFsLCByZWN0cyB3aG9zZSBjZW50cmFsIHBvaW50IGZhbGxzIGJldHdlZW4g
dGhlIHRvcCBvcgorLy8gYm90dG9tIG9mIGVhY2ggb3RoZXIgYXJlIGNvbnNpZGVyZWQgZnVsbHkg
YWxpZ25lZC4KKy8vIFJlY3RzIHRoYXQgbWF0Y2ggdGhpcyBjcml0ZXJpYSBhcmUgcHJlZmVyYWJs
ZSB0YXJnZXQgbm9kZXMgaW4gbW92ZSBmb2N1cyBjaGFuZ2luZworLy8gb3BlcmF0aW9ucy4KKy8v
ICogYSA9IEN1cnJlbnQgZm9jdXNlZCBub2RlJ3MgcmVjdC4KKy8vICogYiA9IEZvY3VzIGNhbmRp
ZGF0ZSBub2RlJ3MgcmVjdC4KK3N0YXRpYyBib29sIGFyZVJlY3RzRnVsbHlBbGlnbmVkKEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikK
K3sKKyAgICBpbnQgYVN0YXJ0LCBiU3RhcnQsIGFFbmQsIGJFbmQ7CisKKyAgICBzd2l0Y2ggKGRp
cmVjdGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBhU3RhcnQg
PSBhLngoKTsKKyAgICAgICAgYkVuZCA9IGIucmlnaHQoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0OgorICAgICAgICBhU3RhcnQgPSBiLngoKTsKKyAgICAg
ICAgYkVuZCA9IGEucmlnaHQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVj
dGlvblVwOgorICAgICAgICBhU3RhcnQgPSBhLnkoKTsKKyAgICAgICAgYkVuZCA9IGIueSgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgYVN0
YXJ0ID0gYi55KCk7CisgICAgICAgIGJFbmQgPSBhLnkoKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBpZiAoYVN0YXJ0IDwgYkVuZCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgYVN0YXJ0ID0gc3RhcnQoZGlyZWN0aW9uLCBhKTsKKyAgICBiU3RhcnQgPSBz
dGFydChkaXJlY3Rpb24sIGIpOworCisgICAgaW50IGFNaWRkbGUgPSBtaWRkbGUoZGlyZWN0aW9u
LCBhKTsKKyAgICBpbnQgYk1pZGRsZSA9IG1pZGRsZShkaXJlY3Rpb24sIGIpOworCisgICAgYUVu
ZCA9IGVuZChkaXJlY3Rpb24sIGEpOworICAgIGJFbmQgPSBlbmQoZGlyZWN0aW9uLCBiKTsKKwor
ICAgIC8vIFBpY3R1cmUgb2YgdGhlIHRvdGFsbHkgYWxpZ25lZCBsb2dpYzoKKyAgICAvLworICAg
IC8vICAgICBIb3Jpem9udGFsICAgIFZlcnRpY2FsICAgICAgICBIb3Jpem9udGFsICAgICBWZXJ0
aWNhbAorICAgIC8vICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqICAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgorICAgIC8vICAqICBfICAgICAgICAgICogICBfIF8gXyBfICAqICAq
ICAgICAgICAgXyAgICogICAgICBfIF8gICAgKgorICAgIC8vICAqIHxffCAgICAgXyAgICogIHxf
fF98X3xffCAqICAqICBfICAgICB8X3wgICogICAgIHxffF98ICAgKgorICAgIC8vICAqIHxffC4u
Li58X3wgICogICAgICAuICAgICAqICAqIHxffC4uLi58X3wgICogICAgICAgLiAgICAgKgorICAg
IC8vICAqIHxffCAgICB8X3wgKDEpICAgICAuICAgICAqICAqIHxffCAgICB8X3wgKDIpICAgICAg
LiAgICAgKgorICAgIC8vICAqIHxffCAgICAgICAgICogICAgIF8uXyAgICAqICAqICAgICAgICB8
X3wgICogICAgXyBfLl8gXyAgKgorICAgIC8vICAqICAgICAgICAgICAgICogICAgfF98X3wgICAq
ICAqICAgICAgICAgICAgICogICB8X3xffF98X3wgKgorICAgIC8vICAqICAgICAgICAgICAgICog
ICAgICAgICAgICAqICAqICAgICAgICAgICAgICogICAgICAgICAgICAgKgorICAgIC8vICAqKioq
KioqKioqKioqKioqKioqKioqKioqKioqICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor
CisgICAgLy8gICAgIEhvcml6b250YWwgICAgVmVydGljYWwgICAgICAgIEhvcml6b250YWwgICAg
IFZlcnRpY2FsCisgICAgLy8gICoqKioqKioqKioqKioqKioqKioqKioqKioqKiogICoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqCisgICAgLy8gICogIF8uLi4uLi5fICAgKiAgIF8gXyBfIF8g
ICogICogIF8gICAgICAgICAgKiAgICBfIF8gXyBfICAqCisgICAgLy8gICogfF98ICAgIHxffCAg
KiAgfF98X3xffF98ICogICogfF98ICAgICBfICAgKiAgIHxffF98X3xffCAqCisgICAgLy8gICog
fF98ICAgIHxffCAgKiAgLiAgICAgICAgICogICogfF98ICAgIHxffCAgKiAgICAgICAgICAgLiAq
CisgICAgLy8gICogfF98ICAgICAgICAoMykgLiAgICAgICAgICogICogfF98Li4uLnxffCAoNCkg
ICAgICAgICAgLiAqCisgICAgLy8gICogICAgICAgICAgICAgKiAgLl8gXyAgICAgICogICogICAg
ICAgICAgICAgKiAgICAgICAgXyBfLiAqCisgICAgLy8gICogICAgICAgICAgICAgKiAgfF98X3wg
ICAgICogICogICAgICAgICAgICAgKiAgICAgICB8X3xffCAqCisgICAgLy8gICogICAgICAgICAg
ICAgKiAgICAgICAgICAgICogICogICAgICAgICAgICAgKiAgICAgICAgICAgICAqCisgICAgLy8g
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKiogICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCisKKyAgICByZXR1cm4gKChiTWlkZGxlID49IGFTdGFydCAmJiBiTWlkZGxlIDw9IGFFbmQp
IC8vICgxKQorICAgICAgICAgICAgfHwgKGFNaWRkbGUgPj0gYlN0YXJ0ICYmIGFNaWRkbGUgPD0g
YkVuZCkgLy8gKDIpCisgICAgICAgICAgICB8fCAoYlN0YXJ0ID09IGFTdGFydCkgLy8gKDMpCisg
ICAgICAgICAgICB8fCAoYkVuZCA9PSBhRW5kKSk7IC8vICg0KQorfQorCisvLyBUaGlzIG1ldGhv
ZCBjaGVja3MgaWYgfHN0YXJ0fCBhbmQgfGRlc3R8IGhhdmUgYSBwYXJ0aWFsIGludGVyc2VjdGlv
biwgZWl0aGVyCisvLyBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS4KKy8vICogYSA9IEN1cnJl
bnQgZm9jdXNlZCBub2RlJ3MgcmVjdC4KKy8vICogYiA9IEZvY3VzIGNhbmRpZGF0ZSBub2RlJ3Mg
cmVjdC4KK3N0YXRpYyBib29sIGFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZChGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAg
aW50IGFTdGFydCAgPSBzdGFydChkaXJlY3Rpb24sIGEpOworICAgIGludCBiU3RhcnQgID0gc3Rh
cnQoZGlyZWN0aW9uLCBiKTsKKyAgICBpbnQgYk1pZGRsZSA9IG1pZGRsZShkaXJlY3Rpb24sIGIp
OworICAgIGludCBhRW5kID0gZW5kKGRpcmVjdGlvbiwgYSk7CisgICAgaW50IGJFbmQgPSBlbmQo
ZGlyZWN0aW9uLCBiKTsKKworICAgIC8vIFBpY3R1cmUgb2YgdGhlIHBhcnRpYWxseSBhbGlnbmVk
IGxvZ2ljOgorICAgIC8vCisgICAgLy8gICAgSG9yaXpvbnRhbCAgICAgICBWZXJ0aWNhbAorICAg
IC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgICAgLy8gKiAgXyAgICAgICAg
ICAgICogICBfIF8gXyAgICAgICoKKyAgICAvLyAqIHxffCAgICAgICAgICAgKiAgfF98X3xffCAg
ICAgKgorICAgIC8vICogfF98Li4uLiBfICAgICAqICAgICAgLiAuICAgICAqCisgICAgLy8gKiB8
X3wgICAgfF98ICAgICogICAgICAuIC4gICAgICoKKyAgICAvLyAqIHxffC4uLi58X3wgICAgKiAg
ICAgIC5fLl8gXyAgKgorICAgIC8vICogICAgICAgIHxffCAgICAqICAgICAgfF98X3xffCAqCisg
ICAgLy8gKiAgICAgICAgfF98ICAgICogICAgICAgICAgICAgICoKKyAgICAvLyAqICAgICAgICAg
ICAgICAgKiAgICAgICAgICAgICAgKgorICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisgICAgLy8KKyAgICAvLyAuLi4gYW5kIHZhcmlhbnRzIG9mIHRoZSBhYm92ZSBjYXNl
cy4KKyAgICByZXR1cm4gKChiU3RhcnQgPj0gYVN0YXJ0ICYmIGJTdGFydCA8PSBhRW5kKQorICAg
ICAgICAgICAgfHwgKGJTdGFydCA+PSBhU3RhcnQgJiYgYlN0YXJ0IDw9IGFFbmQpCisgICAgICAg
ICAgICB8fCAoYkVuZCA+PSBhU3RhcnQgJiYgYkVuZCA8PSBhRW5kKQorICAgICAgICAgICAgfHwg
KGJNaWRkbGUgPj0gYVN0YXJ0ICYmIGJNaWRkbGUgPD0gYUVuZCkKKyAgICAgICAgICAgIHx8IChi
RW5kID49IGFTdGFydCAmJiBiRW5kIDw9IGFFbmQpKTsKK30KKworLy8gUmV0dXJuIHRydWUgaWYg
cmVjdCB8YXwgaXMgYmVsb3cgfGJ8LiBGYWxzZSBvdGhlcndpc2UuCitzdGF0aWMgaW5saW5lIGJv
b2wgYmVsb3dPZihjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBiKQoreworICAgIHJl
dHVybiBhLnkoKSA+IGIuYm90dG9tKCk7Cit9CisKKy8vIFJldHVybiB0cnVlIGlmIHJlY3QgfGF8
IGlzIG9uIHRoZSByaWdodCBvZiB8YnwuIEZhbHNlIG90aGVyd2lzZS4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCByaWdodE9mKGNvbnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAg
cmV0dXJuIGEueCgpID4gYi5yaWdodCgpOworfQorCisvLyAqIGEgPSBDdXJyZW50IGZvY3VzZWQg
bm9kZSdzIHJlY3QuCisvLyAqIGIgPSBGb2N1cyBjYW5kaWRhdGUgbm9kZSdzIHJlY3QuCitzdGF0
aWMgbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNv
bnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAgaW50IHgxID0gMCwgeTEg
PSAwLCB4MiA9IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rp
b25MZWZ0KSB7CisgICAgICAgIC8vICMxICB8LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICMy
ICB8LS18ICB8LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICMzICB8LS18CisKKyAgICAgICAg
eDEgPSBhLngoKTsKKyAgICAgICAgeDIgPSBiLnJpZ2h0KCk7CisKKyAgICAgICAgaWYgKGJlbG93
T2YoYSwgYikpIHsKKyAgICAgICAgICAgIC8vICMxIFRoZSBhIHJlY3QgaXMgYmVsb3cgYi4KKyAg
ICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAgICAgICB5MiA9IGIuYm90dG9tKCk7CisgICAg
ICAgIH0gZWxzZSBpZiAoYmVsb3dPZihiLCBhKSkgeworICAgICAgICAgICAgLy8gIzMgVGhlIGIg
cmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAgeTEgPSBhLmJvdHRvbSgpOworICAgICAgICAg
ICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICMyIEJvdGgg
YiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB5J3MuCisgICAgICAgICAgICB5MSA9IDA7CisgICAg
ICAgICAgICB5MiA9IDA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBG
b2N1c0RpcmVjdGlvblJpZ2h0KSB7CisgICAgICAgIC8vICAgICAgICB8LS18ICAjMQorICAgICAg
ICAvLworICAgICAgICAvLyAgfC0tfCAgfC0tfCAgIzIKKyAgICAgICAgLy8KKyAgICAgICAgLy8g
ICAgICAgIHwtLXwgICMzCisKKyAgICAgICAgeDEgPSBhLnJpZ2h0KCk7CisgICAgICAgIHgyID0g
Yi54KCk7CisKKyAgICAgICAgaWYgKGJlbG93T2YoYSwgYikpIHsKKyAgICAgICAgICAgIC8vICMx
IFRoZSBiIHJlY3QgaXMgYWJvdmUgYS4KKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAg
ICAgICB5MiA9IGIuYm90dG9tKCk7CisgICAgICAgIH0gZWxzZSBpZiAoYmVsb3dPZihiLCBhKSkg
eworICAgICAgICAgICAgLy8gIzMgVGhlIGIgcmVjdCBpcyBiZWxvdyBhLgorICAgICAgICAgICAg
eTEgPSBhLmJvdHRvbSgpOworICAgICAgICAgICAgeTIgPSBiLnkoKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIC8vICMyIEJvdGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB5J3Mu
CisgICAgICAgICAgICB5MSA9IDA7CisgICAgICAgICAgICB5MiA9IDA7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwKSB7CisgICAgICAgIC8v
CisgICAgICAgIC8vICAgIzEgICAgIzIgICAgIzMKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwt
LXwgIHwtLXwgIHwtLXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgICAgIHwtLXwKKworICAg
ICAgICB5MSA9IGEueSgpOworICAgICAgICB5MiA9IGIuYm90dG9tKCk7CisKKyAgICAgICAgaWYg
KHJpZ2h0T2YoYSwgYikpIHsKKyAgICAgICAgICAgIC8vICMxIFRoZSBiIHJlY3QgaXMgdG8gdGhl
IGxlZnQgb2YgYS4KKyAgICAgICAgICAgIHgxID0gYS54KCk7CisgICAgICAgICAgICB4MiA9IGIu
cmlnaHQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChyaWdodE9mKGIsIGEpKSB7CisgICAgICAgICAg
ICAvLyAjMyBUaGUgYiByZWN0IGlzIHRvIHRoZSByaWdodCBvZiBhLgorICAgICAgICAgICAgeDEg
PSBhLnJpZ2h0KCk7CisgICAgICAgICAgICB4MiA9IGIueCgpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgLy8gIzIgQm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHgncy4KKyAg
ICAgICAgICAgIHgxID0gMDsKKyAgICAgICAgICAgIHgyID0gMDsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9uRG93bikgeworICAgICAgICAvLyAg
ICAgICAgfC0tfAorICAgICAgICAvLworICAgICAgICAvLyAgfC0tfCAgfC0tfCAgfC0tfAorICAg
ICAgICAvLworICAgICAgICAvLyAgICMxICAgICMyICAgICMzCisKKyAgICAgICAgeTEgPSBhLmJv
dHRvbSgpOworICAgICAgICB5MiA9IGIueSgpOworCisgICAgICAgIGlmIChyaWdodE9mKGEsIGIp
KSB7CisgICAgICAgICAgICAvLyAjMSBUaGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9mIGEuCisg
ICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeDIgPSBiLnJpZ2h0KCk7CisgICAg
ICAgIH0gZWxzZSBpZiAocmlnaHRPZihiLCBhKSkgeworICAgICAgICAgICAgLy8gIzMgVGhlIGIg
cmVjdCBpcyB0byB0aGUgcmlnaHQgb2YgYQorICAgICAgICAgICAgeDEgPSBhLnJpZ2h0KCk7Cisg
ICAgICAgICAgICB4MiA9IGIueCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8g
IzIgQm90aCBiIGFuZCBhIHNoYXJlIHNvbWUgY29tbW9uIHgncy4KKyAgICAgICAgICAgIHgxID0g
MDsKKyAgICAgICAgICAgIHgyID0gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxvbmcgbG9u
ZyBkaXN0YW5jZSA9IHBvdygoeDEgLSB4MiksIDIpICsgcG93KCh5MSAtIHkyKSwgMik7CisgICAg
cmV0dXJuIGFicyhkaXN0YW5jZSk7Cit9CisKK3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9u
KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgY3VyUmVjdCwgY29uc3Qg
SW50UmVjdCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBJbnRQb2ludCBjZW50ZXIodGFyZ2V0UmVjdC5j
ZW50ZXIoKSk7CisgICAgaW50IHRhcmdldE1pZGRsZSA9IGlzSG9yaXpvbnRhbE1vdmUoZGlyZWN0
aW9uKSA/IGNlbnRlci54KCkgOiBjZW50ZXIueSgpOworCisgICAgc3dpdGNoIChkaXJlY3Rpb24p
IHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgcmV0dXJuIHRhcmdldE1p
ZGRsZSA8IGN1clJlY3QueCgpOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25SaWdodDoKKyAgICAg
ICAgcmV0dXJuIHRhcmdldE1pZGRsZSA+IGN1clJlY3QucmlnaHQoKTsKKyAgICBjYXNlIEZvY3Vz
RGlyZWN0aW9uVXA6CisgICAgICAgIHJldHVybiB0YXJnZXRNaWRkbGUgPCBjdXJSZWN0LnkoKTsK
KyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRG93bjoKKyAgICAgICAgcmV0dXJuIHRhcmdldE1pZGRs
ZSA+IGN1clJlY3QuYm90dG9tKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyBDaGVja3MgaWYg
fG5vZGV8IGlzIG9mZnNjcmVlbiB0aGUgdmlzaWJsZSBhcmVhICh2aWV3cG9ydCkgb2YgaXRzIGNv
bnRhaW5lcgorLy8gZG9jdW1lbnQuIEluIGNhc2UgaXQgaXMsIG9uZSBjYW4gc2Nyb2xsIGluIGRp
cmVjdGlvbiBvciB0YWtlIGFueSBkaWZmZXJlbnQKKy8vIGRlc2lyZWQgYWN0aW9uIGxhdGVyIG9u
LgorYm9vbCBoYXNPZmZzY3JlZW5SZWN0KE5vZGUqIG5vZGUpCit7CisgICAgLy8gR2V0IHRoZSBG
cmFtZVZpZXcgaW4gd2hpY2ggfG5vZGV8IGlzICh3aGljaCBtZWFucyB0aGUgY3VycmVudCB2aWV3
cG9ydCBpZiB8bm9kZXwKKyAgICAvLyBpcyBub3QgaW4gYW4gaW5uZXIgZG9jdW1lbnQpLCBzbyB3
ZSBjYW4gY2hlY2sgaWYgaXRzIGNvbnRlbnQgcmVjdCBpcyB2aXNpYmxlCisgICAgLy8gYmVmb3Jl
IHdlIGFjdHVhbGx5IG1vdmUgdGhlIGZvY3VzIHRvIGl0LgorICAgIEZyYW1lVmlldyogZnJhbWVW
aWV3ID0gbm9kZS0+ZG9jdW1lbnQoKS0+dmlldygpOworICAgIGlmICghZnJhbWVWaWV3KQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIEludFJlY3QgY29udGFpbmVyVmlld3BvcnRSZWN0ID0g
ZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKKworICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcikKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICBJbnRSZWN0IHJlY3QocmVuZGVyLT5hYnNvbHV0ZUNsaXBwZWRPdmVyZmxv
d1JlY3QoKSk7CisgICAgcmV0dXJuICFjb250YWluZXJWaWV3cG9ydFJlY3QuaW50ZXJzZWN0cyhy
ZWN0KTsKK30KKworLy8gSW4gYSBib3R0b20tdXAgd2F5LCB0aGlzIG1ldGhvZCB0cmllcyB0byBz
Y3JvbGwgfGZyYW1lfCBpbiBhIGdpdmVuIGRpcmVjdGlvbgorLy8gfGRpcmVjdGlvbnwsIGdvaW5n
IHVwIGluIHRoZSBmcmFtZSB0cmVlIGhpZXJhcmNoeSBpbiBjYXNlIGl0IGRvZXMgbm90IHN1Y2Nl
ZWQuCitib29sIHNjcm9sbEluRGlyZWN0aW9uKEZyYW1lKiBmcmFtZSwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQoreworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIFNjcm9sbERpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb247CisKKyAgICBzd2l0Y2ggKGRpcmVj
dGlvbikgeworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25MZWZ0OgorICAgICAgICBzY3JvbGxEaXJl
Y3Rpb24gPSBTY3JvbGxMZWZ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uUmlnaHQ6CisgICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbFJpZ2h0OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6CisgICAgICAgIHNjcm9sbERpcmVj
dGlvbiA9IFNjcm9sbFVwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9u
RG93bjoKKyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0gU2Nyb2xsRG93bjsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJl
dHVybiBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KHNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsQnlMaW5lKTsKK30KKworYm9vbCBpc0luUm9vdERvY3VtZW50KE5vZGUqIG5v
ZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBEb2N1
bWVudCogcm9vdERvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKS0+cGFnZSgpLT5tYWluRnJhbWUo
KS0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKSA9PSByb290RG9jdW1l
bnQ7Cit9CisKK3N0YXRpYyB2b2lkIGRlZmxhdGVJZk92ZXJsYXBwZWQoSW50UmVjdCYgYSwgSW50
UmVjdCYgYikKK3sKKyAgICBpZiAoIWEuaW50ZXJzZWN0cyhiKSB8fCBhLmNvbnRhaW5zKGIpIHx8
IGIuY29udGFpbnMoYSkpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBpbnQg
ZnVkZ2VGYWN0b3IgPSAtMjsKKworICAgIC8vIEF2b2lkIG5lZ2F0aXZlIHdpZHRoIG9yIGhlaWdo
dCB2YWx1ZXMuCisgICAgaWYgKGZ1ZGdlRmFjdG9yID4gMCB8fCAoKGEud2lkdGgoKSArIDIgKiBm
dWRnZUZhY3RvciA+IDApICYmIChhLmhlaWdodCgpICsgMiAqIGZ1ZGdlRmFjdG9yID4gMCkpKQor
ICAgICAgICBhLmluZmxhdGUoZnVkZ2VGYWN0b3IpOworCisgICAgaWYgKGZ1ZGdlRmFjdG9yID4g
MCB8fCAoKGIud2lkdGgoKSArIDIgKiBmdWRnZUZhY3RvciA+IDApICYmIChiLmhlaWdodCgpICsg
MiAqIGZ1ZGdlRmFjdG9yID4gMCkpKQorICAgICAgICBiLmluZmxhdGUoZnVkZ2VGYWN0b3IpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uaCBiL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNjVkZTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaApAQCAtMCwwICsxLDExMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0
b29Ad2Via2l0Lm9yZz4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBTcGF0aWFsTmF2aWdhdGlvbl9oCisjZGVmaW5lIFNwYXRp
YWxOYXZpZ2F0aW9uX2gKKworI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisKKyNpbmNsdWRl
IDxsaW1pdHM+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBJ
bnRSZWN0OworY2xhc3MgTm9kZTsKK2NsYXNzIFJlbmRlck9iamVjdDsKKwordXNpbmcgbmFtZXNw
YWNlIHN0ZDsKKworY29uc3QgbG9uZyBsb25nIGNNYXhEaXN0YW5jZSA9IG51bWVyaWNfbGltaXRz
PGxvbmcgbG9uZz46Om1heCgpOworCisvLyBTcGF0aWFsbHkgc3BlYWtpbmcsIHR3byBnaXZlbiBl
bGVtZW50cyBpbiBhIHdlYiBwYWdlIGNhbiBiZToKKy8vIDEpIEZ1bGx5IGFsaWduZWQ6IFRoZXJl
IGlzIGEgZnVsbCBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0aGUgcmVjdHMsIGVpdGhlcgorLy8gICAg
dmVydGljYWxseSBvciBob3Jpem9udGFsbHkuCisvLworLy8gKiBIb3Jpem9udGFsbHkgICAgICAg
KiBWZXJ0aWNhbGx5CisvLyAgICBfCisvLyAgIHxffCAgICAgICAgICAgICAgICAgICBfIF8gXyBf
IF8gXworLy8gICB8X3wuLi4uLi4gXyAgICAgICAgICB8X3xffF98X3xffF98CisvLyAgIHxffCAg
ICAgIHxffCAgICAgICAgIC4gICAgICAgLgorLy8gICB8X3wuLi4uLi58X3wgICBPUiAgICAuICAg
ICAgIC4KKy8vICAgfF98ICAgICAgfF98ICAgICAgICAgLiAgICAgICAuCisvLyAgIHxffC4uLi4u
LnxffCAgICAgICAgICBfIF8gXyBfCisvLyAgIHxffCAgICAgICAgICAgICAgICAgIHxffF98X3xf
fAorLy8KKy8vCisvLyAyKSBQYXJ0aWFsbHkgYWxpZ25lZDogVGhlcmUgaXMgYSBwYXJ0aWFsIGlu
dGVyc2VjdGlvbiBiZXR3ZWVuIHRoZSByZWN0cywgZWl0aGVyCisvLyAgICB2ZXJ0aWNhbGx5IG9y
IGhvcml6b250YWxseS4KKy8vCisvLyAqIEhvcml6b250YWxseSAgICAgICAqIFZlcnRpY2FsbHkK
Ky8vICAgIF8gICAgICAgICAgICAgICAgICAgXyBfIF8gXyBfCisvLyAgIHxffCAgICAgICAgICAg
ICAgICAgfF98X3xffF98X3wKKy8vICAgfF98Li4uLiBfICAgICAgT1IgICAgICAgICAgIC4gLgor
Ly8gICB8X3wgICAgfF98ICAgICAgICAgICAgICAgICAgLiAuCisvLyAgIHxffC4uLi58X3wgICAg
ICAgICAgICAgICAgICAuXy5fIF8KKy8vICAgICAgICAgIHxffCAgICAgICAgICAgICAgICAgIHxf
fF98X3wKKy8vICAgICAgICAgIHxffAorLy8KKy8vIDMpIE9yLCBvdGhlcndpc2UsIG5vdCBhbGln
bmVkIGF0IGFsbC4KKy8vCisvLyAqIEhvcml6b250YWxseSAgICAgICAqIFZlcnRpY2FsbHkKKy8v
ICAgICAgICAgXyAgICAgICAgICAgICAgXyBfIF8gXworLy8gICAgICAgIHxffCAgICAgICAgICAg
IHxffF98X3xffAorLy8gICAgICAgIHxffCAgICAgICAgICAgICAgICAgICAgLgorLy8gICAgICAg
IHxffCAgICAgICAgICAgICAgICAgICAgIC4KKy8vICAgICAgIC4gICAgICAgICAgT1IgICAgICAg
ICAgICAgLgorLy8gICAgXyAuICAgICAgICAgICAgICAgICAgICAgICAgICAgLl8gXyBfIF8gXwor
Ly8gICB8X3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgfF98X3xffF98X3wKKy8vICAgfF98
CisvLyAgIHxffAorLy8KKy8vICJUb3RhbGx5IEFsaWduZWQiIGVsZW1lbnRzIGFyZSBwcmVmZXJh
YmxlIGNhbmRpZGF0ZXMgdG8gbW92ZQorLy8gZm9jdXMgdG8gb3ZlciAiUGFydGlhbGx5IEFsaWdu
ZWQiIG9uZXMsIHRoYXQgb24gaXRzIHR1cm5zIGFyZQorLy8gbW9yZSBwcmVmZXJhYmxlIHRoYW4g
Ik5vdCBBbGlnbmVkIi4KK2VudW0gUmVjdHNBbGlnbm1lbnQgeworICAgIE5vbmUgPSAwLAorICAg
IFBhcnRpYWwsCisgICAgRnVsbAorfTsKKworc3RydWN0IEZvY3VzQ2FuZGlkYXRlIHsKKyAgICBG
b2N1c0NhbmRpZGF0ZSgpCisgICAgICAgIDogbm9kZSgwKQorICAgICAgICAsIGRpc3RhbmNlKGNN
YXhEaXN0YW5jZSkKKyAgICAgICAgLCBwYXJlbnREaXN0YW5jZShjTWF4RGlzdGFuY2UpCisgICAg
ICAgICwgYWxpZ25tZW50KE5vbmUpCisgICAgICAgICwgcGFyZW50QWxpZ25tZW50KE5vbmUpCisg
ICAgeworICAgIH0KKyAgICBOb2RlKiBub2RlOworICAgIGxvbmcgbG9uZyBkaXN0YW5jZTsKKyAg
ICBsb25nIGxvbmcgcGFyZW50RGlzdGFuY2U7CisgICAgUmVjdHNBbGlnbm1lbnQgYWxpZ25tZW50
OworICAgIFJlY3RzQWxpZ25tZW50IHBhcmVudEFsaWdubWVudDsKK307CisKK2xvbmcgbG9uZyBk
aXN0YW5jZUluRGlyZWN0aW9uKE5vZGUqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEZvY3VzQ2Fu
ZGlkYXRlJik7Citib29sIHNjcm9sbEluRGlyZWN0aW9uKEZyYW1lKiwgRm9jdXNEaXJlY3Rpb24p
OworYm9vbCBoYXNPZmZzY3JlZW5SZWN0KE5vZGUqKTsKK2Jvb2wgaXNJblJvb3REb2N1bWVudChO
b2RlKik7CisKK30gLy8gbmFtc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BhdGlhbE5hdmln
YXRpb25faAotLSAKMS42LjAuNAoK
</data>
<flag name="commit-queue"
          id="32338"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49483</attachid>
            <date>2010-02-25 06:34:54 -0800</date>
            <delta_ts>2010-03-12 06:28:31 -0800</delta_ts>
            <desc>(committed in r55543) Add directional navigation to WebCore (v15.1)</desc>
            <filename>0001-Extend-keyboard-navigation-to-allow-directional-navi.patch</filename>
            <type>text/plain</type>
            <size>46240</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBlZWJmYjQ0MzBjNGZjZTBkZWZlMmMyOWZiNWQ2ODJkZTQ5MTg1YzNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4K
RGF0ZTogV2VkLCAyNCBGZWIgMjAxMCAxNjowMDo1MiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEV4
dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRpcmVjdGlvbmFsIG5hdmlnYXRpb24K
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY2MgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgpQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Vi
a2l0Lm9yZz4KQmFzZWQgb24gdGhlIGluaXRpYWwgd29yayBvZiBNYXJjbyBCYXJpc2lvbmUgPG1h
cmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl
IGNvcmUgbG9naWMgb2YgdGhlICdTcGF0aWFsIE5hdmlnYXRpb24nIGZlYXR1cmUgWzFdLgpJdCBp
bXByb3ZlcyB0aGUgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IG9mIFdlYkNvcmUgYnkgZXh0ZW5kaW5n
IHRoZSBiYXNpYyBrZXlib2FyZApuYXZpZ2F0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgKGJhc2Vk
IG9uIFRhYiBmb3J3YXJkIGFuZCBiYWNrd2FyZCkgd2l0aCB0aGUKYWRkaXRpb24gb2YgYSB0d28t
ZGltZW5zaW9uYWwgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBieSB1c2luZyBMZWZ0LCBSaWdodCwg
VXAgYW5kCkRvd24gYXJyb3cga2V5cyB0byBtb3ZlIHRvIHRoZSAibmVhcmVzdCIgZWxlbWVudCBp
biB0aGUgY29ycmVzcG9uZGluZyBkaXJlY3Rpb24uCgpIaWdobGlnaHRzOgoqIEZlYXR1cmUgaXMg
dHVybmVkIG9mZiBieSBkZWZhdWx0IGluIFNldHRpbmdzLiBQb3J0IHNwZWNpZmljIEFQSXMgbmVl
ZCB0byBiZSBhZGRlZAogIGZvciB0b2dnbGluZyBpdCBvbi9vZmYuCiogT25seSBlbGVtZW50cyB2
aWV3ZWQgaW4gdGhlIGN1cnJlbnQgdmlld3BvcnQgY2FuIGhhdmUgZm9jdXMgbW92ZSB0byBpdC4g
SWYgdGhlCiAgIm5lYXJlc3QiIGlzIG5vdCBpbiB2aWV3cG9ydCBkaW1lbnNpb25zLCB0aGVuIGEg
c2Nyb2xsLWluLWRpcmVjdGlvbiBhY3Rpb24gaXMKICBwZXJmb3JtZWQuCiogVGhlIGxheW91dCB0
ZXN0cyBhZGRlZCBydW4gb24gUXQncyBEUlQgb25seSBmb3Igbm93IChza2lwcGVkIGZvciBNYWMs
IFdpbiBhbmQgR3RrKS4KCktub3duIGlzc3VlcyAodG8gYmUgY292ZXJlZCBpbiBmb2xsb3ctdXAg
YnVncyk6CiogQWRkIHBvcnQgc3BlY2lmaWMgaG9va3MgdG8gZWFjaCBEUlQgdG8gZW5hYmxlL2Rp
c2FibGUgU3BhdGlhbCBOYXZpZ2F0aW9uLgoqIFN1cHBvcnQgZm9yIHNwYXRpYWwgbmF2aWdhdGlv
biB0aHJvdWdoIGZvcm0gZWxlbWVudHMgKDxpbnB1dD4sIDxzZWxlY3Q+LCBldGMpCiAgaXMgYmUg
YWRkZWQuCiogTWFrZSBuYXZpZ2F0aW9uIGtleXMgY3VzdG9taXphYmxlLiBJdCBjdXJyZW50bHkg
d29ya3Mgd2l0aCBhcnJvd3Mga2V5cyBvbmx5CiAgKHVwLCBkb3duLCByaWdodCBhbmQgbGVmdCku
CiogTWFrZSBpdCBzdXBwb3J0IG1vZGlmaWVycyAoQWx0LCBDdHJsIGFuZCBTaGlmdCkuCgpbMV0g
aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGF0aWFsX25hdmlnYXRpb24KCiogQW5kcm9p
ZC5tazoKKiBHTlVtYWtlZmlsZS5hbToKKiBXZWJDb3JlLmd5cGk6CiogV2ViQ29yZS5wcm86Ciog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgoo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgooV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpmb2N1c0RpcmVjdGlvbkZvcktleSk6CihXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CiogcGFnZS9FdmVudEhhbmRsZXIu
aDoKKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OmFkdmFuY2VGb2N1cyk6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0lu
RG9jdW1lbnRPcmRlcik6CihXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0Rp
cmVjdGlvbmFsbHkpOgooV2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZkNsb3Nlcik6CihX
ZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgoo
V2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlv
bik6CiogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKiBwYWdlL0ZvY3VzRGlyZWN0aW9uLmg6CihX
ZWJDb3JlOjopOgoqIHBhZ2UvU2V0dGluZ3MuY3BwOgooV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRp
bmdzKToKKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgoq
IHBhZ2UvU2V0dGluZ3MuaDoKKFdlYkNvcmU6OlNldHRpbmdzOjppc1NwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZCk6CiogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6IEFkZGVkLgooV2ViQ29yZTo6
ZGlzdGFuY2VJbkRpcmVjdGlvbik6CihXZWJDb3JlOjpyZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3RE
b2N1bWVudCk6CihXZWJDb3JlOjphbGlnbm1lbnRGb3JSZWN0cyk6CihXZWJDb3JlOjppc0hvcml6
b250YWxNb3ZlKToKKFdlYkNvcmU6OmFyZVJlY3RzRnVsbHlBbGlnbmVkKToKKFdlYkNvcmU6OmFy
ZVJlY3RzUGFydGlhbGx5QWxpZ25lZCk6CihXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2UpOgooV2Vi
Q29yZTo6aXNSZWN0SW5EaXJlY3Rpb24pOgooV2ViQ29yZTo6aGFzT2Zmc2NyZWVuUmVjdCk6CihX
ZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CihXZWJDb3JlOjppc0luUm9vdERvY3VtZW50KToK
KFdlYkNvcmU6OmRlZmxhdGVJZk92ZXJsYXBwZWQpOgoqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24u
aDogQWRkZWQuCihXZWJDb3JlOjopOgooV2ViQ29yZTo6Rm9jdXNDYW5kaWRhdGU6OkZvY3VzQ2Fu
ZGlkYXRlKToKLS0tCiBXZWJDb3JlL0FuZHJvaWQubWsgICAgICAgICAgICAgICAgICAgIHwgICAg
MSArCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgIHwgICA3NCArKysrKwog
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnBy
byAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiB8ICAgIDggKwogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAg
ICB8ICAgNTMgKysrKy0KIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCAgICAgICAgICAgfCAg
ICA0ICsKIFdlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwICAgICAgfCAgMTYwICsrKysr
KysrKysrCiBXZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmggICAgICAgIHwgICAgOCArCiBX
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCAgICAgICAgIHwgICAgOSArLQogV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcCAgICAgICAgICAgICB8ICAgIDYgKwogV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmggICAgICAgICAgICAgICB8ICAgIDQgKwogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcCAgICB8ICA0ODUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBXZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCAgICAgIHwgIDExMSArKysrKysrKwogMTUgZmls
ZXMgY2hhbmdlZCwgOTI0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oCgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IGMyNDExYjEuLmIxZDJh
NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQu
bWsKQEAgLTM1MSw2ICszNTEsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklM
RVMpIFwKIAlwYWdlL1NjcmVlbi5jcHAgXAogCXBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKIAlw
YWdlL1NldHRpbmdzLmNwcCBcCisJcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgXAogCXBhZ2Uv
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBcCiAJcGFnZS9XaW5kb3dGZWF0dXJlcy5jcHAgXAog
CXBhZ2UvV29ya2VyTmF2aWdhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg0OGJjYmUuLmVmMDdhZjkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcg
QEAKKzIwMTAtMDItMTggIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgQW50
b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+CisgICAgICAgIEJhc2VkIG9uIHRoZSBp
bml0aWFsIHdvcmsgb2YgTWFyY28gQmFyaXNpb25lIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3Jh
LmNvLnVrPgorCisgICAgICAgIEV4dGVuZCBrZXlib2FyZCBuYXZpZ2F0aW9uIHRvIGFsbG93IGRp
cmVjdGlvbmFsIG5hdmlnYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NjYyCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBj
b3JlIGxvZ2ljIG9mIHRoZSAnU3BhdGlhbCBOYXZpZ2F0aW9uJyBmZWF0dXJlIFsxXS4KKyAgICAg
ICAgSXQgaW1wcm92ZXMgdGhlIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBvZiBXZWJDb3JlIGJ5IGV4
dGVuZGluZyB0aGUgYmFzaWMga2V5Ym9hcmQKKyAgICAgICAgbmF2aWdhdGlvbiBjdXJyZW50bHkg
YXZhaWxhYmxlIChiYXNlZCBvbiBUYWIgZm9yd2FyZCBhbmQgYmFja3dhcmQpIHdpdGggdGhlCisg
ICAgICAgIGFkZGl0aW9uIG9mIGEgdHdvLWRpbWVuc2lvbmFsIGRpcmVjdGlvbmFsIG5hdmlnYXRp
b24gYnkgdXNpbmcgTGVmdCwgUmlnaHQsIFVwIGFuZAorICAgICAgICBEb3duIGFycm93IGtleXMg
dG8gbW92ZSB0byB0aGUgIm5lYXJlc3QiIGVsZW1lbnQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZGly
ZWN0aW9uLgorCisgICAgICAgIEhpZ2hsaWdodHM6CisgICAgICAgICogRmVhdHVyZSBpcyB0dXJu
ZWQgb2ZmIGJ5IGRlZmF1bHQgaW4gU2V0dGluZ3MuIFBvcnQgc3BlY2lmaWMgQVBJcyBuZWVkIHRv
IGJlIGFkZGVkCisgICAgICAgICAgZm9yIHRvZ2dsaW5nIGl0IG9uL29mZi4KKyAgICAgICAgKiBP
bmx5IGVsZW1lbnRzIHZpZXdlZCBpbiB0aGUgY3VycmVudCB2aWV3cG9ydCBjYW4gaGF2ZSBmb2N1
cyBtb3ZlIHRvIGl0LiBJZiB0aGUKKyAgICAgICAgICAibmVhcmVzdCIgaXMgbm90IGluIHZpZXdw
b3J0IGRpbWVuc2lvbnMsIHRoZW4gYSBzY3JvbGwtaW4tZGlyZWN0aW9uIGFjdGlvbiBpcworICAg
ICAgICAgIHBlcmZvcm1lZC4KKworICAgICAgICBLbm93biBpc3N1ZXMgKHRvIGJlIGNvdmVyZWQg
aW4gZm9sbG93LXVwIGJ1Z3MpOgorICAgICAgICAqIEFkZCBwb3J0IHNwZWNpZmljIGhvb2tzIHRv
IGVhY2ggRFJUIHRvIGVuYWJsZS9kaXNhYmxlIFNwYXRpYWwgTmF2aWdhdGlvbi4KKyAgICAgICAg
KiBTdXBwb3J0IGZvciBzcGF0aWFsIG5hdmlnYXRpb24gdGhyb3VnaCBmb3JtIGVsZW1lbnRzICg8
aW5wdXQ+LCA8c2VsZWN0PiwgZXRjKQorICAgICAgICAgIGlzIGJlIGFkZGVkLgorICAgICAgICAq
IE1ha2UgbmF2aWdhdGlvbiBrZXlzIGN1c3RvbWl6YWJsZS4gSXQgY3VycmVudGx5IHdvcmtzIHdp
dGggYXJyb3dzIGtleXMgb25seQorICAgICAgICAgICh1cCwgZG93biwgcmlnaHQgYW5kIGxlZnQp
LgorICAgICAgICAqIE1ha2UgaXQgc3VwcG9ydCBtb2RpZmllcnMgKEFsdCwgQ3RybCBhbmQgU2hp
ZnQpLgorCisgICAgICAgIFsxXSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYXRpYWxf
bmF2aWdhdGlvbgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogcGFnZS9F
dmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpm
b2N1c0RpcmVjdGlvbkZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRl
ZmF1bHRBcnJvd0V2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoK
KyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1cyk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0Nv
bnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdW1lbnRPcmRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0RpcmVjdGlvbmFsbHkpOgorICAgICAgICAo
V2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZkNsb3Nlcik6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NvbnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZvY3VzYWJsZU5vZGVJbkRpcmVj
dGlvbik6CisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdl
L0ZvY3VzRGlyZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQpOgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpp
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZGlzdGFuY2VJbkRpcmVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3REb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjphbGlnbm1lbnRGb3JSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpp
c0hvcml6b250YWxNb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OmFyZVJlY3RzRnVsbHlBbGlnbmVk
KToKKyAgICAgICAgKFdlYkNvcmU6OmFyZVJlY3RzUGFydGlhbGx5QWxpZ25lZCk6CisgICAgICAg
IChXZWJDb3JlOjpzcGF0aWFsRGlzdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6aXNSZWN0SW5E
aXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6aGFzT2Zmc2NyZWVuUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpzY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjppc0luUm9v
dERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmxhdGVJZk92ZXJsYXBwZWQpOgorICAg
ICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjopOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDYW5kaWRhdGU6OkZvY3VzQ2FuZGlkYXRlKToK
KwogMjAxMC0wMi0yNCAgQW50b25pbyBHb21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDkyZjgxMDMuLmIwODc5
M2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMTQxNyw2ICsxNDE3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmggXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAgXAogCVdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwIFwKKwlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAJ
V2ViQ29yZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgXAogCVdlYkNvcmUvcGFnZS9V
c2VyQ29udGVudFVSTFBhdHRlcm4uaCBcCiAJV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuaCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDRjOTliYzEuLjgxZjU0NmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODgwLDYgKzE4ODAsOCBAQAogICAgICAgICAg
ICAgJ3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU2V0dGlu
Z3MuY3BwJywKICAgICAgICAgICAgICdwYWdlL1NldHRpbmdzLmgnLAorICAgICAgICAgICAgJ3Bh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uaCcsCisgICAgICAgICAgICAncGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaCcsCiAgICAgICAgICAg
ICAncGFnZS9Vc2VyU2NyaXB0LmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTEwNjgzZC4uMGE4YzY5YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC03NzMsNiAr
NzczLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgXAogICAg
IHBhZ2UvU2NyZWVuLmNwcCBcCiAgICAgcGFnZS9TZXR0aW5ncy5jcHAgXAorICAgIHBhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwIFwKICAgICBwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAg
XAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuY3BwIFwKICAgICBwYWdlL1hTU0F1ZGl0b3IuY3Bw
IFwKQEAgLTE0NzgsNiArMTQ3OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvU2NyZWVuLmgg
XAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaCBcCiAgICAgcGFnZS9TZXR0aW5ncy5oIFwKKyAg
ICBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggXAogICAgIHBhZ2UvV2luZG93RmVhdHVyZXMuaCBc
CiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGFnZS9YU1NBdWRpdG9yLmggXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMzJiYjFjNy4uYWVlNzc2ZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yMDk3Myw2ICsyMDk3Mywx
NCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcU3BhdGlhbE5hdmlnYXRpb24uaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IGMzZDFlNWMuLmM3OGQ2MjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0yMTY2LDEwICsyMTY2LDE1IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0S2V5Ym9hcmRF
dmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmIChldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiKQogICAgICAgICAg
ICAgZGVmYXVsdFRhYkV2ZW50SGFuZGxlcihldmVudCk7CisgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uID0gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoZXZl
bnQtPmtleUlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICBpZiAoZGlyZWN0aW9uICE9IEZvY3Vz
RGlyZWN0aW9uTm9uZSkKKyAgICAgICAgICAgICAgICBkZWZhdWx0QXJyb3dFdmVudEhhbmRsZXIo
ZGlyZWN0aW9uLCBldmVudCk7CisgICAgICAgIH0KIAotICAgICAgIC8vIHByb3ZpZGVzIEtCIG5h
dmlnYXRpb24gYW5kIHNlbGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2Vycwot
ICAgICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJm
YWNlRW5hYmxlZCgpKQotICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50
KGV2ZW50KTsgICAgICAgCisgICAgICAgIC8vIHByb3ZpZGVzIEtCIG5hdmlnYXRpb24gYW5kIHNl
bGVjdGlvbiBmb3IgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSB1c2VycworICAgICAgICBpZiAoQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKSkK
KyAgICAgICAgICAgIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoZXZlbnQpOwogICAg
IH0KICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkg
ewogICAgICAgICBtX2ZyYW1lLT5lZGl0b3IoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChldmVudCk7
CkBAIC0yMTgwLDYgKzIxODUsMjcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRlZmF1bHRLZXlib2Fy
ZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICB9CiB9CiAKK0ZvY3VzRGly
ZWN0aW9uIEV2ZW50SGFuZGxlcjo6Zm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3Ry
aW5nJiBrZXlJZGVudGlmaWVyKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBEb3duLCAoIkRvd24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIFVwLCAoIlVwIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBMZWZ0LCAoIkxlZnQiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIFJpZ2h0LCAoIlJpZ2h0IikpOworCisgICAgRm9jdXNEaXJlY3Rpb24gcmV0VmFsID0gRm9j
dXNEaXJlY3Rpb25Ob25lOworCisgICAgaWYgKGtleUlkZW50aWZpZXIgPT0gRG93bikKKyAgICAg
ICAgcmV0VmFsID0gRm9jdXNEaXJlY3Rpb25Eb3duOworICAgIGVsc2UgaWYgKGtleUlkZW50aWZp
ZXIgPT0gVXApCisgICAgICAgIHJldFZhbCA9IEZvY3VzRGlyZWN0aW9uVXA7CisgICAgZWxzZSBp
ZiAoa2V5SWRlbnRpZmllciA9PSBMZWZ0KQorICAgICAgICByZXRWYWwgPSBGb2N1c0RpcmVjdGlv
bkxlZnQ7CisgICAgZWxzZSBpZiAoa2V5SWRlbnRpZmllciA9PSBSaWdodCkKKyAgICAgICAgcmV0
VmFsID0gRm9jdXNEaXJlY3Rpb25SaWdodDsKKworICAgIHJldHVybiByZXRWYWw7Cit9CisKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lz
RXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgZmxvYXREcmFnVmlld3BvcnRMb2NhdGlvbikgY29u
c3QKIHsKQEAgLTI0NzQsNiArMjUwMCwyNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGVmYXVsdFNw
YWNlRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiAjZW5kaWYKIAordm9pZCBF
dmVudEhhbmRsZXI6OmRlZmF1bHRBcnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiBmb2N1
c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5jdHJs
S2V5KCkgfHwgZXZlbnQtPm1ldGFLZXkoKSB8fCBldmVudC0+YWx0R3JhcGhLZXkoKSB8fCBldmVu
dC0+c2hpZnRLZXkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
cGFnZS0+c2V0dGluZ3MoKSB8fCAhcGFnZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQXJyb3dzIGFuZCBvdGhlciBw
b3NzaWJsZSBkaXJlY3Rpb25hbCBuYXZpZ2F0aW9uIGtleXMgY2FuIGJlIHVzZWQgaW4gZGVzaWdu
CisgICAgLy8gbW9kZSBlZGl0aW5nLgorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pbkRl
c2lnbk1vZGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLT5hZHZhbmNlRm9jdXMoZm9jdXNEaXJlY3Rpb24sIGV2ZW50KSkKKyAgICAgICAgZXZl
bnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKIHZvaWQgRXZlbnRIYW5kbGVyOjpkZWZhdWx0
VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIC8vIFdlIHNob3Vs
ZCBvbmx5IGFkdmFuY2UgZm9jdXMgb24gdGFicyBpZiBubyBzcGVjaWFsIG1vZGlmaWVyIGtleXMg
YXJlIGhlbGQgZG93bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBi
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA3MmExMGY3Li5lYjVkYzZiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEV2ZW50SGFuZGxlcl9oCiAK
ICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgorI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzAxLDYgKzMwMiw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGRlZmF1bHRTcGFjZUV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Kik7CiAgICAgdm9pZCBk
ZWZhdWx0VGFiRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRB
cnJvd0V2ZW50SGFuZGxlcihGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdE
SFRNTCwgYm9vbCYgZmxhZ1VBKSBjb25zdDsKQEAgLTMyMyw2ICszMjUsOCBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgc2V0RnJhbWVXYXNTY3JvbGxlZEJ5VXNlcigpOwogCisgICAgRm9jdXNE
aXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7
CisKICAgICBib29sIGNhcHR1cmVzRHJhZ2dpbmcoKSBjb25zdCB7IHJldHVybiBtX2NhcHR1cmVz
RHJhZ2dpbmc7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChfX09CSkNfXykgJiYg
IUVOQUJMRShFWFBFUklNRU5UQUxfU0lOR0xFX1ZJRVdfTU9ERSkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAKaW5kZXggMjE3NzlmOS4uOGE2ZmZjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTQ5LDEyICs0OSwxNCBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUg
IlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUg
IlNwYXRpYWxOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkaXNw
YXRjaEV2ZW50c09uV2luZG93QW5kRm9jdXNlZE5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBib29s
IGZvY3VzZWQpCiB7CkBAIC0xNTcsNiArMTU5LDI0IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpz
ZXRJbml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBl
CiAKIGJvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCiB7CisgICAg
c3dpdGNoIChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uRm9yd2FyZDoKKyAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uQmFja3dhcmQ6CisgICAgICAgIHJldHVybiBhZHZhbmNlRm9j
dXNJbkRvY3VtZW50T3JkZXIoZGlyZWN0aW9uLCBldmVudCwgaW5pdGlhbEZvY3VzKTsKKyAgICBj
YXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6Cisg
ICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgor
ICAgICAgICByZXR1cm4gYWR2YW5jZUZvY3VzRGlyZWN0aW9uYWxseShkaXJlY3Rpb24sIGV2ZW50
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9j
dXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
KiBldmVudCwgYm9vbCBpbml0aWFsRm9jdXMpCit7CiAgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNl
ZE9yTWFpbkZyYW1lKCk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTI2MSw2ICsyODEsMTQ2IEBAIGJvb2wgRm9jdXND
b250cm9sbGVyOjphZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBLZXlib2Fy
ZEV2ZW50KiBldmVuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgRm9jdXNDb250cm9sbGVy
OjphZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZy
YW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKyAgICBEb2N1bWVudCogZm9jdXNlZERvY3VtZW50
ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKCFmb2N1c2VkRG9jdW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gZm9jdXNlZERvY3VtZW50
LT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgLy8gSnVz
dCBtb3ZlIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgbm9kZS4KKyAgICAgICAgRm9jdXNEaXJlY3Rp
b24gdGFiRGlyZWN0aW9uID0gKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwIHx8IGRpcmVj
dGlvbiA9PSBGb2N1c0RpcmVjdGlvbkxlZnQpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA6IEZvY3VzRGlyZWN0aW9uQmFja3dh
cmQ7CisgICAgICAgIC8vICdpbml0aWFsRm9jdXMnIGlzIHNldCB0byB0cnVlIHNvIHRoZSBjaHJv
bWUgaXMgbm90IGZvY3VzZWQuCisgICAgICAgIHJldHVybiBhZHZhbmNlRm9jdXNJbkRvY3VtZW50
T3JkZXIodGFiRGlyZWN0aW9uLCBldmVudCwgdHJ1ZSk7CisgICAgfQorCisgICAgLy8gTW92ZSB1
cCBpbiB0aGUgY2hhaW4gb2YgbmVzdGVkIGZyYW1lcy4KKyAgICBmcmFtZSA9IGZyYW1lLT50cmVl
KCktPnRvcCgpOworCisgICAgRm9jdXNDYW5kaWRhdGUgZm9jdXNDYW5kaWRhdGU7CisgICAgZmlu
ZEZvY3VzYWJsZU5vZGVJbkRpcmVjdGlvbihmcmFtZS0+ZG9jdW1lbnQoKSwgZm9jdXNlZE5vZGUs
IGRpcmVjdGlvbiwgZXZlbnQsIGZvY3VzQ2FuZGlkYXRlKTsKKworICAgIE5vZGUqIG5vZGUgPSBm
b2N1c0NhbmRpZGF0ZS5ub2RlOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNFbGVtZW50Tm9k
ZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNYXkgbmVlZCBhIHdheSB0byBmb2N1cyBhIGRvY3Vt
ZW50IGhlcmUuCisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwor
ICAgICAgICBzY3JvbGxJbkRpcmVjdGlvbihmcmFtZSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGNyYXp5IGp1bXAg
YmV0d2VlbiBsaW5rcyB0aGF0IGFyZSBlaXRoZXIgZmFyIGF3YXkgZnJvbSBlYWNoIG90aGVyLAor
ICAgIC8vIG9yIGp1c3Qgbm90IGN1cnJlbnRseSB2aXNpYmxlLCBsZXRzIGRvIGEgc2Nyb2xsIGlu
IHRoZSBnaXZlbiBkaXJlY3Rpb24gYW5kIGJhaWwgb3V0CisgICAgLy8gaWYgfG5vZGV8IGVsZW1l
bnQgaXMgbm90IGluIHRoZSB2aWV3cG9ydC4KKyAgICBpZiAoaGFzT2Zmc2NyZWVuUmVjdChub2Rl
KSkgeworICAgICAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLT52aWV3KCktPmZy
YW1lKCk7CisgICAgICAgIHNjcm9sbEluRGlyZWN0aW9uKGZyYW1lLCBkaXJlY3Rpb24pOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBEb2N1bWVudCogbmV3RG9jdW1lbnQgPSBu
b2RlLT5kb2N1bWVudCgpOworCisgICAgaWYgKG5ld0RvY3VtZW50ICE9IGZvY3VzZWREb2N1bWVu
dCkgeworICAgICAgICAvLyBGb2N1cyBpcyBnb2luZyBhd2F5IGZyb20gdGhlIG9yaWdpbmFsbHkg
Zm9jdXNlZCBkb2N1bWVudCwgc28gY2xlYXIgdGhlIGZvY3VzZWQgbm9kZS4KKyAgICAgICAgZm9j
dXNlZERvY3VtZW50LT5zZXRGb2N1c2VkTm9kZSgwKTsKKyAgICB9CisKKyAgICBpZiAobmV3RG9j
dW1lbnQpCisgICAgICAgIHNldEZvY3VzZWRGcmFtZShuZXdEb2N1bWVudC0+ZnJhbWUoKSk7CisK
KyAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmZvY3VzKGZhbHNlKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordm9pZCB1cGRhdGVGb2N1c0NhbmRpZGF0ZUlmQ2xvc2VyKE5vZGUqIGZv
Y3VzZWROb2RlLCBOb2RlKiBjYW5kaWRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9uZyBsb25nIGRpc3RhbmNlLCBGb2N1c0NhbmRpZGF0ZSYgY2xvc2VzdEZvY3VzQ2Fu
ZGlkYXRlKQoreworICAgIC8vIEJhaWwgb3V0IGlmIHxkaXN0YW5jZXwgaXMgYmlnZ2VyIHRoYW4g
dGhlIGN1cnJlbnQgY2xvc2VzdCBjYW5kaWRhdGUuCisgICAgaWYgKGRpc3RhbmNlID49IGNsb3Nl
c3RGb2N1c0NhbmRpZGF0ZS5kaXN0YW5jZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYg
fGZvY3VzZWROb2RlfCBhbmQgfGNhbmRpZGF0ZXwgYXJlIGluIHRoZSBzYW1lIGRvY3VtZW50IEFO
RAorICAgIC8vIGN1cnJlbnQgfGNsb3Nlc3RGb2N1c0NhbmRpZGFkdGV8IGlzIG5vdCBpbiBhbiB7
aX1mcmFtZSB0aGF0IGlzCisgICAgLy8gcHJlZmVyYWJsZSB0byBnZXQgZm9jdXNlZC4KKyAgICBp
ZiAoZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgPT0gY2FuZGlkYXRlLT5kb2N1bWVudCgpCisgICAg
ICAgICYmIGRpc3RhbmNlIDwgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLnBhcmVudERpc3RhbmNlKSB7
CisgICAgICAgIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZS5ub2RlID0gY2FuZGlkYXRlOworICAgICAg
ICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUuZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgY2xv
c2VzdEZvY3VzQ2FuZGlkYXRlLnBhcmVudERpc3RhbmNlID0gY01heERpc3RhbmNlOworICAgIH0g
ZWxzZSBpZiAoZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgIT0gY2FuZGlkYXRlLT5kb2N1bWVudCgp
KSB7CisgICAgICAgIC8vIElmIHRoZSB8Zm9jdXNlZE5vZGV8IGlzIGluIGFuIGlubmVyIGRvY3Vt
ZW50IGFuZCB0aGUgfGNhbmRpZGF0ZXwgaXMKKyAgICAgICAgLy8gaW4gYSBkaWZmZXJlbnQgZG9j
dW1lbnQsIHdlIG9ubHkgY29uc2lkZXIgdG8gY2hhbmdlIGZvY3VzIGlmIHRoZXJlIGlzCisgICAg
ICAgIC8vIG5vdCBhbm90aGVyIGFscmVhZHkgZ29vZCBmb2N1c2FibGUgY2FuZGlkYXRlIGluIHRo
ZSBzYW1lIGRvY3VtZW50IGFzCisgICAgICAgIC8vIHxmb2N1c2VkTm9kZXwuCisgICAgICAgIGlm
ICghKChpc0luUm9vdERvY3VtZW50KGNhbmRpZGF0ZSkgJiYgIWlzSW5Sb290RG9jdW1lbnQoZm9j
dXNlZE5vZGUpKQorICAgICAgICAgICAgJiYgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlLm5vZGUKKyAg
ICAgICAgICAgICYmIGZvY3VzZWROb2RlLT5kb2N1bWVudCgpID09IGNsb3Nlc3RGb2N1c0NhbmRp
ZGF0ZS5ub2RlLT5kb2N1bWVudCgpKSkgeworICAgICAgICAgICAgY2xvc2VzdEZvY3VzQ2FuZGlk
YXRlLm5vZGUgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUu
ZGlzdGFuY2UgPSBkaXN0YW5jZTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGb2N1c0Nv
bnRyb2xsZXI6OmZpbmRGb2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oRG9jdW1lbnQqIGRvY3VtZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9k
ZSogZm9jdXNlZE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlib2FyZEV2ZW50KiBldmVudCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzQ2Fu
ZGlkYXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsK
KworICAgIC8vIFdhbGsgYWxsIHRoZSBjaGlsZCBub2RlcyBhbmQgdXBkYXRlIGZvY3VzQ2FuZGlk
YXRlIGlmIHdlIGZpbmQgYSBuZWFyZXIgbm9kZS4KKyAgICBmb3IgKE5vZGUqIGNhbmRpZGF0ZSA9
IGRvY3VtZW50LT5maXJzdENoaWxkKCk7IGNhbmRpZGF0ZTsgY2FuZGlkYXRlID0gY2FuZGlkYXRl
LT50cmF2ZXJzZU5leHROb2RlKCkpIHsKKyAgICAgICAgLy8gSW5uZXIgZG9jdW1lbnRzIGNhc2Uu
CisgICAgICAgIGlmIChjYW5kaWRhdGUtPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKKyAgICAgICAg
ICAgIGRlZXBGaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5kaWRh
dGUsIGRpcmVjdGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CisgICAgICAgIGVs
c2UgaWYgKGNhbmRpZGF0ZSAhPSBmb2N1c2VkTm9kZSAmJiBjYW5kaWRhdGUtPmlzS2V5Ym9hcmRG
b2N1c2FibGUoZXZlbnQpKSB7CisgICAgICAgICAgICBsb25nIGxvbmcgZGlzdGFuY2UgPSBkaXN0
YW5jZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5kaWRhdGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiwgY2xvc2VzdEZv
Y3VzQ2FuZGlkYXRlKTsKKyAgICAgICAgICAgIHVwZGF0ZUZvY3VzQ2FuZGlkYXRlSWZDbG9zZXIo
Zm9jdXNlZE5vZGUsIGNhbmRpZGF0ZSwgZGlzdGFuY2UsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgRm9jdXNDb250cm9sbGVyOjpkZWVwRmluZEZv
Y3VzYWJsZU5vZGVJbkRpcmVjdGlvbihOb2RlKiBmb2N1c2VkTm9kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlKiBjYW5kaWRhdGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Rm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEtleWJvYXJkRXZlbnQqIGV2ZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvY3VzQ2FuZGlk
YXRlJiBjbG9zZXN0Rm9jdXNDYW5kaWRhdGUpCit7CisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50
KiBvd25lciA9IHN0YXRpY19jYXN0PEhUTUxGcmFtZU93bmVyRWxlbWVudCo+KGNhbmRpZGF0ZSk7
CisgICAgaWYgKCFvd25lci0+Y29udGVudEZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IERvY3VtZW50KiBpbm5lckRvY3VtZW50ID0gb3duZXItPmNvbnRlbnRGcmFtZSgpLT5kb2N1bWVu
dCgpOworICAgIGlmICghaW5uZXJEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGlubmVyRG9jdW1lbnQgPT0gZm9jdXNlZE5vZGUtPmRvY3VtZW50KCkpCisgICAgICAgIGZpbmRG
b2N1c2FibGVOb2RlSW5EaXJlY3Rpb24oaW5uZXJEb2N1bWVudCwgZm9jdXNlZE5vZGUsIGRpcmVj
dGlvbiwgZXZlbnQsIGNsb3Nlc3RGb2N1c0NhbmRpZGF0ZSk7CisgICAgZWxzZSB7CisgICAgICAg
IC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IHtpfWZyYW1lIGVsZW1lbnQgaXRzZWxmIGlzIGEgZ29v
ZCBjYW5kaWRhdGUKKyAgICAgICAgLy8gdG8gbW92ZSBmb2N1cyB0by4gSWYgaXQgaXMsIHRoZW4g
d2UgdHJhdmVyc2UgaXRzIGlubmVyIG5vZGVzLgorICAgICAgICAvLyBMZXRzIHBhc3MgYSBjb3B5
IG9mIHRoZSBiZXN0IGNhbmRpZGF0ZSwgdG8gbm90IGdldCBmb29sZWQgYnkgYQorICAgICAgICAv
LyBmcmFtZSB3aXRob3V0IGZvY3VzYWJsZSBlbGVtZW50cy4KKyAgICAgICAgRm9jdXNDYW5kaWRh
dGUgZm9jdXNDYW5kaWRhdGVDb3B5ID0gY2xvc2VzdEZvY3VzQ2FuZGlkYXRlOworICAgICAgICBs
b25nIGxvbmcgZGlzdGFuY2UgPSBkaXN0YW5jZUluRGlyZWN0aW9uKGZvY3VzZWROb2RlLCBjYW5k
aWRhdGUsIGRpcmVjdGlvbiwgZm9jdXNDYW5kaWRhdGVDb3B5KTsKKyAgICAgICAgaWYgKGRpc3Rh
bmNlIDwgZm9jdXNDYW5kaWRhdGVDb3B5LmRpc3RhbmNlKSB7CisgICAgICAgICAgICBmb2N1c0Nh
bmRpZGF0ZUNvcHkucGFyZW50QWxpZ25tZW50ID0gZm9jdXNDYW5kaWRhdGVDb3B5LmFsaWdubWVu
dDsKKyAgICAgICAgICAgIGZvY3VzQ2FuZGlkYXRlQ29weS5wYXJlbnREaXN0YW5jZSA9IGRpc3Rh
bmNlOworCisgICAgICAgICAgICBmaW5kRm9jdXNhYmxlTm9kZUluRGlyZWN0aW9uKGlubmVyRG9j
dW1lbnQsIGZvY3VzZWROb2RlLCBkaXJlY3Rpb24sIGV2ZW50LCBmb2N1c0NhbmRpZGF0ZUNvcHkp
OworCisgICAgICAgICAgICAvLyBJZiB3ZSByZWFsbHkgaGF2ZSBhbiBpbm5lciBjbG9zZXIgZm9j
dXMgY2FuZGlkYXRlIG5vZGUsIHRha2UgaXQuCisgICAgICAgICAgICBpZiAoY2xvc2VzdEZvY3Vz
Q2FuZGlkYXRlLm5vZGUgIT0gZm9jdXNDYW5kaWRhdGVDb3B5Lm5vZGUpCisgICAgICAgICAgICAg
ICAgY2xvc2VzdEZvY3VzQ2FuZGlkYXRlID0gZm9jdXNDYW5kaWRhdGVDb3B5OworICAgICAgICB9
CisgICAgfQorfQorCiBzdGF0aWMgYm9vbCByZWxpbnF1aXNoZXNFZGl0aW5nRm9jdXMoTm9kZSAq
bm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmggYi9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggMzJk
NDA2MC4uNzU1OTFjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
CisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaApAQCAtMzMsMTAgKzMzLDEyIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsK
IGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKK3N0cnVjdCBG
b2N1c0NhbmRpZGF0ZTsKIAogY2xhc3MgRm9jdXNDb250cm9sbGVyIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKIHB1YmxpYzoKQEAgLTU4LDYgKzYwLDEyIEBAIHB1YmxpYzoKICAgICBib29sIGlzRm9j
dXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGb2N1c2VkOyB9CiAKIHByaXZhdGU6CisgICAgYm9v
bCBhZHZhbmNlRm9jdXNEaXJlY3Rpb25hbGx5KEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
Kik7CisgICAgYm9vbCBhZHZhbmNlRm9jdXNJbkRvY3VtZW50T3JkZXIoRm9jdXNEaXJlY3Rpb24s
IEtleWJvYXJkRXZlbnQqLCBib29sIGluaXRpYWxGb2N1cyk7CisKKyAgICB2b2lkIGZpbmRGb2N1
c2FibGVOb2RlSW5EaXJlY3Rpb24oRG9jdW1lbnQqLCBOb2RlKiwgRm9jdXNEaXJlY3Rpb24sIEtl
eWJvYXJkRXZlbnQqLCBGb2N1c0NhbmRpZGF0ZSYpOworICAgIHZvaWQgZGVlcEZpbmRGb2N1c2Fi
bGVOb2RlSW5EaXJlY3Rpb24oTm9kZSosIE5vZGUqLCBGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRF
dmVudCosIEZvY3VzQ2FuZGlkYXRlJik7CisKICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgUmVmUHRy
PEZyYW1lPiBtX2ZvY3VzZWRGcmFtZTsKICAgICBib29sIG1faXNBY3RpdmU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVj
dGlvbi5oCmluZGV4IDI2MWM3NDUuLjhhNmQ1MWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9G
b2N1c0RpcmVjdGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oCkBAIC0y
OCw4ICsyOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgZW51bSBGb2N1c0RpcmVj
dGlvbiB7Ci0gICAgICAgIEZvY3VzRGlyZWN0aW9uRm9yd2FyZCA9IDAsCi0gICAgICAgIEZvY3Vz
RGlyZWN0aW9uQmFja3dhcmQKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25Ob25lID0gMCwKKyAgICAg
ICAgRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkJhY2t3YXJk
LAorICAgICAgICBGb2N1c0RpcmVjdGlvblVwLAorICAgICAgICBGb2N1c0RpcmVjdGlvbkRvd24s
CisgICAgICAgIEZvY3VzRGlyZWN0aW9uTGVmdCwKKyAgICAgICAgRm9jdXNEaXJlY3Rpb25SaWdo
dAogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGNjOGY3YWYuLjA2OWJmMTMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtNjQsNiArNjQsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAg
ICAsIG1fbWF4aW11bURlY29kZWRJbWFnZVNpemUobnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4
KCkpCiAgICAgLCBtX2xvY2FsU3RvcmFnZVF1b3RhKDUgKiAxMDI0ICogMTAyNCkgIC8vIFN1Z2dl
c3RlZCBieSB0aGUgSFRNTDUgc3BlYy4KICAgICAsIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWUobnVt
ZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkKKyAgICAsIG1faXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2lzSmF2YUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xv
YWRzSW1hZ2VzQXV0b21hdGljYWxseShmYWxzZSkKICAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZChmYWxzZSkKQEAgLTI0NSw2ICsyNDYsMTEgQEAgdm9pZCBTZXR0aW5nczo6c2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKQog
ICAgIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzID0gYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
Ym9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCkKK3sKKyAgICBtX2lzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkID0gaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7Cit9CisKIHZvaWQgU2V0
dGluZ3M6OnNldEphdmFFbmFibGVkKGJvb2wgaXNKYXZhRW5hYmxlZCkKIHsKICAgICBtX2lzSmF2
YUVuYWJsZWQgPSBpc0phdmFFbmFibGVkOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCAwNmY0NTcwLi4wNTA3ZDQzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaApAQCAtMTE4LDYgKzExOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJvb2wpOwogICAg
ICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKSBjb25zdCB7
IHJldHVybiBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7IH0KIAorICAg
ICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKKyAgICAgICAgYm9v
bCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQ7IH0KKwogICAgICAgICB2b2lkIHNldEphdmFFbmFibGVkKGJvb2wp
OwogICAgICAgICBib29sIGlzSmF2YUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSmF2YUVu
YWJsZWQ7IH0KIApAQCAtMzA5LDYgKzMxMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgc2l6ZV90IG1fbWF4aW11bURlY29kZWRJbWFnZVNpemU7CiAgICAgICAgIHVuc2lnbmVkIG1f
bG9jYWxTdG9yYWdlUXVvdGE7CiAgICAgICAgIHVuc2lnbmVkIG1fcGx1Z2luQWxsb3dlZFJ1blRp
bWU7CisgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2xvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseSA6IDE7CiAgICAgICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVk
IDogMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAgYi9X
ZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjI2Y2QxZDEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCkBAIC0wLDAgKzEsNDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICog
Q29weXJpZ2h0IChDKSAyMDA5IEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgor
ICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlNwYXRpYWxOYXZpZ2F0aW9uLmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhU
TUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRp
YyBsb25nIGxvbmcgc3BhdGlhbERpc3RhbmNlKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UmVjdCYpOworc3RhdGljIEludFJlY3QgcmVuZGVyUmVjdFJlbGF0aXZlVG9S
b290RG9jdW1lbnQoUmVuZGVyT2JqZWN0Kik7CitzdGF0aWMgUmVjdHNBbGlnbm1lbnQgYWxpZ25t
ZW50Rm9yUmVjdHMoRm9jdXNEaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
Jik7CitzdGF0aWMgYm9vbCBhcmVSZWN0c0Z1bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiwgY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKK3N0YXRpYyBib29sIGFyZVJlY3RzUGFydGlh
bGx5QWxpZ25lZChGb2N1c0RpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
KTsKK3N0YXRpYyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uLCBjb25zdCBJ
bnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOworc3RhdGljIHZvaWQgZGVmbGF0ZUlmT3ZlcmxhcHBl
ZChJbnRSZWN0JiwgSW50UmVjdCYpOworCitsb25nIGxvbmcgZGlzdGFuY2VJbkRpcmVjdGlvbihO
b2RlKiBzdGFydCwgTm9kZSogZGVzdCwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBGb2N1c0Nh
bmRpZGF0ZSYgY2FuZGlkYXRlKQoreworICAgIFJlbmRlck9iamVjdCogc3RhcnRSZW5kZXIgPSBz
dGFydC0+cmVuZGVyZXIoKTsKKyAgICBpZiAoIXN0YXJ0UmVuZGVyKQorICAgICAgICByZXR1cm4g
Y01heERpc3RhbmNlOworCisgICAgUmVuZGVyT2JqZWN0KiBkZXN0UmVuZGVyID0gZGVzdC0+cmVu
ZGVyZXIoKTsKKyAgICBpZiAoIWRlc3RSZW5kZXIpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFu
Y2U7CisKKyAgICBJbnRSZWN0IGN1clJlY3QgPSByZW5kZXJSZWN0UmVsYXRpdmVUb1Jvb3REb2N1
bWVudChzdGFydFJlbmRlcik7CisgICAgSW50UmVjdCB0YXJnZXRSZWN0ICA9IHJlbmRlclJlY3RS
ZWxhdGl2ZVRvUm9vdERvY3VtZW50KGRlc3RSZW5kZXIpOworCisgICAgLy8gVGhlIGJvdW5kaW5n
IHJlY3RhbmdsZSBvZiB0d28gY29uc2VjdXRpdmUgbm9kZXMgY2FuIG92ZXJsYXAuIEluIHN1Y2gg
Y2FzZXMsCisgICAgLy8gZGVmbGF0ZSBib3RoLgorICAgIGRlZmxhdGVJZk92ZXJsYXBwZWQoY3Vy
UmVjdCwgdGFyZ2V0UmVjdCk7CisKKyAgICBpZiAoKGN1clJlY3QuaXNFbXB0eSgpIHx8IHRhcmdl
dFJlY3QuaXNFbXB0eSgpKQorICAgICAgICB8fCAodGFyZ2V0UmVjdC54KCkgPCAwIHx8IHRhcmdl
dFJlY3QueSgpIDwgMCkpCisgICAgICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICBpZiAo
IWlzUmVjdEluRGlyZWN0aW9uKGRpcmVjdGlvbiwgY3VyUmVjdCwgdGFyZ2V0UmVjdCkpCisgICAg
ICAgIHJldHVybiBjTWF4RGlzdGFuY2U7CisKKyAgICAvLyBUaGUgZGlzdGFuY2UgYmV0d2VlbiB0
d28gbm9kZXMgaXMgbm90IHRvIGJlIGNvbnNpZGVyZWQgYWxvbmUgd2hlbiBldmFsdWF0aW5nL2xv
b2tpbmcKKyAgICAvLyBmb3IgdGhlIGJlc3QgZm9jdXMgY2FuZGlkYXRlIG5vZGUuIEFsaWdubWVu
dCBvZiByZWN0cyBjYW4gYmUgYWxzbyBhIGdvb2QgcG9pbnQgdG8gYmUKKyAgICAvLyBjb25zaWRl
cmVkIGluIG9yZGVyIHRvIG1ha2UgdGhlIGFsZ29yaXRobSB0byBiZWhhdmlvciBpbiBhIG1vcmUg
aW50dWl0aXZlIHdheS4KKyAgICBSZWN0c0FsaWdubWVudCBhbGlnbm1lbnQgPSBhbGlnbm1lbnRG
b3JSZWN0cyhkaXJlY3Rpb24sIGN1clJlY3QsIHRhcmdldFJlY3QpOworCisgICAgYm9vbCBzYW1l
RG9jdW1lbnQgPSBjYW5kaWRhdGUubm9kZSAmJiBkZXN0LT5kb2N1bWVudCgpID09IGNhbmRpZGF0
ZS5ub2RlLT5kb2N1bWVudCgpOworICAgIGlmIChzYW1lRG9jdW1lbnQpIHsKKyAgICAgICAgaWYg
KGNhbmRpZGF0ZS5hbGlnbm1lbnQgPiBhbGlnbm1lbnQgfHwgKGNhbmRpZGF0ZS5wYXJlbnRBbGln
bm1lbnQgJiYgYWxpZ25tZW50ID4gY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCkpCisgICAgICAg
ICAgICByZXR1cm4gY01heERpc3RhbmNlOworICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlLmFsaWdu
bWVudCA+IGFsaWdubWVudCAmJiAoY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCAmJiBhbGlnbm1l
bnQgPiBjYW5kaWRhdGUucGFyZW50QWxpZ25tZW50KSkKKyAgICAgICAgcmV0dXJuIGNNYXhEaXN0
YW5jZTsKKworICAgIC8vIEZJWE1FX3RvbmlraXRvbzogc2ltcGxpZnkgdGhlIGxvZ2ljIGhlcmUg
IQorICAgIGlmIChhbGlnbm1lbnQgIT0gTm9uZQorICAgICAgICB8fCAoY2FuZGlkYXRlLm5vZGUg
JiYgY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCA+PSBhbGlnbm1lbnQKKyAgICAgICAgJiYgKGRl
c3QtPmRvY3VtZW50KCkgPT0gY2FuZGlkYXRlLm5vZGUtPmRvY3VtZW50KCkpCisgICAgICAgICYm
IGFsaWdubWVudCA+IE5vbmUpKSB7CisKKyAgICAgICAgLy8gSWYgd2UgYXJlIG5vdyBpbiBhbiBo
aWdoZXIgcHJlY2VkZW50IGNhc2UsIGxldHMgcmVzZXQgdGhlIGN1cnJlbnQgfGNhbmRpZGF0ZXwn
cworICAgICAgICAvLyB8ZGlzdGFuY2V8IHNvIHdlIGZvcmNlIGl0IHRvIGJlIGJpZ2dlciB0aGFu
IHRoZSByZXN1bHQgd2Ugd2lsbCBnZXQgZnJvbQorICAgICAgICAvLyB8c3BhdGlhbERpc3RhbmNl
fCAoc2VlIGJlbG93KS4KKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5hbGlnbm1lbnQgPCBhbGlnbm1l
bnQgJiYgY2FuZGlkYXRlLnBhcmVudEFsaWdubWVudCA8IGFsaWdubWVudCkKKyAgICAgICAgICAg
IGNhbmRpZGF0ZS5kaXN0YW5jZSA9IGNNYXhEaXN0YW5jZTsKKworICAgICAgICBjYW5kaWRhdGUu
YWxpZ25tZW50ID0gYWxpZ25tZW50OworICAgIH0KKworICAgIHJldHVybiBzcGF0aWFsRGlzdGFu
Y2UoZGlyZWN0aW9uLCBjdXJSZWN0LCB0YXJnZXRSZWN0KTsKK30KKworLy8gRklYTUU6IFRoaXMg
ZnVuY3Rpb24gZG9lcyBub3QgYmVoYXZlIGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybWVkIGZyYW1l
cy4KK3N0YXRpYyBJbnRSZWN0IHJlbmRlclJlY3RSZWxhdGl2ZVRvUm9vdERvY3VtZW50KFJlbmRl
ck9iamVjdCogcmVuZGVyKQoreworICAgIEFTU0VSVChyZW5kZXIpOworCisgICAgSW50UmVjdCBy
ZWN0KHJlbmRlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOworCisgICAgLy8gSW4g
Y2FzZXMgd2hlbiB0aGUgfHJlbmRlcnwncyBhc3NvY2lhdGVkIG5vZGUgaXMgaW4gYSBzY3JvbGxh
YmxlIGlubmVyCisgICAgLy8gZG9jdW1lbnQsIHdlIG9ubHkgY29uc2lkZXIgaXRzIHNjcm9sbE9m
ZnNldCBpZiBpdCBpcyBub3Qgb2Zmc2NyZWVuLgorICAgIE5vZGUqIG5vZGUgPSByZW5kZXItPm5v
ZGUoKTsKKyAgICBEb2N1bWVudCogbWFpbkRvY3VtZW50ID0gbm9kZS0+ZG9jdW1lbnQoKS0+cGFn
ZSgpLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBib29sIGNvbnNpZGVyU2Nyb2xsT2Zm
c2V0ID0gIShoYXNPZmZzY3JlZW5SZWN0KG5vZGUpICYmIG5vZGUtPmRvY3VtZW50KCkgIT0gbWFp
bkRvY3VtZW50KTsKKworICAgIGlmIChjb25zaWRlclNjcm9sbE9mZnNldCkgeworICAgICAgICBp
ZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSByZW5kZXItPm5vZGUoKS0+ZG9jdW1lbnQoKS0+dmll
dygpKQorICAgICAgICAgICAgcmVjdC5tb3ZlKC1mcmFtZVZpZXctPnNjcm9sbE9mZnNldCgpKTsK
KyAgICB9CisKKyAgICAvLyBIYW5kbGUgbmVzdGVkIGZyYW1lcy4KKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IHJlbmRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKEhUTUxGcmFtZU93bmVyRWxlbWVudCog
b3duZXJFbGVtZW50ID0gZnJhbWUtPm93bmVyRWxlbWVudCgpKQorICAgICAgICAgICAgcmVjdC5t
b3ZlKG93bmVyRWxlbWVudC0+b2Zmc2V0TGVmdCgpLCBvd25lckVsZW1lbnQtPm9mZnNldFRvcCgp
KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVjdDsKK30KKworc3RhdGljIFJlY3RzQWxpZ25tZW50
IGFsaWdubWVudEZvclJlY3RzKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVj
dCYgY3VyUmVjdCwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCkKK3sKKyAgICBpZiAoYXJlUmVj
dHNGdWxseUFsaWduZWQoZGlyZWN0aW9uLCBjdXJSZWN0LCB0YXJnZXRSZWN0KSkKKyAgICAgICAg
cmV0dXJuIEZ1bGw7CisKKyAgICBpZiAoYXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKGRpcmVjdGlv
biwgY3VyUmVjdCwgdGFyZ2V0UmVjdCkpCisgICAgICAgIHJldHVybiBQYXJ0aWFsOworCisgICAg
cmV0dXJuIE5vbmU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc0hvcml6b250YWxNb3ZlKEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICByZXR1cm4gZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uTGVmdCB8fCBkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25SaWdodDsKK30KKwor
c3RhdGljIGlubGluZSBpbnQgc3RhcnQoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiBpc0hvcml6b250YWxNb3ZlKGRpcmVjdGlvbikg
PyByZWN0LnkoKSA6IHJlY3QueCgpOworfQorCitzdGF0aWMgaW5saW5lIGludCBtaWRkbGUoRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEludFBv
aW50IGNlbnRlcihyZWN0LmNlbnRlcigpKTsKKyAgICByZXR1cm4gaXNIb3Jpem9udGFsTW92ZShk
aXJlY3Rpb24pID8gY2VudGVyLnkoKTogY2VudGVyLngoKTsKK30KKworc3RhdGljIGlubGluZSBp
bnQgZW5kKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sK
KyAgICByZXR1cm4gaXNIb3Jpem9udGFsTW92ZShkaXJlY3Rpb24pID8gcmVjdC5ib3R0b20oKSA6
IHJlY3QucmlnaHQoKTsKK30KKworLy8gVGhpcyBtZXRob2QgY2hlY2tzIGlmIHJlY3RzIHxhfCBh
bmQgfGJ8IGFyZSBmdWxseSBhbGlnbmVkIGVpdGhlciB2ZXJ0aWNhbGx5IG9yCisvLyBob3Jpem9u
dGFsbHkuIEluIGdlbmVyYWwsIHJlY3RzIHdob3NlIGNlbnRyYWwgcG9pbnQgZmFsbHMgYmV0d2Vl
biB0aGUgdG9wIG9yCisvLyBib3R0b20gb2YgZWFjaCBvdGhlciBhcmUgY29uc2lkZXJlZCBmdWxs
eSBhbGlnbmVkLgorLy8gUmVjdHMgdGhhdCBtYXRjaCB0aGlzIGNyaXRlcmlhIGFyZSBwcmVmZXJh
YmxlIHRhcmdldCBub2RlcyBpbiBtb3ZlIGZvY3VzIGNoYW5naW5nCisvLyBvcGVyYXRpb25zLgor
Ly8gKiBhID0gQ3VycmVudCBmb2N1c2VkIG5vZGUncyByZWN0LgorLy8gKiBiID0gRm9jdXMgY2Fu
ZGlkYXRlIG5vZGUncyByZWN0Lgorc3RhdGljIGJvb2wgYXJlUmVjdHNGdWxseUFsaWduZWQoRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBi
KQoreworICAgIGludCBhU3RhcnQsIGJTdGFydCwgYUVuZCwgYkVuZDsKKworICAgIHN3aXRjaCAo
ZGlyZWN0aW9uKSB7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgIGFTdGFy
dCA9IGEueCgpOworICAgICAgICBiRW5kID0gYi5yaWdodCgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIGFTdGFydCA9IGIueCgpOworICAg
ICAgICBiRW5kID0gYS5yaWdodCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZvY3VzRGly
ZWN0aW9uVXA6CisgICAgICAgIGFTdGFydCA9IGEueSgpOworICAgICAgICBiRW5kID0gYi55KCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgorICAgICAgICBh
U3RhcnQgPSBiLnkoKTsKKyAgICAgICAgYkVuZCA9IGEueSgpOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKworICAgIGlmIChhU3RhcnQgPCBiRW5kKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBhU3RhcnQgPSBzdGFydChkaXJlY3Rpb24sIGEpOworICAgIGJTdGFydCA9
IHN0YXJ0KGRpcmVjdGlvbiwgYik7CisKKyAgICBpbnQgYU1pZGRsZSA9IG1pZGRsZShkaXJlY3Rp
b24sIGEpOworICAgIGludCBiTWlkZGxlID0gbWlkZGxlKGRpcmVjdGlvbiwgYik7CisKKyAgICBh
RW5kID0gZW5kKGRpcmVjdGlvbiwgYSk7CisgICAgYkVuZCA9IGVuZChkaXJlY3Rpb24sIGIpOwor
CisgICAgLy8gUGljdHVyZSBvZiB0aGUgdG90YWxseSBhbGlnbmVkIGxvZ2ljOgorICAgIC8vCisg
ICAgLy8gICAgIEhvcml6b250YWwgICAgVmVydGljYWwgICAgICAgIEhvcml6b250YWwgICAgIFZl
cnRpY2FsCisgICAgLy8gICoqKioqKioqKioqKioqKioqKioqKioqKioqKiogICoqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisgICAgLy8gICogIF8gICAgICAgICAgKiAgIF8gXyBfIF8gICog
ICogICAgICAgICBfICAgKiAgICAgIF8gXyAgICAqCisgICAgLy8gICogfF98ICAgICBfICAgKiAg
fF98X3xffF98ICogICogIF8gICAgIHxffCAgKiAgICAgfF98X3wgICAqCisgICAgLy8gICogfF98
Li4uLnxffCAgKiAgICAgIC4gICAgICogICogfF98Li4uLnxffCAgKiAgICAgICAuICAgICAqCisg
ICAgLy8gICogfF98ICAgIHxffCAoMSkgICAgIC4gICAgICogICogfF98ICAgIHxffCAoMikgICAg
ICAuICAgICAqCisgICAgLy8gICogfF98ICAgICAgICAgKiAgICAgXy5fICAgICogICogICAgICAg
IHxffCAgKiAgICBfIF8uXyBfICAqCisgICAgLy8gICogICAgICAgICAgICAgKiAgICB8X3xffCAg
ICogICogICAgICAgICAgICAgKiAgIHxffF98X3xffCAqCisgICAgLy8gICogICAgICAgICAgICAg
KiAgICAgICAgICAgICogICogICAgICAgICAgICAgKiAgICAgICAgICAgICAqCisgICAgLy8gICoq
KioqKioqKioqKioqKioqKioqKioqKioqKiogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CisKKyAgICAvLyAgICAgSG9yaXpvbnRhbCAgICBWZXJ0aWNhbCAgICAgICAgSG9yaXpvbnRhbCAg
ICAgVmVydGljYWwKKyAgICAvLyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKKyAgICAvLyAgKiAgXy4uLi4uLl8gICAqICAgXyBfIF8g
XyAgKiAgKiAgXyAgICAgICAgICAqICAgIF8gXyBfIF8gICoKKyAgICAvLyAgKiB8X3wgICAgfF98
ICAqICB8X3xffF98X3wgKiAgKiB8X3wgICAgIF8gICAqICAgfF98X3xffF98ICoKKyAgICAvLyAg
KiB8X3wgICAgfF98ICAqICAuICAgICAgICAgKiAgKiB8X3wgICAgfF98ICAqICAgICAgICAgICAu
ICoKKyAgICAvLyAgKiB8X3wgICAgICAgICgzKSAuICAgICAgICAgKiAgKiB8X3wuLi4ufF98ICg0
KSAgICAgICAgICAuICoKKyAgICAvLyAgKiAgICAgICAgICAgICAqICAuXyBfICAgICAgKiAgKiAg
ICAgICAgICAgICAqICAgICAgICBfIF8uICoKKyAgICAvLyAgKiAgICAgICAgICAgICAqICB8X3xf
fCAgICAgKiAgKiAgICAgICAgICAgICAqICAgICAgIHxffF98ICoKKyAgICAvLyAgKiAgICAgICAg
ICAgICAqICAgICAgICAgICAgKiAgKiAgICAgICAgICAgICAqICAgICAgICAgICAgICoKKyAgICAv
LyAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAgKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKKworICAgIHJldHVybiAoKGJNaWRkbGUgPj0gYVN0YXJ0ICYmIGJNaWRkbGUgPD0gYUVu
ZCkgLy8gKDEpCisgICAgICAgICAgICB8fCAoYU1pZGRsZSA+PSBiU3RhcnQgJiYgYU1pZGRsZSA8
PSBiRW5kKSAvLyAoMikKKyAgICAgICAgICAgIHx8IChiU3RhcnQgPT0gYVN0YXJ0KSAvLyAoMykK
KyAgICAgICAgICAgIHx8IChiRW5kID09IGFFbmQpKTsgLy8gKDQpCit9CisKKy8vIFRoaXMgbWV0
aG9kIGNoZWNrcyBpZiB8c3RhcnR8IGFuZCB8ZGVzdHwgaGF2ZSBhIHBhcnRpYWwgaW50ZXJzZWN0
aW9uLCBlaXRoZXIKKy8vIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5LgorLy8gKiBhID0gQ3Vy
cmVudCBmb2N1c2VkIG5vZGUncyByZWN0LgorLy8gKiBiID0gRm9jdXMgY2FuZGlkYXRlIG5vZGUn
cyByZWN0Lgorc3RhdGljIGJvb2wgYXJlUmVjdHNQYXJ0aWFsbHlBbGlnbmVkKEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbiwgY29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikKK3sKKyAg
ICBpbnQgYVN0YXJ0ICA9IHN0YXJ0KGRpcmVjdGlvbiwgYSk7CisgICAgaW50IGJTdGFydCAgPSBz
dGFydChkaXJlY3Rpb24sIGIpOworICAgIGludCBiTWlkZGxlID0gbWlkZGxlKGRpcmVjdGlvbiwg
Yik7CisgICAgaW50IGFFbmQgPSBlbmQoZGlyZWN0aW9uLCBhKTsKKyAgICBpbnQgYkVuZCA9IGVu
ZChkaXJlY3Rpb24sIGIpOworCisgICAgLy8gUGljdHVyZSBvZiB0aGUgcGFydGlhbGx5IGFsaWdu
ZWQgbG9naWM6CisgICAgLy8KKyAgICAvLyAgICBIb3Jpem9udGFsICAgICAgIFZlcnRpY2FsCisg
ICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAvLyAqICBfICAgICAg
ICAgICAgKiAgIF8gXyBfICAgICAgKgorICAgIC8vICogfF98ICAgICAgICAgICAqICB8X3xffF98
ICAgICAqCisgICAgLy8gKiB8X3wuLi4uIF8gICAgICogICAgICAuIC4gICAgICoKKyAgICAvLyAq
IHxffCAgICB8X3wgICAgKiAgICAgIC4gLiAgICAgKgorICAgIC8vICogfF98Li4uLnxffCAgICAq
ICAgICAgLl8uXyBfICAqCisgICAgLy8gKiAgICAgICAgfF98ICAgICogICAgICB8X3xffF98ICoK
KyAgICAvLyAqICAgICAgICB8X3wgICAgKiAgICAgICAgICAgICAgKgorICAgIC8vICogICAgICAg
ICAgICAgICAqICAgICAgICAgICAgICAqCisgICAgLy8gKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKyAgICAvLworICAgIC8vIC4uLiBhbmQgdmFyaWFudHMgb2YgdGhlIGFib3ZlIGNh
c2VzLgorICAgIHJldHVybiAoKGJTdGFydCA+PSBhU3RhcnQgJiYgYlN0YXJ0IDw9IGFFbmQpCisg
ICAgICAgICAgICB8fCAoYlN0YXJ0ID49IGFTdGFydCAmJiBiU3RhcnQgPD0gYUVuZCkKKyAgICAg
ICAgICAgIHx8IChiRW5kID49IGFTdGFydCAmJiBiRW5kIDw9IGFFbmQpCisgICAgICAgICAgICB8
fCAoYk1pZGRsZSA+PSBhU3RhcnQgJiYgYk1pZGRsZSA8PSBhRW5kKQorICAgICAgICAgICAgfHwg
KGJFbmQgPj0gYVN0YXJ0ICYmIGJFbmQgPD0gYUVuZCkpOworfQorCisvLyBSZXR1cm4gdHJ1ZSBp
ZiByZWN0IHxhfCBpcyBiZWxvdyB8YnwuIEZhbHNlIG90aGVyd2lzZS4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCBiZWxvdyhjb25zdCBJbnRSZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBiKQoreworICAgIHJl
dHVybiBhLnkoKSA+IGIuYm90dG9tKCk7Cit9CisKKy8vIFJldHVybiB0cnVlIGlmIHJlY3QgfGF8
IGlzIG9uIHRoZSByaWdodCBvZiB8YnwuIEZhbHNlIG90aGVyd2lzZS4KK3N0YXRpYyBpbmxpbmUg
Ym9vbCByaWdodE9mKGNvbnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAg
cmV0dXJuIGEueCgpID4gYi5yaWdodCgpOworfQorCisvLyAqIGEgPSBDdXJyZW50IGZvY3VzZWQg
bm9kZSdzIHJlY3QuCisvLyAqIGIgPSBGb2N1cyBjYW5kaWRhdGUgbm9kZSdzIHJlY3QuCitzdGF0
aWMgbG9uZyBsb25nIHNwYXRpYWxEaXN0YW5jZShGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNv
bnN0IEludFJlY3QmIGEsIGNvbnN0IEludFJlY3QmIGIpCit7CisgICAgaW50IHgxID0gMCwgeTEg
PSAwLCB4MiA9IDAsIHkyID0gMDsKKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rp
b25MZWZ0KSB7CisgICAgICAgIC8vICMxICB8LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICMy
ICB8LS18ICB8LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICMzICB8LS18CisKKyAgICAgICAg
eDEgPSBhLngoKTsKKyAgICAgICAgeDIgPSBiLnJpZ2h0KCk7CisKKyAgICAgICAgaWYgKGJlbG93
KGEsIGIpKSB7CisgICAgICAgICAgICAvLyAjMSBUaGUgYSByZWN0IGlzIGJlbG93IGIuCisgICAg
ICAgICAgICB5MSA9IGEueSgpOworICAgICAgICAgICAgeTIgPSBiLmJvdHRvbSgpOworICAgICAg
ICB9IGVsc2UgaWYgKGJlbG93KGIsIGEpKSB7CisgICAgICAgICAgICAvLyAjMyBUaGUgYiByZWN0
IGlzIGJlbG93IGEuCisgICAgICAgICAgICB5MSA9IGEuYm90dG9tKCk7CisgICAgICAgICAgICB5
MiA9IGIueSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gIzIgQm90aCBiIGFu
ZCBhIHNoYXJlIHNvbWUgY29tbW9uIHkncy4KKyAgICAgICAgICAgIHkxID0gMDsKKyAgICAgICAg
ICAgIHkyID0gMDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3Vz
RGlyZWN0aW9uUmlnaHQpIHsKKyAgICAgICAgLy8gICAgICAgIHwtLXwgICMxCisgICAgICAgIC8v
CisgICAgICAgIC8vICB8LS18ICB8LS18ICAjMgorICAgICAgICAvLworICAgICAgICAvLyAgICAg
ICAgfC0tfCAgIzMKKworICAgICAgICB4MSA9IGEucmlnaHQoKTsKKyAgICAgICAgeDIgPSBiLngo
KTsKKworICAgICAgICBpZiAoYmVsb3coYSwgYikpIHsKKyAgICAgICAgICAgIC8vICMxIFRoZSBi
IHJlY3QgaXMgYWJvdmUgYS4KKyAgICAgICAgICAgIHkxID0gYS55KCk7CisgICAgICAgICAgICB5
MiA9IGIuYm90dG9tKCk7CisgICAgICAgIH0gZWxzZSBpZiAoYmVsb3coYiwgYSkpIHsKKyAgICAg
ICAgICAgIC8vICMzIFRoZSBiIHJlY3QgaXMgYmVsb3cgYS4KKyAgICAgICAgICAgIHkxID0gYS5i
b3R0b20oKTsKKyAgICAgICAgICAgIHkyID0gYi55KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAvLyAjMiBCb3RoIGIgYW5kIGEgc2hhcmUgc29tZSBjb21tb24geSdzLgorICAgICAg
ICAgICAgeTEgPSAwOworICAgICAgICAgICAgeTIgPSAwOworICAgICAgICB9CisgICAgfSBlbHNl
IGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25VcCkgeworICAgICAgICAvLworICAgICAg
ICAvLyAgICMxICAgICMyICAgICMzCisgICAgICAgIC8vCisgICAgICAgIC8vICB8LS18ICB8LS18
ICB8LS18CisgICAgICAgIC8vCisgICAgICAgIC8vICAgICAgICB8LS18CisKKyAgICAgICAgeTEg
PSBhLnkoKTsKKyAgICAgICAgeTIgPSBiLmJvdHRvbSgpOworCisgICAgICAgIGlmIChyaWdodE9m
KGEsIGIpKSB7CisgICAgICAgICAgICAvLyAjMSBUaGUgYiByZWN0IGlzIHRvIHRoZSBsZWZ0IG9m
IGEuCisgICAgICAgICAgICB4MSA9IGEueCgpOworICAgICAgICAgICAgeDIgPSBiLnJpZ2h0KCk7
CisgICAgICAgIH0gZWxzZSBpZiAocmlnaHRPZihiLCBhKSkgeworICAgICAgICAgICAgLy8gIzMg
VGhlIGIgcmVjdCBpcyB0byB0aGUgcmlnaHQgb2YgYS4KKyAgICAgICAgICAgIHgxID0gYS5yaWdo
dCgpOworICAgICAgICAgICAgeDIgPSBiLngoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIC8vICMyIEJvdGggYiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB4J3MuCisgICAgICAgICAg
ICB4MSA9IDA7CisgICAgICAgICAgICB4MiA9IDA7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYg
KGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvbkRvd24pIHsKKyAgICAgICAgLy8gICAgICAgIHwt
LXwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHwtLXwgIHwtLXwgIHwtLXwKKyAgICAgICAgLy8K
KyAgICAgICAgLy8gICAjMSAgICAjMiAgICAjMworCisgICAgICAgIHkxID0gYS5ib3R0b20oKTsK
KyAgICAgICAgeTIgPSBiLnkoKTsKKworICAgICAgICBpZiAocmlnaHRPZihhLCBiKSkgeworICAg
ICAgICAgICAgLy8gIzEgVGhlIGIgcmVjdCBpcyB0byB0aGUgbGVmdCBvZiBhLgorICAgICAgICAg
ICAgeDEgPSBhLngoKTsKKyAgICAgICAgICAgIHgyID0gYi5yaWdodCgpOworICAgICAgICB9IGVs
c2UgaWYgKHJpZ2h0T2YoYiwgYSkpIHsKKyAgICAgICAgICAgIC8vICMzIFRoZSBiIHJlY3QgaXMg
dG8gdGhlIHJpZ2h0IG9mIGEKKyAgICAgICAgICAgIHgxID0gYS5yaWdodCgpOworICAgICAgICAg
ICAgeDIgPSBiLngoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vICMyIEJvdGgg
YiBhbmQgYSBzaGFyZSBzb21lIGNvbW1vbiB4J3MuCisgICAgICAgICAgICB4MSA9IDA7CisgICAg
ICAgICAgICB4MiA9IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb25nIGxvbmcgZGlzdGFu
Y2UgPSBwb3coKHgxIC0geDIpLCAyKSArIHBvdygoeTEgLSB5MiksIDIpOworICAgIHJldHVybiBh
YnMoZGlzdGFuY2UpOworfQorCitzdGF0aWMgYm9vbCBpc1JlY3RJbkRpcmVjdGlvbihGb2N1c0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEludFJlY3QmIGN1clJlY3QsIGNvbnN0IEludFJlY3Qm
IHRhcmdldFJlY3QpCit7CisgICAgSW50UG9pbnQgY2VudGVyKHRhcmdldFJlY3QuY2VudGVyKCkp
OworICAgIGludCB0YXJnZXRNaWRkbGUgPSBpc0hvcml6b250YWxNb3ZlKGRpcmVjdGlvbikgPyBj
ZW50ZXIueCgpIDogY2VudGVyLnkoKTsKKworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAg
Y2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6CisgICAgICAgIHJldHVybiB0YXJnZXRNaWRkbGUgPCBj
dXJSZWN0LngoKTsKKyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6CisgICAgICAgIHJldHVy
biB0YXJnZXRNaWRkbGUgPiBjdXJSZWN0LnJpZ2h0KCk7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlv
blVwOgorICAgICAgICByZXR1cm4gdGFyZ2V0TWlkZGxlIDwgY3VyUmVjdC55KCk7CisgICAgY2Fz
ZSBGb2N1c0RpcmVjdGlvbkRvd246CisgICAgICAgIHJldHVybiB0YXJnZXRNaWRkbGUgPiBjdXJS
ZWN0LmJvdHRvbSgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworLy8gQ2hlY2tzIGlmIHxub2RlfCBp
cyBvZmZzY3JlZW4gdGhlIHZpc2libGUgYXJlYSAodmlld3BvcnQpIG9mIGl0cyBjb250YWluZXIK
Ky8vIGRvY3VtZW50LiBJbiBjYXNlIGl0IGlzLCBvbmUgY2FuIHNjcm9sbCBpbiBkaXJlY3Rpb24g
b3IgdGFrZSBhbnkgZGlmZmVyZW50CisvLyBkZXNpcmVkIGFjdGlvbiBsYXRlciBvbi4KK2Jvb2wg
aGFzT2Zmc2NyZWVuUmVjdChOb2RlKiBub2RlKQoreworICAgIC8vIEdldCB0aGUgRnJhbWVWaWV3
IGluIHdoaWNoIHxub2RlfCBpcyAod2hpY2ggbWVhbnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgaWYg
fG5vZGV8CisgICAgLy8gaXMgbm90IGluIGFuIGlubmVyIGRvY3VtZW50KSwgc28gd2UgY2FuIGNo
ZWNrIGlmIGl0cyBjb250ZW50IHJlY3QgaXMgdmlzaWJsZQorICAgIC8vIGJlZm9yZSB3ZSBhY3R1
YWxseSBtb3ZlIHRoZSBmb2N1cyB0byBpdC4KKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG5v
ZGUtPmRvY3VtZW50KCktPnZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBJbnRSZWN0IGNvbnRhaW5lclZpZXdwb3J0UmVjdCA9IGZyYW1lVmll
dy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CisKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlciA9IG5v
ZGUtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFyZW5kZXIpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgSW50UmVjdCByZWN0KHJlbmRlci0+YWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkp
OworICAgIHJldHVybiAhY29udGFpbmVyVmlld3BvcnRSZWN0LmludGVyc2VjdHMocmVjdCk7Cit9
CisKKy8vIEluIGEgYm90dG9tLXVwIHdheSwgdGhpcyBtZXRob2QgdHJpZXMgdG8gc2Nyb2xsIHxm
cmFtZXwgaW4gYSBnaXZlbiBkaXJlY3Rpb24KKy8vIHxkaXJlY3Rpb258LCBnb2luZyB1cCBpbiB0
aGUgZnJhbWUgdHJlZSBoaWVyYXJjaHkgaW4gY2FzZSBpdCBkb2VzIG5vdCBzdWNjZWVkLgorYm9v
bCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSogZnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlv
bikKK3sKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTY3Jv
bGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uOworCisgICAgc3dpdGNoIChkaXJlY3Rpb24pIHsK
KyAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKKyAgICAgICAgc2Nyb2xsRGlyZWN0aW9uID0g
U2Nyb2xsTGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJpZ2h0
OgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBTY3JvbGxSaWdodDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgorICAgICAgICBzY3JvbGxEaXJlY3Rpb24gPSBT
Y3JvbGxVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246Cisg
ICAgICAgIHNjcm9sbERpcmVjdGlvbiA9IFNjcm9sbERvd247CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gZnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVseShzY3JvbGxEaXJlY3Rpb24sIFNj
cm9sbEJ5TGluZSk7Cit9CisKK2Jvb2wgaXNJblJvb3REb2N1bWVudChOb2RlKiBub2RlKQorewor
ICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRG9jdW1lbnQqIHJv
b3REb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50KCktPnBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3Vt
ZW50KCk7CisgICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50KCkgPT0gcm9vdERvY3VtZW50OworfQor
CitzdGF0aWMgdm9pZCBkZWZsYXRlSWZPdmVybGFwcGVkKEludFJlY3QmIGEsIEludFJlY3QmIGIp
Cit7CisgICAgaWYgKCFhLmludGVyc2VjdHMoYikgfHwgYS5jb250YWlucyhiKSB8fCBiLmNvbnRh
aW5zKGEpKQorICAgICAgICByZXR1cm47CisKKyAgICBzdGF0aWMgY29uc3QgaW50IGZ1ZGdlRmFj
dG9yID0gLTI7CisKKyAgICAvLyBBdm9pZCBuZWdhdGl2ZSB3aWR0aCBvciBoZWlnaHQgdmFsdWVz
LgorICAgIGlmIChmdWRnZUZhY3RvciA+IDAgfHwgKChhLndpZHRoKCkgKyAyICogZnVkZ2VGYWN0
b3IgPiAwKSAmJiAoYS5oZWlnaHQoKSArIDIgKiBmdWRnZUZhY3RvciA+IDApKSkKKyAgICAgICAg
YS5pbmZsYXRlKGZ1ZGdlRmFjdG9yKTsKKworICAgIGlmIChmdWRnZUZhY3RvciA+IDAgfHwgKChi
LndpZHRoKCkgKyAyICogZnVkZ2VGYWN0b3IgPiAwKSAmJiAoYi5oZWlnaHQoKSArIDIgKiBmdWRn
ZUZhY3RvciA+IDApKSkKKyAgICAgICAgYi5pbmZsYXRlKGZ1ZGdlRmFjdG9yKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZp
Z2F0aW9uLmggYi9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42YjY1ZGU0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQW50b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtp
dC5vcmc+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZm5kZWYgU3BhdGlhbE5hdmlnYXRpb25faAorI2RlZmluZSBTcGF0aWFsTmF2aWdh
dGlvbl9oCisKKyNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgorCisjaW5jbHVkZSA8bGltaXRz
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworY2xhc3MgSW50UmVjdDsK
K2NsYXNzIE5vZGU7CitjbGFzcyBSZW5kZXJPYmplY3Q7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7
CisKK2NvbnN0IGxvbmcgbG9uZyBjTWF4RGlzdGFuY2UgPSBudW1lcmljX2xpbWl0czxsb25nIGxv
bmc+OjptYXgoKTsKKworLy8gU3BhdGlhbGx5IHNwZWFraW5nLCB0d28gZ2l2ZW4gZWxlbWVudHMg
aW4gYSB3ZWIgcGFnZSBjYW4gYmU6CisvLyAxKSBGdWxseSBhbGlnbmVkOiBUaGVyZSBpcyBhIGZ1
bGwgaW50ZXJzZWN0aW9uIGJldHdlZW4gdGhlIHJlY3RzLCBlaXRoZXIKKy8vICAgIHZlcnRpY2Fs
bHkgb3IgaG9yaXpvbnRhbGx5LgorLy8KKy8vICogSG9yaXpvbnRhbGx5ICAgICAgICogVmVydGlj
YWxseQorLy8gICAgXworLy8gICB8X3wgICAgICAgICAgICAgICAgICAgXyBfIF8gXyBfIF8KKy8v
ICAgfF98Li4uLi4uIF8gICAgICAgICAgfF98X3xffF98X3xffAorLy8gICB8X3wgICAgICB8X3wg
ICAgICAgICAuICAgICAgIC4KKy8vICAgfF98Li4uLi4ufF98ICAgT1IgICAgLiAgICAgICAuCisv
LyAgIHxffCAgICAgIHxffCAgICAgICAgIC4gICAgICAgLgorLy8gICB8X3wuLi4uLi58X3wgICAg
ICAgICAgXyBfIF8gXworLy8gICB8X3wgICAgICAgICAgICAgICAgICB8X3xffF98X3wKKy8vCisv
LworLy8gMikgUGFydGlhbGx5IGFsaWduZWQ6IFRoZXJlIGlzIGEgcGFydGlhbCBpbnRlcnNlY3Rp
b24gYmV0d2VlbiB0aGUgcmVjdHMsIGVpdGhlcgorLy8gICAgdmVydGljYWxseSBvciBob3Jpem9u
dGFsbHkuCisvLworLy8gKiBIb3Jpem9udGFsbHkgICAgICAgKiBWZXJ0aWNhbGx5CisvLyAgICBf
ICAgICAgICAgICAgICAgICAgIF8gXyBfIF8gXworLy8gICB8X3wgICAgICAgICAgICAgICAgIHxf
fF98X3xffF98CisvLyAgIHxffC4uLi4gXyAgICAgIE9SICAgICAgICAgICAuIC4KKy8vICAgfF98
ICAgIHxffCAgICAgICAgICAgICAgICAgIC4gLgorLy8gICB8X3wuLi4ufF98ICAgICAgICAgICAg
ICAgICAgLl8uXyBfCisvLyAgICAgICAgICB8X3wgICAgICAgICAgICAgICAgICB8X3xffF98Cisv
LyAgICAgICAgICB8X3wKKy8vCisvLyAzKSBPciwgb3RoZXJ3aXNlLCBub3QgYWxpZ25lZCBhdCBh
bGwuCisvLworLy8gKiBIb3Jpem9udGFsbHkgICAgICAgKiBWZXJ0aWNhbGx5CisvLyAgICAgICAg
IF8gICAgICAgICAgICAgIF8gXyBfIF8KKy8vICAgICAgICB8X3wgICAgICAgICAgICB8X3xffF98
X3wKKy8vICAgICAgICB8X3wgICAgICAgICAgICAgICAgICAgIC4KKy8vICAgICAgICB8X3wgICAg
ICAgICAgICAgICAgICAgICAuCisvLyAgICAgICAuICAgICAgICAgIE9SICAgICAgICAgICAgIC4K
Ky8vICAgIF8gLiAgICAgICAgICAgICAgICAgICAgICAgICAgIC5fIF8gXyBfIF8KKy8vICAgfF98
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxffF98X3xffF98CisvLyAgIHxffAorLy8gICB8
X3wKKy8vCisvLyAiVG90YWxseSBBbGlnbmVkIiBlbGVtZW50cyBhcmUgcHJlZmVyYWJsZSBjYW5k
aWRhdGVzIHRvIG1vdmUKKy8vIGZvY3VzIHRvIG92ZXIgIlBhcnRpYWxseSBBbGlnbmVkIiBvbmVz
LCB0aGF0IG9uIGl0cyB0dXJucyBhcmUKKy8vIG1vcmUgcHJlZmVyYWJsZSB0aGFuICJOb3QgQWxp
Z25lZCIuCitlbnVtIFJlY3RzQWxpZ25tZW50IHsKKyAgICBOb25lID0gMCwKKyAgICBQYXJ0aWFs
LAorICAgIEZ1bGwKK307CisKK3N0cnVjdCBGb2N1c0NhbmRpZGF0ZSB7CisgICAgRm9jdXNDYW5k
aWRhdGUoKQorICAgICAgICA6IG5vZGUoMCkKKyAgICAgICAgLCBkaXN0YW5jZShjTWF4RGlzdGFu
Y2UpCisgICAgICAgICwgcGFyZW50RGlzdGFuY2UoY01heERpc3RhbmNlKQorICAgICAgICAsIGFs
aWdubWVudChOb25lKQorICAgICAgICAsIHBhcmVudEFsaWdubWVudChOb25lKQorICAgIHsKKyAg
ICB9CisgICAgTm9kZSogbm9kZTsKKyAgICBsb25nIGxvbmcgZGlzdGFuY2U7CisgICAgbG9uZyBs
b25nIHBhcmVudERpc3RhbmNlOworICAgIFJlY3RzQWxpZ25tZW50IGFsaWdubWVudDsKKyAgICBS
ZWN0c0FsaWdubWVudCBwYXJlbnRBbGlnbm1lbnQ7Cit9OworCitsb25nIGxvbmcgZGlzdGFuY2VJ
bkRpcmVjdGlvbihOb2RlKiwgTm9kZSosIEZvY3VzRGlyZWN0aW9uLCBGb2N1c0NhbmRpZGF0ZSYp
OworYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihGcmFtZSosIEZvY3VzRGlyZWN0aW9uKTsKK2Jvb2wg
aGFzT2Zmc2NyZWVuUmVjdChOb2RlKik7Citib29sIGlzSW5Sb290RG9jdW1lbnQoTm9kZSopOwor
Cit9IC8vIG5hbXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwYXRpYWxOYXZpZ2F0aW9uX2gK
LS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>