<?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>83438</bug_id>
          
          <creation_ts>2012-04-08 14:37:18 -0700</creation_ts>
          <short_desc>querySelectorAll unable to find SVG camelCase elements imported into HTML</short_desc>
          <delta_ts>2015-06-10 04:08:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>140878</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>achicu</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>cool.blue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fmalita</cc>
    
    <cc>jason.davies</cc>
    
    <cc>julien.sanchez</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>krit</cc>
    
    <cc>macpherson</cc>
    
    <cc>mbostock</cc>
    
    <cc>mcdonald.ben</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>paulirish</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>598064</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-08 14:37:18 -0700</bug_when>
    <thetext>This is related to bug 46000, but covers the querySelector part of finding SVG camelCase elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598066</commentid>
    <comment_count>1</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-08 14:39:31 -0700</bug_when>
    <thetext>Correction, related to bug 46800.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599318</commentid>
    <comment_count>2</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-10 09:03:43 -0700</bug_when>
    <thetext>I have no intention of working on this but will try to attach a testcase this week, unless somebody beats me to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607368</commentid>
    <comment_count>3</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-04-22 11:06:33 -0700</bug_when>
    <thetext>*** Bug 74919 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660121</commentid>
    <comment_count>4</comment_count>
    <who name="Mike Bostock">mbostock</who>
    <bug_when>2012-06-28 21:23:37 -0700</bug_when>
    <thetext>I have a test case here: http://bl.ocks.org/1322814

I would love for this bug to be fixed soon!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778178</commentid>
    <comment_count>5</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-11-28 12:17:30 -0800</bug_when>
    <thetext>Moving this to P1; this is high priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778409</commentid>
    <comment_count>6</comment_count>
      <attachid>176588</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-28 15:27:34 -0800</bug_when>
    <thetext>Created attachment 176588
test case

Looks like it also affects CSS styling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778518</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-28 17:18:23 -0800</bug_when>
    <thetext>Looks like this is a problem in the CSS Grammar. It always converts the selector tag name to lower case. However, the element tag names are stored in their canonical format, so matching will never succeed. This worked just fine for HTML elements because their canonical format is always lower case.

Also noted that the problem doesn&apos;t reproduce when CSS is not parsed as part of an HTML context (ie. SVG documents). The bug might also affect attribute names selectors for attribute names that have both lower case and upper case letters. 

Tested FF and IE10 and they both parse case-insensitive for SVG and case-sensitive for HTML.
Opera parses case-insensitive for HTML too, but getElementsByTagName will still be case-sensitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781730</commentid>
    <comment_count>8</comment_count>
      <attachid>177299</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-03 11:52:20 -0800</bug_when>
    <thetext>Created attachment 177299
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781806</commentid>
    <comment_count>9</comment_count>
      <attachid>177299</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-03 13:16:45 -0800</bug_when>
    <thetext>Comment on attachment 177299
Patch V1

Removing review flags for now. I want to make sure the patch is not adding any performance regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781833</commentid>
    <comment_count>10</comment_count>
      <attachid>177299</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-03 13:40:36 -0800</bug_when>
    <thetext>Comment on attachment 177299
Patch V1

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

&gt; Source/WebCore/css/SelectorChecker.h:200
&gt; +#if ENABLE(SVG)
&gt; +        if (!element-&gt;document()-&gt;isHTMLDocument() || element-&gt;isSVGElement()) {
&gt; +#else
&gt; +        if (!element-&gt;document()-&gt;isHTMLDocument()) {
&gt; +#endif

Shouldn&apos;t this work for all XML content embeddable in HTML? At least also MathML. Would it be possible to instead apply it to elements that has a non-default namespace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782734</commentid>
    <comment_count>11</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-04 11:12:22 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 177299 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177299&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/SelectorChecker.h:200
&gt; &gt; +#if ENABLE(SVG)
&gt; &gt; +        if (!element-&gt;document()-&gt;isHTMLDocument() || element-&gt;isSVGElement()) {
&gt; &gt; +#else
&gt; &gt; +        if (!element-&gt;document()-&gt;isHTMLDocument()) {
&gt; &gt; +#endif
&gt; 
&gt; Shouldn&apos;t this work for all XML content embeddable in HTML? At least also MathML. Would it be possible to instead apply it to elements that has a non-default namespace?

You&apos;re right. However, all the elements in an HTML page were matched using case-insensitive comparison. Chancing that for MathML and/or SVG would for sure break content that was tested to work only in WebKit.

For that reason, I think my initial patch is wrong anyway, even though it was aligning the behavior for SVG with other browsers. 

I will post a new patch in which I will just preserve the current behavior: case-insensitive matching for all elements in HTML documents. The patch will only fix the mixed-case tag name that only happens for some SVG elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783906</commentid>
    <comment_count>12</comment_count>
      <attachid>177795</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-05 10:56:10 -0800</bug_when>
    <thetext>Created attachment 177795
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784035</commentid>
    <comment_count>13</comment_count>
      <attachid>177795</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 13:05:05 -0800</bug_when>
    <thetext>Comment on attachment 177795
Patch V2

Attachment 177795 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15138750

New failing tests:
css3/selectors3/xml/css3-modsel-181.xml
css3/selectors3/xhtml/css3-modsel-181.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784203</commentid>
    <comment_count>14</comment_count>
      <attachid>177850</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-05 15:42:36 -0800</bug_when>
    <thetext>Created attachment 177850
Patch V3

Re-added the change in StyleResolver::checkSelector that got lost during a previous rebase. This should fix the two failing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784239</commentid>
    <comment_count>15</comment_count>
      <attachid>177850</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-05 16:30:03 -0800</bug_when>
    <thetext>Comment on attachment 177850
Patch V3

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

&gt; Source/WebCore/css/SelectorChecker.h:208
&gt; -    const AtomicString&amp; localName = selector-&gt;tag().localName();
&gt; -    if (localName != starAtom &amp;&amp; localName != element-&gt;localName())
&gt; -        return false;
&gt; +    const QualifiedName&amp; selectorTag = selector-&gt;tag();
&gt; +    if (selectorTag.localName() != starAtom) {
&gt; +        if (element-&gt;document()-&gt;isHTMLDocument()) {
&gt; +            // All elements inside HTML documents will use case-insensitive matching.
&gt; +            // That applies even to SVG and MathML elements embedded in HTML. Other browsers
&gt; +            // match SVG using case-sensitive comparison, but WebKit has always 
&gt; +            // supported case-insensitive matching and we need to preserve that behavior
&gt; +            // for backwards compatibility reasons.
&gt; +            if (selectorTag.localNameUpper() != element-&gt;tagQName().localNameUpper())
&gt; +                return false;
&gt; +        } else {
&gt; +            // XML based documents (XHTML and SVG) need to use case sensitive matching.
&gt; +            if (selectorTag.localName() != element-&gt;tagQName().localName())
&gt; +                return false;
&gt; +        }
&gt; +    }

The code path here is very hot and this seems certain to regress performance. I think you need to find more efficient ways to handle these rare edge cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784259</commentid>
    <comment_count>16</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-05 16:41:56 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 177850 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177850&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/SelectorChecker.h:208
&gt; &gt; -    const AtomicString&amp; localName = selector-&gt;tag().localName();
&gt; &gt; -    if (localName != starAtom &amp;&amp; localName != element-&gt;localName())
&gt; &gt; -        return false;
&gt; &gt; +    const QualifiedName&amp; selectorTag = selector-&gt;tag();
&gt; &gt; +    if (selectorTag.localName() != starAtom) {
&gt; &gt; +        if (element-&gt;document()-&gt;isHTMLDocument()) {
&gt; &gt; +            // All elements inside HTML documents will use case-insensitive matching.
&gt; &gt; +            // That applies even to SVG and MathML elements embedded in HTML. Other browsers
&gt; &gt; +            // match SVG using case-sensitive comparison, but WebKit has always 
&gt; &gt; +            // supported case-insensitive matching and we need to preserve that behavior
&gt; &gt; +            // for backwards compatibility reasons.
&gt; &gt; +            if (selectorTag.localNameUpper() != element-&gt;tagQName().localNameUpper())
&gt; &gt; +                return false;
&gt; &gt; +        } else {
&gt; &gt; +            // XML based documents (XHTML and SVG) need to use case sensitive matching.
&gt; &gt; +            if (selectorTag.localName() != element-&gt;tagQName().localName())
&gt; &gt; +                return false;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; The code path here is very hot and this seems certain to regress performance. I think you need to find more efficient ways to handle these rare edge cases.

I&apos;ve included some performance tests in the patch and according to my tests it should have no performance regressions. I will post some results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784319</commentid>
    <comment_count>17</comment_count>
      <attachid>177878</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-05 17:22:48 -0800</bug_when>
    <thetext>Created attachment 177878
performance results

Test results of running the performance tests added in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784710</commentid>
    <comment_count>18</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-12-06 00:36:01 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 177299 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177299&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/css/SelectorChecker.h:200
&gt; &gt; &gt; +#if ENABLE(SVG)
&gt; &gt; &gt; +        if (!element-&gt;document()-&gt;isHTMLDocument() || element-&gt;isSVGElement()) {
&gt; &gt; &gt; +#else
&gt; &gt; &gt; +        if (!element-&gt;document()-&gt;isHTMLDocument()) {
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Shouldn&apos;t this work for all XML content embeddable in HTML? At least also MathML. Would it be possible to instead apply it to elements that has a non-default namespace?
&gt; 
&gt; You&apos;re right. However, all the elements in an HTML page were matched using case-insensitive comparison. Chancing that for MathML and/or SVG would for sure break content that was tested to work only in WebKit.
&gt; 
Do you have any examples of that, or reason to believe that would happen in common cases? I could imagine all upper-case, but I find it unlikely camel-case tags would be common. Unless this is a problem in important or common cases, shouldn&apos;t we still fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785010</commentid>
    <comment_count>19</comment_count>
      <attachid>177850</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-12-06 10:16:44 -0800</bug_when>
    <thetext>Comment on attachment 177850
Patch V3

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

&gt; Source/WebCore/css/SelectorChecker.h:200
&gt; +            // All elements inside HTML documents will use case-insensitive matching.
&gt; +            // That applies even to SVG and MathML elements embedded in HTML. Other browsers
&gt; +            // match SVG using case-sensitive comparison, but WebKit has always 
&gt; +            // supported case-insensitive matching and we need to preserve that behavior
&gt; +            // for backwards compatibility reasons.

It seems to me that we should just match what other browsers do. Is this specced somewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805797</commentid>
    <comment_count>20</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-01-11 18:06:57 -0800</bug_when>
    <thetext>Progress on this bug seems to have stalled but we were so close! @Alexandru, is there any chance of reviving this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806402</commentid>
    <comment_count>21</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-14 09:06:41 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Progress on this bug seems to have stalled but we were so close! @Alexandru, is there any chance of reviving this?

Sorry about that, I will get back to this starting today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806925</commentid>
    <comment_count>22</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2013-01-14 20:19:52 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; Progress on this bug seems to have stalled but we were so close! @Alexandru, is there any chance of reviving this?
&gt; 
&gt; Sorry about that, I will get back to this starting today.

The results on TypeNameSelectors look like a show-stopper, unfortunately :/. As Antti mentioned, SelectorChecker::tagMatches(...) is going to be piping hot on perf tests. An idea: there are relatively few mixed-case SVG tags. Could you do a single static hash lookup before the matching loop to see if the tag is one of the mixed-case SVG tags?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807695</commentid>
    <comment_count>23</comment_count>
      <attachid>182846</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-15 14:27:23 -0800</bug_when>
    <thetext>Created attachment 182846
testcase-svg

Added a better test case to show the differences visually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807748</commentid>
    <comment_count>24</comment_count>
      <attachid>182857</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-15 15:33:47 -0800</bug_when>
    <thetext>Created attachment 182857
testcase-svg

Used linearGradient instead of foreignObject to make it work on all browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809983</commentid>
    <comment_count>25</comment_count>
      <attachid>183324</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-17 17:13:08 -0800</bug_when>
    <thetext>Created attachment 183324
Patch V4

This patch makes the testcase-svg pass. It&apos;s work in progress, no changelogs, no new tests. Just saving my work so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815542</commentid>
    <comment_count>26</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-24 09:16:48 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created an attachment (id=183324) [details]
&gt; Patch V4
&gt; 
&gt; This patch makes the testcase-svg pass. It&apos;s work in progress, no changelogs, no new tests. Just saving my work so far.

My previous approach will not work anymore as there&apos;s been some changes in the CSSSelector.

Another approach would be to have a new m_match type in CSSSelector that is only going to be created for mixed-case tag selectors in HTML documents. It will use the RareData structure to store the qualified name with lower case + the mixed-case version. I could reuse the m_attribute and m_argument for that reason.

How does that sound? It should keep common lower case selectors as fast as before and will only impact performance on tags with mixed-case letters.

It seems like fields of the RareData structure could be collected in an union, to save some space. That would be a different patch, and will have to come before the fix for this bug. Let me know if that&apos;s a good idea or not and I could work on that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819423</commentid>
    <comment_count>27</comment_count>
      <attachid>185327</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-29 15:57:06 -0800</bug_when>
    <thetext>Created attachment 185327
Patch V5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819492</commentid>
    <comment_count>28</comment_count>
      <attachid>185327</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-29 16:46:32 -0800</bug_when>
    <thetext>Comment on attachment 185327
Patch V5

Attachment 185327 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16198367

New failing tests:
fast/css/css-selector-text.html
fast/css/css-set-selector-text.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819509</commentid>
    <comment_count>29</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-29 16:57:58 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 185327 [details])
&gt; Attachment 185327 [details] did not pass mac-wk2-ews (mac-wk2):
&gt; Output: http://queues.webkit.org/results/16198367
&gt; 
&gt; New failing tests:
&gt; fast/css/css-selector-text.html
&gt; fast/css/css-set-selector-text.html

I&apos;m not sure if I need to update the tests or fix the implementation. The issue is that CSSParser::updateSpecifiersWithElementName was not propagating the tagIsForNamespaceRule on the last &quot;custom element&quot; case.

The two tests fail with similar assets like the following one:

FAIL parseThenSerializeRule(&apos;::-webkit-file-upload-button { }&apos;) should be *::-webkit-file-upload-button { }. Was ::-webkit-file-upload-button { }.

It seems like the new implementation does the right thing, as in it preserves the selector as it was parsed. However, I don&apos;t know if the &quot;*&quot; was forced to get a &quot;canonical form&quot; instead.

I will revert that fix in this patch, as the change is orthogonal to the curent bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819561</commentid>
    <comment_count>30</comment_count>
      <attachid>185355</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-29 17:21:50 -0800</bug_when>
    <thetext>Created attachment 185355
Patch V6

Fixed the two failing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820022</commentid>
    <comment_count>31</comment_count>
      <attachid>185355</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-01-30 03:01:11 -0800</bug_when>
    <thetext>Comment on attachment 185355
Patch V6

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        However, non-HTML elements embedded in HTML need to follow the XML rule instead. They need to be matched using case-sensitive comparison.
&gt; +        That&apos;s aligned with the behavior of FF and IE10. However, because the CSS parser already lower-cased the tag name, the matching never
&gt; +        works for elements like &quot;foreignObject&quot; or &quot;textPath&quot;, as their canonical form has both lower-case and upper-case letters.

It may be aligned with FF and IE10 but is it correct? It is still not clear to me that these complications make sense. Shouldn&apos;t everything within a document type match the same?

&gt; Source/WebCore/css/CSSGrammar.y.in:1215
&gt; +            AtomicString mixedCaseTagName;
&gt; +            if (parser-&gt;m_context.isHTMLDocument &amp;&amp; !$2.isLowerCase()) {
&gt; +                mixedCaseTagName = $2;
&gt; +                $2.lower();
&gt; +            }
&gt; +            parser-&gt;updateSpecifiersWithElementName($1, $2, mixedCaseTagName, $$);

So if someone writes selectors in capital letters DIV { foo: bar } he will end up with rare datas. That seems bad. Can this be limited to known SVG names only or something?

&gt; Source/WebCore/css/SelectorChecker.cpp:203
&gt; +        case CSSSelector::MixedCaseTag:
&gt; +            if (!fastCheckSingleSelector&lt;checkMixedCaseTagValue&gt;(selector, element, topChildOrSubselector, topChildOrSubselectorMatchElement))
&gt; +                return false;
&gt; +            break;

Please don&apos;t add this to the fast path. These are supposed to be rare (they are rare in data after all!) and making fast path bigger can make it less fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820247</commentid>
    <comment_count>32</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-30 09:02:38 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 185355 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185355&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        However, non-HTML elements embedded in HTML need to follow the XML rule instead. They need to be matched using case-sensitive comparison.
&gt; &gt; +        That&apos;s aligned with the behavior of FF and IE10. However, because the CSS parser already lower-cased the tag name, the matching never
&gt; &gt; +        works for elements like &quot;foreignObject&quot; or &quot;textPath&quot;, as their canonical form has both lower-case and upper-case letters.
&gt; 
&gt; It may be aligned with FF and IE10 but is it correct? It is still not clear to me that these complications make sense. Shouldn&apos;t everything within a document type match the same?
&gt; 
The specification is not clear about the right behavior, so I thought we already decided that the right approach is to see what other browsers do.

&gt; &gt; Source/WebCore/css/CSSGrammar.y.in:1215
&gt; &gt; +            AtomicString mixedCaseTagName;
&gt; &gt; +            if (parser-&gt;m_context.isHTMLDocument &amp;&amp; !$2.isLowerCase()) {
&gt; &gt; +                mixedCaseTagName = $2;
&gt; &gt; +                $2.lower();
&gt; &gt; +            }
&gt; &gt; +            parser-&gt;updateSpecifiersWithElementName($1, $2, mixedCaseTagName, $$);
&gt; 
&gt; So if someone writes selectors in capital letters DIV { foo: bar } he will end up with rare datas. That seems bad. Can this be limited to known SVG names only or something?
I can limit it to only the right SVG names.
 
&gt; &gt; Source/WebCore/css/SelectorChecker.cpp:203
&gt; &gt; +        case CSSSelector::MixedCaseTag:
&gt; &gt; +            if (!fastCheckSingleSelector&lt;checkMixedCaseTagValue&gt;(selector, element, topChildOrSubselector, topChildOrSubselectorMatchElement))
&gt; &gt; +                return false;
&gt; &gt; +            break;
&gt; 
&gt; Please don&apos;t add this to the fast path. These are supposed to be rare (they are rare in data after all!) and making fast path bigger can make it less fast.
My tests showed that it didn&apos;t have any regression, but if we limit just to SVG elements, it makes sense to be removed from the fast path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035432</commentid>
    <comment_count>33</comment_count>
    <who name="Jason Davies">jason.davies</who>
    <bug_when>2014-09-16 03:03:59 -0700</bug_when>
    <thetext>Is there any chance we could get this resolved soon?  We get asked about this for D3 quite often:

https://github.com/mbostock/d3/issues/1235
https://github.com/mbostock/d3/issues/2020

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035438</commentid>
    <comment_count>34</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-09-16 03:52:39 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; Is there any chance we could get this resolved soon?  We get asked about this for D3 quite often:
&gt; 
&gt; https://github.com/mbostock/d3/issues/1235
&gt; https://github.com/mbostock/d3/issues/2020
&gt; 
&gt; Thanks!

It is indeed asked for quite often. Not just from D3. I am not sure if Alex has the time to continue this patch. Antti, could you take a look at the patch again and see how much work would need to be done?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064467</commentid>
    <comment_count>35</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-01-27 01:37:49 -0800</bug_when>
    <thetext>Follow up with your tests in https://bugs.webkit.org/show_bug.cgi?id=140930

*** This bug has been marked as a duplicate of bug 140878 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100590</commentid>
    <comment_count>36</comment_count>
    <who name="">cool.blue</who>
    <bug_when>2015-06-09 00:27:29 -0700</bug_when>
    <thetext>This thread is confusing.  It appears to be saying that it is a duplicate of a bug that has been fixed.  That&apos;s wrong. After 3 years, this bug is not fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100591</commentid>
    <comment_count>37</comment_count>
    <who name="Jason Davies">jason.davies</who>
    <bug_when>2015-06-09 00:38:36 -0700</bug_when>
    <thetext>It seems to work as expected e.g. see this test case: http://bl.ocks.org/mbostock/1322814

If something isn&apos;t working as expected, I&apos;d advise posting further details and perhaps opening a new issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100962</commentid>
    <comment_count>38</comment_count>
    <who name="">cool.blue</who>
    <bug_when>2015-06-10 02:31:15 -0700</bug_when>
    <thetext>Still broken in Webkit and blink http://bl.ocks.org/cool-Blue/14f575ae6945769aca39</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100968</commentid>
    <comment_count>39</comment_count>
    <who name="Jason Davies">jason.davies</who>
    <bug_when>2015-06-10 03:08:08 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; Still broken in Webkit and blink
&gt; http://bl.ocks.org/cool-Blue/14f575ae6945769aca39

You should test using WebKit nightly (I just tested with r185399).  The expected behaviour is that camelCase selectors should return non-empty lists.

As for all-lowercase selectors, perhaps this is a matter for discussion, but since SVG is case-sensitive I&apos;m guessing they should continue returning an empty list if they don&apos;t match the case exactly.

Since this is working as expected in the nightly WebKit, I would expect it will eventually become part of an official release (e.g. Safari).

Related, a similar (now resolved) bug in Firefox: https://bugs.webkit.org/show_bug.cgi?id=46800

As for Chrome, which no longer uses WebKit, I&apos;ve tested in Chrome Canary (45.0.2428.0) and the test case works as expected, though Chrome appears to perform a case-insensitive match now.  I believe this change was made here: https://codereview.chromium.org/1099963003/ - arguably I think the WebKit/Firefox exact case match approach is better.

To summarise, I believe the bug is fixed, but hasn&apos;t made it to a stable release yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100983</commentid>
    <comment_count>40</comment_count>
    <who name="">cool.blue</who>
    <bug_when>2015-06-10 03:57:39 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #38)
&gt; &gt; Still broken in Webkit and blink
&gt; &gt; http://bl.ocks.org/cool-Blue/14f575ae6945769aca39
&gt; 
&gt; You should test using WebKit nightly (I just tested with r185399).  The
&gt; expected behaviour is that camelCase selectors should return non-empty lists.
&gt; 
&gt; As for all-lowercase selectors, perhaps this is a matter for discussion, but
&gt; since SVG is case-sensitive I&apos;m guessing they should continue returning an
&gt; empty list if they don&apos;t match the case exactly.
&gt; 
&gt; Since this is working as expected in the nightly WebKit, I would expect it
&gt; will eventually become part of an official release (e.g. Safari).
&gt; 
&gt; Related, a similar (now resolved) bug in Firefox:
&gt; https://bugs.webkit.org/show_bug.cgi?id=46800
&gt; 
&gt; As for Chrome, which no longer uses WebKit, I&apos;ve tested in Chrome Canary
&gt; (45.0.2428.0) and the test case works as expected, though Chrome appears to
&gt; perform a case-insensitive match now.  I believe this change was made here:
&gt; https://codereview.chromium.org/1099963003/ - arguably I think the
&gt; WebKit/Firefox exact case match approach is better.
&gt; 
&gt; To summarise, I believe the bug is fixed, but hasn&apos;t made it to a stable
&gt; release yet.

OK, thanks for taking the time to advise on that.
If camelCase returns a non-empty selection then it&apos;s fine I would suggest.  As long as the successful selection coincides with with the successful rendering I don&apos;t really care.  But anyway, the standard is clear on camelCase, so, even better.  
Currently lowercase returns non-zero selection by the way, but doesn&apos;t render.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100985</commentid>
    <comment_count>41</comment_count>
    <who name="Jason Davies">jason.davies</who>
    <bug_when>2015-06-10 04:08:34 -0700</bug_when>
    <thetext>(In reply to comment #40)  
&gt; Currently lowercase returns non-zero selection by the way, but doesn&apos;t
&gt; render.

No, it works as expected and returns an empty selection for all-lowercase (WebKit nightly).  As I mentioned, I believe this is the correct behaviour, and I&apos;m not sure why Chromium has implemented case-insensitive matching.

Anyway, let&apos;s reserve further discussion about case-sensitivity for a future Chromium/Blink bug report, to avoid spamming the good people subscribed to this (resolved) bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>176588</attachid>
            <date>2012-11-28 15:27:34 -0800</date>
            <delta_ts>2012-11-28 15:27:34 -0800</delta_ts>
            <desc>test case</desc>
            <filename>svg_css.html</filename>
            <type>text/html</type>
            <size>564</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+CiAgICAgICAgPHRpdGxlPjwvdGl0bGU+
CiAgICAgICAgPHN0eWxlPgogICAgICAgICAgICBzdmcgPiAqIHsKICAgICAgICAgICAgICAgIGJv
cmRlcjogMXB4IHNvbGlkIHJlZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3JlaWduT2Jq
ZWN0IHsKICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIGZvcmVpZ25vYmplY3QgewogICAgICAgICAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmx1ZTsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2hlYWQ+
CiAgICA8Ym9keT4KICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI+CiAgICAgICAgICAgIDxmb3JlaWduT2JqZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIj4KICAgICAgICAgICAgICAgIDxwPlNvbWUgdGV4dDwvcD4KICAgICAgICAgICAg
PC9mb3JlaWduT2JqZWN0PgogICAgICAgIDwvc3ZnPgogICAgPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177299</attachid>
            <date>2012-12-03 11:52:20 -0800</date>
            <delta_ts>2012-12-05 10:56:10 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug83438.patch</filename>
            <type>text/plain</type>
            <size>27088</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMWJjYjI2Li45ZjJhODIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTIt
MDMgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIHF1
ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2FzZSBlbGVtZW50cyBpbXBv
cnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgbW9yZSB0ZXN0cyByZWxhdGVkIHRvIHRoZSBjYXNlIHNlbnNpdGl2ZW5lc3Mg
b2YgdGhlIHRhZyBuYW1lIHNlbGVjdG9ycy4KKyAgICAgICAgVGhlcmUgYXJlIGEgY291cGxlIG9m
IGNhc2VzIGFkZGVkIGluIHRoaXMgcGF0Y2g6CisgICAgICAgIDEuIFhIVE1MIGVsZW1lbnRzIHNo
b3VsZCB1c2UgY2FzZS1zZW5zaXRpdmUgbWF0Y2hpbmcuCisgICAgICAgIDIuIFNWRyBlbGVtZW50
cyBpbnNpZGUgSFRNTCBzaG91bGQgdXNlIGNhc2Utc2Vuc2l0aXZlIG1hdGNoaW5nLgorICAgICAg
ICAzLiBIVE1MIGVsZW1lbnRzIHNob3VsZCB1c2UgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZy4K
KworICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNh
c2UtaW5zZW5zaXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vU2VsZWN0b3JB
UEkvdGFnLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLnhodG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9jc3MtZG9tLXJlYWQtMi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgdGhlIGV4
cGVjdGVkIHJlc3VsdCBiZWNhdXNlIG5vdyB0aGUgcGFyc2VyIHdpbGwgcHJlc2VydmUgdGhlIGNh
c2Ugb2YgdGhlIHRhZ25hbWUuCisgICAgICAgICogZmFzdC9kb20vY3NzLWRvbS1yZWFkLWV4cGVj
dGVkLnR4dDogVXBkYXRlZCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGJlY2F1c2Ugbm93IHRoZSBwYXJz
ZXIgd2lsbCBwcmVzZXJ2ZSB0aGUgY2FzZSBvZiB0aGUgdGFnbmFtZS4KKyAgICAgICAgKiBzdmcv
ZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1odG1sLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTEyLTAzICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgSW52YWxpZGF0ZSBTVkcgd2lkdGggb24gd2lkdGggYXR0cmlidXRlIGNoYW5nZS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vu
c2l0aXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3Rh
Zy1jYXNlLWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41NDgzM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNDMgQEAKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignU1BBTicpIGlzIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOJykgaXMgdHJ1ZQorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdTUEFOID4gaW1nJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ltZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpLndlYmtpdE1h
dGNoZXNTZWxlY3RvcignU1BBTiA+IGltZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignU1BBTiBpbWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9y
KCdTUEFOIGltZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVs
IGxpIFNQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2
IHVsIGxpIFNQQU4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1
bCBsaSB0ZXh0YXJlYSArIFNQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIx
JykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNT
ZWxlY3RvcignZGl2IHVsIGxpIHRleHRhcmVhICsgU1BBTicpIGlzIHRydWUKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndl
YmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyB0cnVlCitQQVNTIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSBzcEFuJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53
ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bCBsaSBzcEFuJykgaXMgdHJ1ZQorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJyku
d2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIHRydWUKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScp
LndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyB0cnVlCitQQVNTIGNv
bnRlbnQucXVlcnlTZWxlY3Rvcignc3BhbjEnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlT
ZWxlY3Rvcignc3BhbiNVUFBFUjEnKSBpcyBudWxsCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ3Vua25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEn
KQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ3Vua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ2RpdiB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25v
d25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Vi
a2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigndWwgKyB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25v
d25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bCArIHVua25vd25UYWcnKSBpcyB0cnVl
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ0RJViB1bmtub3duVGFnJykgaXMgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdESVYgdW5rbm93blRh
ZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignVUwgKyB1bmtub3duVGFn
JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdV
TCArIHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vu
a25vd250YWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2Vs
ZWN0b3IoJ3Vua25vd250YWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
J1Vua25vd250YWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJ1Vua25vd250YWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJ2RpdiB1bmtub3dudGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25U
YWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0
TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdW5rbm93bnRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5x
dWVyeVNlbGVjdG9yKCd1bmtub3dudGFnMScpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNl
bGVjdG9yKCdvbCcpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdPTCcpIGlz
IG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1p
bnNlbnNpdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNh
c2UtaW5zZW5zaXRpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
NGZmMzg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JB
UEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDwhLS0gVGVzdGlu
ZyB0aGF0IGluIFhIVE1MIGRvY3VtZW50cyBDU1Mgc2VsZWN0b3JzIHVzZSBjYXNlLXNlbnNpdGl2
ZSB0YWcgbmFtZSBtYXRjaGluZy4gLS0+CisgICAgPGRpdiBpZD0iY29udGVudCI+CisgICAgICAg
IDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAg
ICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTEi
PjwvdGV4dGFyZWE+CisgICAgICAgICAgICAgICAgICAgIDxTUEFOIGlkPSJ1cHBlcjEiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPGltZyBpZD0iaW1nMSIgLz4KKyAgICAgICAgICAgICAgICAg
ICAgPC9TUEFOPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAg
ICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcxIj48L3Vua25vd25UYWc+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiLCAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBlbGVtZW50SWQgKyAiJykiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBlbGVtZW50SWQg
KyAiJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcihzZWxlY3Rv
cikgeworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIg
KyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
IlNQQU4gPiBpbWciLCAiaW1nMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQ
QU4gaW1nIiwgImltZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdWwg
bGkgU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYg
dWwgbGkgdGV4dGFyZWEgKyBTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5n
U2VsZWN0b3IoImRpdiB1bCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNo
aW5nU2VsZWN0b3IoImRpdiB1bCBsaSBzcEFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoIkRJViB1bCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVj
a01hdGNoaW5nU2VsZWN0b3IoImRpdiBVTCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBj
aGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInNwYW4xIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hp
bmdTZWxlY3Rvcigic3BhbiNVUFBFUjEiKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoInVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJkaXYgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoInVsICsgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAg
ICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIkRJViB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7
CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVUwgKyB1bmtub3duVGFnIiwgInVua25v
d25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93bnRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlVua25vd250YWci
LCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdW5r
bm93bnRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0
b3IoInVua25vd250YWcxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3Rvcigib2wi
KTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJPTCIpOworICAgIDwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YWFmNDMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1zZW5zaXRp
dmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1BBU1MgY29udGVudC5xdWVyeVNlbGVj
dG9yKCdkaXYgdWwgbGkgU1BBTicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEn
KQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1Nl
bGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVj
dG9yKCdkaXYgdWwgbGkgdGV4dGFyZWEgKyBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3VwcGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bCBsaSB0ZXh0YXJlYSArIFNQQU4nKSBpcyB0cnVlCitQ
QVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyBudWxsCitQQVNT
IGNvbnRlbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIHNwQW4nKSBpcyBudWxsCitQQVNTIGNv
bnRlbnQucXVlcnlTZWxlY3RvcignRElWIHVsIGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRl
bnQucXVlcnlTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQu
cXVlcnlTZWxlY3RvcigndW5rbm93blRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1
bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScp
LndlYmtpdE1hdGNoZXNTZWxlY3RvcigndW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVu
dC5xdWVyeVNlbGVjdG9yKCdkaXYgdW5rbm93blRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3du
VGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVua25vd25UYWcnKSBpcyB0cnVlCitQ
QVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndWwgKyB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bCArIHVua25vd25UYWcn
KSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRElWIHVua25vd25UYWcnKSBp
cyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignVUwgKyB1bmtub3duVGFnJykgaXMg
bnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vua25vd250YWcnKSBpcyBudWxsCitQ
QVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignVW5rbm93bnRhZycpIGlzIG51bGwKK1BBU1MgY29u
dGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdW5rbm93bnRhZycpIGlzIG51bGwKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1zZW5zaXRpdmUueGh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1zZW5zaXRpdmUueGh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQzODM0NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2
ZS54aHRtbApAQCAtMCwwICsxLDUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwg
MS4xIFN0cmljdC8vRU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3ho
dG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBYSFRNTCBkb2N1bWVudHMgQ1NTIHNlbGVjdG9ycyB1
c2UgY2FzZS1zZW5zaXRpdmUgdGFnIG5hbWUgbWF0Y2hpbmcuIC0tPgorICAgIDxkaXYgaWQ9ImNv
bnRlbnQiPgorICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lIj4KKyAgICAgICAgICAg
IDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJl
YSBpZD0idGV4dGFyZWExIj48L3RleHRhcmVhPgorICAgICAgICAgICAgICAgICAgICA8U1BBTiBp
ZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDwv
dWw+CisgICAgICAgICAgICA8dW5rbm93blRhZyBpZD0idW5rbm93blRhZzEiPjwvdW5rbm93blRh
Zz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICA8IVtDREFU
QVsgCisgICAgICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRl
bnQiKTsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBl
bGVtZW50SWQpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3Io
JyIgKyBzZWxlY3RvciArICInKSIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1l
bnRJZCArICInKSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBz
ZWxlY3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25N
YXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7CisgICAgICAgICAgICBzaG91bGRCZU51bGwoImNv
bnRlbnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bCBsaSBTUEFOIiwgInVwcGVyMSIp
OworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bCBsaSB0ZXh0YXJlYSArIFNQ
QU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVs
IGxpIHNwYW4iKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJkaXYgdWwgbGkg
c3BBbiIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoIkRJViB1bCBsaSBzcGFu
Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiZGl2IFVMIGxpIHNwYW4iKTsK
KworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInVua25vd25UYWciLCAidW5rbm93blRh
ZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdW5rbm93blRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInVsICsgdW5rbm93
blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3Io
IkRJViB1bmtub3duVGFnIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiVUwg
KyB1bmtub3duVGFnIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93
bnRhZyIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoIlVua25vd250YWciKTsK
KyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJkaXYgdW5rbm93bnRhZyIpOworICAg
IF1dPiAKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQtMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQtMi1leHBlY3RlZC50eHQKaW5kZXggOTdhOTVk
Zi4uMTYyM2E2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFk
LTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1kb20tcmVhZC0y
LWV4cGVjdGVkLnR4dApAQCAtMjksNyArMjksNyBAQCBJIHtkaXNwbGF5OiBibG9jazt9CiAudHdv
IHsgZGlzcGxheTogaW5saW5lOyB9IAogLnRocmVlIHsgZGlzcGxheTogbGlzdC1pdGVtOyBsaXN0
LXN0eWxlLXR5cGU6IHNxdWFyZTsgbWFyZ2luLWxlZnQ6IDNlbTsgfSAKIC5mb3VyIHsgZGlzcGxh
eTogbm9uZTsgY29sb3I6IHJlZDsgfSAKLWkgeyBkaXNwbGF5OiBibG9jazsgfSAKK0kgeyBkaXNw
bGF5OiBibG9jazsgfSAKIAogQGltcG9ydCB1cmwoImZhbmN5Zm9udHMuY3NzIikgc2NyZWVuOwog
QG1lZGlhIHByaW50IHsgCkBAIC00NSw2ICs0NSw2IEBAIGkgeyBkaXNwbGF5OiBibG9jazsgfQog
LnR3byB7IGRpc3BsYXk6IGlubGluZTsgfQogLnRocmVlIHsgZGlzcGxheTogbGlzdC1pdGVtOyBs
aXN0LXN0eWxlLXR5cGU6IHNxdWFyZTsgbWFyZ2luLWxlZnQ6IDNlbTsgfQogLmZvdXIgeyBkaXNw
bGF5OiBub25lOyBjb2xvcjogcmVkOyB9Ci1pIHsgZGlzcGxheTogYmxvY2s7IH0KK0kgeyBkaXNw
bGF5OiBibG9jazsgfQogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1k
b20tcmVhZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQt
ZXhwZWN0ZWQudHh0CmluZGV4IDE2MTg0ZjkuLjlmM2ZkYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2Nzcy1kb20tcmVhZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vY3NzLWRvbS1yZWFkLWV4cGVjdGVkLnR4dApAQCAtOSw1ICs5LDUgQEAgU2VyaWFs
aXplZCBzdHlsZSwgdXNpbmcgQ1NTIERPTToKIC50d28geyBkaXNwbGF5OiBpbmxpbmU7IH0KIC50
aHJlZSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdp
bi1sZWZ0OiAzZW07IH0KIC5mb3VyIHsgZGlzcGxheTogbm9uZTsgY29sb3I6IHJlZDsgfQotaSB7
IGRpc3BsYXk6IGJsb2NrOyB9CitJIHsgZGlzcGxheTogYmxvY2s7IH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0
bWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MjZm
YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNp
dGl2ZS1zdmctaW4taHRtbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorUEFTUyBjb250
ZW50LnF1ZXJ5U2VsZWN0b3IoJ1NQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBw
ZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNo
ZXNTZWxlY3RvcignU1BBTicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdk
aXYgdWwgbGkgU1BBTicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9y
KCdkaXYgdWwgbGkgU1BBTicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd1
bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1Nl
bGVjdG9yKCd1bmtub3duVGFnJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3Io
J3Vua25vd250YWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJ3Vua25vd250YWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cignZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncm91cDEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZ3JvdXAxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdnJykgaXMg
dHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ0cnKSBpcyBudWxsCitQQVNTIGNvbnRl
bnQucXVlcnlTZWxlY3RvcigndGV4dFBhdGgnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGV4dFBhdGgxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScpLndl
YmtpdE1hdGNoZXNTZWxlY3RvcigndGV4dFBhdGgnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVl
cnlTZWxlY3Rvcignc3ZnIHRleHRQYXRoJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
eHRQYXRoMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKS53ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoJ3N2ZyB0ZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5x
dWVyeVNlbGVjdG9yKCd0ZXh0cGF0aCcpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVj
dG9yKCdUZXh0UGF0aCcpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdmb3Jl
aWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykud2Via2l0TWF0
Y2hlc1NlbGVjdG9yKCdmb3JlaWduT2JqZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5
U2VsZWN0b3IoJ3N2ZyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ZvcmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25P
YmplY3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdzdmcgZm9yZWlnbk9iamVjdCcpIGlzIHRy
dWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWdub2JqZWN0JykgaXMgbnVsbAor
UEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ0ZvcmVpZ25PYmplY3QnKSBpcyBudWxsCitQQVNT
IGNvbnRlbnQucXVlcnlTZWxlY3RvcigndGV4dFBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd0ZXh0
UGF0aCArIGZvcmVpZ25PYmplY3QnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cignc3ZnIHRleHRQYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdmb3JlaWduT2JqZWN0MScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3Jl
aWduT2JqZWN0MScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcignc3ZnIHRleHRQYXRoICsgZm9yZWln
bk9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCAr
IGZvcmVpZ25vYmplY3QnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndGV4
dFBhdGggKyBGb3JlaWduT2JqZWN0JykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ3RleHRwYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVy
eVNlbGVjdG9yKCdUZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBpcyBudWxsCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbCBiL0xh
eW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1odG1sLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU5ODM4NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1odG1sLmh0
bWwKQEAgLTAsMCArMSw2NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPCEtLSBUZXN0aW5nIHRoYXQgaW4gU1ZH
IHRhZ3MgaW5zaWRlIEhUTUwgZG9jdW1lbnRzIG1hdGNoIHVzaW5nIGNhc2Utc2Vuc2l0aXZlIG1v
ZGUuIC0tPgorICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgorICAgICAgICA8ZGl2IHN0eWxlPSJkaXNw
bGF5OiBub25lIj4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+CisgICAg
ICAgICAgICAgICAgICAgIDxTUEFOIGlkPSJ1cHBlcjEiPjwvU1BBTj4KKyAgICAgICAgICAgICAg
ICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPGcgaWQ9Imdyb3VwMSI+PC9nPgorICAgICAgICAgICAgICAgICAgICAg
ICAgPHRleHRQYXRoIGlkPSJ0ZXh0UGF0aDEiPjwvdGV4dFBhdGg+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8Zm9yZWlnbk9iamVjdCBpZD0iZm9yZWlnbk9iamVjdDEiPjwvZm9yZWlnbk9iamVj
dD4KKyAgICAgICAgICAgICAgICAgICAgPC9zdmc+CisgICAgICAgICAgICAgICAgPC9saT4KKyAg
ICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8dW5rbm93blRhZyBpZD0idW5rbm93blRhZzEi
PjwvdW5rbm93blRhZz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4K
KyAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIp
OworICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nU2VsZWN0b3Ioc2VsZWN0b3IsIGVsZW1l
bnRJZCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiAr
IHNlbGVjdG9yICsgIicpIiwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciICsgZWxlbWVudElk
ICsgIicpIik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCciICsgZWxlbWVudElkICsgIicpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignIiArIHNlbGVj
dG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja05vbk1hdGNo
aW5nU2VsZWN0b3Ioc2VsZWN0b3IpIHsKKyAgICAgICAgICAgIHNob3VsZEJlTnVsbCgiY29udGVu
dC5xdWVyeVNlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIENoZWNraW5nIHRoYXQgdGFnIG5hbWUgc2VsZWN0b3JzIHN0aWxsIHdvcmsgb24gSFRN
TCBlbGVtZW50cyB3aGVuIFNWRyBpcyBhcm91bmQuCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxl
Y3RvcigiU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJk
aXYgdWwgbGkgU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9y
KCJ1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxl
Y3RvcigidW5rbm93bnRhZyIsICJ1bmtub3duVGFnMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hp
bmdTZWxlY3RvcigiZyIsICJncm91cDEiKTsKKyAgICAgICAgLy8gRXZlbiB0aG91Z2ggY2FzZS1p
bnNlbnNpdGl2ZSB1c2VkIHRvIGJlIHN1cHBvcnRlZCBpbiBTVkctaW4tSFRNTCBiZWZvcmUgaW4g
V2ViS2l0LCB0aGlzIG5ldyBiZWhhdmlvciBpcyBhbGlnbmVkIHdpdGggRmlyZWZveCBhbmQgSUUu
CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiRyIpOworCisgICAgICAgIGNoZWNr
TWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGgiLCAidGV4dFBhdGgxIik7CisgICAgICAgIGNoZWNr
TWF0Y2hpbmdTZWxlY3Rvcigic3ZnIHRleHRQYXRoIiwgInRleHRQYXRoMSIpOworICAgICAgICBj
aGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInRleHRwYXRoIik7CisgICAgICAgIGNoZWNrTm9uTWF0
Y2hpbmdTZWxlY3RvcigiVGV4dFBhdGgiKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoImZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRj
aGluZ1NlbGVjdG9yKCJzdmcgZm9yZWlnbk9iamVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAg
ICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoImZvcmVpZ25vYmplY3QiKTsKKyAgICAgICAg
Y2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJGb3JlaWduT2JqZWN0Iik7CisKKyAgICAgICAgY2hl
Y2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9i
amVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJzdmcgdGV4dFBhdGggKyBm
b3JlaWduT2JqZWN0IiwgImZvcmVpZ25PYmplY3QxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hp
bmdTZWxlY3RvcigidGV4dFBhdGggKyBmb3JlaWdub2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9u
TWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGggKyBGb3JlaWduT2JqZWN0Iik7CisgICAgICAgIGNo
ZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dHBhdGggKyBmb3JlaWduT2JqZWN0Iik7CisgICAg
ICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiVGV4dFBhdGggKyBmb3JlaWduT2JqZWN0Iik7
CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMWJlNzVhZC4uMTFkMGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTEy
LTAzICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBx
dWVyeVNlbGVjdG9yQWxsIHVuYWJsZSB0byBmaW5kIFNWRyBjYW1lbENhc2UgZWxlbWVudHMgaW1w
b3J0ZWQgaW50byBIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MzQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHF1ZXJ5U2VsZWN0b3JBbGwgdXNlcyBDU1NQYXJzZXIgdG8gcGFyc2UgdGhlIHNlbGVj
dG9yLCBidXQgdGhlIHBhcnNlciB3aWxsIHNvbWV0aW1lcyBub3QgcHJlc2VydmUKKyAgICAgICAg
dGhlIGNhc2Ugb2YgdGFnIG5hbWVzIHJlYWQgZnJvbSB0aGUgZmlsZS4gV2hlbiBXZWJLaXQgbWF0
Y2hlcyB0aGUgRE9NIGVsZW1lbnRzIGl0IHdpbGwganVzdAorICAgICAgICBjb21wYXJlIHRoZSBu
b2RlTmFtZSB0byB0aGUgcGFyc2VkIHRhZyBuYW1lLiBCZWNhdXNlIHNvbWUgU1ZHIGVsZW1lbnRz
IHVzZSB1cHBlci1jYXNlIGxldHRlcnMgaW4KKyAgICAgICAgdGhlaXIgY2Fub25pY2FsIG5hbWUs
IHRoaXMgbWF0Y2hpbmcgd2lsbCBuZXZlciBzdWNjZWVkIHdoZW4gdGhlIFNWRyBlbGVtZW50IGlz
IGVtYmVkZGVkIGluIGFuIEhUTUwgcGFnZS4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIG1ha2lu
ZyBTVkcgdGFnIG5hbWVzIG1hdGNoIHVzaW5nIGNhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb24uIEZv
ciB0aGF0IHJlYXNvbiB3ZSB3aWxsIGFsd2F5cyBoYXZlCisgICAgICAgIHRvIHN0b3JlIHRoZSBv
cmlnaW5hbCBzdHJpbmcgcGFyc2VkIGZyb20gdGhlIENTUyBmaWxlLiBJbiBvcmRlciB0byBwcmVz
ZXJ2ZSBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIGZvciBIVE1MCisgICAgICAgIGVsZW1lbnRz
IEkndmUgdXNlZCB0aGUgZXhpc3RpbmcgUXVhbGlmaWVkTmFtZTo6bG9jYWxOYW1lVXBwZXIgZnVu
Y3Rpb24gdG8gZ2V0IGFuIHVwcGVyIGNhc2UgdmVyc2lvbiBvZiB0aGUgbG9jYWwgbmFtZS4KKyAg
ICAgICAgTG93ZXIgY2FzZSB3b3VsZCBoYXZlIGJlZW4gYmV0dGVyLCBidXQgdGhhdCB3b3VsZCBh
ZGQgb25lIG1vcmUgZmllbGQgaW4gdGhlIFF1YWxpZmllZE5hbWUuCisKKyAgICAgICAgSSd2ZSBh
bHNvIHVwZGF0ZWQgdGhlIG9wdGltaXphdGlvbnMgdG8gbWF0Y2ggY2FzZS1pbnNlbnNpdGl2ZWx5
LCBzbyB0aGF0IGFsbCB0aGUgcG9zc2libGUgbWF0Y2hpbmcgcnVsZXMgYXJlIGNvbnNpZGVyZWQu
CisKKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoLCBvbmUgY2FzZSB0aGF0IHVzZWQgdG8gd29yayBi
ZWZvcmUgaXMgbm90IGdvaW5nIHRvIHdvcmsgYW55bW9yZS4gSG93ZXZlciwgdGhpcyBpcyAKKyAg
ICAgICAgZ29pbmcgdG8gYWxpZ25lZCBXZWJLaXQgd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMg
bGlrZSBGaXJlZm94IGFuZCBJRS4gU1ZHIGVsZW1lbnRzIGluIEhUTUwgdXNlZCB0byBiZSBtYXRj
aGVkIAorICAgICAgICBjYXNlLWluc2Vuc2l0aXZlbHkgd2hlbiB0aGUgdGFnIG5hbWUgaGFkIG9u
bHkgbG93ZXIgY2FzZSBsZXR0ZXJzLiBUaGF0IG1lYW5zIGVsZW1lbnRzIGxpa2UgImciIGNvdWxk
IGJlIG1hdGNoZWQgCisgICAgICAgIHdpdGggdXBwZXJjYXNlIHJ1bGVzIGxpa2UgIkcgeyB9Ii4K
KworICAgICAgICBUZXN0czogZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRp
dmUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vu
c2l0aXZlLnhodG1sCisgICAgICAgICAgICAgICBzdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1z
dmctaW4taHRtbC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAg
ICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUp
OgorICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29sbGVjdEVsZW1lbnRJZGVudGlmaWVySGFzaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKToKKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JDaGVja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OnRhZ01h
dGNoZXMpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OmNoZWNrU2VsZWN0b3IpOgorCiAyMDEyLTEyLTAzICBQaGlsaXAg
Um9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW52YWxpZGF0ZSBTVkcgd2lkdGgg
b24gd2lkdGggYXR0cmlidXRlIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpp
bmRleCAwM2ViOGU5Li5iMzBkMDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KQEAg
LTExNzEsMTIgKzExNzEsNyBAQCBzaW1wbGVfc2VsZWN0b3JfbGlzdDoKICAgOwogCiBlbGVtZW50
X25hbWU6Ci0gICAgSURFTlQgewotICAgICAgICBDU1NQYXJzZXJTdHJpbmcmIHN0ciA9ICQxOwot
ICAgICAgICBpZiAocGFyc2VyLT5tX2NvbnRleHQuaXNIVE1MRG9jdW1lbnQpCi0gICAgICAgICAg
ICBzdHIubG93ZXIoKTsKLSAgICAgICAgJCQgPSBzdHI7Ci0gICAgfQorICAgIElERU5UCiAgICAg
fCAnKicgewogICAgICAgICBzdGF0aWMgTENoYXIgc3RhciA9ICcqJzsKICAgICAgICAgJCQuaW5p
dCgmc3RhciwgMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggOWE3OGMwZi4uNmVjMWMwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgUnVsZVNldDo6
YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIEFkZFJ1bGVG
bGFncyBhZGRSCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IHNlbGVjdG9yLT50YWcoKS5sb2NhbE5hbWUoKTsKKyAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IHNlbGVjdG9yLT50YWcoKS5sb2NhbE5h
bWVVcHBlcigpOwogICAgIGlmIChsb2NhbE5hbWUgIT0gc3RhckF0b20pIHsKICAgICAgICAgYWRk
VG9SdWxlU2V0KGxvY2FsTmFtZS5pbXBsKCksIG1fdGFnUnVsZXMsIHJ1bGVEYXRhKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCBkNDg0
MWNhLi5hYzc5NWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAt
ODEsNyArODEsNyBAQCBlbnVtIHsgVGFnTmFtZVNhbHQgPSAxMywgSWRBdHRyaWJ1dGVTYWx0ID0g
MTcsIENsYXNzQXR0cmlidXRlU2FsdCA9IDE5IH07CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xs
ZWN0RWxlbWVudElkZW50aWZpZXJIYXNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCwgVmVjdG9y
PHVuc2lnbmVkLCA0PiYgaWRlbnRpZmllckhhc2hlcykKIHsKLSAgICBpZGVudGlmaWVySGFzaGVz
LmFwcGVuZChlbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogVGFn
TmFtZVNhbHQpOworICAgIGlkZW50aWZpZXJIYXNoZXMuYXBwZW5kKGVsZW1lbnQtPnRhZ1FOYW1l
KCkubG9jYWxOYW1lVXBwZXIoKS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogVGFnTmFtZVNhbHQp
OwogICAgIGlmIChlbGVtZW50LT5oYXNJRCgpKQogICAgICAgICBpZGVudGlmaWVySGFzaGVzLmFw
cGVuZChlbGVtZW50LT5pZEZvclN0eWxlUmVzb2x1dGlvbigpLmltcGwoKS0+ZXhpc3RpbmdIYXNo
KCkgKiBJZEF0dHJpYnV0ZVNhbHQpOwogICAgIGNvbnN0IFN0eWxlZEVsZW1lbnQqIHN0eWxlZEVs
ZW1lbnQgPSBlbGVtZW50LT5pc1N0eWxlZEVsZW1lbnQoKSA/IHN0YXRpY19jYXN0PGNvbnN0IFN0
eWxlZEVsZW1lbnQqPihlbGVtZW50KSA6IDA7CkBAIC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIGlu
bGluZSB2b2lkIGNvbGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKGNvbnN0
IENTU1NlbGVjdG9yKgogICAgIH0KICAgICBpZiAoaGFzaCA9PSBlbmQpCiAgICAgICAgIHJldHVy
bjsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IHNlbGVjdG9yLT50YWcoKS5s
b2NhbE5hbWUoKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IHNlbGVjdG9y
LT50YWcoKS5sb2NhbE5hbWVVcHBlcigpOwogICAgIGlmIChsb2NhbE5hbWUgIT0gc3RhckF0b20p
CiAgICAgICAgICgqaGFzaCsrKSA9IGxvY2FsTmFtZS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICog
VGFnTmFtZVNhbHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKaW5kZXggOWJk
YjY2OS4uOWE0MzIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hl
Y2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApAQCAtMTkw
LDkgKzE5MCwyMSBAQCBpbmxpbmUgYm9vbCBTZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMoY29u
c3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgQ1NTU2VsZWN0bwogewogICAgIGlmICghc2VsZWN0
b3ItPmhhc1RhZygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGxvY2FsTmFtZSA9IHNlbGVjdG9yLT50YWcoKS5sb2NhbE5hbWUoKTsKLSAgICBpZiAobG9j
YWxOYW1lICE9IHN0YXJBdG9tICYmIGxvY2FsTmFtZSAhPSBlbGVtZW50LT5sb2NhbE5hbWUoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIHNlbGVjdG9y
VGFnID0gc2VsZWN0b3ItPnRhZygpOworICAgIGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWUoKSAh
PSBzdGFyQXRvbSkgeworICAgICAgICAvLyBYTUwgZG9jdW1lbnRzIGFuZCBTVkcgZWxlbWVudHMg
KGV2ZW4gdGhvc2UgaW5zaWRlIEhUTUwgZG9jdW1lbnRzKSB1c2UgY2FzZS1zZW5zaXRpdmUgdGFn
IG5hbWUgbWF0Y2hpbmcuCisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgaWYgKCFlbGVtZW50LT5k
b2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpIHx8IGVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpKSB7
CisjZWxzZQorICAgICAgICBpZiAoIWVsZW1lbnQtPmRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50
KCkpIHsKKyNlbmRpZgorICAgICAgICAgICAgaWYgKHNlbGVjdG9yVGFnLmxvY2FsTmFtZSgpICE9
IGVsZW1lbnQtPnRhZ1FOYW1lKCkubG9jYWxOYW1lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHNlbGVjdG9yVGFnLmxv
Y2FsTmFtZVVwcGVyKCkgIT0gZWxlbWVudC0+dGFnUU5hbWUoKS5sb2NhbE5hbWVVcHBlcigpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSA9IHNlbGVjdG9yLT50YWcoKS5uYW1lc3BhY2VV
UkkoKTsKICAgICByZXR1cm4gbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG5hbWVzcGFjZVVS
SSA9PSBlbGVtZW50LT5uYW1lc3BhY2VVUkkoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCAyMzJkYjY2Li4xMGFkZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC02NzYsNyArNjc2LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0
TWF0Y2hpbmdSdWxlcyhSdWxlU2V0KiBydWxlcywgaW50JiBmaXJzdFJ1bGVJbmRleCwgaW4KICAg
ICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT5saW5rUHNldWRvQ2xhc3NS
dWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7CiAgICAgaWYg
KG1fY2hlY2tlci5tYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyhtX2VsZW1lbnQpKQogICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPmZvY3VzUHNldWRvQ2xhc3NSdWxlcygp
LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7Ci0gICAgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT50YWdSdWxlcyhtX2VsZW1lbnQtPmxvY2FsTmFtZSgp
LmltcGwoKSksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsKKyAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPnRhZ1J1bGVzKG1fZWxlbWVudC0+dGFn
UU5hbWUoKS5sb2NhbE5hbWVVcHBlcigpLmltcGwoKSksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVs
ZUluZGV4LCBvcHRpb25zKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMt
PnVuaXZlcnNhbFJ1bGVzKCksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25z
KTsKIH0KIApAQCAtMjE0Myw3ICsyMTQzLDcgQEAgaW5saW5lIGJvb2wgU3R5bGVSZXNvbHZlcjo6
Y2hlY2tTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIGNvbnN0IENvbnRhaW4KICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gV2Uga25vdyBhIHN1ZmZpY2llbnRs
eSBzaW1wbGUgc2luZ2xlIHBhcnQgc2VsZWN0b3IgbWF0Y2hlcyBzaW1wbHkgYmVjYXVzZSB3ZSBm
b3VuZCBpdCBmcm9tIHRoZSBydWxlIGhhc2guCiAgICAgICAgIC8vIFRoaXMgaXMgbGltaXRlZCB0
byBIVE1MIG9ubHkgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgbmFtZXNwYWNlLgotICAg
ICAgICBpZiAocnVsZURhdGEuaGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9u
UnVsZUhhc2goKSAmJiBtX2VsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkgeworICAgICAgICBpZiAo
cnVsZURhdGEuaGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2go
KSAmJiBtX2VsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PmlzSFRNTERvY3VtZW50KCkpIHsKICAgICAgICAgICAgIGlmICghcnVsZURhdGEuaGFzTXVsdGlw
YXJ0U2VsZWN0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSBl
bHNlIGlmICghU2VsZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKG1fZWxlbWVudCwgcnVsZURhdGEu
c2VsZWN0b3IoKSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177795</attachid>
            <date>2012-12-05 10:56:10 -0800</date>
            <delta_ts>2012-12-05 15:42:36 -0800</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug83438_2.patch</filename>
            <type>text/plain</type>
            <size>37595</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYTZjMGYyLi5lMjM2Mjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMTIt
MDUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIHF1
ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2FzZSBlbGVtZW50cyBpbXBv
cnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgbW9yZSB0ZXN0cyByZWxhdGVkIHRvIHRoZSBjYXNlIHNlbnNpdGl2ZW5lc3Mg
b2YgdGhlIHRhZyBuYW1lIHNlbGVjdG9ycy4KKyAgICAgICAgVGhlcmUgYXJlIGEgY291cGxlIG9m
IGNhc2VzIGFkZGVkIGluIHRoaXMgcGF0Y2g6CisgICAgICAgIDEuIFhIVE1MIGFuZCBTVkcgZG9j
dW1lbnRzIHNob3VsZCB1c2UgY2FzZS1zZW5zaXRpdmUgbWF0Y2hpbmcuCisgICAgICAgIDIuIFNW
RyBlbGVtZW50cyBpbnNpZGUgSFRNTCBzaG91bGQgdXNlIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hp
bmcuIFRoYXQncyBuZWVkZWQgdG8gcHJlc2VydmUKKyAgICAgICAgYmFja3dhcmRzIGNvbXBhdGli
aWxpdHkuCisgICAgICAgIDMuIEhUTUwgZG9jdW1lbnRzIHNob3VsZCB1c2UgY2FzZS1pbnNlbnNp
dGl2ZSBtYXRjaGluZy4KKworICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vU2Vs
ZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLnhodG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9jc3MtZG9tLXJlYWQtMi1leHBlY3RlZC50eHQ6
IFVwZGF0ZWQgdGhlIGV4cGVjdGVkIHJlc3VsdCBiZWNhdXNlIG5vdyB0aGUgcGFyc2VyIHdpbGwg
cHJlc2VydmUgdGhlIGNhc2Ugb2YgdGhlIHRhZ25hbWUuCisgICAgICAgICogZmFzdC9kb20vY3Nz
LWRvbS1yZWFkLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGJlY2F1
c2Ugbm93IHRoZSBwYXJzZXIgd2lsbCBwcmVzZXJ2ZSB0aGUgY2FzZSBvZiB0aGUgdGFnbmFtZS4K
KyAgICAgICAgKiBzdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1p
bi1odG1sLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTA1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OOiAyIHRlc3RzIHN0YXJ0
ZWQgdG8gZmFpbCB3aXRoIG5ld2VyIFF0NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYWQxMjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1pbnNl
bnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ1NQQU4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1NQQU4gPiBp
bWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOID4gaW1nJykg
aXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdTUEFOIGltZycpIGlzIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ltZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ1NQQU4gaW1nJykgaXMgdHJ1ZQorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlzIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIx
Jykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlzIHRydWUKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIHRleHRhcmVhICsgU1BBTicpIGlzIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwgbGkgdGV4dGFyZWEg
KyBTUEFOJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkg
c3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwg
bGkgc3BhbicpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxp
IHNwQW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVs
IGxpIHNwQW4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ0RJViB1bCBs
aSBzcGFuJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ0RJViB1
bCBsaSBzcGFuJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYgVUwg
bGkgc3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYg
VUwgbGkgc3BhbicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdzcGFuMScp
IGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdzcGFuI1VQUEVSMScpIGlzIG51
bGwKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndW5rbm93blRhZycpIGlzIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcigndW5rbm93blRhZycpIGlz
IHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVua25vd25UYWcnKSBpcyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bmtu
b3duVGFnJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bCArIHVua25v
d25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ3VsICsgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignRElWIHVua25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRh
ZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRN
YXRjaGVzU2VsZWN0b3IoJ0RJViB1bmtub3duVGFnJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdVTCArIHVua25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRh
ZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ1VMICsgdW5rbm93blRhZycpIGlzIHRydWUKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndW5rbm93bnRhZycpIGlzIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1
bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcigndW5rbm93bnRhZycpIGlzIHRydWUK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignVW5rbm93bnRhZycpIGlzIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignVW5rbm93bnRhZycpIGlzIHRy
dWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVua25vd250YWcnKSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bmtub3du
dGFnJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bCcpIGlzIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1bDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dWwxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bCcpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignVUwnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWwxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VsMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcign
VUwnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93bnRhZzEnKSBp
cyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcignb2wnKSBpcyBudWxsCitQQVNTIGNv
bnRlbnQucXVlcnlTZWxlY3RvcignT0wnKSBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZmYWVjMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLmh0bWwK
QEAgLTAsMCArMSw2MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBIVE1MIGRvY3VtZW50cyBDU1Mg
c2VsZWN0b3JzIHVzZSBjYXNlLWluc2Vuc2l0aXZlIHRhZyBuYW1lIG1hdGNoaW5nLiAtLT4KKyAg
ICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSI+
CisgICAgICAgICAgICA8dWwgaWQ9InVsMSI+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAg
ICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhMSI+PC90ZXh0YXJlYT4KKyAgICAg
ICAgICAgICAgICAgICAgPFNQQU4gaWQ9InVwcGVyMSI+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8aW1nIGlkPSJpbWcxIiAvPgorICAgICAgICAgICAgICAgICAgICA8L1NQQU4+CisgICAgICAg
ICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8dW5rbm93blRh
ZyBpZD0idW5rbm93blRhZzEiPjwvdW5rbm93blRhZz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9k
aXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGVudCIpOworICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nU2VsZWN0
b3Ioc2VsZWN0b3IsIGVsZW1lbnRJZCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIsICJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnIiArIGVsZW1lbnRJZCArICInKSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7CisgICAgICAgICAgICBz
aG91bGRCZU51bGwoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIik7
CisgICAgICAgIH0KKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQQU4iLCAidXBw
ZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiU1BBTiA+IGltZyIsICJpbWcx
Iik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiU1BBTiBpbWciLCAiaW1nMSIpOwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bCBsaSBTUEFOIiwgInVwcGVyMSIp
OworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bCBsaSB0ZXh0YXJlYSArIFNQ
QU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxp
IHNwYW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVs
IGxpIHNwQW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiRElW
IHVsIGxpIHNwYW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigi
ZGl2IFVMIGxpIHNwYW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxl
Y3Rvcigic3BhbjEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJzcGFuI1VQ
UEVSMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bmtub3du
VGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidWwg
KyB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxl
Y3RvcigiRElWIHVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRj
aGluZ1NlbGVjdG9yKCJVTCArIHVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAg
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ1bmtub3dudGFnIiwgInVua25vd25UYWcxIik7CisgICAg
ICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVW5rbm93bnRhZyIsICJ1bmtub3duVGFnMSIpOwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bmtub3dudGFnIiwgInVua25vd25U
YWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidWwiLCAidWwxIik7CisgICAg
ICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVUwiLCAidWwxIik7CisgICAgICAgIGNoZWNrTm9u
TWF0Y2hpbmdTZWxlY3RvcigidW5rbm93bnRhZzEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGlu
Z1NlbGVjdG9yKCJvbCIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoIk9MIik7
CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZkMjg1
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3Rh
Zy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorUEFTUyBjb250
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53
ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bCBsaSBTUEFOJykgaXMgdHJ1ZQorUEFTUyBjb250
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSB0ZXh0YXJlYSArIFNQQU4nKSBpcyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVsIGxpIHRleHRhcmVhICsgU1BB
TicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgc3Bhbicp
IGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgc3BBbicpIGlz
IG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIG51
bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgVUwgbGkgc3BhbicpIGlzIG51bGwK
K1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bmtub3duVGFnJykgaXMgdHJ1
ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bmtub3duVGFnJykgaXMgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdW5rbm93blRh
ZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd1bCArIHVua25vd25UYWcn
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3Vs
ICsgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdESVYg
dW5rbm93blRhZycpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdVTCArIHVu
a25vd25UYWcnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93blRh
ZzEnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93bnRhZycpIGlz
IG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdVbmtub3dudGFnJykgaXMgbnVsbAor
UEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bmtub3dudGFnJykgaXMgbnVsbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS54
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2
ZS54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjJlY2RmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Ut
c2Vuc2l0aXZlLnhodG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCAKKyAgICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjEgU3RyaWN0Ly9FTiIKKyAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
MS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDwhLS0gVGVzdGluZyB0aGF0IGluIFhIVE1MIGRvY3VtZW50cyBDU1Mgc2Vs
ZWN0b3JzIHVzZSBjYXNlLXNlbnNpdGl2ZSB0YWcgbmFtZSBtYXRjaGluZy4gLS0+CisgICAgPGRp
diBpZD0iY29udGVudCI+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgorICAg
ICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAg
PHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTEiPjwvdGV4dGFyZWE+CisgICAgICAgICAgICAgICAgICAg
IDxTUEFOIGlkPSJ1cHBlcjEiPjwvU1BBTj4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAg
ICAgICAgPC91bD4KKyAgICAgICAgICAgIDx1bmtub3duVGFnIGlkPSJ1bmtub3duVGFnMSI+PC91
bmtub3duVGFnPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAg
IDwhW0NEQVRBWyAKKyAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpOworICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nU2VsZWN0b3Ioc2Vs
ZWN0b3IsIGVsZW1lbnRJZCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRlbnQucXVlcnlT
ZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIiwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCci
ICsgZWxlbWVudElkICsgIicpIik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCciICsgZWxlbWVudElkICsgIicpLndlYmtpdE1hdGNoZXNTZWxlY3Rv
cignIiArIHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBj
aGVja05vbk1hdGNoaW5nU2VsZWN0b3Ioc2VsZWN0b3IpIHsKKyAgICAgICAgICAgIHNob3VsZEJl
TnVsbCgiY29udGVudC5xdWVyeVNlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIFNQQU4iLCAi
dXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIHRleHRh
cmVhICsgU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9y
KCJkaXYgdWwgbGkgc3BhbiIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoImRp
diB1bCBsaSBzcEFuIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiRElWIHVs
IGxpIHNwYW4iKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJkaXYgVUwgbGkg
c3BhbiIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bmtub3du
VGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidWwg
KyB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdT
ZWxlY3RvcigiRElWIHVua25vd25UYWciKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVj
dG9yKCJVTCArIHVua25vd25UYWciKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9y
KCJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInVua25v
d250YWciKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJVbmtub3dudGFnIik7
CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVua25vd250YWciKTsKKyAg
ICBdXT4gCisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFkLTItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFkLTItZXhwZWN0ZWQudHh0CmluZGV4IDk3YTk1
ZGYuLjE2MjNhNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1kb20tcmVh
ZC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQt
Mi1leHBlY3RlZC50eHQKQEAgLTI5LDcgKzI5LDcgQEAgSSB7ZGlzcGxheTogYmxvY2s7fQogLnR3
byB7IGRpc3BsYXk6IGlubGluZTsgfSAKIC50aHJlZSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsgbGlz
dC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi1sZWZ0OiAzZW07IH0gCiAuZm91ciB7IGRpc3Bs
YXk6IG5vbmU7IGNvbG9yOiByZWQ7IH0gCi1pIHsgZGlzcGxheTogYmxvY2s7IH0gCitJIHsgZGlz
cGxheTogYmxvY2s7IH0gCiAKIEBpbXBvcnQgdXJsKCJmYW5jeWZvbnRzLmNzcyIpIHNjcmVlbjsK
IEBtZWRpYSBwcmludCB7IApAQCAtNDUsNiArNDUsNiBAQCBpIHsgZGlzcGxheTogYmxvY2s7IH0K
IC50d28geyBkaXNwbGF5OiBpbmxpbmU7IH0KIC50aHJlZSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsg
bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi1sZWZ0OiAzZW07IH0KIC5mb3VyIHsgZGlz
cGxheTogbm9uZTsgY29sb3I6IHJlZDsgfQotaSB7IGRpc3BsYXk6IGJsb2NrOyB9CitJIHsgZGlz
cGxheTogYmxvY2s7IH0KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3Mt
ZG9tLXJlYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFk
LWV4cGVjdGVkLnR4dAppbmRleCAxNjE4NGY5Li45ZjNmZGFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2Nzcy1kb20tcmVhZC1leHBlY3RlZC50eHQKQEAgLTksNSArOSw1IEBAIFNlcmlh
bGl6ZWQgc3R5bGUsIHVzaW5nIENTUyBET006CiAudHdvIHsgZGlzcGxheTogaW5saW5lOyB9CiAu
dGhyZWUgeyBkaXNwbGF5OiBsaXN0LWl0ZW07IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyBtYXJn
aW4tbGVmdDogM2VtOyB9CiAuZm91ciB7IGRpc3BsYXk6IG5vbmU7IGNvbG9yOiByZWQ7IH0KLWkg
eyBkaXNwbGF5OiBibG9jazsgfQorSSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1odG1sLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1o
dG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzY3
OTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5z
aXRpdmUtc3ZnLWluLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDQgQEAKK1BBU1MgY29u
dGVudC5xdWVyeVNlbGVjdG9yKCdTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vw
cGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ1NQQU4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
ZGl2IHVsIGxpIFNQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rv
cignZGl2IHVsIGxpIFNQQU4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
dW5rbm93blRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNT
ZWxlY3RvcigndW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCd1bmtub3dudGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCd1bmtub3dudGFnJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ2cnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JvdXAxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2dyb3VwMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZycpIGlz
IHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdHJykgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2dyb3VwMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncm91cDEn
KS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ0cnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlT
ZWxlY3RvcigndGV4dFBhdGgnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgx
JykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScpLndlYmtpdE1hdGNo
ZXNTZWxlY3RvcigndGV4dFBhdGgnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cignc3ZnIHRleHRQYXRoJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScp
CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJ3N2ZyB0ZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVj
dG9yKCd0ZXh0cGF0aCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgxJykud2Via2l0TWF0Y2hlc1Nl
bGVjdG9yKCd0ZXh0cGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdU
ZXh0UGF0aCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKQorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9y
KCdUZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWdu
T2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCdmb3JlaWduT2JqZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ3N2ZyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zv
cmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmpl
Y3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdzdmcgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUK
K1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWdub2JqZWN0JykgaXMgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdmb3JlaWdub2Jq
ZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ0ZvcmVpZ25PYmplY3Qn
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ0ZvcmVpZ25PYmplY3QnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
dGV4dFBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zv
cmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmpl
Y3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBp
cyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcignc3ZnIHRleHRQYXRoICsgZm9yZWln
bk9iamVjdCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JlaWduT2JqZWN0MScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JlaWduT2JqZWN0MScpLndlYmtpdE1hdGNo
ZXNTZWxlY3Rvcignc3ZnIHRleHRQYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1Mg
Y29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCArIGZvcmVpZ25vYmplY3QnKSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3RleHRQ
YXRoICsgZm9yZWlnbm9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCd0ZXh0UGF0aCArIEZvcmVpZ25PYmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Zm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9i
amVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3RleHRQYXRoICsgRm9yZWlnbk9iamVjdCcp
IGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0cGF0aCArIGZvcmVpZ25P
YmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJ3RleHRwYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVu
dC5xdWVyeVNlbGVjdG9yKCdUZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBpcyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ1RleHRQYXRoICsg
Zm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1j
YXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWct
Y2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41M2FlMzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBTVkcgdGFncyBpbnNpZGUgSFRNTCBkb2N1
bWVudHMgbWF0Y2ggdXNpbmcgY2FzZS1pbnNlbnNpdGl2ZSBtb2RlLiAtLT4KKyAgICA8ZGl2IGlk
PSJjb250ZW50Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgICAgICAg
ICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8U1BB
TiBpZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlk
PSJncm91cDEiPjwvZz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCBpZD0idGV4
dFBhdGgxIj48L3RleHRQYXRoPgorICAgICAgICAgICAgICAgICAgICAgICAgPGZvcmVpZ25PYmpl
Y3QgaWQ9ImZvcmVpZ25PYmplY3QxIj48L2ZvcmVpZ25PYmplY3Q+CisgICAgICAgICAgICAgICAg
ICAgIDwvc3ZnPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAg
ICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcxIj48L3Vua25vd25UYWc+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIsICJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKSIpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCAr
ICInKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9y
KSB7CisgICAgICAgICAgICBzaG91bGRCZU51bGwoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiAr
IHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVja2luZyB0aGF0
IHRhZyBuYW1lIHNlbGVjdG9ycyBzdGlsbCB3b3JrIG9uIEhUTUwgZWxlbWVudHMgd2hlbiBTVkcg
aXMgYXJvdW5kLgorICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQQU4iLCAidXBwZXIx
Iik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIFNQQU4iLCAidXBw
ZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZyIsICJ1bmtu
b3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInVua25vd250YWciLCAi
dW5rbm93blRhZzEiKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImciLCAiZ3Jv
dXAxIik7CisgICAgICAgIC8vIFdlYktpdCBzdXBwb3J0ZWQgY2FzZS1pbnNlbnNpdGl2ZSBtYXRj
aGluZyBmb3IgU1ZHIGVsZW1lbnRzIGluIEhUTUwsIAorICAgICAgICAvLyBzbyBoZXJlIHdlIHRl
c3QgdGhhdCB0aGUgb2xkIGJlaGF2aW9yIGlzIHByZXNlcnZlZCBmb3IgYmFja3dhcmRzIGNvbXBh
dGliaWxpdHkgcmVhc29ucy4KKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJHIiwgImdy
b3VwMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGgiLCAidGV4
dFBhdGgxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigic3ZnIHRleHRQYXRoIiwg
InRleHRQYXRoMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInRleHRwYXRoIiwg
InRleHRQYXRoMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlRleHRQYXRoIiwg
InRleHRQYXRoMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZm9yZWlnbk9i
amVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
InN2ZyBmb3JlaWduT2JqZWN0IiwgImZvcmVpZ25PYmplY3QxIik7CisgICAgICAgIGNoZWNrTWF0
Y2hpbmdTZWxlY3RvcigiZm9yZWlnbm9iamVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAg
ICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIkZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEi
KTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInRleHRQYXRoICsgZm9yZWlnbk9i
amVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
InN2ZyB0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAg
ICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCArIGZvcmVpZ25vYmplY3QiLCAiZm9y
ZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCAr
IEZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGlu
Z1NlbGVjdG9yKCJ0ZXh0cGF0aCArIGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsK
KyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJUZXh0UGF0aCArIGZvcmVpZ25PYmplY3Qi
LCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lSGlzdG9y
eVNlbGVjdG9ycy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVIaXN0b3J5U2Vs
ZWN0b3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc3OWJlNQot
LS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lSGlzdG9yeVNl
bGVjdG9ycy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxkaXYgaWQ9InRlc3QtdGFyZ2V0IiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgICAg
PGRpdj4KKyAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDx1
bD4KKyAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxiPgorICAgICAg
ICAgICAgICAgICAgICA8L2I+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDwv
dWw+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAg
ICAgICAgICA8Yj4KKyAgICAgICAgICAgICAgICAgICAgPC9iPgorICAgICAgICAgICAgICAgIDwv
bGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdj48L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+
PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8cD48L3A+CisgICAgPHA+PC9w
PgorICAgIDxwPjwvcD4KKyAgICA8cD48L3A+Cis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5tZWFz
dXJlUnVuc1BlclNlY29uZCh7CisgICAgZGVzY3JpcHRpb246ICJUaGlzIGJlbmNobWFyayB0ZXN0
cyBDU1MgU2VsZWN0b3IgcGVyZm9ybWFuY2Ugd2l0aCBxdWVyeVNlbGVjdG9yKCkuIiwKKyAgICBy
dW46IGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYgdWwgbGkgYiIpOworICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IFVMIGxpIGIiKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIkRpdiB1bCBMaSBiIik7CisgICAgICAgICAgICBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYgdWwgbGkgQiIpOworICAgICAgICB9CisgICAgfQor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNl
VGVzdHMvQ1NTL1R5cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy54aHRtbCBiL1BlcmZvcm1hbmNlVGVz
dHMvQ1NTL1R5cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yOWM2ZmRmCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9DU1MvVHlwZU5hbWVIaXN0b3J5U2VsZWN0b3JzLnhodG1sCkBAIC0wLDAgKzEsNTMgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCAK
KyAgICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEgU3RyaWN0Ly9FTiIKKyAgICAgImh0
dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0i
ZW4iPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0LXRhcmdldCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUi
PgorICAgIDxkaXY+CisgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAg
ICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8Yj4K
KyAgICAgICAgICAgICAgICAgICAgPC9iPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAg
ICAgICA8L3VsPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT4KKyAgICAg
ICAgICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAgICAgIDwvYj4KKyAgICAgICAgICAg
ICAgICA8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxk
aXY+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAg
ICAgIDxwPjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHA+PC9wPgorICAg
IDxwPjwvcD4KKyAgICA8cD48L3A+CisgICAgPHA+PC9wPgorPC9kaXY+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorPCFbQ0RBVEFbCitQ
ZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7CisgICAgZGVzY3JpcHRpb246ICJU
aGlzIGJlbmNobWFyayB0ZXN0cyBDU1MgU2VsZWN0b3IgcGVyZm9ybWFuY2Ugd2l0aCBxdWVyeVNl
bGVjdG9yKCkuIiwKKyAgICBydW46IGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDsgaSsrKSB7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJk
aXYgdWwgbGkgYiIpOworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IFVM
IGxpIGIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIkRpdiB1bCBMaSBi
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYgdWwgbGkgQiIpOwor
ICAgICAgICB9CisgICAgfQorfSk7CitdXT4KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxlY3RvcnMuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0b3JzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg3OGRiOQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0idGVzdC10YXJnZXQiPgor
ICAgIDxkaXY+CisgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAg
ICA8cD48L3A+CisgICAgICAgICAgICA8cD48L3A+CisgICAgICAgICAgICA8cD48L3A+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2PjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+Cisg
ICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD48L3A+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxwPjwvcD4KKyAgICA8cD48L3A+CisgICAgPHA+PC9wPgorICAgIDxwPjwvcD4K
KzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHsKKyAgICBkZXNj
cmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBTZWxlY3RvciBwZXJmb3JtYW5jZSB3
aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVuY3Rpb24oKSB7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoInAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIlAiKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpOworICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiRElWIik7CisgICAgICAgIH0KKyAgICB9Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9D
U1MvVHlwZU5hbWVTZWxlY3RvcnMueGh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFt
ZVNlbGVjdG9ycy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODI3
NGE2Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxl
Y3RvcnMueGh0bWwKQEAgLTAsMCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMSBTdHJpY3QvL0VOIgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RU
RC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3Qt
dGFyZ2V0Ij4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgPHA+PC9wPgorICAgICAgICAgICAgPHA+PC9wPgorICAgICAgICAgICAgPHA+
PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+PC9wPgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgICA8cD48L3A+CisgICAgPHA+PC9wPgorICAgIDxwPjwvcD4KKyAg
ICA8cD48L3A+Cis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Cis8IVtDREFUQVsKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5z
UGVyU2Vjb25kKHsKKyAgICBkZXNjcmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBT
ZWxlY3RvciBwZXJmb3JtYW5jZSB3aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVu
Y3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoIlAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImRpdiIpOworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiRElWIik7CisgICAg
ICAgIH0KKyAgICB9Cit9KTsKK11dPgorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDIyNDg0MzMuLmVkZTMyZmUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTItMTItMDUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29t
PgorCisgICAgICAgIHF1ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2Fz
ZSBlbGVtZW50cyBpbXBvcnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgcGVyZm9ybWFuY2UgdGVzdHMgZm9yIHRhZyBuYW1l
IHNlbGVjdG9ycyBpbiBYSFRNTCBhbmQgSFRNTCBjb250ZXh0LgorCisgICAgICAgICogQ1NTL1R5
cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy5odG1sOiBBZGRlZC4gVGVzdGluZyBwZXJmb3JtYW5jZSBm
b3IgaGlzdG9yeSB0YWcgbmFtZSBzZWxlY3RvcnMgbGlrZSAidWwgbGkgYiIuCisgICAgICAgICog
Q1NTL1R5cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy54aHRtbDogQWRkZWQuIERpdHRvIGJ1dCBpbiBY
SFRNTC4KKyAgICAgICAgKiBDU1MvVHlwZU5hbWVTZWxlY3RvcnMuaHRtbDogQWRkZWQuIFRlc3Rp
bmcgcGVyZm9ybWFuY2UgZm9yIHNpbXBsZSB0YWcgbmFtZSBzZWxlY3RvcnMuCisgICAgICAgICog
Q1NTL1R5cGVOYW1lU2VsZWN0b3JzLnhodG1sOiBBZGRlZC4gRGl0dG8gYnV0IGluIFhIVE1MLgor
CiAyMDEyLTEyLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IERyb21hZW8gc2hvdWxkIHJlcG9ydCBpbmRpdmlkdWFsIHRlc3QgcmVzdWx0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNzdjYmE4Zi4uOTI0MWQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTEy
LTA1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBx
dWVyeVNlbGVjdG9yQWxsIHVuYWJsZSB0byBmaW5kIFNWRyBjYW1lbENhc2UgZWxlbWVudHMgaW1w
b3J0ZWQgaW50byBIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MzQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHF1ZXJ5U2VsZWN0b3JBbGwgdXNlcyBDU1NQYXJzZXIgdG8gcGFyc2UgdGhlIHNlbGVj
dG9yLiBUaGUgcGFyc2VyIHdpbGwgbm90IHByZXNlcnZlIHRoZSBjYXNlCisgICAgICAgIG9mIHRh
ZyBuYW1lcyB3aGVuIHBhcnNpbmcgaW5zaWRlIGFuIEhUTUwgZG9jdW1lbnQuIFdoZW4gV2ViS2l0
IG1hdGNoZXMgdGhlIERPTSBlbGVtZW50cyBpdAorICAgICAgICB3aWxsIGp1c3QgY29tcGFyZSB0
aGUgY2Fub25pY2FsIHRhZyBuYW1lIHRvIHRoZSBzZWxlY3RvciB0YWcgbmFtZS4gQmVjYXVzZSBz
b21lIFNWRyBlbGVtZW50cworICAgICAgICB1c2UgdXBwZXItY2FzZSBsZXR0ZXJzIGluIHRoZWly
IGNhbm9uaWNhbCBuYW1lLCB0aGlzIG1hdGNoaW5nIHdpbGwgbmV2ZXIgc3VjY2VlZCB3aGVuIHRo
ZQorICAgICAgICBTVkcgZWxlbWVudCBpcyBlbWJlZGRlZCBpbiBhbiBIVE1MIHBhZ2UuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpcyBtYWtpbmcgU1ZHIHRhZyBuYW1lIHNlbGVjdG9ycyBtYXRjaCB1
c2luZyBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gZXZlbgorICAgICAgICB3aGVuIHRoZSBj
YW5vbmljYWwgZm9ybSBvZiB0aGUgU1ZHIGVsZW1lbnQgdGFnIG5hbWUgaXMgdXNpbmcgbWl4ZWQt
Y2FzZSBsZXR0ZXJzLiBPdGhlcgorICAgICAgICBicm93c2VycyBsaWtlIElFIGFuZCBGaXJlZm94
IHVzZSBjYXNlLSBzZW5zaXRpdmUgbWF0Y2hpbmcsIGJ1dCBXZWJLaXQgaGFzIHN1cHBvcnRlZCBj
YXNlLQorICAgICAgICBpbnNlbnNpdGl2ZSBtYXRjaGluZyBmb3Igb3RoZXIgU1ZHIGVsZW1lbnRz
LCBzbyBjaGFuZ2luZyB0aGF0IHdpbGwgbW9zdCBwcm9iYWJseSBicmVhayBzb21lCisgICAgICAg
IGNvbnRlbnQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSB0aGUgc3RyaW5nIGNvbXBhcmlz
b25zIGZhc3QgV2ViS2l0IHVzZXMgQXRvbWljU3RyaW5ncy4gVGhpcyB3YXkgaXQgY291bGQKKyAg
ICAgICAganVzdCBjb21wYXJlIHRoZSBwb2ludGVycy4gSW4gb3JkZXIgdG8gYXZvaWQgbG9va3Vw
cyBkdXJpbmcgbWF0Y2hpbmcgY2FzZS1pbnNlbnNpdGl2ZWx5LCB3ZQorICAgICAgICBuZWVkIHRv
IHN0b3JlIGEgdmVyc2lvbiBvZiB0aGUgdGFnTmFtZSBlaXRoZXIgaW4gbG93ZXItY2FzZSBvciB1
cHBlci1jYXNlLCBzbyB0aGF0IHdlIGNvdWxkCisgICAgICAgIHByZXNlcnZlIHRoZSBwb2ludGVy
IGNvbXBhcmlzb24uIFRoYXQgdXNlZCB0byB3b3JrIGZvciBIVE1MIGJlY2F1c2UgdGhlIENTUyBw
YXJzZXIgYWxyZWFkeQorICAgICAgICBsb3dlcmVkIHRoZSB0YWcgbmFtZXMgb2YgdGhlIHNlbGVj
dG9ycyBhbmQgYWxsIHRoZSBIVE1MIGVsZW1lbnQgdGFnIG5hbWVzIHdlcmUgYWxyZWFkeQorICAg
ICAgICBsb3dlcmVkIGJlY2F1c2Ugb2YgdGhlaXIgY2Fub25pY2FsIGZvcm0uCisKKyAgICAgICAg
UXVhbGlmaWVkTmFtZSBhbHJlYWR5IGhhZCB0aGUgdXBwZXItY2FzZSB2ZXJzaW9uIG9mIHRoZSBs
b2NhbE5hbWUsIHNvIEkndmUgcmV1c2VkIGl0IHRvIG1ha2UKKyAgICAgICAgY2FzZS1pbnNlbnNp
dGl2ZSBjb21wYXJpc29uLgorCisgICAgICAgIEkndmUgYWxzbyB1cGRhdGVkIHRoZSBoaXN0b3J5
IG1hdGNoaW5nIG9wdGltaXphdGlvbnMgdG8gbWF0Y2ggY2FzZS1pbnNlbnNpdGl2ZWx5LCBzbyB0
aGF0CisgICAgICAgIGFsbCB0aGUgcG9zc2libGUgbWF0Y2hpbmcgcnVsZXMgYXJlIGNvbnNpZGVy
ZWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vu
c2l0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LXNlbnNpdGl2ZS54aHRtbAorICAgICAgICAgICAgICAgc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRp
dmUtc3ZnLWluLWh0bWwuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAg
ICAgICAgKiBjc3MvUnVsZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRS
dWxlKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbGxlY3RFbGVtZW50SWRlbnRpZmllckhhc2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0RGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmZhc3RDaGVja1JpZ2h0bW9zdFNlbGVjdG9yKTogVXNlZCBB
TFdBWVNfSU5MSU5FIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb21waWxlcnMgd2lsbCBzdGlsbCBp
bmxpbmUgdGhpcyBmdW5jdGlvbi4KKyAgICAgICAgVGhlIGV4dHJhICJpZiIgc3RhdGVtZW50IGlu
IHRoZSBTZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMgd2lsbCBtYWtlIGNsYW5nIGF2b2lkIGRv
aW5nIHRoZSBpbmxpbmUgYW5kIHRoYXQgaHVydHMgcGVyZm9ybWFuY2UuCisgICAgICAgICogY3Nz
L1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjp0
YWdNYXRjaGVzKTogQWRkZWQgdGhlIGNvbXBhcmlzb24gY2hlY2sgYmFzZWQgb24gdGhlIGRvY3Vt
ZW50IHR5cGUuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMpOgorICAgICAgICAqIGRv
bS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZTo6bG9jYWxOYW1lVXBwZXIpOiBNb3ZlZCBmcm9t
IGNwcCBmaWxlIHRvIGgsIHNvIHRoYXQgY2FsbGVycyBjYW4gaW5saW5lIHRoaXMgY2FsbC4KKwog
MjAxMi0xMi0wNSAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMTI2NjgzKTogVGFibGUgY2VsbCBhcmUgZ2V0dGluZyBib3JkZXJzIHdoZW4g
dGhlIHN0eWxlIGRvZXNuJ3QgbWVudGlvbiBhbnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55Lmlu
CmluZGV4IDAzZWI4ZTkuLmIzMGQwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpA
QCAtMTE3MSwxMiArMTE3MSw3IEBAIHNpbXBsZV9zZWxlY3Rvcl9saXN0OgogICA7CiAKIGVsZW1l
bnRfbmFtZToKLSAgICBJREVOVCB7Ci0gICAgICAgIENTU1BhcnNlclN0cmluZyYgc3RyID0gJDE7
Ci0gICAgICAgIGlmIChwYXJzZXItPm1fY29udGV4dC5pc0hUTUxEb2N1bWVudCkKLSAgICAgICAg
ICAgIHN0ci5sb3dlcigpOwotICAgICAgICAkJCA9IHN0cjsKLSAgICB9CisgICAgSURFTlQKICAg
ICB8ICcqJyB7CiAgICAgICAgIHN0YXRpYyBMQ2hhciBzdGFyID0gJyonOwogICAgICAgICAkJC5p
bml0KCZzdGFyLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCA5YTc4YzBmLi42ZWMxYzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBSdWxlU2V0
OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRkUnVs
ZUZsYWdzIGFkZFIKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2FsTmFtZSgpOwor
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2Fs
TmFtZVVwcGVyKCk7CiAgICAgaWYgKGxvY2FsTmFtZSAhPSBzdGFyQXRvbSkgewogICAgICAgICBh
ZGRUb1J1bGVTZXQobG9jYWxOYW1lLmltcGwoKSwgbV90YWdSdWxlcywgcnVsZURhdGEpOwogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGQ0
ODQxY2EuLjNhZTkzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBA
IC04MSw3ICs4MSw3IEBAIGVudW0geyBUYWdOYW1lU2FsdCA9IDEzLCBJZEF0dHJpYnV0ZVNhbHQg
PSAxNywgQ2xhc3NBdHRyaWJ1dGVTYWx0ID0gMTkgfTsKIAogc3RhdGljIGlubGluZSB2b2lkIGNv
bGxlY3RFbGVtZW50SWRlbnRpZmllckhhc2hlcyhjb25zdCBFbGVtZW50KiBlbGVtZW50LCBWZWN0
b3I8dW5zaWduZWQsIDQ+JiBpZGVudGlmaWVySGFzaGVzKQogewotICAgIGlkZW50aWZpZXJIYXNo
ZXMuYXBwZW5kKGVsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkgKiBU
YWdOYW1lU2FsdCk7CisgICAgaWRlbnRpZmllckhhc2hlcy5hcHBlbmQoZWxlbWVudC0+dGFnUU5h
bWUoKS5sb2NhbE5hbWVVcHBlcigpLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkgKiBUYWdOYW1lU2Fs
dCk7CiAgICAgaWYgKGVsZW1lbnQtPmhhc0lEKCkpCiAgICAgICAgIGlkZW50aWZpZXJIYXNoZXMu
YXBwZW5kKGVsZW1lbnQtPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkuaW1wbCgpLT5leGlzdGluZ0hh
c2goKSAqIElkQXR0cmlidXRlU2FsdCk7CiAgICAgY29uc3QgU3R5bGVkRWxlbWVudCogc3R5bGVk
RWxlbWVudCA9IGVsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpID8gc3RhdGljX2Nhc3Q8Y29uc3Qg
U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpIDogMDsKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgY29sbGVjdERlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXMoY29u
c3QgQ1NTU2VsZWN0b3IqCiAgICAgfQogICAgIGlmIChoYXNoID09IGVuZCkKICAgICAgICAgcmV0
dXJuOwotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygp
LmxvY2FsTmFtZSgpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0
b3ItPnRhZygpLmxvY2FsTmFtZVVwcGVyKCk7CiAgICAgaWYgKGxvY2FsTmFtZSAhPSBzdGFyQXRv
bSkKICAgICAgICAgKCpoYXNoKyspID0gbG9jYWxOYW1lLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkg
KiBUYWdOYW1lU2FsdDsKIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBpbmxpbmUgYm9vbCBjaGVja1Rh
Z1ZhbHVlKGNvbnN0IEVsZW1lbnQqLCBBdG9taWNTdHJpbmdJbXBsKiwgY29uc3QgUXVhbGlmaWVk
TmFtZQogCiB9CiAKLWlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrUmlnaHRt
b3N0U2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBl
bGVtZW50LCBWaXNpdGVkTWF0Y2hUeXBlIHZpc2l0ZWRNYXRjaFR5cGUpIGNvbnN0CitBTFdBWVNf
SU5MSU5FIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2tSaWdodG1vc3RTZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIFZpc2l0
ZWRNYXRjaFR5cGUgdmlzaXRlZE1hdGNoVHlwZSkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNGYXN0
Q2hlY2thYmxlU2VsZWN0b3Ioc2VsZWN0b3IpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hl
Y2tlci5oCmluZGV4IDliZGI2NjkuLmU5NmU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmgKQEAgLTE4NiwxMyArMTg2LDI2IEBAIGlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uCiAg
ICAgcmV0dXJuIGVsZW1lbnQtPmZvY3VzZWQoKSAmJiBpc0ZyYW1lRm9jdXNlZChlbGVtZW50KTsK
IH0KIAotaW5saW5lIGJvb2wgU2VsZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKGNvbnN0IEVsZW1l
bnQqIGVsZW1lbnQsIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK0FMV0FZU19JTkxJTkUg
Ym9vbCBTZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogewogICAgIGlmICghc2VsZWN0b3ItPmhhc1Rh
ZygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
TmFtZSA9IHNlbGVjdG9yLT50YWcoKS5sb2NhbE5hbWUoKTsKLSAgICBpZiAobG9jYWxOYW1lICE9
IHN0YXJBdG9tICYmIGxvY2FsTmFtZSAhPSBlbGVtZW50LT5sb2NhbE5hbWUoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIHNlbGVjdG9yVGFnID0gc2Vs
ZWN0b3ItPnRhZygpOworICAgIGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWUoKSAhPSBzdGFyQXRv
bSkgeworICAgICAgICBpZiAoZWxlbWVudC0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkg
eworICAgICAgICAgICAgLy8gQWxsIGVsZW1lbnRzIGluc2lkZSBIVE1MIGRvY3VtZW50cyB3aWxs
IHVzZSBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nLgorICAgICAgICAgICAgLy8gVGhhdCBhcHBs
aWVzIGV2ZW4gdG8gU1ZHIGFuZCBNYXRoTUwgZWxlbWVudHMgZW1iZWRkZWQgaW4gSFRNTC4gT3Ro
ZXIgYnJvd3NlcnMKKyAgICAgICAgICAgIC8vIG1hdGNoIFNWRyB1c2luZyBjYXNlLXNlbnNpdGl2
ZSBjb21wYXJpc29uLCBidXQgV2ViS2l0IGhhcyBhbHdheXMgCisgICAgICAgICAgICAvLyBzdXBw
b3J0ZWQgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBhbmQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0
aGF0IGJlaGF2aW9yCisgICAgICAgICAgICAvLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg
cmVhc29ucy4KKyAgICAgICAgICAgIGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWVVcHBlcigpICE9
IGVsZW1lbnQtPnRhZ1FOYW1lKCkubG9jYWxOYW1lVXBwZXIoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBYTUwgYmFzZWQg
ZG9jdW1lbnRzIChYSFRNTCBhbmQgU1ZHKSBuZWVkIHRvIHVzZSBjYXNlIHNlbnNpdGl2ZSBtYXRj
aGluZy4KKyAgICAgICAgICAgIGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWUoKSAhPSBlbGVtZW50
LT50YWdRTmFtZSgpLmxvY2FsTmFtZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgfQorICAgIH0KICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSA9
IHNlbGVjdG9yLT50YWcoKS5uYW1lc3BhY2VVUkkoKTsKICAgICByZXR1cm4gbmFtZXNwYWNlVVJJ
ID09IHN0YXJBdG9tIHx8IG5hbWVzcGFjZVVSSSA9PSBlbGVtZW50LT5uYW1lc3BhY2VVUkkoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBmYjkwM2I2Li44MTJlYjNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC02ODksNyArNjg5LDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyhSdWxlU2V0KiBydWxlcywg
aW50JiBmaXJzdFJ1bGVJbmRleCwgaW4KICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KHJ1bGVzLT5saW5rUHNldWRvQ2xhc3NSdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1
bGVJbmRleCwgb3B0aW9ucyk7CiAgICAgaWYgKG1fY2hlY2tlci5tYXRjaGVzRm9jdXNQc2V1ZG9D
bGFzcyhtX2VsZW1lbnQpKQogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVs
ZXMtPmZvY3VzUHNldWRvQ2xhc3NSdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRl
eCwgb3B0aW9ucyk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT50YWdS
dWxlcyhtX2VsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSksIGZpcnN0UnVsZUluZGV4LCBsYXN0
UnVsZUluZGV4LCBvcHRpb25zKTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVs
ZXMtPnRhZ1J1bGVzKG1fZWxlbWVudC0+dGFnUU5hbWUoKS5sb2NhbE5hbWVVcHBlcigpLmltcGwo
KSksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsKICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPnVuaXZlcnNhbFJ1bGVzKCksIGZpcnN0UnVsZUlu
ZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmll
ZE5hbWUuY3BwCmluZGV4IGRhZjExY2UuLmI0NWQ4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlm
aWVkTmFtZS5jcHAKQEAgLTE0MSwxMyArMTQxLDYgQEAgY29uc3QgUXVhbGlmaWVkTmFtZSYgbnVs
bFFOYW1lKCkKICAgICByZXR1cm4gbnVsbE5hbWU7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYg
UXVhbGlmaWVkTmFtZTo6bG9jYWxOYW1lVXBwZXIoKSBjb25zdAotewotICAgIGlmICghbV9pbXBs
LT5tX2xvY2FsTmFtZVVwcGVyKQotICAgICAgICBtX2ltcGwtPm1fbG9jYWxOYW1lVXBwZXIgPSBt
X2ltcGwtPm1fbG9jYWxOYW1lLnVwcGVyKCk7Ci0gICAgcmV0dXJuIG1faW1wbC0+bV9sb2NhbE5h
bWVVcHBlcjsKLX0KLQogdm9pZCBRdWFsaWZpZWROYW1lOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNz
SW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9N
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5oCmluZGV4IGNiODQ2MTEuLmQ2MzFjMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaApAQCAtODksNyArODksMTMgQEAgcHVibGljOgog
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3QgeyByZXR1cm4gbV9p
bXBsLT5tX25hbWVzcGFjZTsgfQogCiAgICAgLy8gVXBwZXJjYXNlZCBsb2NhbE5hbWUsIGNhY2hl
ZCBmb3IgZWZmaWNpZW5jeQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lVXBwZXIo
KSBjb25zdDsKKyAgICBpbmxpbmUgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWVVcHBlcigp
IGNvbnN0CisgICAgeworICAgICAgICBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZVVwcGVyID0gbV9p
bXBsLT5tX2xvY2FsTmFtZVVwcGVyOworICAgICAgICBpZiAoVU5MSUtFTFkobG9jYWxOYW1lVXBw
ZXIuaXNOdWxsKCkpKQorICAgICAgICAgICAgbG9jYWxOYW1lVXBwZXIgPSBtX2ltcGwtPm1fbG9j
YWxOYW1lLnVwcGVyKCk7CisgICAgICAgIHJldHVybiBsb2NhbE5hbWVVcHBlcjsKKyAgICB9CiAK
ICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKIAo=
</data>
<flag name="commit-queue"
          id="194073"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177850</attachid>
            <date>2012-12-05 15:42:36 -0800</date>
            <delta_ts>2013-01-17 17:13:08 -0800</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug83438_3.patch</filename>
            <type>text/plain</type>
            <size>38950</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYTZjMGYyLi5lMjM2Mjg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMTIt
MDUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIHF1
ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2FzZSBlbGVtZW50cyBpbXBv
cnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgbW9yZSB0ZXN0cyByZWxhdGVkIHRvIHRoZSBjYXNlIHNlbnNpdGl2ZW5lc3Mg
b2YgdGhlIHRhZyBuYW1lIHNlbGVjdG9ycy4KKyAgICAgICAgVGhlcmUgYXJlIGEgY291cGxlIG9m
IGNhc2VzIGFkZGVkIGluIHRoaXMgcGF0Y2g6CisgICAgICAgIDEuIFhIVE1MIGFuZCBTVkcgZG9j
dW1lbnRzIHNob3VsZCB1c2UgY2FzZS1zZW5zaXRpdmUgbWF0Y2hpbmcuCisgICAgICAgIDIuIFNW
RyBlbGVtZW50cyBpbnNpZGUgSFRNTCBzaG91bGQgdXNlIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hp
bmcuIFRoYXQncyBuZWVkZWQgdG8gcHJlc2VydmUKKyAgICAgICAgYmFja3dhcmRzIGNvbXBhdGli
aWxpdHkuCisgICAgICAgIDMuIEhUTUwgZG9jdW1lbnRzIHNob3VsZCB1c2UgY2FzZS1pbnNlbnNp
dGl2ZSBtYXRjaGluZy4KKworICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vU2Vs
ZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLnhodG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9jc3MtZG9tLXJlYWQtMi1leHBlY3RlZC50eHQ6
IFVwZGF0ZWQgdGhlIGV4cGVjdGVkIHJlc3VsdCBiZWNhdXNlIG5vdyB0aGUgcGFyc2VyIHdpbGwg
cHJlc2VydmUgdGhlIGNhc2Ugb2YgdGhlIHRhZ25hbWUuCisgICAgICAgICogZmFzdC9kb20vY3Nz
LWRvbS1yZWFkLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGJlY2F1
c2Ugbm93IHRoZSBwYXJzZXIgd2lsbCBwcmVzZXJ2ZSB0aGUgY2FzZSBvZiB0aGUgdGFnbmFtZS4K
KyAgICAgICAgKiBzdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1p
bi1odG1sLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTA1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OOiAyIHRlc3RzIHN0YXJ0
ZWQgdG8gZmFpbCB3aXRoIG5ld2VyIFF0NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxYWQxMjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1pbnNl
bnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ1NQQU4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1NQQU4gPiBp
bWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOID4gaW1nJykg
aXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdTUEFOIGltZycpIGlzIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2ltZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ1NQQU4gaW1nJykgaXMgdHJ1ZQorUEFTUyBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlzIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIx
Jykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlzIHRydWUKK1BBU1Mg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIHRleHRhcmVhICsgU1BBTicpIGlzIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwgbGkgdGV4dGFyZWEg
KyBTUEFOJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkg
c3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwg
bGkgc3BhbicpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxp
IHNwQW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVs
IGxpIHNwQW4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ0RJViB1bCBs
aSBzcGFuJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ0RJViB1
bCBsaSBzcGFuJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYgVUwg
bGkgc3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYg
VUwgbGkgc3BhbicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdzcGFuMScp
IGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdzcGFuI1VQUEVSMScpIGlzIG51
bGwKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndW5rbm93blRhZycpIGlzIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcigndW5rbm93blRhZycpIGlz
IHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVua25vd25UYWcnKSBpcyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bmtu
b3duVGFnJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bCArIHVua25v
d25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ3VsICsgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignRElWIHVua25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRh
ZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRN
YXRjaGVzU2VsZWN0b3IoJ0RJViB1bmtub3duVGFnJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCdVTCArIHVua25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRh
ZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ1VMICsgdW5rbm93blRhZycpIGlzIHRydWUKK1BB
U1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndW5rbm93bnRhZycpIGlzIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1
bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcigndW5rbm93bnRhZycpIGlzIHRydWUK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignVW5rbm93bnRhZycpIGlzIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignVW5rbm93bnRhZycpIGlzIHRy
dWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVua25vd250YWcnKSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bmtub3du
dGFnJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd1bCcpIGlzIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1bDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dWwxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bCcpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcignVUwnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWwxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VsMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcign
VUwnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93bnRhZzEnKSBp
cyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcignb2wnKSBpcyBudWxsCitQQVNTIGNv
bnRlbnQucXVlcnlTZWxlY3RvcignT0wnKSBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZmYWVjMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLmh0bWwK
QEAgLTAsMCArMSw2MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBIVE1MIGRvY3VtZW50cyBDU1Mg
c2VsZWN0b3JzIHVzZSBjYXNlLWluc2Vuc2l0aXZlIHRhZyBuYW1lIG1hdGNoaW5nLiAtLT4KKyAg
ICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSI+
CisgICAgICAgICAgICA8dWwgaWQ9InVsMSI+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAg
ICAgICAgICAgICAgICA8dGV4dGFyZWEgaWQ9InRleHRhcmVhMSI+PC90ZXh0YXJlYT4KKyAgICAg
ICAgICAgICAgICAgICAgPFNQQU4gaWQ9InVwcGVyMSI+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8aW1nIGlkPSJpbWcxIiAvPgorICAgICAgICAgICAgICAgICAgICA8L1NQQU4+CisgICAgICAg
ICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8dW5rbm93blRh
ZyBpZD0idW5rbm93blRhZzEiPjwvdW5rbm93blRhZz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9k
aXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGVudCIpOworICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nU2VsZWN0
b3Ioc2VsZWN0b3IsIGVsZW1lbnRJZCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIsICJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnIiArIGVsZW1lbnRJZCArICInKSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7CisgICAgICAgICAgICBz
aG91bGRCZU51bGwoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIik7
CisgICAgICAgIH0KKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQQU4iLCAidXBw
ZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiU1BBTiA+IGltZyIsICJpbWcx
Iik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiU1BBTiBpbWciLCAiaW1nMSIpOwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bCBsaSBTUEFOIiwgInVwcGVyMSIp
OworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bCBsaSB0ZXh0YXJlYSArIFNQ
QU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxp
IHNwYW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVs
IGxpIHNwQW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiRElW
IHVsIGxpIHNwYW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigi
ZGl2IFVMIGxpIHNwYW4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxl
Y3Rvcigic3BhbjEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJzcGFuI1VQ
UEVSMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bmtub3du
VGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidWwg
KyB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxl
Y3RvcigiRElWIHVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRj
aGluZ1NlbGVjdG9yKCJVTCArIHVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAg
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ1bmtub3dudGFnIiwgInVua25vd25UYWcxIik7CisgICAg
ICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVW5rbm93bnRhZyIsICJ1bmtub3duVGFnMSIpOwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bmtub3dudGFnIiwgInVua25vd25U
YWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidWwiLCAidWwxIik7CisgICAg
ICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVUwiLCAidWwxIik7CisgICAgICAgIGNoZWNrTm9u
TWF0Y2hpbmdTZWxlY3RvcigidW5rbm93bnRhZzEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGlu
Z1NlbGVjdG9yKCJvbCIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoIk9MIik7
CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Utc2Vuc2l0aXZlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZkMjg1
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3Rh
Zy1jYXNlLXNlbnNpdGl2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNCBAQAorUEFTUyBjb250
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53
ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1bCBsaSBTUEFOJykgaXMgdHJ1ZQorUEFTUyBjb250
ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSB0ZXh0YXJlYSArIFNQQU4nKSBpcyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVsIGxpIHRleHRhcmVhICsgU1BB
TicpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgc3Bhbicp
IGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgc3BBbicpIGlz
IG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIG51
bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgVUwgbGkgc3BhbicpIGlzIG51bGwK
K1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bmtub3duVGFnJykgaXMgdHJ1
ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bmtub3duVGFnJykgaXMgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdW5rbm93blRh
ZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd1bCArIHVua25vd25UYWcn
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3Vs
ICsgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdESVYg
dW5rbm93blRhZycpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdVTCArIHVu
a25vd25UYWcnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93blRh
ZzEnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93bnRhZycpIGlz
IG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdVbmtub3dudGFnJykgaXMgbnVsbAor
UEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bmtub3dudGFnJykgaXMgbnVsbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS54
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2
ZS54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjJlY2RmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNhc2Ut
c2Vuc2l0aXZlLnhodG1sCkBAIC0wLDAgKzEsNTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5j
b2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCAKKyAgICAgUFVCTElDICItLy9XM0MvL0RU
RCBYSFRNTCAxLjEgU3RyaWN0Ly9FTiIKKyAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
MS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDwhLS0gVGVzdGluZyB0aGF0IGluIFhIVE1MIGRvY3VtZW50cyBDU1Mgc2Vs
ZWN0b3JzIHVzZSBjYXNlLXNlbnNpdGl2ZSB0YWcgbmFtZSBtYXRjaGluZy4gLS0+CisgICAgPGRp
diBpZD0iY29udGVudCI+CisgICAgICAgIDxkaXYgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgorICAg
ICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAg
PHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTEiPjwvdGV4dGFyZWE+CisgICAgICAgICAgICAgICAgICAg
IDxTUEFOIGlkPSJ1cHBlcjEiPjwvU1BBTj4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAg
ICAgICAgPC91bD4KKyAgICAgICAgICAgIDx1bmtub3duVGFnIGlkPSJ1bmtub3duVGFnMSI+PC91
bmtub3duVGFnPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAg
IDwhW0NEQVRBWyAKKyAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpOworICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nU2VsZWN0b3Ioc2Vs
ZWN0b3IsIGVsZW1lbnRJZCkgeworICAgICAgICAgICAgc2hvdWxkQmUoImNvbnRlbnQucXVlcnlT
ZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIiwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCci
ICsgZWxlbWVudElkICsgIicpIik7CisgICAgICAgICAgICBzaG91bGRCZVRydWUoImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCciICsgZWxlbWVudElkICsgIicpLndlYmtpdE1hdGNoZXNTZWxlY3Rv
cignIiArIHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBj
aGVja05vbk1hdGNoaW5nU2VsZWN0b3Ioc2VsZWN0b3IpIHsKKyAgICAgICAgICAgIHNob3VsZEJl
TnVsbCgiY29udGVudC5xdWVyeVNlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIFNQQU4iLCAi
dXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIHRleHRh
cmVhICsgU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9y
KCJkaXYgdWwgbGkgc3BhbiIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoImRp
diB1bCBsaSBzcEFuIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiRElWIHVs
IGxpIHNwYW4iKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJkaXYgVUwgbGkg
c3BhbiIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImRpdiB1bmtub3du
VGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidWwg
KyB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdT
ZWxlY3RvcigiRElWIHVua25vd25UYWciKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVj
dG9yKCJVTCArIHVua25vd25UYWciKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9y
KCJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInVua25v
d250YWciKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJVbmtub3dudGFnIik7
CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVua25vd250YWciKTsKKyAg
ICBdXT4gCisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFkLTItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFkLTItZXhwZWN0ZWQudHh0CmluZGV4IDk3YTk1
ZGYuLjE2MjNhNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1kb20tcmVh
ZC0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQt
Mi1leHBlY3RlZC50eHQKQEAgLTI5LDcgKzI5LDcgQEAgSSB7ZGlzcGxheTogYmxvY2s7fQogLnR3
byB7IGRpc3BsYXk6IGlubGluZTsgfSAKIC50aHJlZSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsgbGlz
dC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi1sZWZ0OiAzZW07IH0gCiAuZm91ciB7IGRpc3Bs
YXk6IG5vbmU7IGNvbG9yOiByZWQ7IH0gCi1pIHsgZGlzcGxheTogYmxvY2s7IH0gCitJIHsgZGlz
cGxheTogYmxvY2s7IH0gCiAKIEBpbXBvcnQgdXJsKCJmYW5jeWZvbnRzLmNzcyIpIHNjcmVlbjsK
IEBtZWRpYSBwcmludCB7IApAQCAtNDUsNiArNDUsNiBAQCBpIHsgZGlzcGxheTogYmxvY2s7IH0K
IC50d28geyBkaXNwbGF5OiBpbmxpbmU7IH0KIC50aHJlZSB7IGRpc3BsYXk6IGxpc3QtaXRlbTsg
bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IG1hcmdpbi1sZWZ0OiAzZW07IH0KIC5mb3VyIHsgZGlz
cGxheTogbm9uZTsgY29sb3I6IHJlZDsgfQotaSB7IGRpc3BsYXk6IGJsb2NrOyB9CitJIHsgZGlz
cGxheTogYmxvY2s7IH0KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3Mt
ZG9tLXJlYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLWRvbS1yZWFk
LWV4cGVjdGVkLnR4dAppbmRleCAxNjE4NGY5Li45ZjNmZGFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jc3MtZG9tLXJlYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2Nzcy1kb20tcmVhZC1leHBlY3RlZC50eHQKQEAgLTksNSArOSw1IEBAIFNlcmlh
bGl6ZWQgc3R5bGUsIHVzaW5nIENTUyBET006CiAudHdvIHsgZGlzcGxheTogaW5saW5lOyB9CiAu
dGhyZWUgeyBkaXNwbGF5OiBsaXN0LWl0ZW07IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlOyBtYXJn
aW4tbGVmdDogM2VtOyB9CiAuZm91ciB7IGRpc3BsYXk6IG5vbmU7IGNvbG9yOiByZWQ7IH0KLWkg
eyBkaXNwbGF5OiBibG9jazsgfQorSSB7IGRpc3BsYXk6IGJsb2NrOyB9CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1odG1sLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0aXZlLXN2Zy1pbi1o
dG1sLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzY3
OTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5z
aXRpdmUtc3ZnLWluLWh0bWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDQgQEAKK1BBU1MgY29u
dGVudC5xdWVyeVNlbGVjdG9yKCdTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vw
cGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ1NQQU4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
ZGl2IHVsIGxpIFNQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rv
cignZGl2IHVsIGxpIFNQQU4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
dW5rbm93blRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNT
ZWxlY3RvcigndW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCd1bmtub3dudGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCd1bmtub3dudGFnJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ2cnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JvdXAxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2dyb3VwMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZycpIGlz
IHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdHJykgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2dyb3VwMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncm91cDEn
KS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ0cnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlT
ZWxlY3RvcigndGV4dFBhdGgnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgx
JykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScpLndlYmtpdE1hdGNo
ZXNTZWxlY3RvcigndGV4dFBhdGgnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cignc3ZnIHRleHRQYXRoJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScp
CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJ3N2ZyB0ZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVj
dG9yKCd0ZXh0cGF0aCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgxJykud2Via2l0TWF0Y2hlc1Nl
bGVjdG9yKCd0ZXh0cGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdU
ZXh0UGF0aCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0UGF0aDEnKQorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9y
KCdUZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWdu
T2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCdmb3JlaWduT2JqZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2Vs
ZWN0b3IoJ3N2ZyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zv
cmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmpl
Y3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdzdmcgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUK
K1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdmb3JlaWdub2JqZWN0JykgaXMgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2ZvcmVpZ25PYmplY3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdmb3JlaWdub2Jq
ZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ0ZvcmVpZ25PYmplY3Qn
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ0ZvcmVpZ25PYmplY3QnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
dGV4dFBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zv
cmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVpZ25PYmpl
Y3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBp
cyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcignc3ZnIHRleHRQYXRoICsgZm9yZWln
bk9iamVjdCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JlaWduT2JqZWN0MScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb3JlaWduT2JqZWN0MScpLndlYmtpdE1hdGNo
ZXNTZWxlY3Rvcignc3ZnIHRleHRQYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1Mg
Y29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCArIGZvcmVpZ25vYmplY3QnKSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3RleHRQ
YXRoICsgZm9yZWlnbm9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCd0ZXh0UGF0aCArIEZvcmVpZ25PYmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Zm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9i
amVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3RleHRQYXRoICsgRm9yZWlnbk9iamVjdCcp
IGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0cGF0aCArIGZvcmVpZ25P
YmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVz
U2VsZWN0b3IoJ3RleHRwYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVu
dC5xdWVyeVNlbGVjdG9yKCdUZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBpcyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ1RleHRQYXRoICsg
Zm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1j
YXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWct
Y2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41M2FlMzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2Rv
bS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbApAQCAtMCwwICsxLDY1IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBTVkcgdGFncyBpbnNpZGUgSFRNTCBkb2N1
bWVudHMgbWF0Y2ggdXNpbmcgY2FzZS1pbnNlbnNpdGl2ZSBtb2RlLiAtLT4KKyAgICA8ZGl2IGlk
PSJjb250ZW50Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgICAgICAg
ICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8U1BB
TiBpZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlk
PSJncm91cDEiPjwvZz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0UGF0aCBpZD0idGV4
dFBhdGgxIj48L3RleHRQYXRoPgorICAgICAgICAgICAgICAgICAgICAgICAgPGZvcmVpZ25PYmpl
Y3QgaWQ9ImZvcmVpZ25PYmplY3QxIj48L2ZvcmVpZ25PYmplY3Q+CisgICAgICAgICAgICAgICAg
ICAgIDwvc3ZnPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAg
ICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcxIj48L3Vua25vd25UYWc+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIsICJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKSIpOworICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCAr
ICInKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIpOworICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9y
KSB7CisgICAgICAgICAgICBzaG91bGRCZU51bGwoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiAr
IHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBDaGVja2luZyB0aGF0
IHRhZyBuYW1lIHNlbGVjdG9ycyBzdGlsbCB3b3JrIG9uIEhUTUwgZWxlbWVudHMgd2hlbiBTVkcg
aXMgYXJvdW5kLgorICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQQU4iLCAidXBwZXIx
Iik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIFNQQU4iLCAidXBw
ZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZyIsICJ1bmtu
b3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInVua25vd250YWciLCAi
dW5rbm93blRhZzEiKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImciLCAiZ3Jv
dXAxIik7CisgICAgICAgIC8vIFdlYktpdCBzdXBwb3J0ZWQgY2FzZS1pbnNlbnNpdGl2ZSBtYXRj
aGluZyBmb3IgU1ZHIGVsZW1lbnRzIGluIEhUTUwsIAorICAgICAgICAvLyBzbyBoZXJlIHdlIHRl
c3QgdGhhdCB0aGUgb2xkIGJlaGF2aW9yIGlzIHByZXNlcnZlZCBmb3IgYmFja3dhcmRzIGNvbXBh
dGliaWxpdHkgcmVhc29ucy4KKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJHIiwgImdy
b3VwMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGgiLCAidGV4
dFBhdGgxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigic3ZnIHRleHRQYXRoIiwg
InRleHRQYXRoMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInRleHRwYXRoIiwg
InRleHRQYXRoMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlRleHRQYXRoIiwg
InRleHRQYXRoMSIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiZm9yZWlnbk9i
amVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
InN2ZyBmb3JlaWduT2JqZWN0IiwgImZvcmVpZ25PYmplY3QxIik7CisgICAgICAgIGNoZWNrTWF0
Y2hpbmdTZWxlY3RvcigiZm9yZWlnbm9iamVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAg
ICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIkZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEi
KTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoInRleHRQYXRoICsgZm9yZWlnbk9i
amVjdCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
InN2ZyB0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAg
ICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCArIGZvcmVpZ25vYmplY3QiLCAiZm9y
ZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCAr
IEZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGlu
Z1NlbGVjdG9yKCJ0ZXh0cGF0aCArIGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsK
KyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJUZXh0UGF0aCArIGZvcmVpZ25PYmplY3Qi
LCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lSGlzdG9y
eVNlbGVjdG9ycy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVIaXN0b3J5U2Vs
ZWN0b3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc3OWJlNQot
LS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lSGlzdG9yeVNl
bGVjdG9ycy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxkaXYgaWQ9InRlc3QtdGFyZ2V0IiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgICAg
PGRpdj4KKyAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDx1
bD4KKyAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgIDxiPgorICAgICAg
ICAgICAgICAgICAgICA8L2I+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDwv
dWw+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAg
ICAgICAgICA8Yj4KKyAgICAgICAgICAgICAgICAgICAgPC9iPgorICAgICAgICAgICAgICAgIDwv
bGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdj48L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+
PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8cD48L3A+CisgICAgPHA+PC9w
PgorICAgIDxwPjwvcD4KKyAgICA8cD48L3A+Cis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitQZXJmVGVzdFJ1bm5lci5tZWFz
dXJlUnVuc1BlclNlY29uZCh7CisgICAgZGVzY3JpcHRpb246ICJUaGlzIGJlbmNobWFyayB0ZXN0
cyBDU1MgU2VsZWN0b3IgcGVyZm9ybWFuY2Ugd2l0aCBxdWVyeVNlbGVjdG9yKCkuIiwKKyAgICBy
dW46IGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKSB7
CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYgdWwgbGkgYiIpOworICAg
ICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IFVMIGxpIGIiKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIkRpdiB1bCBMaSBiIik7CisgICAgICAgICAgICBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYgdWwgbGkgQiIpOworICAgICAgICB9CisgICAgfQor
fSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNl
VGVzdHMvQ1NTL1R5cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy54aHRtbCBiL1BlcmZvcm1hbmNlVGVz
dHMvQ1NTL1R5cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yOWM2ZmRmCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9DU1MvVHlwZU5hbWVIaXN0b3J5U2VsZWN0b3JzLnhodG1sCkBAIC0wLDAgKzEsNTMgQEAK
Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgaHRtbCAK
KyAgICAgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEgU3RyaWN0Ly9FTiIKKyAgICAgImh0
dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0i
ZW4iPgorPGJvZHk+Cis8ZGl2IGlkPSJ0ZXN0LXRhcmdldCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUi
PgorICAgIDxkaXY+CisgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAg
ICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8Yj4K
KyAgICAgICAgICAgICAgICAgICAgPC9iPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAg
ICAgICA8L3VsPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT4KKyAgICAg
ICAgICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAgICAgIDwvYj4KKyAgICAgICAgICAg
ICAgICA8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxk
aXY+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAg
ICAgIDxwPjwvcD4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPHA+PC9wPgorICAg
IDxwPjwvcD4KKyAgICA8cD48L3A+CisgICAgPHA+PC9wPgorPC9kaXY+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorPCFbQ0RBVEFbCitQ
ZXJmVGVzdFJ1bm5lci5tZWFzdXJlUnVuc1BlclNlY29uZCh7CisgICAgZGVzY3JpcHRpb246ICJU
aGlzIGJlbmNobWFyayB0ZXN0cyBDU1MgU2VsZWN0b3IgcGVyZm9ybWFuY2Ugd2l0aCBxdWVyeVNl
bGVjdG9yKCkuIiwKKyAgICBydW46IGZ1bmN0aW9uKCkgeworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDsgaSsrKSB7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJk
aXYgdWwgbGkgYiIpOworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IFVM
IGxpIGIiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIkRpdiB1bCBMaSBi
Iik7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYgdWwgbGkgQiIpOwor
ICAgICAgICB9CisgICAgfQorfSk7CitdXT4KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxlY3RvcnMuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0b3JzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg3OGRiOQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0idGVzdC10YXJnZXQiPgor
ICAgIDxkaXY+CisgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAg
ICA8cD48L3A+CisgICAgICAgICAgICA8cD48L3A+CisgICAgICAgICAgICA8cD48L3A+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8ZGl2PjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXY+Cisg
ICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD48L3A+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxwPjwvcD4KKyAgICA8cD48L3A+CisgICAgPHA+PC9wPgorICAgIDxwPjwvcD4K
KzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHsKKyAgICBkZXNj
cmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBTZWxlY3RvciBwZXJmb3JtYW5jZSB3
aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVuY3Rpb24oKSB7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoInAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIlAiKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpOworICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiRElWIik7CisgICAgICAgIH0KKyAgICB9Cit9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9D
U1MvVHlwZU5hbWVTZWxlY3RvcnMueGh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFt
ZVNlbGVjdG9ycy54aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODI3
NGE2Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxl
Y3RvcnMueGh0bWwKQEAgLTAsMCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBodG1sIAorICAgICBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMSBTdHJpY3QvL0VOIgorICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RU
RC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3Qt
dGFyZ2V0Ij4KKyAgICA8ZGl2PgorICAgICAgICA8ZGl2PjwvZGl2PgorICAgICAgICA8ZGl2Pgor
ICAgICAgICAgICAgPHA+PC9wPgorICAgICAgICAgICAgPHA+PC9wPgorICAgICAgICAgICAgPHA+
PC9wPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAg
ICA8ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+PC9wPgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKyAgICA8cD48L3A+CisgICAgPHA+PC9wPgorICAgIDxwPjwvcD4KKyAg
ICA8cD48L3A+Cis8L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvcnVubmVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Cis8IVtDREFUQVsKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5z
UGVyU2Vjb25kKHsKKyAgICBkZXNjcmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBT
ZWxlY3RvciBwZXJmb3JtYW5jZSB3aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVu
Y3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyBpKyspIHsKKyAgICAg
ICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoIlAiKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImRpdiIpOworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiRElWIik7CisgICAg
ICAgIH0KKyAgICB9Cit9KTsKK11dPgorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDIyNDg0MzMuLmVkZTMyZmUgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTItMTItMDUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29t
PgorCisgICAgICAgIHF1ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2Fz
ZSBlbGVtZW50cyBpbXBvcnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgcGVyZm9ybWFuY2UgdGVzdHMgZm9yIHRhZyBuYW1l
IHNlbGVjdG9ycyBpbiBYSFRNTCBhbmQgSFRNTCBjb250ZXh0LgorCisgICAgICAgICogQ1NTL1R5
cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy5odG1sOiBBZGRlZC4gVGVzdGluZyBwZXJmb3JtYW5jZSBm
b3IgaGlzdG9yeSB0YWcgbmFtZSBzZWxlY3RvcnMgbGlrZSAidWwgbGkgYiIuCisgICAgICAgICog
Q1NTL1R5cGVOYW1lSGlzdG9yeVNlbGVjdG9ycy54aHRtbDogQWRkZWQuIERpdHRvIGJ1dCBpbiBY
SFRNTC4KKyAgICAgICAgKiBDU1MvVHlwZU5hbWVTZWxlY3RvcnMuaHRtbDogQWRkZWQuIFRlc3Rp
bmcgcGVyZm9ybWFuY2UgZm9yIHNpbXBsZSB0YWcgbmFtZSBzZWxlY3RvcnMuCisgICAgICAgICog
Q1NTL1R5cGVOYW1lU2VsZWN0b3JzLnhodG1sOiBBZGRlZC4gRGl0dG8gYnV0IGluIFhIVE1MLgor
CiAyMDEyLTEyLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IERyb21hZW8gc2hvdWxkIHJlcG9ydCBpbmRpdmlkdWFsIHRlc3QgcmVzdWx0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNzdjYmE4Zi4uZjE4NDdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTEy
LTA1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBx
dWVyeVNlbGVjdG9yQWxsIHVuYWJsZSB0byBmaW5kIFNWRyBjYW1lbENhc2UgZWxlbWVudHMgaW1w
b3J0ZWQgaW50byBIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MzQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHF1ZXJ5U2VsZWN0b3JBbGwgdXNlcyBDU1NQYXJzZXIgdG8gcGFyc2UgdGhlIHNlbGVj
dG9yLiBUaGUgcGFyc2VyIHdpbGwgbm90IHByZXNlcnZlIHRoZSBjYXNlCisgICAgICAgIG9mIHRh
ZyBuYW1lcyB3aGVuIHBhcnNpbmcgaW5zaWRlIGFuIEhUTUwgZG9jdW1lbnQuIFdoZW4gV2ViS2l0
IG1hdGNoZXMgdGhlIERPTSBlbGVtZW50cyBpdAorICAgICAgICB3aWxsIGp1c3QgY29tcGFyZSB0
aGUgY2Fub25pY2FsIHRhZyBuYW1lIHRvIHRoZSBzZWxlY3RvciB0YWcgbmFtZS4gQmVjYXVzZSBz
b21lIFNWRyBlbGVtZW50cworICAgICAgICB1c2UgdXBwZXItY2FzZSBsZXR0ZXJzIGluIHRoZWly
IGNhbm9uaWNhbCBuYW1lLCB0aGlzIG1hdGNoaW5nIHdpbGwgbmV2ZXIgc3VjY2VlZCB3aGVuIHRo
ZQorICAgICAgICBTVkcgZWxlbWVudCBpcyBlbWJlZGRlZCBpbiBhbiBIVE1MIHBhZ2UuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBpcyBtYWtpbmcgU1ZHIHRhZyBuYW1lIHNlbGVjdG9ycyBtYXRjaCB1
c2luZyBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gZXZlbgorICAgICAgICB3aGVuIHRoZSBj
YW5vbmljYWwgZm9ybSBvZiB0aGUgU1ZHIGVsZW1lbnQgdGFnIG5hbWUgaXMgdXNpbmcgbWl4ZWQt
Y2FzZSBsZXR0ZXJzLiBPdGhlcgorICAgICAgICBicm93c2VycyBsaWtlIElFIGFuZCBGaXJlZm94
IHVzZSBjYXNlLSBzZW5zaXRpdmUgbWF0Y2hpbmcsIGJ1dCBXZWJLaXQgaGFzIHN1cHBvcnRlZCBj
YXNlLQorICAgICAgICBpbnNlbnNpdGl2ZSBtYXRjaGluZyBmb3Igb3RoZXIgU1ZHIGVsZW1lbnRz
LCBzbyBjaGFuZ2luZyB0aGF0IHdpbGwgbW9zdCBwcm9iYWJseSBicmVhayBzb21lCisgICAgICAg
IGNvbnRlbnQuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSB0aGUgc3RyaW5nIGNvbXBhcmlz
b25zIGZhc3QgV2ViS2l0IHVzZXMgQXRvbWljU3RyaW5ncy4gVGhpcyB3YXkgaXQgY291bGQKKyAg
ICAgICAganVzdCBjb21wYXJlIHRoZSBwb2ludGVycy4gSW4gb3JkZXIgdG8gYXZvaWQgbG9va3Vw
cyBkdXJpbmcgbWF0Y2hpbmcgY2FzZS1pbnNlbnNpdGl2ZWx5LCB3ZQorICAgICAgICBuZWVkIHRv
IHN0b3JlIGEgdmVyc2lvbiBvZiB0aGUgdGFnTmFtZSBlaXRoZXIgaW4gbG93ZXItY2FzZSBvciB1
cHBlci1jYXNlLCBzbyB0aGF0IHdlIGNvdWxkCisgICAgICAgIHByZXNlcnZlIHRoZSBwb2ludGVy
IGNvbXBhcmlzb24uIFRoYXQgdXNlZCB0byB3b3JrIGZvciBIVE1MIGJlY2F1c2UgdGhlIENTUyBw
YXJzZXIgYWxyZWFkeQorICAgICAgICBsb3dlcmVkIHRoZSB0YWcgbmFtZXMgb2YgdGhlIHNlbGVj
dG9ycyBhbmQgYWxsIHRoZSBIVE1MIGVsZW1lbnQgdGFnIG5hbWVzIHdlcmUgYWxyZWFkeQorICAg
ICAgICBsb3dlcmVkIGJlY2F1c2Ugb2YgdGhlaXIgY2Fub25pY2FsIGZvcm0uCisKKyAgICAgICAg
UXVhbGlmaWVkTmFtZSBhbHJlYWR5IGhhZCB0aGUgdXBwZXItY2FzZSB2ZXJzaW9uIG9mIHRoZSBs
b2NhbE5hbWUsIHNvIEkndmUgcmV1c2VkIGl0IHRvIG1ha2UKKyAgICAgICAgY2FzZS1pbnNlbnNp
dGl2ZSBjb21wYXJpc29uLgorCisgICAgICAgIEkndmUgYWxzbyB1cGRhdGVkIHRoZSBoaXN0b3J5
IG1hdGNoaW5nIG9wdGltaXphdGlvbnMgdG8gbWF0Y2ggY2FzZS1pbnNlbnNpdGl2ZWx5LCBzbyB0
aGF0CisgICAgICAgIGFsbCB0aGUgcG9zc2libGUgbWF0Y2hpbmcgcnVsZXMgYXJlIGNvbnNpZGVy
ZWQuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vu
c2l0aXZlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LXNlbnNpdGl2ZS54aHRtbAorICAgICAgICAgICAgICAgc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRp
dmUtc3ZnLWluLWh0bWwuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAg
ICAgICAgKiBjc3MvUnVsZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRS
dWxlKToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbGxlY3RFbGVtZW50SWRlbnRpZmllckhhc2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0RGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlcyk6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNoZWNrZXI6OmZhc3RDaGVja1JpZ2h0bW9zdFNlbGVjdG9yKTogVXNlZCBB
TFdBWVNfSU5MSU5FIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb21waWxlcnMgd2lsbCBzdGlsbCBp
bmxpbmUgdGhpcyBmdW5jdGlvbi4KKyAgICAgICAgVGhlIGV4dHJhICJpZiIgc3RhdGVtZW50IGlu
IHRoZSBTZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMgd2lsbCBtYWtlIGNsYW5nIGF2b2lkIGRv
aW5nIHRoZSBpbmxpbmUgYW5kIHRoYXQgaHVydHMgcGVyZm9ybWFuY2UuCisgICAgICAgICogY3Nz
L1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjp0
YWdNYXRjaGVzKTogQWRkZWQgdGhlIGNvbXBhcmlzb24gY2hlY2sgYmFzZWQgb24gdGhlIGRvY3Vt
ZW50IHR5cGUuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6Y2hlY2tTZWxlY3Rvcik6IERvIG5vdCByZWx5IG9uIHRoZSBo
YXNoIG1hcCBjaGVjayBvZiB0aGUgdGFnIG5hbWUgZm9yIG5vbi1odG1sCisgICAgICAgIGRvY3Vt
ZW50cy4gVGhlIG1hcCBhbHdheXMgdXNlcyBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIG9mIHRo
ZSBydWxlcywgc28gaW4gbm9uLWh0bWwgZG9jdW1lbnRzIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRo
YXQgdGhlIAorICAgICAgICBydWxlIGFjdHVhbGx5IG1hdGNoZXMgY2FzZS1zZW5zaXRpdmVseSBl
dmVuIHRob3VnaCB0aGUgcXVpY2sgc2VhcmNoIGFscmVhZHkgbWF0Y2hlZCB0aGUgdGFnIG5hbWUg
Zm9yIHVzLiBXZSBjb3VsZAorICAgICAgICBjb2xsZWN0IHRoZSBydWxlcyB1c2luZyBjYXNlLXNl
bnNpdGl2ZSBtYXRjaGluZyBkZXBlbmRpbmcgb24gdGhlIGRvY3VtZW50IHR5cGUsIGJ1dCB0aGF0
IHdvdWxkIHJlcXVpcmUgaGF2aW5nIGFuIAorICAgICAgICBleHRyYSB2ZXJzaW9uIG9mIHRoZSBk
ZWZhdWx0IFN0eWxlU2hlZXQgUnVsZVNldHMgdG9vLCBpbiBvcmRlciB0byBzdG9yZSB0aGUgY2Fz
ZS1zZW5zaXRpdmUgdGFnIG5hbWUgbWFwLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZl
cjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMpOgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNw
cDoKKyAgICAgICAgKiBkb20vUXVhbGlmaWVkTmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UXVh
bGlmaWVkTmFtZTo6bG9jYWxOYW1lVXBwZXIpOiBNb3ZlZCBmcm9tIGNwcCBmaWxlIHRvIGgsIHNv
IHRoYXQgY2FsbGVycyBjYW4gaW5saW5lIHRoaXMgY2FsbC4KKwogMjAxMi0xMi0wNSAgUm9iZXJ0
IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTI2Njgz
KTogVGFibGUgY2VsbCBhcmUgZ2V0dGluZyBib3JkZXJzIHdoZW4gdGhlIHN0eWxlIGRvZXNuJ3Qg
bWVudGlvbiBhbnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnku
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IDAzZWI4ZTkuLmIz
MGQwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTE3MSwxMiArMTE3MSw3
IEBAIHNpbXBsZV9zZWxlY3Rvcl9saXN0OgogICA7CiAKIGVsZW1lbnRfbmFtZToKLSAgICBJREVO
VCB7Ci0gICAgICAgIENTU1BhcnNlclN0cmluZyYgc3RyID0gJDE7Ci0gICAgICAgIGlmIChwYXJz
ZXItPm1fY29udGV4dC5pc0hUTUxEb2N1bWVudCkKLSAgICAgICAgICAgIHN0ci5sb3dlcigpOwot
ICAgICAgICAkJCA9IHN0cjsKLSAgICB9CisgICAgSURFTlQKICAgICB8ICcqJyB7CiAgICAgICAg
IHN0YXRpYyBMQ2hhciBzdGFyID0gJyonOwogICAgICAgICAkJC5pbml0KCZzdGFyLCAxKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9SdWxlU2V0LmNwcAppbmRleCA5YTc4YzBmLi42ZWMxYzBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVT
ZXQuY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxlUnVs
ZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFIKICAgICAg
ICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9j
YWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2FsTmFtZSgpOworICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2FsTmFtZVVwcGVyKCk7CiAgICAg
aWYgKGxvY2FsTmFtZSAhPSBzdGFyQXRvbSkgewogICAgICAgICBhZGRUb1J1bGVTZXQobG9jYWxO
YW1lLmltcGwoKSwgbV90YWdSdWxlcywgcnVsZURhdGEpOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGQ0ODQxY2EuLjNhZTkzNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC04MSw3ICs4MSw3IEBAIGVu
dW0geyBUYWdOYW1lU2FsdCA9IDEzLCBJZEF0dHJpYnV0ZVNhbHQgPSAxNywgQ2xhc3NBdHRyaWJ1
dGVTYWx0ID0gMTkgfTsKIAogc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RFbGVtZW50SWRlbnRp
Zmllckhhc2hlcyhjb25zdCBFbGVtZW50KiBlbGVtZW50LCBWZWN0b3I8dW5zaWduZWQsIDQ+JiBp
ZGVudGlmaWVySGFzaGVzKQogewotICAgIGlkZW50aWZpZXJIYXNoZXMuYXBwZW5kKGVsZW1lbnQt
PmxvY2FsTmFtZSgpLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkgKiBUYWdOYW1lU2FsdCk7CisgICAg
aWRlbnRpZmllckhhc2hlcy5hcHBlbmQoZWxlbWVudC0+dGFnUU5hbWUoKS5sb2NhbE5hbWVVcHBl
cigpLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkgKiBUYWdOYW1lU2FsdCk7CiAgICAgaWYgKGVsZW1l
bnQtPmhhc0lEKCkpCiAgICAgICAgIGlkZW50aWZpZXJIYXNoZXMuYXBwZW5kKGVsZW1lbnQtPmlk
Rm9yU3R5bGVSZXNvbHV0aW9uKCkuaW1wbCgpLT5leGlzdGluZ0hhc2goKSAqIElkQXR0cmlidXRl
U2FsdCk7CiAgICAgY29uc3QgU3R5bGVkRWxlbWVudCogc3R5bGVkRWxlbWVudCA9IGVsZW1lbnQt
PmlzU3R5bGVkRWxlbWVudCgpID8gc3RhdGljX2Nhc3Q8Y29uc3QgU3R5bGVkRWxlbWVudCo+KGVs
ZW1lbnQpIDogMDsKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVj
dERlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXMoY29uc3QgQ1NTU2VsZWN0b3IqCiAg
ICAgfQogICAgIGlmIChoYXNoID09IGVuZCkKICAgICAgICAgcmV0dXJuOwotICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2FsTmFtZSgpOworICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2FsTmFt
ZVVwcGVyKCk7CiAgICAgaWYgKGxvY2FsTmFtZSAhPSBzdGFyQXRvbSkKICAgICAgICAgKCpoYXNo
KyspID0gbG9jYWxOYW1lLmltcGwoKS0+ZXhpc3RpbmdIYXNoKCkgKiBUYWdOYW1lU2FsdDsKIH0K
QEAgLTMzMiw3ICszMzIsNyBAQCBpbmxpbmUgYm9vbCBjaGVja1RhZ1ZhbHVlKGNvbnN0IEVsZW1l
bnQqLCBBdG9taWNTdHJpbmdJbXBsKiwgY29uc3QgUXVhbGlmaWVkTmFtZQogCiB9CiAKLWlubGlu
ZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrUmlnaHRtb3N0U2VsZWN0b3IoY29uc3Qg
Q1NTU2VsZWN0b3IqIHNlbGVjdG9yLCBjb25zdCBFbGVtZW50KiBlbGVtZW50LCBWaXNpdGVkTWF0
Y2hUeXBlIHZpc2l0ZWRNYXRjaFR5cGUpIGNvbnN0CitBTFdBWVNfSU5MSU5FIGJvb2wgU2VsZWN0
b3JDaGVja2VyOjpmYXN0Q2hlY2tSaWdodG1vc3RTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciog
c2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIFZpc2l0ZWRNYXRjaFR5cGUgdmlzaXRl
ZE1hdGNoVHlwZSkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNGYXN0Q2hlY2thYmxlU2VsZWN0b3Io
c2VsZWN0b3IpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hl
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCmluZGV4IDliZGI2
NjkuLmU5NmU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKQEAgLTE4Niwx
MyArMTg2LDI2IEBAIGlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2hlc0ZvY3VzUHNl
dWRvQ2xhc3MoY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uCiAgICAgcmV0dXJuIGVsZW1lbnQt
PmZvY3VzZWQoKSAmJiBpc0ZyYW1lRm9jdXNlZChlbGVtZW50KTsKIH0KIAotaW5saW5lIGJvb2wg
U2VsZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0
IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK0FMV0FZU19JTkxJTkUgYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OnRhZ01hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgQ1NTU2VsZWN0b3Iq
IHNlbGVjdG9yKQogewogICAgIGlmICghc2VsZWN0b3ItPmhhc1RhZygpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IHNlbGVjdG9yLT50
YWcoKS5sb2NhbE5hbWUoKTsKLSAgICBpZiAobG9jYWxOYW1lICE9IHN0YXJBdG9tICYmIGxvY2Fs
TmFtZSAhPSBlbGVtZW50LT5sb2NhbE5hbWUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGNvbnN0IFF1YWxpZmllZE5hbWUmIHNlbGVjdG9yVGFnID0gc2VsZWN0b3ItPnRhZygpOworICAg
IGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWUoKSAhPSBzdGFyQXRvbSkgeworICAgICAgICBpZiAo
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgeworICAgICAgICAgICAgLy8g
QWxsIGVsZW1lbnRzIGluc2lkZSBIVE1MIGRvY3VtZW50cyB3aWxsIHVzZSBjYXNlLWluc2Vuc2l0
aXZlIG1hdGNoaW5nLgorICAgICAgICAgICAgLy8gVGhhdCBhcHBsaWVzIGV2ZW4gdG8gU1ZHIGFu
ZCBNYXRoTUwgZWxlbWVudHMgZW1iZWRkZWQgaW4gSFRNTC4gT3RoZXIgYnJvd3NlcnMKKyAgICAg
ICAgICAgIC8vIG1hdGNoIFNWRyB1c2luZyBjYXNlLXNlbnNpdGl2ZSBjb21wYXJpc29uLCBidXQg
V2ViS2l0IGhhcyBhbHdheXMgCisgICAgICAgICAgICAvLyBzdXBwb3J0ZWQgY2FzZS1pbnNlbnNp
dGl2ZSBtYXRjaGluZyBhbmQgd2UgbmVlZCB0byBwcmVzZXJ2ZSB0aGF0IGJlaGF2aW9yCisgICAg
ICAgICAgICAvLyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucy4KKyAgICAgICAg
ICAgIGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWVVcHBlcigpICE9IGVsZW1lbnQtPnRhZ1FOYW1l
KCkubG9jYWxOYW1lVXBwZXIoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBYTUwgYmFzZWQgZG9jdW1lbnRzIChYSFRNTCBh
bmQgU1ZHKSBuZWVkIHRvIHVzZSBjYXNlIHNlbnNpdGl2ZSBtYXRjaGluZy4KKyAgICAgICAgICAg
IGlmIChzZWxlY3RvclRhZy5sb2NhbE5hbWUoKSAhPSBlbGVtZW50LT50YWdRTmFtZSgpLmxvY2Fs
TmFtZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0K
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSA9IHNlbGVjdG9yLT50YWcoKS5u
YW1lc3BhY2VVUkkoKTsKICAgICByZXR1cm4gbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG5h
bWVzcGFjZVVSSSA9PSBlbGVtZW50LT5uYW1lc3BhY2VVUkkoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAppbmRleCBmYjkwM2I2Li5mMzQ2MjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC02ODksNyArNjg5LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVy
Ojpjb2xsZWN0TWF0Y2hpbmdSdWxlcyhSdWxlU2V0KiBydWxlcywgaW50JiBmaXJzdFJ1bGVJbmRl
eCwgaW4KICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT5saW5rUHNl
dWRvQ2xhc3NSdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7
CiAgICAgaWYgKG1fY2hlY2tlci5tYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyhtX2VsZW1lbnQpKQog
ICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPmZvY3VzUHNldWRvQ2xh
c3NSdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7Ci0gICAg
Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT50YWdSdWxlcyhtX2VsZW1lbnQtPmxv
Y2FsTmFtZSgpLmltcGwoKSksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25z
KTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPnRhZ1J1bGVzKG1fZWxl
bWVudC0+dGFnUU5hbWUoKS5sb2NhbE5hbWVVcHBlcigpLmltcGwoKSksIGZpcnN0UnVsZUluZGV4
LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QocnVsZXMtPnVuaXZlcnNhbFJ1bGVzKCksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4
LCBvcHRpb25zKTsKIH0KIApAQCAtMjIzNiw3ICsyMjM2LDcgQEAgaW5saW5lIGJvb2wgU3R5bGVS
ZXNvbHZlcjo6Y2hlY2tTZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIGNvbnN0IENv
bnRhaW4KICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gV2Uga25vdyBhIHN1
ZmZpY2llbnRseSBzaW1wbGUgc2luZ2xlIHBhcnQgc2VsZWN0b3IgbWF0Y2hlcyBzaW1wbHkgYmVj
YXVzZSB3ZSBmb3VuZCBpdCBmcm9tIHRoZSBydWxlIGhhc2guCiAgICAgICAgIC8vIFRoaXMgaXMg
bGltaXRlZCB0byBIVE1MIG9ubHkgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgbmFtZXNw
YWNlLgotICAgICAgICBpZiAocnVsZURhdGEuaGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hU
TUxCYXNlZE9uUnVsZUhhc2goKSAmJiBtX2VsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkgeworICAg
ICAgICBpZiAocnVsZURhdGEuaGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9u
UnVsZUhhc2goKSAmJiBtX2VsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSAmJiBtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpIHsKICAgICAgICAgICAgIGlmICghcnVsZURhdGEu
aGFzTXVsdGlwYXJ0U2VsZWN0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfSBlbHNlIGlmICghU2VsZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKG1fZWxlbWVudCwg
cnVsZURhdGEuc2VsZWN0b3IoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVh
bGlmaWVkTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5k
ZXggZGFmMTFjZS4uYjQ1ZDhhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxp
ZmllZE5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApA
QCAtMTQxLDEzICsxNDEsNiBAQCBjb25zdCBRdWFsaWZpZWROYW1lJiBudWxsUU5hbWUoKQogICAg
IHJldHVybiBudWxsTmFtZTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBRdWFsaWZpZWROYW1l
Ojpsb2NhbE5hbWVVcHBlcigpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2ltcGwtPm1fbG9jYWxOYW1l
VXBwZXIpCi0gICAgICAgIG1faW1wbC0+bV9sb2NhbE5hbWVVcHBlciA9IG1faW1wbC0+bV9sb2Nh
bE5hbWUudXBwZXIoKTsKLSAgICByZXR1cm4gbV9pbXBsLT5tX2xvY2FsTmFtZVVwcGVyOwotfQot
CiB2b2lkIFF1YWxpZmllZE5hbWU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmgKaW5kZXggY2I4NDYxMS4uZDYzMWMyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UXVhbGlmaWVkTmFtZS5oCkBAIC04OSw3ICs4OSwxMyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lc3BhY2VVUkkoKSBjb25zdCB7IHJldHVybiBtX2ltcGwtPm1fbmFtZXNw
YWNlOyB9CiAKICAgICAvLyBVcHBlcmNhc2VkIGxvY2FsTmFtZSwgY2FjaGVkIGZvciBlZmZpY2ll
bmN5Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWVVcHBlcigpIGNvbnN0OworICAg
IGlubGluZSBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZVVwcGVyKCkgY29uc3QKKyAgICB7
CisgICAgICAgIEF0b21pY1N0cmluZyYgbG9jYWxOYW1lVXBwZXIgPSBtX2ltcGwtPm1fbG9jYWxO
YW1lVXBwZXI7CisgICAgICAgIGlmIChVTkxJS0VMWShsb2NhbE5hbWVVcHBlci5pc051bGwoKSkp
CisgICAgICAgICAgICBsb2NhbE5hbWVVcHBlciA9IG1faW1wbC0+bV9sb2NhbE5hbWUudXBwZXIo
KTsKKyAgICAgICAgcmV0dXJuIGxvY2FsTmFtZVVwcGVyOworICAgIH0KIAogICAgIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="194154"
          type_id="1"
          status="-"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="194155"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>177878</attachid>
            <date>2012-12-05 17:22:48 -0800</date>
            <delta_ts>2012-12-05 17:22:48 -0800</delta_ts>
            <desc>performance results</desc>
            <filename>results_83438.txt</filename>
            <type>text/plain</type>
            <size>5097</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQZXJmb3JtYW5jZVRl
c3RzL0NTUy9UeXBlTmFtZVNlbGVjdG9ycy5odG1sCj4+IFZlcnNpb24gMjUuMC4xMzUwLjAgY2Fu
YXJ5OgoKVGltZToKdmFsdWVzIDEwNDcwLjQ3OTQxNDI4NjMyNywgMTA1NTQuMjkwNTQxODQxMzg1
LCAxMDYyMC40NTQwNTYxNjIyMjksIDEwNjMxLjg0MDU2ODE5NTgwMSwgMTA3MjAuMTE2MDU2NDM1
ODIsIDk5NDkuNTEzOTkyMjAzMzAxLCAxMDcxNC40ODM0NzYwMjQwNTIsIDEwNzMzLjI0MDI5Mzk2
NDI1LCAxMDcwMi4yMDM0NzU1NzMyNzMsIDEwNTQ5Ljc4MDUwOTU1ODI5LCAxMDc0Ny44ODIwNzE4
MjU1MDgsIDkyMTcuMTY5MDY5MjQ3OTEzLCAxMDQ0MS43NTM5NzEwNDYyNzMsIDEwNzExLjMxMDg0
MjQxNzU3OSwgMTA2ODMuNjY0NjQ2MTY1NzExLCA5MTQyLjk0MDI3NDczMDgyOSwgMTAxODguNDg3
MDAzMzQyMzQxLCAxMDY3NC43MTM3NjUzMDUyMjUsIDEwNzAxLjE3MTA3MTI4NjMzNSwgMTA3MjEu
MzE3OTAwMzE1MzgyIHJ1bnMvcwphdmcgMTA0NDMuODQwNjQ5OTk2MzkxIHJ1bnMvcwptZWRpYW4g
MTA2NTMuMjc3MTY2NzUwNTEzIHJ1bnMvcwpzdGRldiA0NzYuNTc3MzMxNTIzNjc1ODcgcnVucy9z
Cm1pbiA5MTQyLjk0MDI3NDczMDgyOSBydW5zL3MKbWF4IDEwNzQ3Ljg4MjA3MTgyNTUwOCBydW5z
L3MKCj4+IFdpdGggdGhpcyBwYXRjaCBhcHBsaWVkOgoKVGltZToKdmFsdWVzIDEwOTU1LjUyNzQx
MDg3NTUxMywgMTA4OTIuMDYyNTM5NTI1NDIxLCAxMDg5My45NDUwODEzMDU1MjMsIDEwODk2LjA1
NjU5OTY2Mzc2NywgMTA4NjguNzU1ODYxMjY2NzczLCAxMTAxOS4yMzk5NTcyNzEyMDcsIDEwOTcy
LjYwNTQxMzkzMDIxMiwgMTA5NzEuNTA1NzMyNDU3NjY4LCAxMTAwMC45MjU1NTg1MjE1NCwgMTEw
MDguNTUyODA5MjMxODk2LCAxMTAzNy45OTYxODI2NzcxLCAxMDkxNi42NDM3ODc2NTc4NzEsIDEw
OTE4Ljc0OTc4OTE4MDY0LCAxMDkwNi4wNTQ1NzcwMTk5MDIsIDEwODYyLjI3MTExNjQ0MzMxOSwg
MTA4ODUuMTIyNzA4OTU1OCwgMTA4OTUuNzI4NDAwMjI2MTk5LCAxMDg4OC45ODM0MjY4ODAyNzcs
IDEwOTMyLjU2NjMwOTM5NjYzLCAxMDg4NS45MDYwMjE0Njk1MDYgcnVucy9zCmF2ZyAxMDkzMC40
NTk5NjQxOTc4MzggcnVucy9zCm1lZGlhbiAxMDkxMS4zNDkxODIzMzg4ODcgcnVucy9zCnN0ZGV2
IDUzLjc3NDc2MTM1MTQ3Nzk4NCBydW5zL3MKbWluIDEwODYyLjI3MTExNjQ0MzMxOSBydW5zL3MK
bWF4IDExMDM3Ljk5NjE4MjY3NzEgcnVucy9zCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpQZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFtZUhpc3Rv
cnlTZWxlY3RvcnMuaHRtbAo+PiBWZXJzaW9uIDI1LjAuMTM1MC4wIGNhbmFyeToKClRpbWU6CnZh
bHVlcyA4MDYzLjcyMzU3OTIzMzUxNiwgODAwMy42MjE2MzU2MTk1MDUsIDc5OTguNDUwMzAxOTU1
Mzc5NSwgODA3Ny40OTM0NDk5NzIxNjEsIDgwNzYuNDYzOTE4NjIzOTU3LCA4MDUxLjM2NzcyNTQz
NTAxMywgNzk2Ni40NDEzNjI0ODU2MzksIDc3NTQuNTM5NzM2OTgwNDI4LCA4MDU2LjgzMDg3NjMw
MDk4MywgODAxMi4wNzgyMDM3OTA1OTYsIDc4MzEuMzAzOTI0ODEyNzQ3LCA4MDU1LjkwODAwNzEz
MjI2MiwgODA2MS43MzI3MTE1MzkzMDgsIDgwNjguODE2OTI5Mjg4MzQ1LCA4MDk1LjM4Mzg2Mjg4
MDQ0MiwgODA4NS44NjE3Mzg3Mzg1MTYsIDgwNzkuNDYxNTA0MTY0MDM3LCA4MTY1LjY3MTI2NDMz
NDQ0LCA4MDgyLjE4NTcyNTczODgxLCA4MTE3LjE5MTk1NTM4NTk3MiBydW5zL3MKYXZnIDgwMzUu
MjI2NDIwNzIwNjAzIHJ1bnMvcwptZWRpYW4gODA2Mi43MjgxNDUzODY0MTI1IHJ1bnMvcwpzdGRl
diA5NC40MTAwNzg1MjI2NjI0MyBydW5zL3MKbWluIDc3NTQuNTM5NzM2OTgwNDI4IHJ1bnMvcwpt
YXggODE2NS42NzEyNjQzMzQ0NCBydW5zL3MKCj4+IFdpdGggdGhpcyBwYXRjaCBhcHBsaWVkOgoK
VGltZToKdmFsdWVzIDgwOTUuNTA2NzM5NDg3NjQsIDgwMTYuNTU0MTg2MzI0MjcyLCA3OTkyLjQ1
NzExNjUyMjUwNywgODA1OS4xNDQwNDc2MTM1MTg1LCA4MDQyLjc2NzQwNjEzODQ1OSwgODA1Mi42
MjM5MDEzNTg4NTMsIDgwNDAuNzQ2NDkwNzU2Mzg0LCA4MTIyLjAxMjkzNDE5MDE2LCA4MDc3LjIw
ODAxNjU2NTQwOCwgODA5Ny4wNjM1NDU1NTU3NjIsIDgwMzQuNzkwNjQzNjg5ODE2LCA4MDAxLjg4
MDQ0NDExMjk0LCA4MDMzLjk5MzgzNzYwMTU2LCA3OTk3Ljg4MDU1NjY4NjkzOSwgNzk4Ny42MTkx
OTA4Mjg1MTEsIDc5MTUuMzc0NzYzNTcxNTE2LCA3OTgzLjg4MjUzOTQwNzc3OCwgNzk5OC40MzAz
MDQ5NDYwNzQsIDc5ODIuNjE3ODUzODczODc4LCA4MDM0LjQ2Nzg3NDI4OTU0ODUgcnVucy9zCmF2
ZyA4MDI4LjM1MTExOTY3NjA3NiBydW5zL3MKbWVkaWFuIDgwMzQuMjMwODU1OTQ1NTU0IHJ1bnMv
cwpzdGRldiA0OC41ODIwMzIyNzY2NzkyMSBydW5zL3MKbWluIDc5MTUuMzc0NzYzNTcxNTE2IHJ1
bnMvcwptYXggODEyMi4wMTI5MzQxOTAxNiBydW5zL3MKCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClBlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0
b3JzLnhodG1sCj4+IFZlcnNpb24gMjUuMC4xMzUwLjAgY2FuYXJ5OgoKVGltZToKdmFsdWVzIDYz
OTEuMDE4NDg3NzUyNjg0LCA2Mzg5LjYwNjIyODgzMzQ0MywgNjMzOS41OTYzMjI4ODQzNiwgNjE1
Ny4wNDMwNzg0NTIwMzksIDYyNDIuMjc4NDIwNzc2ODQ4LCA2Mjg1LjY4NDM1NzU1ODc2MywgNjIz
Ni4zMzM2NjU2NDI4NjgsIDYxNTcuOTkwOTUwMDIzODA4LCA2MTQ3LjE3ODgzNTAwNDMxLCA2MzA1
LjUwOTgzNjA4Nzg5MiwgNjMwMi40ODc5MDQyMTY1ODMsIDYzMTEuOTc3MzY5NTI5NzU0NSwgNjI5
NS40NjE3NjAzNTg2MTc1LCA2MzQwLjk4NjU0MzQ4ODcxNCwgNjM4OS4wNTM0MTk3NzUxNTcsIDYz
NDUuMzAzNDkwOTM3NzcxLCA2MzAzLjg0NTM1MzExMzI5OSwgNjMyMy45MjczNzE1MjYzOSwgNjMy
My41Nzc0NjE2MDEzMSwgNjMyMC43NTQ1OTU2Mjg5MDIgcnVucy9zCmF2ZyA2Mjk1LjQ4MDc3MjY1
OTY3NiBydW5zL3MKbWVkaWFuIDYzMDguNzQzNjAyODA4ODIzIHJ1bnMvcwpzdGRldiA3My40MzM4
NTYzMTMyMzgxNSBydW5zL3MKbWluIDYxNDcuMTc4ODM1MDA0MzEgcnVucy9zCm1heCA2MzkxLjAx
ODQ4Nzc1MjY4NCBydW5zL3MKCj4+IFdpdGggdGhpcyBwYXRjaCBhcHBsaWVkOgoKVGltZToKdmFs
dWVzIDY4ODIuNjkwNzQ3MDUxODQ0LCA2ODM1LjkxMDg0NDE3Nzc1OSwgNjc3OS43Nzc3MjI1OTkz
MDksIDY3MTEuMzAzODIwNjUwMTY4LCA2NzM1LjExNDAxMTgxMTkyMiwgNjc2NS42MzE2NDU3MDE3
NjksIDY5MTEuODEyMDA2MjkzODcxNSwgNjg4Ni4yMTI1MDg3MTk4OTY1LCA2ODU1LjEzNTI3OTE0
MTExNiwgNjgwMC41NDM1MTM4Mjg0NTEsIDY3OTEuMDA5MzM4NjM3MjUzLCA2ODg3Ljk0MTc4ODIx
NjI1MywgNjg3My41MTY1NTM3NTMzOTQsIDY5NTIuNzM0Njg0NTcwMDgzLCA2ODI1LjM5MjYwMDYz
MDgzOSwgNjg1OC43MjY4OTA3MTU5NTUsIDY4NzYuMTY2OTI0MDA1NDA0LCA2ODMyLjU3MDAxMjUx
NDM5MywgNjc4Ni44Nzc0NjQ2OTkxNjMsIDY4MDUuOTQ5MzcwMTcyNDY5IHJ1bnMvcwphdmcgNjgz
Mi43NTA4ODYzOTQ1NjUgcnVucy9zCm1lZGlhbiA2ODM0LjI0MDQyODM0NjA3NiBydW5zL3MKc3Rk
ZXYgNjEuMTQxNTgzOTQ2ODA2MDcgcnVucy9zCm1pbiA2NzExLjMwMzgyMDY1MDE2OCBydW5zL3MK
bWF4IDY5NTIuNzM0Njg0NTcwMDgzIHJ1bnMvcwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpXZWJLaXQvUGVyZm9ybWFuY2VUZXN0cy9D
U1MvVHlwZU5hbWVIaXN0b3J5U2VsZWN0b3JzLnhodG1sCj4+IFZlcnNpb24gMjUuMC4xMzUwLjAg
Y2FuYXJ5OgoKVGltZToKdmFsdWVzIDM4MzguMzU3MTgxMzQxNDEzNywgMzgzOC4yNjUxMDQwNjk3
MDUsIDM4NDcuMDk3MTIzNjM4MjE2LCAzODQ2LjIxODU2OTExNjEwNzYsIDM4NDkuOTUyOTAwNTIw
OTY5NywgMzgyMi4xNzg0NTE5NDQyMzg1LCAzODM5LjAwNjk3NjQ1MTQzMSwgMzgzOS4wODQ3NjAy
Mjk2ODYsIDM4MzkuNzQ5MTM1NjcxNjE4NywgMzgzNi45MDQ4OTgxNjE2MTI0LCAzODI5LjY5MDQ3
NDM5Njg5MSwgMzgyMS42MjA1NTE3NTAyMzYsIDM3NTIuMTc4OTk3NDA5NDQ2MywgMzgzMy43MjI5
MTc0ODU0MDQ3LCAzODQ1LjM1ODg5MDY5NjM0MjgsIDM4MjUuNDI3Njc1MDc2MzY5NywgMzg3OS4x
NTkzNDA3Mjk3NSwgMzg1My45NjgzMjExMDcxNjI0LCAzODQ5LjA2Mzc3NTIwODgyMzcsIDM3NzEu
NjYyNTA5NTc4NjYgcnVucy9zCmF2ZyAzODMyLjkzMzQyNzcyOTIwNCBydW5zL3MKbWVkaWFuIDM4
MzguNjgyMDc4ODk2NDIyNCBydW5zL3MKc3RkZXYgMjcuNTY5OTg1MDE0OTAxODQ2IHJ1bnMvcwpt
aW4gMzc1Mi4xNzg5OTc0MDk0NDYzIHJ1bnMvcwptYXggMzg3OS4xNTkzNDA3Mjk3NSBydW5zL3MK
Cj4+IFdpdGggdGhpcyBwYXRjaCBhcHBsaWVkOgoKVGltZToKdmFsdWVzIDM2MjYuNzc5MjMwMDY2
MDI2MiwgNDA3MC44NjM1NTI4MzYzODQzLCA0MDk2LjQ2MTQyMTYwMzAwNiwgNDA2OC41ODEwMTk3
Nzc4MzUsIDQwMTIuMzAyNzIwOTA5Mjc1NiwgMzk0NC40MDM2MzMxMjExOTIsIDM5OTUuMDkxMDI2
ODQ1MjAwOCwgMzk5Ni40NTMxNDk2Njc1ODcyLCA0MDEyLjU0NDIxNTg3OTI1MDcsIDM5OTUuMjc1
NTg2NDU4NTY4LCA0MDExLjcxOTIyODA1NzI0MDMsIDM5ODguMjM5NjgxMzE3MTE5LCA0MDI0LjYz
MDc0MTIxMjQxMTUsIDM5ODIuMTQ1MDQ4NDM2MTgxLCAzOTg2LjE3NzkyNTgxMzc1MSwgNDAxMy44
Mzc3MDY2NTkxMjE1LCA0MDIxLjE3NjUxNTY1NTA1NDYsIDQwMzguMDg0MTc5NzE3ODQ0NiwgNDA3
Ni40MDcxNTIwNDM2NTgsIDQwMTEuMDMwMzM0MjkzNDI4NSBydW5zL3MKYXZnIDM5OTguNjEwMjAz
NTE4NTA2OCBydW5zL3MKbWVkaWFuIDQwMTIuMDEwOTc0NDgzMjU4IHJ1bnMvcwpzdGRldiA5NC45
MTk4NTczMDgzMTg5OCBydW5zL3MKbWluIDM2MjYuNzc5MjMwMDY2MDI2MiBydW5zL3MKbWF4IDQw
OTYuNDYxNDIxNjAzMDA2IHJ1bnMvcwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>182846</attachid>
            <date>2013-01-15 14:27:23 -0800</date>
            <delta_ts>2013-01-15 15:33:47 -0800</delta_ts>
            <desc>testcase-svg</desc>
            <filename>bug83438_testcase.html</filename>
            <type>text/html</type>
            <size>2260</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+CiAgICAgICAgPHN0eWxlPgogICAgICAg
ICAgICBib2R5IHsKICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIGRpdi5tYXRjaDEsCiAgICAgICAgICAgIERJVi5tYXRjaDIsCiAgICAgICAgICAg
IERpdi5tYXRjaDMsCiAgICAgICAgICAgIGZvcmVpZ25vYmplY3QubWF0Y2g3LAogICAgICAgICAg
ICBGT1JFSUdOT0JKRUNULm1hdGNoOCwKICAgICAgICAgICAgZm9yZWlnbk9iamVjdC5tYXRjaDks
CiAgICAgICAgICAgIEZvcmVpZ25PYmplY3QubWF0Y2gxMAogICAgICAgICAgICB7IAogICAgICAg
ICAgICAgICAgY29sb3I6IGdyZWVuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjaXJjbGUu
bWF0Y2g0LAogICAgICAgICAgICBDSVJDTEUubWF0Y2g1LAogICAgICAgICAgICBDaXJjbGUubWF0
Y2g2CiAgICAgICAgICAgIHsgCiAgICAgICAgICAgICAgICBmaWxsOiBncmVlbjsKICAgICAgICAg
ICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2hlYWQ+CiAgICA8Ym9keT4KCiAgICAgICAgPGRp
diBjbGFzcz0ibWF0Y2gxIj5IVE1MIGVsZW1lbnQgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNl
bGVjdG9yLjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1hdGNoMiI+SFRNTCBlbGVtZW50IG1h
dGNoZWQgdXNpbmcgdXBwZXIgY2FzZSBzZWxlY3Rvci48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNz
PSJtYXRjaDMiPkhUTUwgZWxlbWVudCBtYXRjaGVkIHVzaW5nIG1peGVkIGNhc2Ugc2VsZWN0b3Iu
PC9kaXY+CgogICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2
ZXJzaW9uPSIxLjEiIGhlaWdodD0iNDAwIiB3aWR0aD0iNTAwIj4KICAgICAgICAgICAgPGNpcmNs
ZSBjbGFzcz0ibWF0Y2g0IiBjeD0iNTAiIGN5PSI1MCIgcj0iMjAiIHN0cm9rZT0iYmxhY2siIHN0
cm9rZS13aWR0aD0iMiIgZmlsbD0icmVkIiAvPgogICAgICAgICAgICA8dGV4dCB4PSIxMDAiIHk9
IjUwIj5DaXJjbGUgU1ZHIGVsZW1lbnQgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNlbGVjdG9y
PC90ZXh0PgoKICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0ibWF0Y2g1IiBjeD0iNTAiIGN5PSIx
MDAiIHI9IjIwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InJlZCIgLz4K
ICAgICAgICAgICAgPHRleHQgeD0iMTAwIiB5PSIxMDAiPkNpcmNsZSBTVkcgZWxlbWVudCBtYXRj
aGVkIHVzaW5nIHVwcGVyIGNhc2Ugc2VsZWN0b3I8L3RleHQ+CgogICAgICAgICAgICA8Y2lyY2xl
IGNsYXNzPSJtYXRjaDYiIGN4PSI1MCIgY3k9IjE1MCIgcj0iMjAiIHN0cm9rZT0iYmxhY2siIHN0
cm9rZS13aWR0aD0iMiIgZmlsbD0icmVkIiAvPgogICAgICAgICAgICA8dGV4dCB4PSIxMDAiIHk9
IjE1MCI+Q2lyY2xlIFNWRyBlbGVtZW50IG1hdGNoZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxlY3Rv
cjwvdGV4dD4KCiAgICAgICAgICAgIDxmb3JlaWduT2JqZWN0IGNsYXNzPSJtYXRjaDciIHg9IjUw
IiB5PSIyMDAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjIwIj4KICAgICAgICAgICAgICAgIFNWRyBm
b3JlaWduIG9iamVjdCBtYXRjaGVkIHVzaW5nIGxvd2VyIGNhc2Ugc2VsZWN0b3IuCiAgICAgICAg
ICAgIDwvZm9yZWlnbk9iamVjdD4KICAgICAgICAgICAgPGZvcmVpZ25PYmplY3QgY2xhc3M9Im1h
dGNoOCIgeD0iNTAiIHk9IjI0MCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMjAiPgogICAgICAgICAg
ICAgICAgU1ZHIGZvcmVpZ24gb2JqZWN0IG1hdGNoZWQgdXNpbmcgdXBwZXIgY2FzZSBzZWxlY3Rv
ci4KICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgogICAgICAgICAgICA8Zm9yZWlnbk9iamVj
dCBjbGFzcz0ibWF0Y2g5IiB4PSI1MCIgeT0iMjgwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIyMCI+
CiAgICAgICAgICAgICAgICBTVkcgZm9yZWlnbiBvYmplY3QgbWF0Y2hlZCB1c2luZyBjYW5vbmlj
YWwgZm9ybSBzZWxlY3Rvci4KICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgogICAgICAgICAg
ICA8Zm9yZWlnbk9iamVjdCBjbGFzcz0ibWF0Y2gxMCIgeD0iNTAiIHk9IjMyMCIgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMjAiPgogICAgICAgICAgICAgICAgU1ZHIGZvcmVpZ24gb2JqZWN0IG1hdGNo
ZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxlY3Rvci4KICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0
PgogICAgICAgIDwvc3ZnPgoKICAgIDwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>182857</attachid>
            <date>2013-01-15 15:33:47 -0800</date>
            <delta_ts>2013-01-15 15:33:47 -0800</delta_ts>
            <desc>testcase-svg</desc>
            <filename>bug83438_testcase.html</filename>
            <type>text/html</type>
            <size>3932</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+CiAgICAgICAgPHN0eWxlPgogICAgICAg
ICAgICBib2R5IHsKICAgICAgICAgICAgICAgIGNvbG9yOiByZWQ7CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgIGRpdi5tYXRjaDEsCiAgICAgICAgICAgIERJVi5tYXRjaDIsCiAgICAgICAgICAg
IERpdi5tYXRjaDMsCiAgICAgICAgICAgIGZvcmVpZ25vYmplY3QubWF0Y2g3LAogICAgICAgICAg
ICBGT1JFSUdOT0JKRUNULm1hdGNoOCwKICAgICAgICAgICAgZm9yZWlnbk9iamVjdC5tYXRjaDks
CiAgICAgICAgICAgIEZvcmVpZ25PYmplY3QubWF0Y2gxMAogICAgICAgICAgICB7IAogICAgICAg
ICAgICAgICAgY29sb3I6IGdyZWVuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjaXJjbGUu
bWF0Y2g0LAogICAgICAgICAgICBDSVJDTEUubWF0Y2g1LAogICAgICAgICAgICBDaXJjbGUubWF0
Y2g2CiAgICAgICAgICAgIHsgCiAgICAgICAgICAgICAgICBmaWxsOiBncmVlbjsKICAgICAgICAg
ICAgfQoKICAgICAgICAgICAgbGluZWFyZ3JhZGllbnQubWF0Y2gxMSBzdG9wLAogICAgICAgICAg
ICBMSU5FQVJHUkFESUVOVC5tYXRjaDEyIHN0b3AsCiAgICAgICAgICAgIGxpbmVhckdyYWRpZW50
Lm1hdGNoMTMgc3RvcCwKICAgICAgICAgICAgTGluZWFyR3JhZGllbnQubWF0Y2gxNCBzdG9wCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN0b3AtY29sb3I6IGdyZWVuOwogICAgICAgICAg
ICB9CiAgICAgICAgPC9zdHlsZT4KICAgIDwvaGVhZD4KICAgIDxib2R5PgoKICAgICAgICA8ZGl2
IGNsYXNzPSJtYXRjaDEiPkhUTUwgZWxlbWVudCBtYXRjaGVkIHVzaW5nIGxvd2VyIGNhc2Ugc2Vs
ZWN0b3IuPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibWF0Y2gyIj5IVE1MIGVsZW1lbnQgbWF0
Y2hlZCB1c2luZyB1cHBlciBjYXNlIHNlbGVjdG9yLjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9
Im1hdGNoMyI+SFRNTCBlbGVtZW50IG1hdGNoZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxlY3Rvci48
L2Rpdj4KCiAgICAgICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZl
cnNpb249IjEuMSIgaGVpZ2h0PSI2MDAiIHdpZHRoPSI2MDAiPgogICAgICAgICAgICA8Y2lyY2xl
IGNsYXNzPSJtYXRjaDQiIGN4PSI1MCIgY3k9IjUwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIgc3Ry
b2tlLXdpZHRoPSIyIiBmaWxsPSJyZWQiIC8+CiAgICAgICAgICAgIDx0ZXh0IHg9IjEwMCIgeT0i
NTAiPkNpcmNsZSBTVkcgZWxlbWVudCBtYXRjaGVkIHVzaW5nIGxvd2VyIGNhc2UgLyBjYW5vbmlj
YWwgZm9ybSBzZWxlY3RvcjwvdGV4dD4KCiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9Im1hdGNo
NSIgY3g9IjUwIiBjeT0iMTAwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIy
IiBmaWxsPSJyZWQiIC8+CiAgICAgICAgICAgIDx0ZXh0IHg9IjEwMCIgeT0iMTAwIj5DaXJjbGUg
U1ZHIGVsZW1lbnQgbWF0Y2hlZCB1c2luZyB1cHBlciBjYXNlIHNlbGVjdG9yPC90ZXh0PgoKICAg
ICAgICAgICAgPGNpcmNsZSBjbGFzcz0ibWF0Y2g2IiBjeD0iNTAiIGN5PSIxNTAiIHI9IjIwIiBz
dHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InJlZCIgLz4KICAgICAgICAgICAg
PHRleHQgeD0iMTAwIiB5PSIxNTAiPkNpcmNsZSBTVkcgZWxlbWVudCBtYXRjaGVkIHVzaW5nIG1p
eGVkIGNhc2Ugc2VsZWN0b3I8L3RleHQ+CgogICAgICAgICAgICA8Zm9yZWlnbk9iamVjdCBjbGFz
cz0ibWF0Y2g3IiB4PSI1MCIgeT0iMjAwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIyMCI+CiAgICAg
ICAgICAgICAgICBTVkcgZm9yZWlnbiBvYmplY3QgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNl
bGVjdG9yLgogICAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+CiAgICAgICAgICAgIDxmb3JlaWdu
T2JqZWN0IGNsYXNzPSJtYXRjaDgiIHg9IjUwIiB5PSIyNDAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9
IjIwIj4KICAgICAgICAgICAgICAgIFNWRyBmb3JlaWduIG9iamVjdCBtYXRjaGVkIHVzaW5nIHVw
cGVyIGNhc2Ugc2VsZWN0b3IuCiAgICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD4KICAgICAgICAg
ICAgPGZvcmVpZ25PYmplY3QgY2xhc3M9Im1hdGNoOSIgeD0iNTAiIHk9IjI4MCIgd2lkdGg9IjEw
MCUiIGhlaWdodD0iMjAiPgogICAgICAgICAgICAgICAgU1ZHIGZvcmVpZ24gb2JqZWN0IG1hdGNo
ZWQgdXNpbmcgY2Fub25pY2FsIGZvcm0gc2VsZWN0b3IuCiAgICAgICAgICAgIDwvZm9yZWlnbk9i
amVjdD4KICAgICAgICAgICAgPGZvcmVpZ25PYmplY3QgY2xhc3M9Im1hdGNoMTAiIHg9IjUwIiB5
PSIzMjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjIwIj4KICAgICAgICAgICAgICAgIFNWRyBmb3Jl
aWduIG9iamVjdCBtYXRjaGVkIHVzaW5nIG1peGVkIGNhc2Ugc2VsZWN0b3IuCiAgICAgICAgICAg
IDwvZm9yZWlnbk9iamVjdD4KCiAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGll
bnQxMSIgY2xhc3M9Im1hdGNoMTEiPgogICAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PSIwJSIg
c3RvcC1jb2xvcj0icmVkIiAvPgogICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICAg
ICAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjM4MCIgcj0iMjAiIHN0cm9rZT0iYmxhY2siIHN0cm9r
ZS13aWR0aD0iMiIgZmlsbD0idXJsKCNHcmFkaWVudDExKSIgLz4KICAgICAgICAgICAgPHRleHQg
eD0iMTAwIiB5PSIzODAiPlNWRyBMaW5lYXJHcmFkaWVudCBmaWxsIGVsZW1lbnQgbWF0Y2hlZCB1
c2luZyBsb3dlciBjYXNlIHNlbGVjdG9yPC90ZXh0PgoKICAgICAgICAgICAgPGxpbmVhckdyYWRp
ZW50IGlkPSJHcmFkaWVudDEyIiBjbGFzcz0ibWF0Y2gxMiI+CiAgICAgICAgICAgICAgICA8c3Rv
cCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSJyZWQiIC8+CiAgICAgICAgICAgIDwvbGluZWFyR3Jh
ZGllbnQ+CiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iNDQwIiByPSIyMCIgc3Ryb2tl
PSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50MTIpIiAvPgogICAg
ICAgICAgICA8dGV4dCB4PSIxMDAiIHk9IjQ0MCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBtYXRjaGVkIHVzaW5nIHVwcGVyIGNhc2Ugc2VsZWN0b3I8L3RleHQ+CgogICAgICAgICAg
ICA8bGluZWFyR3JhZGllbnQgaWQ9IkdyYWRpZW50MTMiIGNsYXNzPSJtYXRjaDEzIj4KICAgICAg
ICAgICAgICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJlZCIgLz4KICAgICAgICAg
ICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MDAi
IHI9IjIwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InVybCgjR3JhZGll
bnQxMykiIC8+CiAgICAgICAgICAgIDx0ZXh0IHg9IjEwMCIgeT0iNTAwIj5TVkcgTGluZWFyR3Jh
ZGllbnQgZmlsbCBlbGVtZW50IG1hdGNoZWQgdXNpbmcgY2Fub25pY2FsIGZvcm0gc2VsZWN0b3I8
L3RleHQ+CgogICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9IkdyYWRpZW50MTQiIGNsYXNz
PSJtYXRjaDE0Ij4KICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9
InJlZCIgLz4KICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgPGNpcmNs
ZSBjeD0iNTAiIGN5PSI1NjAiIHI9IjIwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIi
IGZpbGw9InVybCgjR3JhZGllbnQxNCkiIC8+CiAgICAgICAgICAgIDx0ZXh0IHg9IjEwMCIgeT0i
NTYwIj5TVkcgTGluZWFyR3JhZGllbnQgZmlsbCBlbGVtZW50IG1hdGNoZWQgdXNpbmcgbWl4ZWQg
Y2FzZSBzZWxlY3RvcjwvdGV4dD4KICAgICAgICA8L3N2Zz4KCiAgICA8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183324</attachid>
            <date>2013-01-17 17:13:08 -0800</date>
            <delta_ts>2013-01-29 17:21:50 -0800</delta_ts>
            <desc>Patch V4</desc>
            <filename>bug83438_4.patch</filename>
            <type>text/plain</type>
            <size>17060</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCmluZGV4IDYxODdkNmMuLmY3OTNkNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgpAQCAtMTE0OCwzMSArMTE0OCw1MyBAQCBuYW1lc3Bh
Y2Vfc2VsZWN0b3I6CiBzaW1wbGVfc2VsZWN0b3I6CiAgICAgZWxlbWVudF9uYW1lIHsKICAgICAg
ICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsKLSAgICAgICAgJCQtPnNl
dFRhZyhRdWFsaWZpZWROYW1lKG51bGxBdG9tLCAkMSwgcGFyc2VyLT5tX2RlZmF1bHROYW1lc3Bh
Y2UpKTsKKyAgICAgICAgQXRvbWljU3RyaW5nIHBhcnNlZExvY2FsTmFtZTsKKyAgICAgICAgaWYg
KHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50ICYmICEkMS5pc0xvd2VyQ2FzZSgpKSB7
CisgICAgICAgICAgICBwYXJzZWRMb2NhbE5hbWUgPSAkMTsKKyAgICAgICAgICAgICQxLmxvd2Vy
KCk7CisgICAgICAgIH0KKyAgICAgICAgJCQtPnNldFRhZyhRdWFsaWZpZWROYW1lKG51bGxBdG9t
LCAkMSwgcGFyc2VyLT5tX2RlZmF1bHROYW1lc3BhY2UpLCBwYXJzZWRMb2NhbE5hbWUpOwogICAg
IH0KICAgICB8IGVsZW1lbnRfbmFtZSBzcGVjaWZpZXJfbGlzdCB7CiAgICAgICAgICQkID0gJDI7
Ci0gICAgICAgIGlmICgkJCkKLSAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lmaWVyc1dp
dGhFbGVtZW50TmFtZShudWxsQXRvbSwgJDEsICQkKTsKKyAgICAgICAgaWYgKCQkKSB7CisgICAg
ICAgICAgICBBdG9taWNTdHJpbmcgcGFyc2VkTG9jYWxOYW1lOworICAgICAgICAgICAgaWYgKHBh
cnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50ICYmICEkMS5pc0xvd2VyQ2FzZSgpKSB7Cisg
ICAgICAgICAgICAgICAgcGFyc2VkTG9jYWxOYW1lID0gJDE7CisgICAgICAgICAgICAgICAgJDEu
bG93ZXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lm
aWVyc1dpdGhFbGVtZW50TmFtZShudWxsQXRvbSwgJDEsIHBhcnNlZExvY2FsTmFtZSwgJCQpOwor
ICAgICAgICB9CiAgICAgfQogICAgIHwgc3BlY2lmaWVyX2xpc3QgewogICAgICAgICAkJCA9ICQx
OwogICAgICAgICBpZiAoJCQpCi0gICAgICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNX
aXRoRWxlbWVudE5hbWUobnVsbEF0b20sIHN0YXJBdG9tLCAkJCk7CisgICAgICAgICAgICBwYXJz
ZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUobnVsbEF0b20sIHN0YXJBdG9tLCBu
dWxsQXRvbSwgJCQpOwogICAgIH0KICAgICB8IG5hbWVzcGFjZV9zZWxlY3RvciBlbGVtZW50X25h
bWUgewogICAgICAgICAkJCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOwotICAg
ICAgICAkJC0+c2V0VGFnKHBhcnNlci0+ZGV0ZXJtaW5lTmFtZUluTmFtZXNwYWNlKCQxLCAkMikp
OworICAgICAgICBBdG9taWNTdHJpbmcgcGFyc2VkTG9jYWxOYW1lOworICAgICAgICBpZiAocGFy
c2VyLT5tX2NvbnRleHQuaXNIVE1MRG9jdW1lbnQgJiYgISQyLmlzTG93ZXJDYXNlKCkpIHsKKyAg
ICAgICAgICAgIHBhcnNlZExvY2FsTmFtZSA9ICQyOworICAgICAgICAgICAgJDIubG93ZXIoKTsK
KyAgICAgICAgfQorICAgICAgICAkJC0+c2V0VGFnKHBhcnNlci0+ZGV0ZXJtaW5lTmFtZUluTmFt
ZXNwYWNlKCQxLCAkMiksIHBhcnNlZExvY2FsTmFtZSk7CiAgICAgfQogICAgIHwgbmFtZXNwYWNl
X3NlbGVjdG9yIGVsZW1lbnRfbmFtZSBzcGVjaWZpZXJfbGlzdCB7CiAgICAgICAgICQkID0gJDM7
Ci0gICAgICAgIGlmICgkJCkKLSAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lmaWVyc1dp
dGhFbGVtZW50TmFtZSgkMSwgJDIsICQkKTsKKyAgICAgICAgaWYgKCQkKSB7CisgICAgICAgICAg
ICBBdG9taWNTdHJpbmcgcGFyc2VkTG9jYWxOYW1lOworICAgICAgICAgICAgaWYgKHBhcnNlci0+
bV9jb250ZXh0LmlzSFRNTERvY3VtZW50ICYmICEkMi5pc0xvd2VyQ2FzZSgpKSB7CisgICAgICAg
ICAgICAgICAgcGFyc2VkTG9jYWxOYW1lID0gJDI7CisgICAgICAgICAgICAgICAgJDIubG93ZXIo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lmaWVyc1dp
dGhFbGVtZW50TmFtZSgkMSwgJDIsIHBhcnNlZExvY2FsTmFtZSwgJCQpOworICAgICAgICB9CiAg
ICAgfQogICAgIHwgbmFtZXNwYWNlX3NlbGVjdG9yIHNwZWNpZmllcl9saXN0IHsKICAgICAgICAg
JCQgPSAkMjsKICAgICAgICAgaWYgKCQkKQotICAgICAgICAgICAgcGFyc2VyLT51cGRhdGVTcGVj
aWZpZXJzV2l0aEVsZW1lbnROYW1lKCQxLCBzdGFyQXRvbSwgJCQpOworICAgICAgICAgICAgcGFy
c2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKCQxLCBzdGFyQXRvbSwgbnVsbEF0
b20sICQkKTsKICAgICB9CiAgIDsKIApAQCAtMTE5NywxMiArMTIxOSw3IEBAIHNpbXBsZV9zZWxl
Y3Rvcl9saXN0OgogICA7CiAKIGVsZW1lbnRfbmFtZToKLSAgICBJREVOVCB7Ci0gICAgICAgIENT
U1BhcnNlclN0cmluZyYgc3RyID0gJDE7Ci0gICAgICAgIGlmIChwYXJzZXItPm1fY29udGV4dC5p
c0hUTUxEb2N1bWVudCkKLSAgICAgICAgICAgIHN0ci5sb3dlcigpOwotICAgICAgICAkJCA9IHN0
cjsKLSAgICB9CisgICAgSURFTlQKICAgICB8ICcqJyB7CiAgICAgICAgIHN0YXRpYyBMQ2hhciBz
dGFyID0gJyonOwogICAgICAgICAkJC5pbml0KCZzdGFyLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKaW5kZXggOGVjMTRiMS4uN2I0MTNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTMxMyw2ICszMTMsMjkgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBtYWtlTG93ZXIo
Y29uc3QgQ2hhcmFjdGVyVHlwZSogaW5wdXQsIENoYXJhY3RlclR5cGUqIG8KICAgICB9CiB9CiAK
K3RlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgorQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBpc0xvd2VyQ2FzZVN0cmluZyhjb25zdCBDaGFyYWN0ZXJUeXBlKiBpbnB1dCwgdW5zaWdu
ZWQgbGVuZ3RoKQoreworICAgIC8vIEZJWE1FOiBJZiB3ZSBuZWVkIFVuaWNvZGUgbG93ZXJjYXNp
bmcgaGVyZSwgdGhlbiB3ZSBwcm9iYWJseSB3YW50IHRoZSByZWFsIGtpbmQKKyAgICAvLyB0aGF0
IGNhbiBwb3RlbnRpYWxseSBjaGFuZ2UgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIHJhdGhlciB0
aGFuIHRoZSBjaGFyYWN0ZXIKKyAgICAvLyBieSBjaGFyYWN0ZXIga2luZC4gSWYgd2UgZG9uJ3Qg
bmVlZCBVbmljb2RlIGxvd2VyY2FzaW5nLCBpdCB3b3VsZCBiZSBnb29kIHRvCisgICAgLy8gc2lt
cGxpZnkgdGhpcyBmdW5jdGlvbi4KKworICAgIGlmIChjaGFyYWN0ZXJzQXJlQWxsQVNDSUkoaW5w
dXQsIGxlbmd0aCkpIHsKKyAgICAgICAgLy8gRmFzdCBjYXNlIGZvciBhbGwtQVNDSUkuCisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlm
ICh0b0FTQ0lJTG93ZXIoaW5wdXRbaV0pICE9IGlucHV0W2ldKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGVuZ3RoOyBpKyspCisgICAgICAgICAgICBpZiAoVW5pY29kZTo6dG9Mb3dlcihpbnB1dFtp
XSkgIT0gaW5wdXRbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiB0cnVlOworfQorCisKIHZvaWQgQ1NTUGFyc2VyU3RyaW5nOjpsb3dlcigpCiB7
CiAgICAgaWYgKGlzOEJpdCgpKSB7CkBAIC0zMjMsNiArMzQ2LDEzIEBAIHZvaWQgQ1NTUGFyc2Vy
U3RyaW5nOjpsb3dlcigpCiAgICAgbWFrZUxvd2VyKGNoYXJhY3RlcnMxNigpLCBjaGFyYWN0ZXJz
MTYoKSwgbGVuZ3RoKCkpOwogfQogCitib29sIENTU1BhcnNlclN0cmluZzo6aXNMb3dlckNhc2Uo
KSBjb25zdAoreworICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJuIGlzTG93ZXJDYXNl
U3RyaW5nKGNoYXJhY3RlcnM4KCksIGxlbmd0aCgpKTsKKyAgICByZXR1cm4gaXNMb3dlckNhc2VT
dHJpbmcoY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsKK30KKwogQXRvbWljU3RyaW5nIENTU1Bh
cnNlclN0cmluZzo6bG93ZXJTdWJzdHJpbmcodW5zaWduZWQgcG9zaXRpb24sIHVuc2lnbmVkIGxl
bmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9sZW5ndGggPj0gcG9zaXRpb24gKyBsZW5ndGgp
OwpAQCAtMTA4OTUsNyArMTA5MjUsNyBAQCBRdWFsaWZpZWROYW1lIENTU1BhcnNlcjo6ZGV0ZXJt
aW5lTmFtZUluTmFtZXNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4LCBjbwogICAgIHJl
dHVybiBRdWFsaWZpZWROYW1lKHByZWZpeCwgbG9jYWxOYW1lLCBtX3N0eWxlU2hlZXQtPmRldGVy
bWluZU5hbWVzcGFjZShwcmVmaXgpKTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnVwZGF0ZVNwZWNp
ZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcmVmaXgs
IGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVudE5hbWUsIENTU1BhcnNlclNlbGVjdG9yKiBzcGVj
aWZpZXJzKQordm9pZCBDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYg
ZWxlbWVudE5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgcGFyc2VkRWxlbWVudE5hbWUsIENTU1Bh
cnNlclNlbGVjdG9yKiBzcGVjaWZpZXJzKQogewogICAgIEF0b21pY1N0cmluZyBkZXRlcm1pbmVk
TmFtZXNwYWNlID0gbmFtZXNwYWNlUHJlZml4ICE9IG51bGxBdG9tICYmIG1fc3R5bGVTaGVldCA/
IG1fc3R5bGVTaGVldC0+ZGV0ZXJtaW5lTmFtZXNwYWNlKG5hbWVzcGFjZVByZWZpeCkgOiBtX2Rl
ZmF1bHROYW1lc3BhY2U7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWcgPSBRdWFsaWZpZWROYW1lKG5h
bWVzcGFjZVByZWZpeCwgZWxlbWVudE5hbWUsIGRldGVybWluZWROYW1lc3BhY2UpOwpAQCAtMTA5
MDMsNyArMTA5MzMsNyBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVt
ZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICAgICAgaWYgKCEoc3BlY2lmaWVycy0+cHNldWRvVHlwZSgpID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DdWUpKQogI2VuZGlmCi0gICAgICAgICAgICBzcGVjaWZpZXJzLT5zZXRU
YWcodGFnKTsKKyAgICAgICAgICAgIHNwZWNpZmllcnMtPnNldFRhZyh0YWcsIHBhcnNlZEVsZW1l
bnROYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA5MTYsMTQgKzEwOTQ2LDE0
IEBAIHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiAgICAgfQogCiAgICAgaWYgKGxhc3RTaGFkb3dE
ZXNjZW5kYW50LT50YWdIaXN0b3J5KCkpIHsKLSAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQt
PnRhZ0hpc3RvcnkoKS0+c2V0VGFnKHRhZyk7CisgICAgICAgIGxhc3RTaGFkb3dEZXNjZW5kYW50
LT50YWdIaXN0b3J5KCktPnNldFRhZyh0YWcsIHBhcnNlZEVsZW1lbnROYW1lKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIC8vIEZvciBzaGFkb3ctSUQgcHNldWRvLWVsZW1lbnRzIHRv
IGJlIGNvcnJlY3RseSBtYXRjaGVkLCB0aGUgU2hhZG93RGVzY2VuZGFudCBjb21iaW5hdG9yIGhh
cyB0byBiZSB1c2VkLgogICAgIC8vIFdlIHRoZXJlZm9yZSBjcmVhdGUgYSBuZXcgU2VsZWN0b3Ig
d2l0aCB0aGF0IGNvbWJpbmF0b3IgaGVyZSBpbiBhbnkgY2FzZSwgZXZlbiBpZiBtYXRjaGluZyBh
bnkgKGhvc3QpIGVsZW1lbnQgaW4gYW55IG5hbWVzcGFjZSAoaS5lLiAnKicpLgogICAgIE93blB0
cjxDU1NQYXJzZXJTZWxlY3Rvcj4gZWxlbWVudE5hbWVTZWxlY3RvciA9IGFkb3B0UHRyKG5ldyBD
U1NQYXJzZXJTZWxlY3Rvcik7Ci0gICAgZWxlbWVudE5hbWVTZWxlY3Rvci0+c2V0VGFnKHRhZyk7
CisgICAgZWxlbWVudE5hbWVTZWxlY3Rvci0+c2V0VGFnKHRhZywgcGFyc2VkRWxlbWVudE5hbWUp
OwogICAgIGxhc3RTaGFkb3dEZXNjZW5kYW50LT5zZXRUYWdIaXN0b3J5KGVsZW1lbnROYW1lU2Vs
ZWN0b3IucmVsZWFzZSgpKTsKICAgICBsYXN0U2hhZG93RGVzY2VuZGFudC0+c2V0UmVsYXRpb24o
Q1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmlu
ZGV4IDE3ZTNhN2QuLjNjODIzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTMxNiw3ICsz
MTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZE5hbWVzcGFjZShjb25zdCBBdG9taWNTdHJp
bmcmIHByZWZpeCwgY29uc3QgQXRvbWljU3RyaW5nJiB1cmkpOwogICAgIFF1YWxpZmllZE5hbWUg
ZGV0ZXJtaW5lTmFtZUluTmFtZXNwYWNlKGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4LCBjb25z
dCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSk7Ci0gICAgdm9pZCB1cGRhdGVTcGVjaWZpZXJzV2l0
aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlZml4LCBjb25zdCBB
dG9taWNTdHJpbmcmIGVsZW1lbnROYW1lLCBDU1NQYXJzZXJTZWxlY3RvciopOworICAgIHZvaWQg
dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVByZWZpeCwgY29uc3QgQXRvbWljU3RyaW5nJiBlbGVtZW50TmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBwYXJzZWRFbGVtZW50TmFtZSwgQ1NTUGFyc2VyU2VsZWN0b3IqKTsKICAgICBDU1NQ
YXJzZXJTZWxlY3RvciogdXBkYXRlU3BlY2lmaWVycyhDU1NQYXJzZXJTZWxlY3RvciosIENTU1Bh
cnNlclNlbGVjdG9yKik7CiAKICAgICB2b2lkIGludmFsaWRCbG9ja0hpdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IDEzMDFiMWMuLmNlMjc3M2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTc1LDYgKzc1LDcgQEAgc3RydWN0IENTU1BhcnNl
clN0cmluZyB7CiAgICAgdm9pZCBzZXRMZW5ndGgodW5zaWduZWQgbGVuZ3RoKSB7IG1fbGVuZ3Ro
ID0gbGVuZ3RoOyB9CiAKICAgICB2b2lkIGxvd2VyKCk7CisgICAgYm9vbCBpc0xvd2VyQ2FzZSgp
IGNvbnN0OwogCiAgICAgVUNoYXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBpKQogICAgIHsKQEAgLTE3
Niw3ICsxNzcsOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzT3duUHRyPENTU1NlbGVjdG9yPiByZWxl
YXNlU2VsZWN0b3IoKSB7IHJldHVybiBtX3NlbGVjdG9yLnJlbGVhc2UoKTsgfQogCi0gICAgdm9p
ZCBzZXRUYWcoY29uc3QgUXVhbGlmaWVkTmFtZSYgdmFsdWUpIHsgbV9zZWxlY3Rvci0+c2V0VGFn
KHZhbHVlKTsgfQorICAgIHZvaWQgc2V0VGFnKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZywgY29u
c3QgQXRvbWljU3RyaW5nJiBwYXJzZWRMb2NhbE5hbWUpIHsgbV9zZWxlY3Rvci0+c2V0VGFnKHRh
ZywgcGFyc2VkTG9jYWxOYW1lKTsgfQorICAgIHZvaWQgc2V0VGFnKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZykgeyBtX3NlbGVjdG9yLT5zZXRUYWcodGFnKTsgfQogICAgIHZvaWQgc2V0VmFsdWUo
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkgeyBtX3NlbGVjdG9yLT5zZXRWYWx1ZSh2YWx1ZSk7
IH0KICAgICB2b2lkIHNldEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSkgeyBt
X3NlbGVjdG9yLT5zZXRBdHRyaWJ1dGUodmFsdWUpOyB9CiAgICAgdm9pZCBzZXRBcmd1bWVudChj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKSB7IG1fc2VsZWN0b3ItPnNldEFyZ3VtZW50KHZhbHVl
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggNWE2ZWNjYS4uN2Y5NTllNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC02OTAsNiArNjkwLDEzIEBAIFN0cmlu
ZyBDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KCkgY29uc3QKICAgICByZXR1cm4gc3RyLnRvU3Ry
aW5nKCk7CiB9CiAKK3ZvaWQgQ1NTU2VsZWN0b3I6OnNldFBhcnNlZFRhZ05hbWUoY29uc3QgQXRv
bWljU3RyaW5nJiBwYXJzZWRUYWdOYW1lKQoreworICAgIEFTU0VSVChtX3RhZy5sb2NhbE5hbWUo
KSAhPSBwYXJzZWRUYWdOYW1lICYmICFwYXJzZWRUYWdOYW1lLmlzTnVsbCgpKTsKKyAgICBjcmVh
dGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX3BhcnNlZFRhZ05hbWUgPSBw
YXJzZWRUYWdOYW1lOworfQorCiB2b2lkIENTU1NlbGVjdG9yOjpzZXRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdmFsdWUpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1NlbGVjdG9yLmgKaW5kZXggYTVkMjM5Zi4uMDUzNjk3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Nl
bGVjdG9yLmgKQEAgLTIwMSw2ICsyMDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGJvb2wgaGFzVGFnKCkgY29uc3QgeyByZXR1cm4gbV90YWcgIT0gYW55UU5hbWUoKTsgfQogCiAg
ICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZygpIGNvbnN0IHsgcmV0dXJuIG1fdGFnOyB9
CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcGFyc2VkVGFnTmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9wYXJzZWRUYWdOYW1lIDog
bnVsbEF0b207IH0KKyAgICAgICAgYm9vbCBoYXNQYXJzZWRUYWdOYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNSYXJlRGF0YSAmJiAhbV9kYXRhLm1fcmFyZURhdGEtPm1fcGFyc2VkVGFnTmFtZS5p
c051bGwoKTsgfQorCiAgICAgICAgIC8vIEF0b21pY1N0cmluZyBpcyByZWFsbHkganVzdCBhbiBB
dG9taWNTdHJpbmdJbXBsKiBzbyB0aGUgY2FzdCBiZWxvdyBpcyBzYWZlLgogICAgICAgICAvLyBG
SVhNRTogUGVyaGFwcyBjYWxsIHNpdGVzIGNvdWxkIGJlIGNoYW5nZWQgdG8gYWNjZXB0IEF0b21p
Y1N0cmluZ0ltcGw/CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdCB7
IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBBdG9taWNTdHJpbmcqPihtX2hhc1JhcmVE
YXRhID8gJm1fZGF0YS5tX3JhcmVEYXRhLT5tX3ZhbHVlIDogJm1fZGF0YS5tX3ZhbHVlKTsgfQpA
QCAtMjA4LDcgKzIxMSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgYXJndW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9k
YXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnQgOiBudWxsQXRvbTsgfQogICAgICAgICBDU1NTZWxl
Y3Rvckxpc3QqIHNlbGVjdG9yTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBt
X2RhdGEubV9yYXJlRGF0YS0+bV9zZWxlY3Rvckxpc3QuZ2V0KCkgOiAwOyB9CiAKKyAgICAgICAg
dm9pZCBzZXRUYWcoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnLCBjb25zdCBBdG9taWNTdHJpbmcm
IHBhcnNlZExvY2FsTmFtZSkgeworICAgICAgICAgICAgbV90YWcgPSB0YWc7CisgICAgICAgICAg
ICBpZiAoIXBhcnNlZExvY2FsTmFtZS5pc051bGwoKSkKKyAgICAgICAgICAgICAgICBzZXRQYXJz
ZWRUYWdOYW1lKHBhcnNlZExvY2FsTmFtZSk7CisgICAgICAgIH0KICAgICAgICAgdm9pZCBzZXRU
YWcoY29uc3QgUXVhbGlmaWVkTmFtZSYgdmFsdWUpIHsgbV90YWcgPSB2YWx1ZTsgfQorICAgICAg
ICB2b2lkIHNldFBhcnNlZFRhZ05hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgICAgIHZvaWQgc2V0QXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICAgICAgdm9pZCBzZXRBcmd1bWVudChjb25z
dCBBdG9taWNTdHJpbmcmKTsKQEAgLTI2Niw2ICsyNzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBRdWFsaWZpZWROYW1lIG1fYXR0cmlidXRlOyAvLyB1c2VkIGZvciBhdHRy
aWJ1dGUgc2VsZWN0b3IKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX2FyZ3VtZW50OyAvLyBV
c2VkIGZvciA6Y29udGFpbnMsIDpsYW5nIGFuZCA6bnRoLSoKICAgICAgICAgICAgIE93blB0cjxD
U1NTZWxlY3Rvckxpc3Q+IG1fc2VsZWN0b3JMaXN0OyAvLyBVc2VkIGZvciA6LXdlYmtpdC1hbnkg
YW5kIDpub3QKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX3BhcnNlZFRhZ05hbWU7CiAgICAg
ICAgIAogICAgICAgICBwcml2YXRlOgogICAgICAgICAgICAgUmFyZURhdGEoUGFzc1JlZlB0cjxB
dG9taWNTdHJpbmdJbXBsPiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggYTdjMzJk
Zi4uNGIzNTQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMTQ1LDYgKzE0NSw3IEBAIHZv
aWQgUnVsZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV9pZFJ1bGVzKTsK
ICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV9jbGFzc1J1bGVzKTsKICAgICByZXBvcnRB
dG9tUnVsZU1hcCgmaW5mbywgbV90YWdSdWxlcyk7CisgICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmlu
Zm8sIG1fcGFyc2VkTmFtZVRhZ1J1bGVzKTsKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywg
bV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbGlua1Bz
ZXVkb0NsYXNzUnVsZXMpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTIzOCw2ICsyMzks
MTMgQEAgdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgc2Vs
ZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFIKICAgICB9CiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbE5hbWUgPSBzZWxlY3Rvci0+dGFnKCkubG9jYWxOYW1lKCk7CiAgICAgaWYgKGxv
Y2FsTmFtZSAhPSBzdGFyQXRvbSkgeworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHBhcnNl
ZFRhZ05hbWUgPSBzZWxlY3Rvci0+cGFyc2VkVGFnTmFtZSgpOworICAgICAgICBpZiAoIXBhcnNl
ZFRhZ05hbWUuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIC8vIFdoZW4gcGFyc2VkVGFnTmFtZSBp
cyBzZXQsIGl0IHdpbGwgYWx3YXlzIGhhdmUgYXQgbGVhc3Qgb25lIHVwcGVyLWNhc2UgbGV0dGVy
LCB3aGlsZSBsb2NhbE5hbWUKKyAgICAgICAgICAgIC8vIHdpbGwgYWx3YXlzIGhhdmUgYWxsLWxv
d2VyIGNhc2UgbGV0dGVycy4gVGhhdCBtZWFucywgd2UgY291bGQgbmV2ZXIgbWF0Y2ggcnVsZXMg
ZnJvbSBib3RoIHNldHMKKyAgICAgICAgICAgIC8vIGF0IHRoZSBzYW1lIHRpbWUsIHNvIHRoZXJl
J3Mgbm8gbmVlZCB0byBlbGltaW5hdGUgZHVwbGljYXRlcy4KKyAgICAgICAgICAgIGFkZFRvUnVs
ZVNldChwYXJzZWRUYWdOYW1lLmltcGwoKSwgbV9wYXJzZWROYW1lVGFnUnVsZXMsIHJ1bGVEYXRh
KTsKKyAgICAgICAgfQogICAgICAgICBhZGRUb1J1bGVTZXQobG9jYWxOYW1lLmltcGwoKSwgbV90
YWdSdWxlcywgcnVsZURhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzY1LDYgKzM3
Myw3IEBAIHZvaWQgUnVsZVNldDo6c2hyaW5rVG9GaXQoKQogICAgIHNocmlua01hcFZlY3RvcnNU
b0ZpdChtX2lkUnVsZXMpOwogICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX2NsYXNzUnVsZXMp
OwogICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX3RhZ1J1bGVzKTsKKyAgICBzaHJpbmtNYXBW
ZWN0b3JzVG9GaXQobV9wYXJzZWROYW1lVGFnUnVsZXMpOwogICAgIHNocmlua01hcFZlY3RvcnNU
b0ZpdChtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyk7CiAgICAgbV9saW5rUHNldWRvQ2xhc3NS
dWxlcy5zaHJpbmtUb0ZpdCgpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5oCmluZGV4IGVkZmVmZDMuLjI5YTI0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtMTE4LDYg
KzExOCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBpZFJ1bGVzKEF0
b21pY1N0cmluZ0ltcGwqIGtleSkgY29uc3QgeyByZXR1cm4gbV9pZFJ1bGVzLmdldChrZXkpOyB9
CiAgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogY2xhc3NSdWxlcyhBdG9taWNTdHJpbmdJbXBs
KiBrZXkpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NSdWxlcy5nZXQoa2V5KTsgfQogICAgIGNvbnN0
IFZlY3RvcjxSdWxlRGF0YT4qIHRhZ1J1bGVzKEF0b21pY1N0cmluZ0ltcGwqIGtleSkgY29uc3Qg
eyByZXR1cm4gbV90YWdSdWxlcy5nZXQoa2V5KTsgfQorICAgIGNvbnN0IFZlY3RvcjxSdWxlRGF0
YT4qIHBhcnNlZE5hbWVUYWdSdWxlcyhBdG9taWNTdHJpbmdJbXBsKiBrZXkpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyc2VkTmFtZVRhZ1J1bGVzLmdldChrZXkpOyB9CiAgICAgY29uc3QgVmVjdG9yPFJ1
bGVEYXRhPiogc2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKEF0b21pY1N0cmluZ0ltcGwqIGtleSkg
Y29uc3QgeyByZXR1cm4gbV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMuZ2V0KGtleSk7IH0KICAg
ICBjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBsaW5rUHNldWRvQ2xhc3NSdWxlcygpIGNvbnN0IHsg
cmV0dXJuICZtX2xpbmtQc2V1ZG9DbGFzc1J1bGVzOyB9CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQpAQCAtMTM4LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBBdG9tUnVsZU1hcCBtX2lkUnVsZXM7
CiAgICAgQXRvbVJ1bGVNYXAgbV9jbGFzc1J1bGVzOwogICAgIEF0b21SdWxlTWFwIG1fdGFnUnVs
ZXM7CisgICAgQXRvbVJ1bGVNYXAgbV9wYXJzZWROYW1lVGFnUnVsZXM7CiAgICAgQXRvbVJ1bGVN
YXAgbV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXM7CiAgICAgVmVjdG9yPFJ1bGVEYXRhPiBtX2xp
bmtQc2V1ZG9DbGFzc1J1bGVzOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvckNoZWNrZXIuaAppbmRleCAyYTk3ZmM4Li5lYjdjYzc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC0xMzQsNyArMTM0LDcgQEAgaW5saW5lIGJvb2wgU2Vs
ZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IENT
U1NlbGVjdG8KIHsKICAgICBpZiAoIXNlbGVjdG9yLT5oYXNUYWcoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUgPSBzZWxlY3Rvci0+dGFn
KCkubG9jYWxOYW1lKCk7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUgPSAoc2Vs
ZWN0b3ItPmhhc1BhcnNlZFRhZ05hbWUoKSAmJiAhZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKSA/
IHNlbGVjdG9yLT5wYXJzZWRUYWdOYW1lKCkgOiBzZWxlY3Rvci0+dGFnKCkubG9jYWxOYW1lKCk7
CiAgICAgaWYgKGxvY2FsTmFtZSAhPSBzdGFyQXRvbSAmJiBsb2NhbE5hbWUgIT0gZWxlbWVudC0+
bG9jYWxOYW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWVzcGFjZVVSSSA9IHNlbGVjdG9yLT50YWcoKS5uYW1lc3BhY2VVUkkoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCmluZGV4IGNlYWE3NjguLmI4MzNlNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcApAQCAtMTI1LDYgKzEyNSwxMCBAQCBzdGF0
aWMgaW5saW5lIHZvaWQgY29sbGVjdERlc2NlbmRhbnRTZWxlY3RvcklkZW50aWZpZXJIYXNoZXMo
Y29uc3QgQ1NTU2VsZWN0b3IqCiAgICAgfQogICAgIGlmIChoYXNoID09IGVuZCkKICAgICAgICAg
cmV0dXJuOworICAgIC8vIElmIHdlIGxvd2VyLWNhc2VkIHRoZSB0YWcgbmFtZSBkdXJpbmcgcGFy
c2UgdGltZSwgd2UgY2Fubm90IHJlamVjdCB0aGUgc2VsZWN0b3IgYmFzZWQgb24gdGhlIHRhZyBu
YW1lLAorICAgIC8vIGFzIGl0IG1pZ2h0IGJlIG1hdGNoaW5nIGEgbm9uLUhUTUwgZWxlbWVudCB0
aGF0IGhhcyBhIG1peGVkLWNhc2UgY2Fub25pY2FsIHRhZyBuYW1lLgorICAgIGlmICghc2VsZWN0
b3ItPnBhcnNlZFRhZ05hbWUoKS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOwogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gc2VsZWN0b3ItPnRhZygpLmxvY2FsTmFtZSgpOwog
ICAgIGlmIChsb2NhbE5hbWUgIT0gc3RhckF0b20pCiAgICAgICAgICgqaGFzaCsrKSA9IGxvY2Fs
TmFtZS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogVGFnTmFtZVNhbHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKaW5kZXggYTNkMTdlYy4uMzAyNDg0NzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTY4MSw2ICs2ODEsMTMgQEAgdm9pZCBTdHlsZVJlc29s
dmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVz
dCwgaW50JgogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0
LnJ1bGVTZXQtPmxpbmtQc2V1ZG9DbGFzc1J1bGVzKCksIG1hdGNoUmVxdWVzdCwgZmlyc3RSdWxl
SW5kZXgsIGxhc3RSdWxlSW5kZXgpOwogICAgIGlmIChtX3NlbGVjdG9yQ2hlY2tlci5tYXRjaGVz
Rm9jdXNQc2V1ZG9DbGFzcyhtX2VsZW1lbnQpKQogICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxl
c0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPmZvY3VzUHNldWRvQ2xhc3NSdWxlcygpLCBt
YXRjaFJlcXVlc3QsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4KTsKKyAgICBpZiAobV9l
bGVtZW50LT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpICYmICFtX2VsZW1lbnQtPmlzSFRN
TEVsZW1lbnQoKSkgeworICAgICAgICAvLyBOb24gSFRNTCBlbGVtZW50cyBsaWtlIFNWRyBhcmUg
Z29pbmcgdG8gdXNlIGNhc2Utc2Vuc2l0aXZlIG1hdGNoaW5nIGZvciB0aGUgdGFnIG5hbWVzLCBz
byB3ZSBuZWVkIHRvIHVzZSB0aGUgbGlzdAorICAgICAgICAvLyBvZiBydWxlcyB0aGF0IHByZXNl
cnZlZCB0aGUgcGFyc2VkIHRhZyBuYW1lLiBOb3RlIHRoYXQgdGhlcmUncyBubyBuZWVkIHRvIGxv
b2sgZm9yIGR1cGxpY2F0ZXMsIGFzIHRoZSAicGFyc2VkVGFnUnVsZXMiIG9ubHkKKyAgICAgICAg
Ly8gY29udGFpbiB0YWdzIHdpdGggYXQgbGVhc3Qgb25lIHVwcGVyLWNhc2UgbGV0dGVyLCB3aGls
ZSB0aGUgInRhZ1J1bGVzIiBjb250YWluIHJ1bGVzIHdpdGgganVzdCBsb3dlciBjYXNlIGxldHRl
cnMsIG1lYW5pbmcKKyAgICAgICAgLy8gdGhhdCB0aGUgZWxlbWVudCBjYW5vbmljYWwgZm9ybSBv
ZiB0aGUgdGFnIGNhbiBtYXRjaCBydWxlcyBmcm9tIGp1c3Qgb25lIGxpc3QuCisgICAgICAgIGNv
bGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+cGFyc2VkTmFt
ZVRhZ1J1bGVzKG1fZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBm
aXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CisgICAgfQogICAgIGNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+dGFnUnVsZXMobV9lbGVtZW50LT5s
b2NhbE5hbWUoKS5pbXBsKCkpLCBtYXRjaFJlcXVlc3QsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVs
ZUluZGV4KTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1
bGVTZXQtPnVuaXZlcnNhbFJ1bGVzKCksIG1hdGNoUmVxdWVzdCwgZmlyc3RSdWxlSW5kZXgsIGxh
c3RSdWxlSW5kZXgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185327</attachid>
            <date>2013-01-29 15:57:06 -0800</date>
            <delta_ts>2013-01-29 17:21:50 -0800</delta_ts>
            <desc>Patch V5</desc>
            <filename>bug83438_10.patch</filename>
            <type>text/plain</type>
            <size>76499</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDAzNmU1Li43NDUxZjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDEt
MjkgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIHF1
ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2FzZSBlbGVtZW50cyBpbXBv
cnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1pbnNlbnNpdGl2ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWlu
c2Vuc2l0aXZlLmh0bWw6IEFkZGVkLiBDaGVja2luZyB0aGF0IHRhZyBuYW1lcyBhcmUgc3RpbGwg
bWF0Y2hlZCB1c2luZyBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIGluIEhUTUwgZG9jdW1lbnRz
LgorICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LXNlbnNpdGl2ZS54aHRtbDogQWRkZWQuIENoZWNraW5nIHRoYXQgdGFnIG5hbWVzIGFyZSBzdGls
bCBtYXRjaGVkIHVzaW5nIGNhc2Utc2Vuc2l0aXZlIG1hdGNoaW5nIGluIFhIVE1MIGRvY3VtZW50
cy4KKyAgICAgICAgKiBzdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MuaHRtbDogQWRkZWQu
IENoZWNraW5nIHRoYXQgdGFnIG5hbWVzIGFyZSBtYXRjaGVkIHVzaW5nIGNhc2Utc2Vuc2l0aXZl
IG1hdGNoaW5nIGZvciBTVkcgdGFncyBpbnNpZGUgSFRNTCBkb2N1bWVudHMuIFRoaXMgdGVzdCBp
cyBhY3R1YWxseSB1c2luZyBzdHlsZSBydWxlcyAKKyAgICAgICAgYW5kIGNoZWNraW5nIHRoZSBj
b21wdXRlZCBzdHlsZS4KKyAgICAgICAgKiBzdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmct
aW4taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vdGFnLWNhc2Ut
c2Vuc2l0aXZlLXN2Zy1pbi1odG1sLmh0bWw6IEFkZGVkLiBDaGVja2luZyB0aGF0IHRhZyBuYW1l
cyBhcmUgbWF0Y2hlZCB1c2luZyBjYXNlLXNlbnNpdGl2ZSBtYXRjaGluZyBmb3IgU1ZHIHRhZ3Mg
aW5zaWRlIEhUTUwgZG9jdW1lbnRzLgorCiAyMDEzLTAxLTI5ICBPbGl2ZXIgSHVudCAgPG9saXZl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE0MDU5NCk6IFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEIGluIEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWlu
c2Vuc2l0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mMWFkMTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0
b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignU1BBTicpIGlzIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJyku
d2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdTUEFOID4gaW1nJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZzEn
KQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpLndlYmtpdE1hdGNoZXNTZWxl
Y3RvcignU1BBTiA+IGltZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
U1BBTiBpbWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOIGlt
ZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIFNQQU4n
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVsIGxpIFNQ
QU4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSB0ZXh0
YXJlYSArIFNQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcign
ZGl2IHVsIGxpIHRleHRhcmVhICsgU1BBTicpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBw
ZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNo
ZXNTZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2RpdiB1bCBsaSBzcEFuJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vw
cGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ2RpdiB1bCBsaSBzcEFuJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1
cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0
Y2hlc1NlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1h
dGNoZXNTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVl
cnlTZWxlY3Rvcignc3BhbjEnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
c3BhbiNVUFBFUjEnKSBpcyBudWxsCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vua25v
d25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ3Vua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rp
diB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCdkaXYgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndWwgKyB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vu
a25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJyku
d2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bCArIHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ0RJViB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vu
a25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdESVYgdW5rbm93blRhZycpIGlzIHRy
dWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignVUwgKyB1bmtub3duVGFnJykgaXMgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdVTCArIHVua25v
d25UYWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vua25vd250YWcn
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3Vu
a25vd250YWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1Vua25vd250
YWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3Io
J1Vua25vd250YWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1
bmtub3dudGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1Nl
bGVjdG9yKCdkaXYgdW5rbm93bnRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigndWwnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWwxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3VsMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcigndWwnKSBpcyB0
cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1VMJykgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3VsMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bDEnKS53ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoJ1VMJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ3Vua25vd250YWcxJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ29s
JykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ09MJykgaXMgbnVsbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1pbnNlbnNp
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmZmFlYzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2Fz
ZS1pbnNlbnNpdGl2ZS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPCEtLSBUZXN0aW5nIHRoYXQgaW4g
SFRNTCBkb2N1bWVudHMgQ1NTIHNlbGVjdG9ycyB1c2UgY2FzZS1pbnNlbnNpdGl2ZSB0YWcgbmFt
ZSBtYXRjaGluZy4gLS0+CisgICAgPGRpdiBpZD0iY29udGVudCI+CisgICAgICAgIDxkaXYgc3R5
bGU9ImRpc3BsYXk6IG5vbmUiPgorICAgICAgICAgICAgPHVsIGlkPSJ1bDEiPgorICAgICAgICAg
ICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTEi
PjwvdGV4dGFyZWE+CisgICAgICAgICAgICAgICAgICAgIDxTUEFOIGlkPSJ1cHBlcjEiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPGltZyBpZD0iaW1nMSIgLz4KKyAgICAgICAgICAgICAgICAg
ICAgPC9TUEFOPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAg
ICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcxIj48L3Vua25vd25UYWc+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiLCAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBlbGVtZW50SWQgKyAiJykiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBlbGVtZW50SWQg
KyAiJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcihzZWxlY3Rv
cikgeworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIg
KyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
IlNQQU4gPiBpbWciLCAiaW1nMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQ
QU4gaW1nIiwgImltZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdWwg
bGkgU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYg
dWwgbGkgdGV4dGFyZWEgKyBTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5n
U2VsZWN0b3IoImRpdiB1bCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNo
aW5nU2VsZWN0b3IoImRpdiB1bCBsaSBzcEFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoIkRJViB1bCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVj
a01hdGNoaW5nU2VsZWN0b3IoImRpdiBVTCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBj
aGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInNwYW4xIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hp
bmdTZWxlY3Rvcigic3BhbiNVUFBFUjEiKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoInVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJkaXYgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoInVsICsgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAg
ICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIkRJViB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7
CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVUwgKyB1bmtub3duVGFnIiwgInVua25v
d25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93bnRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlVua25vd250YWci
LCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdW5r
bm93bnRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
InVsIiwgInVsMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlVMIiwgInVsMSIp
OworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInVua25vd250YWcxIik7CisgICAg
ICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3Rvcigib2wiKTsKKyAgICAgICAgY2hlY2tOb25NYXRj
aGluZ1NlbGVjdG9yKCJPTCIpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LXNlbnNpdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQ
SS90YWctY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjY2ZDI4NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjQgQEAKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlz
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicp
IGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgdGV4dGFyZWEg
KyBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1
bCBsaSB0ZXh0YXJlYSArIFNQQU4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cignZGl2IHVsIGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
ZGl2IHVsIGxpIHNwQW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRElW
IHVsIGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignZGl2IFVM
IGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93blRh
ZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcign
dW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdW5r
bm93blRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxl
Y3RvcignZGl2IHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cigndWwgKyB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25U
YWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0
TWF0Y2hlc1NlbGVjdG9yKCd1bCArIHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQu
cXVlcnlTZWxlY3RvcignRElWIHVua25vd25UYWcnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVl
cnlTZWxlY3RvcignVUwgKyB1bmtub3duVGFnJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5
U2VsZWN0b3IoJ3Vua25vd25UYWcxJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ3Vua25vd250YWcnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignVW5r
bm93bnRhZycpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdW5rbm93
bnRhZycpIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90
YWctY2FzZS1zZW5zaXRpdmUueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQ
SS90YWctY2FzZS1zZW5zaXRpdmUueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWIyZWNkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Nl
bGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS54aHRtbApAQCAtMCwwICsxLDU0IEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgCisgICAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIFN0cmljdC8vRU4iCisgICAgICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBYSFRN
TCBkb2N1bWVudHMgQ1NTIHNlbGVjdG9ycyB1c2UgY2FzZS1zZW5zaXRpdmUgdGFnIG5hbWUgbWF0
Y2hpbmcuIC0tPgorICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgorICAgICAgICA8ZGl2IHN0eWxlPSJk
aXNwbGF5OiBub25lIj4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+Cisg
ICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj48L3RleHRhcmVhPgor
ICAgICAgICAgICAgICAgICAgICA8U1BBTiBpZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAg
ICAgICAgPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8dW5rbm93blRhZyBp
ZD0idW5rbm93blRhZzEiPjwvdW5rbm93blRhZz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+
CisgICAgPHNjcmlwdD4KKyAgICA8IVtDREFUQVsgCisgICAgICAgIHZhciBjb250ZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tN
YXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIsICJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKSIpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53
ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZU51bGwoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVj
dG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
ImRpdiB1bCBsaSBTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoImRpdiB1bCBsaSB0ZXh0YXJlYSArIFNQQU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNr
Tm9uTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIHNwYW4iKTsKKyAgICAgICAgY2hlY2tOb25N
YXRjaGluZ1NlbGVjdG9yKCJkaXYgdWwgbGkgc3BBbiIpOworICAgICAgICBjaGVja05vbk1hdGNo
aW5nU2VsZWN0b3IoIkRJViB1bCBsaSBzcGFuIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdT
ZWxlY3RvcigiZGl2IFVMIGxpIHNwYW4iKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoInVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJkaXYgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoInVsICsgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAg
ICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoIkRJViB1bmtub3duVGFnIik7CisgICAgICAgIGNo
ZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiVUwgKyB1bmtub3duVGFnIik7CisgICAgICAgIGNoZWNr
Tm9uTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRj
aGluZ1NlbGVjdG9yKCJ1bmtub3dudGFnIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxl
Y3RvcigiVW5rbm93bnRhZyIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoImRp
diB1bmtub3dudGFnIik7CisgICAgXV0+IAorICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvY2FzZS1zZW5zaXRpdmUt
dGFncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRh
Z3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YjY3
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZl
LXRhZ3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1BBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKSkuY29sb3IgaXMgInJnYigw
LCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MiIpKS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYzIikpLmNvbG9yIGlz
ICJyZ2IoMCwgMTI4LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZvMSIpKS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmbzIiKSkuY29s
b3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZm8zIikpLmNvbG9yIGlzICJyZ2IoMCwgMTI4LCAwKSIKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvNCIp
KS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaXJjbGUxIikpLmZpbGwgaXMgIiMwMDgwMDAiCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaXJj
bGUyIikpLmZpbGwgaXMgIiMwMDgwMDAiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaXJjbGUzIikpLmZpbGwgaXMgIiMwMDgwMDAiCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wMSIp
KS5zdG9wQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcDIiKSkuc3RvcENvbG9yIGlzICJyZ2Io
MCwgMTI4LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0b3AzIikpLnN0b3BDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wNCIpKS5z
dG9wQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcDUiKSkuc3RvcENvbG9yIGlzICJyZ2IoMCwg
MTI4LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInN0b3A2IikpLnN0b3BDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wNyIpKS5zdG9w
Q29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcDgiKSkuc3RvcENvbG9yIGlzICJyZ2IoMCwgMTI4
LCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MuaHRt
bCBiL0xheW91dFRlc3RzL3N2Zy9jc3MvY2FzZS1zZW5zaXRpdmUtdGFncy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNDhkOGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MuaHRtbApAQCAtMCwwICsxLDE5
MSBAQAorCis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICBAbmFtZXNwYWNlIHN2ZyAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciOworCisgICAgICAgICAgICAucmVkLWNvbG9yIHsKKyAgICAgICAgICAgICAgICBjb2xvcjog
cmVkOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuZ3JlZW4tY29sb3IgeworICAgICAg
ICAgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLnJl
ZC1maWxsIHsKKyAgICAgICAgICAgICAgICBmaWxsOiByZWQ7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIC5ncmVlbi1maWxsIHsKKyAgICAgICAgICAgICAgICBmaWxsOiBncmVlbjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLnJlZC1zdG9wLWNvbG9yIHsKKyAgICAgICAgICAg
ICAgICBzdG9wLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ncmVl
bi1zdG9wLWNvbG9yIHsKKyAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiBncmVlbjsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgLmdyb3VwMCBkaXY6bnRoLW9mLXR5cGUoMSksCisgICAg
ICAgICAgICAuZ3JvdXAwIERJVjpudGgtb2YtdHlwZSgyKSwKKyAgICAgICAgICAgIC5ncm91cDAg
RGl2Om50aC1vZi10eXBlKDMpLAorICAgICAgICAgICAgLmdyb3VwMSBmb3JlaWduT2JqZWN0Om50
aC1vZi10eXBlKDMpIHsKKyAgICAgICAgICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC5ncm91cDEgZm9yZWlnbm9iamVjdDpudGgtb2YtdHlwZSgxKSwK
KyAgICAgICAgICAgIC5ncm91cDEgRk9SRUlHTk9CSkVDVDpudGgtb2YtdHlwZSgyKSwKKyAgICAg
ICAgICAgIC5ncm91cDEgRm9yZWlnbk9iamVjdDpudGgtb2YtdHlwZSg0KQorICAgICAgICAgICAg
eyAKKyAgICAgICAgICAgICAgICBjb2xvcjogcmVkOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuZ3JvdXAyIGNpcmNsZTpudGgtb2YtdHlwZSgxKQorICAgICAgICAgICAgeyAKKyAgICAg
ICAgICAgICAgICBmaWxsOiBncmVlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmdy
b3VwMiBDSVJDTEU6bnRoLW9mLXR5cGUoMiksCisgICAgICAgICAgICAuZ3JvdXAyIENpcmNsZTpu
dGgtb2YtdHlwZSgzKSB7CisgICAgICAgICAgICAgICAgLyogTWF0Y2hpbmcgYW55IG9mIHRoZXNl
IHNlbGVjdG9ycyBpcyBiYWQgYXMgU1ZHIHNob3VsZCB1c2UgY2FzZS1zZW5zaXRpdmUgbWF0Y2hp
bmcuICovCisgICAgICAgICAgICAgICAgZmlsbDogcmVkOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAuZ3JvdXAzIGxpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDMpIHN0b3AgeworICAg
ICAgICAgICAgICAgIHN0b3AtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuZ3JvdXAzIGxpbmVhcmdyYWRpZW50Om50aC1vZi10eXBlKDEpIHN0b3AsCisgICAgICAg
ICAgICAuZ3JvdXAzIExJTkVBUkdSQURJRU5UOm50aC1vZi10eXBlKDIpIHN0b3AsCisgICAgICAg
ICAgICAuZ3JvdXAzIExpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDQpIHN0b3AKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAvKiBNYXRjaGluZyBhbnkgb2YgdGhlc2Ugc2VsZWN0b3Jz
IGlzIGJhZCBhcyBTVkcgc2hvdWxkIHVzZSBjYXNlLXNlbnNpdGl2ZSBtYXRjaGluZy4gKi8KKyAg
ICAgICAgICAgICAgICBzdG9wLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIC5ncm91cDQgc3ZnfGxpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDMpIHN0b3AgeworICAg
ICAgICAgICAgICAgIHN0b3AtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuZ3JvdXA0IHN2Z3xsaW5lYXJncmFkaWVudDpudGgtb2YtdHlwZSgxKSBzdG9wLAorICAg
ICAgICAgICAgLmdyb3VwNCBzdmd8TElORUFSR1JBRElFTlQ6bnRoLW9mLXR5cGUoMikgc3RvcCwK
KyAgICAgICAgICAgIC5ncm91cDQgc3ZnfExpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDQpIHN0
b3AKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKiBNYXRjaGluZyBhbnkgb2YgdGhl
c2Ugc2VsZWN0b3JzIGlzIGJhZCBhcyBTVkcgc2hvdWxkIHVzZSBjYXNlLXNlbnNpdGl2ZSBtYXRj
aGluZy4gKi8KKyAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Z3JvdXAwIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkaXYxIiBjbGFzcz0icmVkLWNvbG9y
Ij5IVE1MIGVsZW1lbnQgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNlbGVjdG9yLjwvZGl2Pgor
ICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRpdjIiIGNsYXNzPSJyZWQtY29sb3IiPkhUTUwgZWxl
bWVudCBtYXRjaGVkIHVzaW5nIHVwcGVyIGNhc2Ugc2VsZWN0b3IuPC9kaXY+CisgICAgICAgICAg
ICAgICAgPGRpdiBpZD0iZGl2MyIgY2xhc3M9InJlZC1jb2xvciI+SFRNTCBlbGVtZW50IG1hdGNo
ZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxlY3Rvci48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2Pgor
CisgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVy
c2lvbj0iMS4xIiBoZWlnaHQ9IjkwMCIgd2lkdGg9IjgwMCI+CisgICAgICAgICAgICAgICAgPGcg
Y2xhc3M9Imdyb3VwMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMTApIj4KKyAgICAgICAgICAg
ICAgICAgICAgPGZvcmVpZ25PYmplY3QgaWQ9ImZvMSIgY2xhc3M9ImdyZWVuLWNvbG9yIiB5PSIw
IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIyMCI+CisgICAgICAgICAgICAgICAgICAgICAgICBTVkcg
Zm9yZWlnbiBvYmplY3QgaXMgTk9UIG1hdGNoZWQgdXNpbmcgbG93ZXIgY2FzZSBzZWxlY3Rvci4K
KyAgICAgICAgICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAgICAgICAgICAgICAg
ICA8Zm9yZWlnbk9iamVjdCBpZD0iZm8yIiBjbGFzcz0iZ3JlZW4tY29sb3IiIHk9IjQwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIyMCI+CisgICAgICAgICAgICAgICAgICAgICAgICBTVkcgZm9yZWln
biBvYmplY3QgaXMgTk9UIG1hdGNoZWQgdXNpbmcgdXBwZXIgY2FzZSBzZWxlY3Rvci4KKyAgICAg
ICAgICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAgICAgICAgICAgICAgICA8Zm9y
ZWlnbk9iamVjdCBpZD0iZm8zIiBjbGFzcz0icmVkLWNvbG9yIiB5PSI4MCIgd2lkdGg9IjEwMCUi
IGhlaWdodD0iMjAiPgorICAgICAgICAgICAgICAgICAgICAgICAgU1ZHIGZvcmVpZ24gb2JqZWN0
IGlzIG1hdGNoZWQgdXNpbmcgY2Fub25pY2FsIGZvcm0gc2VsZWN0b3IuCisgICAgICAgICAgICAg
ICAgICAgIDwvZm9yZWlnbk9iamVjdD4KKyAgICAgICAgICAgICAgICAgICAgPGZvcmVpZ25PYmpl
Y3QgaWQ9ImZvNCIgY2xhc3M9ImdyZWVuLWNvbG9yIiB5PSIxMjAiIHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjIwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIFNWRyBmb3JlaWduIG9iamVjdCBpcyBO
T1QgbWF0Y2hlZCB1c2luZyBtaXhlZCBjYXNlIHNlbGVjdG9yLgorICAgICAgICAgICAgICAgICAg
ICA8L2ZvcmVpZ25PYmplY3Q+CisgICAgICAgICAgICAgICAgPC9nPgorCisgICAgICAgICAgICAg
ICAgPGcgY2xhc3M9Imdyb3VwMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUsIDE5MCkiPgorICAg
ICAgICAgICAgICAgICAgICA8bGluZSB4MT0iLTI1IiB5MT0iLTMwIiB4Mj0iMTAwJSIgeTI9Ii0z
MCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9ImdyYXkiPjwvbGluZT4KKworICAgICAgICAgICAg
ICAgICAgICA8Y2lyY2xlIGlkPSJjaXJjbGUxIiBjbGFzcz0icmVkLWZpbGwiIGN5PSIwIiByPSIy
MCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiAvPgorICAgICAgICAgICAgICAgICAg
ICA8dGV4dCB4PSI1MCIgeT0iMCI+Q2lyY2xlIFNWRyBlbGVtZW50IGlzIG1hdGNoZWQgdXNpbmcg
bG93ZXIgY2FzZSAvIGNhbm9uaWNhbCBmb3JtIHNlbGVjdG9yPC90ZXh0PgorCisgICAgICAgICAg
ICAgICAgICAgIDxjaXJjbGUgaWQ9ImNpcmNsZTIiIGNsYXNzPSJncmVlbi1maWxsIiBjeT0iNjAi
IHI9IjIwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIC8+CisgICAgICAgICAgICAg
ICAgICAgIDx0ZXh0IHg9IjUwIiB5PSI2MCI+Q2lyY2xlIFNWRyBlbGVtZW50IGlzIE5PVCBtYXRj
aGVkIHVzaW5nIHVwcGVyIGNhc2Ugc2VsZWN0b3I8L3RleHQ+CisKKyAgICAgICAgICAgICAgICAg
ICAgPGNpcmNsZSBpZD0iY2lyY2xlMyIgY2xhc3M9ImdyZWVuLWZpbGwiIGN5PSIxMjAiIHI9IjIw
IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIC8+CisgICAgICAgICAgICAgICAgICAg
IDx0ZXh0IHg9IjUwIiB5PSIxMjAiPkNpcmNsZSBTVkcgZWxlbWVudCBpcyBOT1QgbWF0Y2hlZCB1
c2luZyBtaXhlZCBjYXNlIHNlbGVjdG9yPC90ZXh0PgorICAgICAgICAgICAgICAgIDwvZz4KKwor
ICAgICAgICAgICAgICAgIDxnIGNsYXNzPSJncm91cDMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1
LCAzNzApIj4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9Ii0yNSIgeTE9Ii0zMCIgeDI9
IjEwMCUiIHkyPSItMzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJncmF5Ij48L2xpbmU+CisK
KyAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJHcmFkaWVudDEiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPHN0b3AgaWQ9InN0b3AxIiBvZmZzZXQ9IjAlIiBjbGFzcz0i
Z3JlZW4tc3RvcC1jb2xvciIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVu
dD4KKyAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeT0iMCIgcj0iMjAiIHN0cm9rZT0iYmxh
Y2siIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0idXJsKCNHcmFkaWVudDEpIiAvPgorICAgICAgICAg
ICAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBpcyBOT1QgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNlbGVjdG9yPC90ZXh0PgorCisg
ICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQyIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdG9wIGlkPSJzdG9wMiIgb2Zmc2V0PSIwJSIgY2xhc3M9Imdy
ZWVuLXN0b3AtY29sb3IiIC8+CisgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+
CisgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3k9IjYwIiByPSIyMCIgc3Ryb2tlPSJibGFj
ayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50MikiIC8+CisgICAgICAgICAg
ICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSI2MCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBpcyBOT1QgbWF0Y2hlZCB1c2luZyB1cHBlciBjYXNlIHNlbGVjdG9yPC90ZXh0PgorCisg
ICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQzIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdG9wIGlkPSJzdG9wMyIgb2Zmc2V0PSIwJSIgY2xhc3M9InJl
ZC1zdG9wLWNvbG9yIiAvPgorICAgICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50Pgor
ICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN5PSIxMjAiIHI9IjIwIiBzdHJva2U9ImJsYWNr
IiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InVybCgjR3JhZGllbnQzKSIgLz4KKyAgICAgICAgICAg
ICAgICAgICAgPHRleHQgeD0iNTAiIHk9IjEyMCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBpcyBtYXRjaGVkIHVzaW5nIGNhbm9uaWNhbCBmb3JtIHNlbGVjdG9yPC90ZXh0PgorCisg
ICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQ0Ij4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdG9wIGlkPSJzdG9wNCIgb2Zmc2V0PSIwJSIgY2xhc3M9Imdy
ZWVuLXN0b3AtY29sb3IiIC8+CisgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+
CisgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3k9IjE4MCIgcj0iMjAiIHN0cm9rZT0iYmxh
Y2siIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0idXJsKCNHcmFkaWVudDQpIiAvPgorICAgICAgICAg
ICAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMTgwIj5TVkcgTGluZWFyR3JhZGllbnQgZmlsbCBl
bGVtZW50IGlzIE5PVCBtYXRjaGVkIHVzaW5nIG1peGVkIGNhc2Ugc2VsZWN0b3I8L3RleHQ+Cisg
ICAgICAgICAgICAgICAgPC9nPgorCisgICAgICAgICAgICAgICAgPGcgY2xhc3M9Imdyb3VwNCIg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUsIDYxMCkiPgorICAgICAgICAgICAgICAgICAgICA8bGlu
ZSB4MT0iLTI1IiB5MT0iLTMwIiB4Mj0iMTAwJSIgeTI9Ii0zMCIgc3Ryb2tlLXdpZHRoPSIyIiBz
dHJva2U9ImdyYXkiPjwvbGluZT4KKworICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGll
bnQgaWQ9IkdyYWRpZW50NSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBpZD0ic3Rv
cDUiIG9mZnNldD0iMCUiIGNsYXNzPSJncmVlbi1zdG9wLWNvbG9yIiAvPgorICAgICAgICAgICAg
ICAgICAgICA8L2xpbmVhckdyYWRpZW50PgorICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN5
PSIwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dy
YWRpZW50NSkiIC8+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIwIj5TVkcg
TGluZWFyR3JhZGllbnQgZmlsbCBlbGVtZW50IGlzIE5PVCBtYXRjaGVkIHVzaW5nIGxvd2VyIGNh
c2Ugc2VsZWN0b3IgKyBzdmcgbmFtZXNwYWNlPC90ZXh0PgorCisgICAgICAgICAgICAgICAgICAg
IDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQ2Ij4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxzdG9wIGlkPSJzdG9wNiIgb2Zmc2V0PSIwJSIgY2xhc3M9ImdyZWVuLXN0b3AtY29sb3IiIC8+
CisgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CisgICAgICAgICAgICAgICAg
ICAgIDxjaXJjbGUgY3k9IjYwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIy
IiBmaWxsPSJ1cmwoI0dyYWRpZW50NikiIC8+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9
IjUwIiB5PSI2MCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxlbWVudCBpcyBOT1QgbWF0Y2hl
ZCB1c2luZyB1cHBlciBjYXNlIHNlbGVjdG9yICsgc3ZnIG5hbWVzcGFjZTwvdGV4dD4KKworICAg
ICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9IkdyYWRpZW50NyI+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8c3RvcCBpZD0ic3RvcDciIG9mZnNldD0iMCUiIGNsYXNzPSJyZWQt
c3RvcC1jb2xvciIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KKyAg
ICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeT0iMTIwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIg
c3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50NykiIC8+CisgICAgICAgICAgICAg
ICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIxMjAiPlNWRyBMaW5lYXJHcmFkaWVudCBmaWxsIGVsZW1l
bnQgaXMgbWF0Y2hlZCB1c2luZyBjYW5vbmljYWwgZm9ybSBzZWxlY3RvciArIHN2ZyBuYW1lc3Bh
Y2U8L3RleHQ+CisKKyAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJHcmFk
aWVudDgiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3AgaWQ9InN0b3A4IiBvZmZzZXQ9
IjAlIiBjbGFzcz0iZ3JlZW4tc3RvcC1jb2xvciIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9s
aW5lYXJHcmFkaWVudD4KKyAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeT0iMTgwIiByPSIy
MCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50OCki
IC8+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIxODAiPlNWRyBMaW5lYXJH
cmFkaWVudCBmaWxsIGVsZW1lbnQgaXMgTk9UIG1hdGNoZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxl
Y3RvciArIHN2ZyBuYW1lc3BhY2U8L3RleHQ+CisgICAgICAgICAgICAgICAgPC9nPgorICAgICAg
ICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgZnVuY3Rpb24gY2hlY2tTdHlsZShwcmVmaXgsIGNvdW50LCBwcm9wZXJ0eSwgdmFsdWUpIHsK
KyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBjb3VudDsgKytpKQorICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoXCIiICsgcHJlZml4ICsgaSArICJcIikpLiIgKyBwcm9wZXJ0eSwgIlwi
IiArIHZhbHVlICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGVja1N0eWxl
KCJkaXYiLCAzLCAiY29sb3IiLCAicmdiKDAsIDEyOCwgMCkiKTsKKyAgICAgICAgICAgIGNoZWNr
U3R5bGUoImZvIiwgNCwgImNvbG9yIiwgInJnYigwLCAxMjgsIDApIik7CisgICAgICAgICAgICBj
aGVja1N0eWxlKCJjaXJjbGUiLCAzLCAiZmlsbCIsICIjMDA4MDAwIik7CisgICAgICAgICAgICBj
aGVja1N0eWxlKCJzdG9wIiwgOCwgInN0b3BDb2xvciIsICJyZ2IoMCwgMTI4LCAwKSIpOworCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRt
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjcyNmZh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0
aXZlLXN2Zy1pbi1odG1sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitQQVNTIGNvbnRl
bnQucXVlcnlTZWxlY3RvcignU1BBTicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBl
cjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCdTUEFOJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rp
diB1bCBsaSBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3Io
J2RpdiB1bCBsaSBTUEFOJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vu
a25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2Vs
ZWN0b3IoJ3Vua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
dW5rbm93bnRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNT
ZWxlY3RvcigndW5rbm93bnRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCdnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyb3VwMScpCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdncm91cDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2cnKSBpcyB0
cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRycpIGlzIG51bGwKK1BBU1MgY29udGVu
dC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXh0UGF0aDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgxJykud2Vi
a2l0TWF0Y2hlc1NlbGVjdG9yKCd0ZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVy
eVNlbGVjdG9yKCdzdmcgdGV4dFBhdGgnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4
dFBhdGgxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScpLndlYmtp
dE1hdGNoZXNTZWxlY3Rvcignc3ZnIHRleHRQYXRoJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RleHRwYXRoJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ1RleHRQYXRoJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZvcmVp
Z25PYmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ2ZvcmVpZ25PYmplY3QnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlT
ZWxlY3Rvcignc3ZnIGZvcmVpZ25PYmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Zm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9i
amVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3N2ZyBmb3JlaWduT2JqZWN0JykgaXMgdHJ1
ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZvcmVpZ25vYmplY3QnKSBpcyBudWxsCitQ
QVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRm9yZWlnbk9iamVjdCcpIGlzIG51bGwKK1BBU1Mg
Y29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3RleHRQ
YXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCdzdmcgdGV4dFBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVp
Z25PYmplY3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdzdmcgdGV4dFBhdGggKyBmb3JlaWdu
T2JqZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRQYXRoICsg
Zm9yZWlnbm9iamVjdCcpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0
UGF0aCArIEZvcmVpZ25PYmplY3QnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cigndGV4dHBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5
U2VsZWN0b3IoJ1RleHRQYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIG51bGwKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC5odG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzdlNmYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRt
bApAQCAtMCwwICsxLDYzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBTVkcg
dGFncyBpbnNpZGUgSFRNTCBkb2N1bWVudHMgbWF0Y2ggdXNpbmcgY2FzZS1pbnNlbnNpdGl2ZSBt
b2RlLiAtLT4KKyAgICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlz
cGxheTogbm9uZSI+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAg
ICAgICAgICAgICAgICAgICA8U1BBTiBpZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAgICAg
ICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIDxnIGlkPSJncm91cDEiPjwvZz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIDx0ZXh0UGF0aCBpZD0idGV4dFBhdGgxIj48L3RleHRQYXRoPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPGZvcmVpZ25PYmplY3QgaWQ9ImZvcmVpZ25PYmplY3QxIj48L2ZvcmVpZ25PYmpl
Y3Q+CisgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICAgICAgICAgIDwvbGk+Cisg
ICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcx
Ij48L3Vua25vd25UYWc+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQi
KTsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVt
ZW50SWQpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIg
KyBzZWxlY3RvciArICInKSIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJ
ZCArICInKSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBzZWxl
Y3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25NYXRj
aGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7CisgICAgICAgICAgICBzaG91bGRCZU51bGwoImNvbnRl
bnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBDaGVja2luZyB0aGF0IHRhZyBuYW1lIHNlbGVjdG9ycyBzdGlsbCB3b3JrIG9uIEhU
TUwgZWxlbWVudHMgd2hlbiBTVkcgaXMgYXJvdW5kLgorICAgICAgICBjaGVja01hdGNoaW5nU2Vs
ZWN0b3IoIlNQQU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigi
ZGl2IHVsIGxpIFNQQU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rv
cigidW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2Vs
ZWN0b3IoInVua25vd250YWciLCAidW5rbm93blRhZzEiKTsKKworICAgICAgICBjaGVja01hdGNo
aW5nU2VsZWN0b3IoImciLCAiZ3JvdXAxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxl
Y3RvcigiRyIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGgiLCAi
dGV4dFBhdGgxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigic3ZnIHRleHRQYXRo
IiwgInRleHRQYXRoMSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInRleHRw
YXRoIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiVGV4dFBhdGgiKTsKKwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9i
amVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJzdmcgZm9yZWlnbk9iamVj
dCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3Io
ImZvcmVpZ25vYmplY3QiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJGb3Jl
aWduT2JqZWN0Iik7CisKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCAr
IGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGlu
Z1NlbGVjdG9yKCJzdmcgdGV4dFBhdGggKyBmb3JlaWduT2JqZWN0IiwgImZvcmVpZ25PYmplY3Qx
Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGggKyBmb3JlaWdu
b2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGggKyBG
b3JlaWduT2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dHBh
dGggKyBmb3JlaWduT2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3Rvcigi
VGV4dFBhdGggKyBmb3JlaWduT2JqZWN0Iik7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFt
ZVNlbGVjdG9ycy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxlY3RvcnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDI3OGU0Ci0tLSAvZGV2
L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxlY3RvcnMuaHRtbApA
QCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlk
PSJ0ZXN0LXRhcmdldCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgorICAgIDxkaXYgaWQ9InRlc3Qt
dGVtcGxhdGUiPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXY+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8
bGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8Yj4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDwvYj4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgor
ICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2I+CisgICAgICAg
ICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwv
ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxk
aXY+CisgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgIDxwPjwvcD4KKyAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHA+PC9wPgorICAgICAgICA8cD48
L3A+CisgICAgICAgIDxwPjwvcD4KKyAgICAgICAgPHA+PC9wPgorICAgIDwvZGl2PgorPC9kaXY+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gZ2VuZXJhdGVFbGVtZW50cygpIHsKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC10ZW1wbGF0ZSIpOworICAgIHRlbXBsYXRlLnJlbW92
ZUF0dHJpYnV0ZSgiaWQiKTsKKyAgICB2YXIgdGFyZ2V0ID0gdGVtcGxhdGUucGFyZW50Tm9kZTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgdGFyZ2V0LmFwcGVu
ZENoaWxkKHRlbXBsYXRlLmNsb25lTm9kZSgpKTsKK30KK2dlbmVyYXRlRWxlbWVudHMoKTsKKwor
Ly8gS2VlcCBhIHJlZmVyZW5jZSB0byBhbGwgdGhlIG5vZGVzLCBzbyB0aGF0IHRoZXkgYXJlIG5v
dCBnYXJiYWdlIGNvbGxlY3RlZCBkdXJpbmcgdGhlIHJ1bnMuCit2YXIgbm9kZXMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7CisKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVy
U2Vjb25kKHsKKyAgICBkZXNjcmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBTZWxl
Y3RvciBwZXJmb3JtYW5jZSB3aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qt
dGFyZ2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAg
ICAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgiZGl2IHVsIGxpIGIiKTsKKyAgICAgICAgICAg
IHJvb3QucXVlcnlTZWxlY3RvckFsbCgicCIpOworICAgICAgICAgICAgcm9vdC5xdWVyeVNlbGVj
dG9yQWxsKCJkaXYiKTsKKyAgICAgICAgfQorICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFtZVNlbGVj
dG9ycy54aHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0b3JzLnhodG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MmUzOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFtZVNlbGVjdG9ycy54aHRtbApAQCAt
MCwwICsxLDY3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFE
T0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIFN0cmljdC8v
RU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3Qu
ZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFu
Zz0iZW4iIGxhbmc9ImVuIj4KKzxib2R5PgorPGRpdiBpZD0idGVzdC10YXJnZXQiIHN0eWxlPSJk
aXNwbGF5OiBub25lIj4KKyAgICA8ZGl2IGlkPSJ0ZXN0LXRlbXBsYXRlIj4KKyAgICAgICAgPGRp
dj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PgorICAgICAgICAg
ICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPGI+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2I+CisgICAgICAgICAgICAgICAg
ICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8dWw+Cisg
ICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPC9iPgorICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAg
ICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdj4K
KyAgICAgICAgICAgICAgICA8cD48L3A+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxwPjwvcD4KKyAgICAgICAgPHA+PC9wPgorICAgICAgICA8cD48L3A+Cisg
ICAgICAgIDxwPjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKzwhW0NEQVRBWworZnVuY3Rpb24g
Z2VuZXJhdGVFbGVtZW50cygpIHsKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdC10ZW1wbGF0ZSIpOworICAgIHRlbXBsYXRlLnJlbW92ZUF0dHJpYnV0ZSgi
aWQiKTsKKyAgICB2YXIgdGFyZ2V0ID0gdGVtcGxhdGUucGFyZW50Tm9kZTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHRlbXBs
YXRlLmNsb25lTm9kZSgpKTsKK30KK2dlbmVyYXRlRWxlbWVudHMoKTsKKworLy8gS2VlcCBhIHJl
ZmVyZW5jZSB0byBhbGwgdGhlIG5vZGVzLCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBnYXJiYWdlIGNv
bGxlY3RlZCBkdXJpbmcgdGhlIHJ1bnMuCit2YXIgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIqIik7CisKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHsKKyAg
ICBkZXNjcmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBTZWxlY3RvciBwZXJmb3Jt
YW5jZSB3aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtdGFyZ2V0Iik7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgICAgIHJvb3Qu
cXVlcnlTZWxlY3RvckFsbCgiZGl2IHVsIGxpIGIiKTsKKyAgICAgICAgICAgIHJvb3QucXVlcnlT
ZWxlY3RvckFsbCgicCIpOworICAgICAgICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYi
KTsKKyAgICAgICAgfQorICAgIH0KK30pOworXV0+Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk1NmExNS4uZmM2NmNjNyAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMy0wMS0yOSAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBh
ZG9iZS5jb20+CisKKyAgICAgICAgcXVlcnlTZWxlY3RvckFsbCB1bmFibGUgdG8gZmluZCBTVkcg
Y2FtZWxDYXNlIGVsZW1lbnRzIGltcG9ydGVkIGludG8gSFRNTAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENTUy9UeXBlTmFtZVNlbGVjdG9ycy5odG1s
OiBBZGRlZC4gVGVzdGluZyBwZXJmb3JtYW5jZSBvZiB0aGUgbW9zdCBjb21tb24gY2FzZTogc2Vs
ZWN0b3JzIHdpdGggb25seSBsb3dlci1jYXNlIGxldHRlcnMuCisgICAgICAgICogQ1NTL1R5cGVO
YW1lU2VsZWN0b3JzLnhodG1sOiBBZGRlZC4gVGVzdGluZyB0aGF0IHBlcmZvcm1hbmNlIG9uIFhI
VE1MIGRvY3VtZW50cyBoYXMgbm8gcmVncmVzc2lvbi4gCisgICAgICAgIEkgbmVlZCB0d28gc2Vw
YXJhdGUgdGVzdHMgYmVjYXVzZSB0aGVyZSdzIGRpZmZlcmVudCBiZWhhdmlvciBiZXR3ZWVuIFhI
VE1MIGFuZCBIVE1MIGRvY3VtZW50cy4gCisgICAgICAgIFhIVE1MIGRvY3VtZW50cyB3aWxsIG5l
dmVyIGNyZWF0ZSB0aGUgTWl4ZWRDYXNlVGFnLCBzbyBzaG91bGQgaGF2ZSBubyBwZXJmb3JtYW5j
ZSBpbXBhY3QuCisKIDIwMTMtMDEtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc29tZSBtZWFzdXJlbWVudHMgYXJlIG1p
c3NpbmcgaW4gUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3IvaGVhcC0qLmh0bWwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyMzJlN2I3Li42NDYzYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDEz
LTAxLTI5ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAg
ICBxdWVyeVNlbGVjdG9yQWxsIHVuYWJsZSB0byBmaW5kIFNWRyBjYW1lbENhc2UgZWxlbWVudHMg
aW1wb3J0ZWQgaW50byBIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MzQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluIEhUTUwgZG9jdW1lbnRzIHRoZSBDU1MgcGFyc2VyIHRyYW5zZm9ybXMgdGhl
IENTUyB0YWcgbmFtZSBzZWxlY3RvcnMgdG8gbG93ZXItY2FzZS4gVGhhdCdzIGJlY2F1c2UgSFRN
TCBlbGVtZW50cyBpbiBIVE1MIGRvY3VtZW50cworICAgICAgICB1c2UgY2FzZS1pbnNlbnNpdGl2
ZSB0YWcgbWF0Y2hpbmcuIFRoYXQncyBtZWFucyB0aGF0IHRoZSBtYXRjaCBmdW5jdGlvbiB3aWxs
IGp1c3QgdXNlIHRoZSBjYW5vbmljYWwgZm9ybSAod2hpY2ggaXMgbG93ZXIgY2FzZSBmb3IgYWxs
IAorICAgICAgICBIVE1MIGVsZW1lbnRzKSBhbmQgY29tcGFyZSB0aGF0IHRvIHRoZSBDU1MgU2Vs
ZWN0b3IuCisKKyAgICAgICAgSG93ZXZlciwgbm9uLUhUTUwgZWxlbWVudHMgZW1iZWRkZWQgaW4g
SFRNTCBuZWVkIHRvIGZvbGxvdyB0aGUgWE1MIHJ1bGUgaW5zdGVhZC4gVGhleSBuZWVkIHRvIGJl
IG1hdGNoZWQgdXNpbmcgY2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgVGhhdCdz
IGFsaWduZWQgd2l0aCB0aGUgYmVoYXZpb3Igb2YgRkYgYW5kIElFMTAuIEhvd2V2ZXIsIGJlY2F1
c2UgdGhlIENTUyBwYXJzZXIgYWxyZWFkeSBsb3dlci1jYXNlZCB0aGUgdGFnIG5hbWUsIHRoZSBt
YXRjaGluZyBuZXZlcgorICAgICAgICB3b3JrcyBmb3IgZWxlbWVudHMgbGlrZSAiZm9yZWlnbk9i
amVjdCIgb3IgInRleHRQYXRoIiwgYXMgdGhlaXIgY2Fub25pY2FsIGZvcm0gaGFzIGJvdGggbG93
ZXItY2FzZSBhbmQgdXBwZXItY2FzZSBsZXR0ZXJzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhbm90aGVyIG1hdGNoIHR5cGUgaW4gdGhlIENTUyBTZWxlY3RvciBhbmQgcmV1c2VzIHR3byBm
aWVsZHMgaW4gdGhlIFJhcmVEYXRhIHN0cnVjdHVyZS4gVGhlIG5ldyBNaXhlZENhc2VUYWcgbWF0
Y2ggdHlwZSBpcyAKKyAgICAgICAgb25seSBjcmVhdGVkIHdoZW4gdGhlIHBhcnNlciBpcyB1c2Vk
IGluIHRoZSBjb250ZXh0IG9mIEhUTUwgZG9jdW1lbnRzLiBJdCB3aWxsIHN0b3JlIGJvdGggdmVy
c2lvbnMgb2YgdGhlIHRhZyBuYW1lLCBib3RoIGxvd2VyIGNhc2UgYW5kCisgICAgICAgIHRoZSBv
bmUgaW5pdGlhbGx5IHBhcnNlZCBpbiB0aGUgQ1NTIHNvdXJjZSBmaWxlLiAKKworICAgICAgICBO
b3RlIHRoYXQgdGhlIG5ldyBzZWxlY3RvciB0eXBlIGlzIG5vdCBnb2luZyB0byBiZSB1c2VkIGlm
IHRoZSBzZWxlY3RvciBoYXMgb25seSBsb3dlciBjYXNlIHRhZyBuYW1lLCBzbyB0aGUgY29tbW9u
IGNhc2Ugd2hlcmUKKyAgICAgICAgdGhlIHNlbGVjdG9yIHRhZyBpcyBsb3dlci1jYXNlIGlzIG5v
dCBiZSBhZmZlY3RlZCBieSB0aGlzIGNoYW5nZS4KKworICAgICAgICBUaGUgbWF0Y2hpbmcgaGFw
cGVucyBiYXNlZCBvbiB0aGUgZWxlbWVudCB0eXBlOgorICAgICAgICAtIEhUTUwgZWxlbWVudHMg
c3RpbGwgdXNlIHRoZSBsb3dlciBjYXNlIHZlcnNpb24uCisgICAgICAgIC0gbm9uLUhUTUwgZWxl
bWVudHMgdXNlIHRoZSB2ZXJzaW9uIHBhcnNlZCBpbiB0aGUgQ1NTIGZpbGUsIHNvIFNWRyB0YWdz
IGxpa2UgZm9yZWlnbk9iamVjdCBjYW4gYmUgdXNlZCBhZ2Fpbi4KKworICAgICAgICBXZSBuZWVk
IHRvIHN0b3JlIGJvdGggbG93ZXItY2FzZSBhbmQgbWl4ZWQtY2FzZSB2ZXJzaW9ucyB0byBzcGVl
ZCB1cCB0aGUgbWF0Y2hpbmcgZnVuY3Rpb24gYnkganVzdCBkb2luZyBhIHBvaW50ZXIgCisgICAg
ICAgIGNvbXBhcmlzb24gb2YgdGhlIEF0b21pY1N0cmluZ3MuCisKKyAgICAgICAgVGhlIFNlbGVj
dG9yRmlsdGVyIG5lZWRzIHRvIGF2b2lkIGhhc2hpbmcgdGhlIE1peGVkQ2FzZVRhZyBzZWxlY3Rv
cnMuIFRoYXQncyBiZWNhdXNlIHRoZSBzZWxlY3RvciBtaWdodCBtYXRjaCBkaWZmZXJlbnRseSBi
YXNlZCBvbiB0aGUKKyAgICAgICAgdHlwZSBvZiB0aGUgZWxlbWVudC4gV2UgbWlnaHQgY29uc2lk
ZXIgY29taW5nIGJhY2sgdG8gdGhpcyBvbmUgYW5kIGltcGxlbWVudCBhbHRlcm5hdGl2ZSBoYXNo
ZXMgKGllLiBpZiB0aGUgbG93ZXIgZG9lc24ndCBtYXRjaAorICAgICAgICB0cnkgdGhlIHVwcGVy
LWNhc2UgdmVyc2lvbiBhbmQgdGhlbiByZWplY3QpLgorCisgICAgICAgIEkndmUgcmV1c2VkIHR3
byBvZiB0aGUgZXhpc3RpbmcgZmllbGRzIGluIHRoZSBDU1NTZWxlY3Rvcjo6UmFyZURhdGEgc3Ry
dWN0dXJlLiBUaGV5IGFyZSBzaGFyZWQgd2l0aCBvdGhlciBDU1NTZWxlY3RvciBtYXRjaCB0eXBl
cy4KKyAgICAgICAgLSBtX2F0dHJpYnV0ZSBiZWNvbWVzIG1fYXR0cmlidXRlT3JNaXhlZENhc2VM
b3dlclRhZ1FOYW1lCisgICAgICAgIC0gbV9hcmdtZW50IGJlY29tZXMgbV9hcmd1bWVudE9yTWl4
ZWRDYXNlUGFyc2VkVGFnTmFtZQorCisgICAgICAgIE1peGVkQ2FzZVRhZyBhcmUgc3RpbGwgc2Vy
aWFsaXppbmcgdXNpbmcgdGhlIGxvd2VyIGNhc2UgdmVyc2lvbiBvZiB0aGUgdGFnIG5hbWUuIEkg
d2lsbCBtYWtlIGEgc2VwYXJhdGUgYnVnIGZvciB0aGF0LCBhcyBhIGNvdXBsZSBvZiB0ZXN0Cisg
ICAgICAgIHJlc3VsdHMgbmVlZCB0byBiZSB1cGRhdGVkIGFuZCB3b3VsZCBtYWtlIHRoaXMgcGF0
Y2ggdG9vIGJpZy4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNh
c2UtaW5zZW5zaXRpdmUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vU2VsZWN0b3JBUEkv
dGFnLWNhc2Utc2Vuc2l0aXZlLnhodG1sCisgICAgICAgICAgICAgICBzdmcvY3NzL2Nhc2Utc2Vu
c2l0aXZlLXRhZ3MuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRp
dmUtc3ZnLWluLWh0bWwuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6aXNMb3dlckNhc2VTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
U3RyaW5nOjppc0xvd2VyQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0
ZUZsb2F0aW5nU2VsZWN0b3JXaXRoTWl4ZWRDYXNlVGFnTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRoTmFtZXNwYWNlSWZOZWVkZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFyc2VyU2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6aXNTaW1w
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OnByZXBlbmRTZWxlY3Rv
cik6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5oOgorICAgICAgICAoQ1NTUGFyc2Vy
U3RyaW5nKToKKyAgICAgICAgKENTU1BhcnNlclNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNwZWNpZmljaXR5
Rm9yT25lU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9y
VGV4dCk6IEFkZGVkIGNvZGUgdG8gdXNlIGVpdGhlciBUYWcgb3IgTWl4ZWRDYXNlVGFnIHR5cGVz
LiBTdGlsbCB1c2luZyB0aGUgbG93ZXIgY2FzZSB2ZXJzaW9uLCBldmVuIHRob3VnaCB3ZSBoYWQK
KyAgICAgICAgdGhlIGluaXRpYWxseSBwYXJzZWQgdmVyc2lvbiBvZiBNaXhlZENhc2VUYWcuIFdp
bGwgYmUgZml4ZWQgaW4gYSBmb2xsb3cgdXAgYnVnLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2Vs
ZWN0b3I6OnNldEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0
QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6c2V0TWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6c2V0TWl4ZWRDYXNlUGFyc2VkVGFnTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NTZWxlY3Rvcjo6UmFyZURhdGE6OlJhcmVEYXRhKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuaDoKKyAgICAgICAgKENTU1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVj
dG9yOjppc1RhZ01hdGNoKTogQSBidW5jaCBvZiBwbGFjZXMgYWNjZXB0IGJvdGggVGFnIGFuZCBN
aXhlZENhc2VUYWcsIHNvIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICByZXR1cm4gdHJ1ZSBm
b3IgYm90aCBvZiB0aGVtLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Om1hdGNoaW5n
VGFnUU5hbWUpOiBSZXR1cm5zIGVpdGhlciB0aGUgdGFnIG9mIGEgVGFnIHNlbGVjdG9yIG9yIHRo
ZSBsb3dlciBjYXNlIHRhZyBvZiBhIE1peGVkQ2FzZVRhZy4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjptaXhlZENhc2VQYXJzZWRUYWdOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudCk6CisgICAgICAgIChSYXJlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTZWxlY3Rvcjo6YXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Om1peGVkQ2FzZUxvd2VyVGFnUU5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvUnVs
ZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1NlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRP
blJ1bGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OmRldGVybWluZVByb3BlcnR5V2hpdGVsaXN0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpmaW5kQmVzdFJ1bGVTZXRBbmRBZGQpOiBXZSBjYW4g
dXNlIGJvdGggdGhlIGxvd2VyIGNhc2UgYW5kIHRoZSBtaXhlZC1jYXNlIHRhZ3MgdG8gbWF0Y2gg
dGhlIGVsZW1lbnRzLiBUaGUgdHdvIHNldHMKKyAgICAgICAgd2lsbCBiZSBkaXNqb2ludCwgc28g
YSBydWxlIGNhbm5vdCBtYXRjaCB3aXRoIGJvdGggYXQgdGhlIHNhbWUgdGltZS4gVGhhdCdzIGJl
Y2F1c2UgdGhlaXIga2V5cyBhcmUgYWxsIGxvd2VyIGNhc2UgZm9yIHRoZSBtX3RhZ1J1bGVzIHNl
dCBhbmQKKyAgICAgICAgYXQgbGVhc3Qgb25lIHVwcGVyLWNhc2UgbGV0dGVyIGZvciB0aGUgbV9t
aXhlZENhc2VUYWdSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OnNocmlua1RvRml0
KToKKyAgICAgICAgKiBjc3MvUnVsZVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6
bWl4ZWRDYXNlVGFnUnVsZXMpOgorICAgICAgICAoUnVsZVNldCk6CisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrUmlnaHRtb3N0U2VsZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2spOgorICAgICAgICAoV2ViQ29yZTo6
aXNGYXN0Q2hlY2thYmxlTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2Vy
OjpjaGVja09uZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAo
U2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6bWl4
ZWRDYXNlVGFnTWF0Y2hlcyk6IEFkZGVkIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBTZWxlY3RvckNo
ZWNrZXI6OnRhZ01hdGNoZXMgZm9yIHRoZSBuZXcgTWl4ZWRDYXNlVGFnIHNlbGVjdG9yIHR5cGUu
CisgICAgICAgICogY3NzL1NlbGVjdG9yRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKTogQWRkZWQgdGhlIE1peGVk
Q2FzZVRhZyB0eXBlIHRvIHRoZSBzd2l0Y2ggYW5kIGEgY29tbWVudCBleHBsYWluaW5nIHdoeSBp
dCBjYW5ub3QgYmUgdXNlZCwKKyAgICAgICAgc28gdGhhdCBpdCBpcyBub3QgYWRkZWQgYnkgbWlz
dGFrZS4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyk6IAorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6cnVsZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tQ
YWdlU2VsZWN0b3JDb21wb25lbnRzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdWJTZWxlY3Rvcik6CisK
IDIwMTMtMDEtMjkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENo
YW5nZSBEYXRhYmFzZUNvbnRleHQgbG9va3VwIHRvIGJlIHRocmVhZC1zYWZlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggNTc4ZDQyNy4uMDE4ZDQ1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhbW1hci55LmluCkBAIC0xMTczLDEyICsxMTczLDIzIEBAIG5hbWVzcGFjZV9zZWxlY3Rv
cjoKICAgICAKIHNpbXBsZV9zZWxlY3RvcjoKICAgICBlbGVtZW50X25hbWUgewotICAgICAgICAk
JCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcldpdGhUYWdOYW1lKFF1YWxpZmllZE5h
bWUobnVsbEF0b20sICQxLCBwYXJzZXItPm1fZGVmYXVsdE5hbWVzcGFjZSkpOworICAgICAgICBp
ZiAocGFyc2VyLT5tX2NvbnRleHQuaXNIVE1MRG9jdW1lbnQgJiYgISQxLmlzTG93ZXJDYXNlKCkp
IHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtaXhlZENhc2VFbGVtZW50TmFtZSA9ICQxOwor
ICAgICAgICAgICAgJDEubG93ZXIoKTsKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVG
bG9hdGluZ1NlbGVjdG9yV2l0aE1peGVkQ2FzZVRhZ05hbWUoUXVhbGlmaWVkTmFtZShudWxsQXRv
bSwgJDEsIHBhcnNlci0+bV9kZWZhdWx0TmFtZXNwYWNlKSwgbWl4ZWRDYXNlRWxlbWVudE5hbWUp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGlu
Z1NlbGVjdG9yV2l0aFRhZ05hbWUoUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHBhcnNlci0+
bV9kZWZhdWx0TmFtZXNwYWNlKSk7CiAgICAgfQogICAgIHwgZWxlbWVudF9uYW1lIHNwZWNpZmll
cl9saXN0IHsKICAgICAgICAgJCQgPSAkMjsKLSAgICAgICAgaWYgKCQkKQotICAgICAgICAgICAg
cGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKG51bGxBdG9tLCAkMSwgJCQp
OworICAgICAgICBpZiAoJCQpIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtaXhlZENhc2VU
YWdOYW1lOworICAgICAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50
ICYmICEkMS5pc0xvd2VyQ2FzZSgpKSB7CisgICAgICAgICAgICAgICAgbWl4ZWRDYXNlVGFnTmFt
ZSA9ICQxOworICAgICAgICAgICAgICAgICQxLmxvd2VyKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUobnVsbEF0b20s
ICQxLCBtaXhlZENhc2VUYWdOYW1lLCAkJCk7CisgICAgICAgIH0KICAgICB9CiAgICAgfCBzcGVj
aWZpZXJfbGlzdCB7CiAgICAgICAgICQkID0gJDE7CkBAIC0xMTg2LDE3ICsxMTk3LDI4IEBAIHNp
bXBsZV9zZWxlY3RvcjoKICAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lmaWVyc1dpdGhO
YW1lc3BhY2VJZk5lZWRlZCgkJCk7CiAgICAgfQogICAgIHwgbmFtZXNwYWNlX3NlbGVjdG9yIGVs
ZW1lbnRfbmFtZSB7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9y
V2l0aFRhZ05hbWUocGFyc2VyLT5kZXRlcm1pbmVOYW1lSW5OYW1lc3BhY2UoJDEsICQyKSk7Cisg
ICAgICAgIGlmIChwYXJzZXItPm1fY29udGV4dC5pc0hUTUxEb2N1bWVudCAmJiAhJDEuaXNMb3dl
ckNhc2UoKSkgeworICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1peGVkQ2FzZUVsZW1lbnROYW1l
ID0gJDI7CisgICAgICAgICAgICAkMi5sb3dlcigpOworICAgICAgICAgICAgJCQgPSBwYXJzZXIt
PmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3JXaXRoTWl4ZWRDYXNlVGFnTmFtZShwYXJzZXItPmRldGVy
bWluZU5hbWVJbk5hbWVzcGFjZSgkMSwgJDIpLCBtaXhlZENhc2VFbGVtZW50TmFtZSk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0
b3JXaXRoVGFnTmFtZShwYXJzZXItPmRldGVybWluZU5hbWVJbk5hbWVzcGFjZSgkMSwgJDIpKTsK
ICAgICB9CiAgICAgfCBuYW1lc3BhY2Vfc2VsZWN0b3IgZWxlbWVudF9uYW1lIHNwZWNpZmllcl9s
aXN0IHsKICAgICAgICAgJCQgPSAkMzsKLSAgICAgICAgaWYgKCQkKQotICAgICAgICAgICAgcGFy
c2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKCQxLCAkMiwgJCQpOworICAgICAg
ICBpZiAoJCQpIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtaXhlZENhc2VUYWdOYW1lOwor
ICAgICAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50ICYmICEkMi5p
c0xvd2VyQ2FzZSgpKSB7CisgICAgICAgICAgICAgICAgbWl4ZWRDYXNlVGFnTmFtZSA9ICQyOwor
ICAgICAgICAgICAgICAgICQyLmxvd2VyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
YXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoJDEsICQyLCBtaXhlZENhc2VU
YWdOYW1lLCAkJCk7CisgICAgICAgIH0KICAgICB9CiAgICAgfCBuYW1lc3BhY2Vfc2VsZWN0b3Ig
c3BlY2lmaWVyX2xpc3QgewogICAgICAgICAkJCA9ICQyOwogICAgICAgICBpZiAoJCQpCi0gICAg
ICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoJDEsIHN0YXJB
dG9tLCAkJCk7CisgICAgICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVu
dE5hbWUoJDEsIHN0YXJBdG9tLCBudWxsQXRvbSwgJCQpOwogICAgIH0KICAgOwogCkBAIC0xMjIx
LDEyICsxMjQzLDcgQEAgc2ltcGxlX3NlbGVjdG9yX2xpc3Q6CiAgIDsKIAogZWxlbWVudF9uYW1l
OgotICAgIElERU5UIHsKLSAgICAgICAgQ1NTUGFyc2VyU3RyaW5nJiBzdHIgPSAkMTsKLSAgICAg
ICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50KQotICAgICAgICAgICAgc3Ry
Lmxvd2VyKCk7Ci0gICAgICAgICQkID0gc3RyOwotICAgIH0KKyAgICBJREVOVAogICAgIHwgJyon
IHsKICAgICAgICAgc3RhdGljIExDaGFyIHN0YXIgPSAnKic7CiAgICAgICAgICQkLmluaXQoJnN0
YXIsIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBlNjY4MDhkLi44MmRmMjNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMzIwLDYgKzMyMCwyOSBAQCBBTFdBWVNfSU5M
SU5FIHN0YXRpYyB2b2lkIG1ha2VMb3dlcihjb25zdCBDaGFyYWN0ZXJUeXBlKiBpbnB1dCwgQ2hh
cmFjdGVyVHlwZSogbwogICAgIH0KIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+CitBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzTG93ZXJDYXNlU3RyaW5nKGNvbnN0IENo
YXJhY3RlclR5cGUqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgLy8gRklYTUU6IElm
IHdlIG5lZWQgVW5pY29kZSBsb3dlcmNhc2luZyBoZXJlLCB0aGVuIHdlIHByb2JhYmx5IHdhbnQg
dGhlIHJlYWwga2luZAorICAgIC8vIHRoYXQgY2FuIHBvdGVudGlhbGx5IGNoYW5nZSB0aGUgbGVu
Z3RoIG9mIHRoZSBzdHJpbmcgcmF0aGVyIHRoYW4gdGhlIGNoYXJhY3RlcgorICAgIC8vIGJ5IGNo
YXJhY3RlciBraW5kLiBJZiB3ZSBkb24ndCBuZWVkIFVuaWNvZGUgbG93ZXJjYXNpbmcsIGl0IHdv
dWxkIGJlIGdvb2QgdG8KKyAgICAvLyBzaW1wbGlmeSB0aGlzIGZ1bmN0aW9uLgorCisgICAgaWYg
KGNoYXJhY3RlcnNBcmVBbGxBU0NJSShpbnB1dCwgbGVuZ3RoKSkgeworICAgICAgICAvLyBGYXN0
IGNhc2UgZm9yIGFsbC1BU0NJSS4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihpbnB1dFtpXSkgIT0gaW5w
dXRbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlm
IChVbmljb2RlOjp0b0xvd2VyKGlucHV0W2ldKSAhPSBpbnB1dFtpXSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKwogdm9pZCBD
U1NQYXJzZXJTdHJpbmc6Omxvd2VyKCkKIHsKICAgICBpZiAoaXM4Qml0KCkpIHsKQEAgLTMzMCw2
ICszNTMsMTEgQEAgdm9pZCBDU1NQYXJzZXJTdHJpbmc6Omxvd2VyKCkKICAgICBtYWtlTG93ZXIo
Y2hhcmFjdGVyczE2KCksIGNoYXJhY3RlcnMxNigpLCBsZW5ndGgoKSk7CiB9CiAKK2Jvb2wgQ1NT
UGFyc2VyU3RyaW5nOjppc0xvd2VyQ2FzZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzOEJpdCgp
ID8gaXNMb3dlckNhc2VTdHJpbmcoY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpIDogaXNMb3dlckNh
c2VTdHJpbmcoY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsKK30KKwogQXRvbWljU3RyaW5nIENT
U1BhcnNlclN0cmluZzo6bG93ZXJTdWJzdHJpbmcodW5zaWduZWQgcG9zaXRpb24sIHVuc2lnbmVk
IGxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9sZW5ndGggPj0gcG9zaXRpb24gKyBsZW5n
dGgpOwpAQCAtMTA1ODksNiArMTA2MTcsMTMgQEAgQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNl
cjo6Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcldpdGhUYWdOYW1lKGNvbnN0IFF1YWxpZmllZE4KICAg
ICByZXR1cm4gc2VsZWN0b3I7CiB9CiAKK0NTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXI6OmNy
ZWF0ZUZsb2F0aW5nU2VsZWN0b3JXaXRoTWl4ZWRDYXNlVGFnTmFtZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBsb3dlckNhc2VUYWdRTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBtaXhlZENhc2VUYWdO
YW1lKQoreworICAgIENTU1BhcnNlclNlbGVjdG9yKiBzZWxlY3RvciA9IG5ldyBDU1NQYXJzZXJT
ZWxlY3RvcihhZG9wdFB0cihuZXcgQ1NTU2VsZWN0b3IobG93ZXJDYXNlVGFnUU5hbWUsIG1peGVk
Q2FzZVRhZ05hbWUpKSk7CisgICAgbV9mbG9hdGluZ1NlbGVjdG9ycy5hZGQoc2VsZWN0b3IpOwor
ICAgIHJldHVybiBzZWxlY3RvcjsKK30KKwogQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNlcjo6
Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpCiB7CiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIHNlbGVj
dG9yID0gbmV3IENTU1BhcnNlclNlbGVjdG9yOwpAQCAtMTA5NDcsMTAgKzEwOTgyLDE3IEBAIFF1
YWxpZmllZE5hbWUgQ1NTUGFyc2VyOjpkZXRlcm1pbmVOYW1lSW5OYW1lc3BhY2UoY29uc3QgQXRv
bWljU3RyaW5nJiBwcmVmaXgsIGNvCiB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dp
dGhOYW1lc3BhY2VJZk5lZWRlZChDU1NQYXJzZXJTZWxlY3Rvciogc3BlY2lmaWVycykKIHsKICAg
ICBpZiAobV9kZWZhdWx0TmFtZXNwYWNlICE9IHN0YXJBdG9tIHx8IHNwZWNpZmllcnMtPmlzQ3Vz
dG9tUHNldWRvRWxlbWVudCgpKQotICAgICAgICB1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnRO
YW1lKG51bGxBdG9tLCBzdGFyQXRvbSwgc3BlY2lmaWVycywgLyp0YWdJc0Zvck5hbWVzcGFjZVJ1
bGUqL3RydWUpOworICAgICAgICB1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKG51bGxB
dG9tLCBzdGFyQXRvbSwgbnVsbEF0b20sIHNwZWNpZmllcnMsIC8qdGFnSXNGb3JOYW1lc3BhY2VS
dWxlKi90cnVlKTsKK30KKworc3RhdGljIGlubGluZSBQYXNzT3duUHRyPENTU1NlbGVjdG9yPiBj
cmVhdGVUYWdTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcsIGNvbnN0IEF0b21pY1N0
cmluZyYgbWl4ZWRDYXNlRWxlbWVudE5hbWUsIGJvb2wgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKQor
eworICAgIC8vIE1peGVkIGNhc2Ugc2VsZWN0b3JzIGNhbm5vdCBiZSBjcmVhdGVkIGZvciBuYW1l
c3BhY2UgcnVsZXMsIGFzIHRoZSBzdGFyQXRvbSBoYXMgbm8gdXBwZXItY2FzZSB2ZXJzaW9uLgor
ICAgIEFTU0VSVChtaXhlZENhc2VFbGVtZW50TmFtZS5pc051bGwoKSB8fCAhdGFnSXNGb3JOYW1l
c3BhY2VSdWxlKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobWl4ZWRDYXNlRWxlbWVudE5hbWUuaXNO
dWxsKCkgPyBuZXcgQ1NTU2VsZWN0b3IodGFnLCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpIDogbmV3
IENTU1NlbGVjdG9yKHRhZywgbWl4ZWRDYXNlRWxlbWVudE5hbWUpKTsKIH0KIAotdm9pZCBDU1NQ
YXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVudE5hbWUsIENTU1Bh
cnNlclNlbGVjdG9yKiBzcGVjaWZpZXJzLCBib29sIHRhZ0lzRm9yTmFtZXNwYWNlUnVsZSkKK3Zv
aWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZXNwYWNlUHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGVsZW1lbnROYW1l
LCBjb25zdCBBdG9taWNTdHJpbmcmIG1peGVkQ2FzZUVsZW1lbnROYW1lLCBDU1NQYXJzZXJTZWxl
Y3Rvciogc3BlY2lmaWVycywgYm9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpCiB7CiAgICAgQXRv
bWljU3RyaW5nIGRldGVybWluZWROYW1lc3BhY2UgPSBuYW1lc3BhY2VQcmVmaXggIT0gbnVsbEF0
b20gJiYgbV9zdHlsZVNoZWV0ID8gbV9zdHlsZVNoZWV0LT5kZXRlcm1pbmVOYW1lc3BhY2UobmFt
ZXNwYWNlUHJlZml4KSA6IG1fZGVmYXVsdE5hbWVzcGFjZTsKICAgICBRdWFsaWZpZWROYW1lIHRh
ZyhuYW1lc3BhY2VQcmVmaXgsIGVsZW1lbnROYW1lLCBkZXRlcm1pbmVkTmFtZXNwYWNlKTsKQEAg
LTEwOTYxLDcgKzExMDAzLDcgQEAgdm9pZCBDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRo
RWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcmUKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgICAgIGlmICghKHNwZWNpZmllcnMtPnBzZXVkb1R5cGUoKSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ3VlKSkKICNlbmRpZgotICAgICAgICAgICAgc3BlY2lmaWVycy0+
cHJlcGVuZFRhZ1NlbGVjdG9yKHRhZywgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKTsKKyAgICAgICAg
ICAgIHNwZWNpZmllcnMtPnByZXBlbmRTZWxlY3RvcihjcmVhdGVUYWdTZWxlY3Rvcih0YWcsIG1p
eGVkQ2FzZUVsZW1lbnROYW1lLCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTA5NzUsMTMgKzExMDE3LDEzIEBAIHZvaWQgQ1NTUGFyc2VyOjp1
cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNw
YWNlUHJlCiAKICAgICBpZiAobGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnRhZ0hpc3RvcnkoKSkgewog
ICAgICAgICBpZiAodGFnICE9IGFueVFOYW1lKCkpCi0gICAgICAgICAgICBsYXN0U2hhZG93RGVz
Y2VuZGFudC0+dGFnSGlzdG9yeSgpLT5wcmVwZW5kVGFnU2VsZWN0b3IodGFnLCB0YWdJc0Zvck5h
bWVzcGFjZVJ1bGUpOworICAgICAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnRhZ0hpc3Rv
cnkoKS0+cHJlcGVuZFNlbGVjdG9yKGNyZWF0ZVRhZ1NlbGVjdG9yKHRhZywgbWl4ZWRDYXNlRWxl
bWVudE5hbWUsIHRhZ0lzRm9yTmFtZXNwYWNlUnVsZSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgLy8gRm9yIHNoYWRvdy1JRCBwc2V1ZG8tZWxlbWVudHMgdG8gYmUgY29ycmVjdGx5
IG1hdGNoZWQsIHRoZSBTaGFkb3dEZXNjZW5kYW50IGNvbWJpbmF0b3IgaGFzIHRvIGJlIHVzZWQu
CiAgICAgLy8gV2UgdGhlcmVmb3JlIGNyZWF0ZSBhIG5ldyBTZWxlY3RvciB3aXRoIHRoYXQgY29t
YmluYXRvciBoZXJlIGluIGFueSBjYXNlLCBldmVuIGlmIG1hdGNoaW5nIGFueSAoaG9zdCkgZWxl
bWVudCBpbiBhbnkgbmFtZXNwYWNlIChpLmUuICcqJykuCi0gICAgT3duUHRyPENTU1BhcnNlclNl
bGVjdG9yPiBlbGVtZW50TmFtZVNlbGVjdG9yID0gYWRvcHRQdHIobmV3IENTU1BhcnNlclNlbGVj
dG9yKHRhZykpOworICAgIE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gZWxlbWVudE5hbWVTZWxl
Y3RvciA9IGFkb3B0UHRyKG5ldyBDU1NQYXJzZXJTZWxlY3RvcihjcmVhdGVUYWdTZWxlY3Rvcih0
YWcsIG1peGVkQ2FzZUVsZW1lbnROYW1lLCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpKSk7CiAgICAg
bGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnNldFRhZ0hpc3RvcnkoZWxlbWVudE5hbWVTZWxlY3Rvci5y
ZWxlYXNlKCkpOwogICAgIGxhc3RTaGFkb3dEZXNjZW5kYW50LT5zZXRSZWxhdGlvbihDU1NTZWxl
Y3Rvcjo6U2hhZG93RGVzY2VuZGFudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggMDBk
ZGExYy4uNWMzOWQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjY2LDYgKzI2Niw3IEBA
IHB1YmxpYzoKICAgICBib29sIHBhcnNlRm9udFZhcmlhbnRMaWdhdHVyZXMoYm9vbCBpbXBvcnRh
bnQpOwogCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2VsZWN0b3IoKTsK
KyAgICBDU1NQYXJzZXJTZWxlY3RvciogY3JlYXRlRmxvYXRpbmdTZWxlY3RvcldpdGhNaXhlZENh
c2VUYWdOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmIGxvd2VyQ2FzZVRhZ1FOYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIG1peGVkQ2FzZVRhZ05hbWUpOwogICAgIENTU1BhcnNlclNlbGVjdG9yKiBj
cmVhdGVGbG9hdGluZ1NlbGVjdG9yV2l0aFRhZ05hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwog
ICAgIFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNpbmtGbG9hdGluZ1NlbGVjdG9yKENT
U1BhcnNlclNlbGVjdG9yKik7CiAKQEAgLTMyMSw3ICszMjIsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGFkZE5hbWVzcGFjZShjb25zdCBBdG9taWNTdHJpbmcmIHByZWZpeCwgY29uc3QgQXRvbWlj
U3RyaW5nJiB1cmkpOwogICAgIFF1YWxpZmllZE5hbWUgZGV0ZXJtaW5lTmFtZUluTmFtZXNwYWNl
KGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFt
ZSk7Ci0gICAgdm9pZCB1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZXNwYWNlUHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGVsZW1lbnROYW1l
LCBDU1NQYXJzZXJTZWxlY3RvciosIGJvb2wgaXNOYW1lc3BhY2VQbGFjZWhvbGRlciA9IGZhbHNl
KTsKKyAgICB2b2lkIHVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVudE5hbWUs
IGNvbnN0IEF0b21pY1N0cmluZyYgbWl4ZWRDYXNlRWxlbWVudE5hbWUsIENTU1BhcnNlclNlbGVj
dG9yKiwgYm9vbCBpc05hbWVzcGFjZVBsYWNlaG9sZGVyID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlU3BlY2lmaWVyc1dpdGhOYW1lc3BhY2VJZk5lZWRlZChDU1NQYXJzZXJTZWxlY3RvciopOwog
ICAgIENTU1BhcnNlclNlbGVjdG9yKiB1cGRhdGVTcGVjaWZpZXJzKENTU1BhcnNlclNlbGVjdG9y
KiwgQ1NTUGFyc2VyU2VsZWN0b3IqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmNwcAppbmRleCAxYTg0NzU1Li4xNmUxYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
VmFsdWVzLmNwcApAQCAtMTQ5LDYgKzE0OSwxMSBAQCBDU1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFy
c2VyU2VsZWN0b3IoKQogewogfQogCitDU1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFyc2VyU2VsZWN0
b3IoUGFzc093blB0cjxDU1NTZWxlY3Rvcj4gc2VsZWN0b3IpCisgICAgOiBtX3NlbGVjdG9yKHNl
bGVjdG9yKQoreworfQorCiBDU1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFyc2VyU2VsZWN0b3IoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5hbWUpCiAgICAgOiBtX3NlbGVjdG9yKGFkb3B0UHRyKG5l
dyBDU1NTZWxlY3Rvcih0YWdRTmFtZSkpKQogewpAQCAtMTkzLDYgKzE5OCw5IEBAIGJvb2wgQ1NT
UGFyc2VyU2VsZWN0b3I6OmlzU2ltcGxlKCkgY29uc3QKICAgICAgICAgICAgIHJldHVybiBtX3Rh
Z0hpc3RvcnktPmlzU2ltcGxlKCk7CiAgICAgfQogCisgICAgLy8gTWl4ZWQgY2FzZSB0YWdzIGNh
bm5vdCBiZSBzdGFyIGF0b21zLgorICAgIEFTU0VSVChtX3NlbGVjdG9yLT5tX21hdGNoICE9IENT
U1NlbGVjdG9yOjpNaXhlZENhc2VUYWcgfHwgbV9zZWxlY3Rvci0+bWl4ZWRDYXNlTG93ZXJUYWdR
TmFtZSgpLmxvY2FsTmFtZSgpICE9IHN0YXJBdG9tKTsKKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApAQCAtMjI1LDUgKzIzMywxNiBAQCB2b2lkIENTU1BhcnNlclNlbGVjdG9yOjpwcmVwZW5kVGFn
U2VsZWN0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5hbWUsIGJvb2wgdAogICAgIG1fc2Vs
ZWN0b3ItPm1fcmVsYXRpb24gPSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3I7CiB9CiAKK3ZvaWQg
Q1NTUGFyc2VyU2VsZWN0b3I6OnByZXBlbmRTZWxlY3RvcihQYXNzT3duUHRyPENTU1NlbGVjdG9y
PiB0YWdTZWxlY3RvcikKK3sKKyAgICBPd25QdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IHNlY29uZCA9
IGFkb3B0UHRyKG5ldyBDU1NQYXJzZXJTZWxlY3Rvcik7CisgICAgc2Vjb25kLT5tX3NlbGVjdG9y
ID0gbV9zZWxlY3Rvci5yZWxlYXNlKCk7CisgICAgc2Vjb25kLT5tX3RhZ0hpc3RvcnkgPSBtX3Rh
Z0hpc3RvcnkucmVsZWFzZSgpOworICAgIG1fdGFnSGlzdG9yeSA9IHNlY29uZC5yZWxlYXNlKCk7
CisKKyAgICBtX3NlbGVjdG9yID0gdGFnU2VsZWN0b3I7CisgICAgbV9zZWxlY3Rvci0+bV9yZWxh
dGlvbiA9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcjsKK30KKwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggNmVjODA0OS4uNjM0NDFlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAtNzUsNiArNzUsNyBAQCBzdHJ1Y3QgQ1NTUGFyc2VyU3Ry
aW5nIHsKICAgICB2b2lkIHNldExlbmd0aCh1bnNpZ25lZCBsZW5ndGgpIHsgbV9sZW5ndGggPSBs
ZW5ndGg7IH0KIAogICAgIHZvaWQgbG93ZXIoKTsKKyAgICBib29sIGlzTG93ZXJDYXNlKCkgY29u
c3Q7CiAKICAgICBVQ2hhciBvcGVyYXRvcltdKHVuc2lnbmVkIGkpCiAgICAgewpAQCAtMTcyLDYg
KzE3Myw3IEBAIGNsYXNzIENTU1BhcnNlclNlbGVjdG9yIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBDU1NQYXJzZXJTZWxlY3RvcigpOworICAgIENTU1BhcnNl
clNlbGVjdG9yKFBhc3NPd25QdHI8Q1NTU2VsZWN0b3I+KTsKICAgICBleHBsaWNpdCBDU1NQYXJz
ZXJTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgfkNTU1BhcnNlclNlbGVjdG9y
KCk7CiAKQEAgLTE5Nyw2ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnNlcnRUYWdIaXN0
b3J5KENTU1NlbGVjdG9yOjpSZWxhdGlvbiBiZWZvcmUsIFBhc3NPd25QdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+LCBDU1NTZWxlY3Rvcjo6UmVsYXRpb24gYWZ0ZXIpOwogICAgIHZvaWQgYXBwZW5kVGFn
SGlzdG9yeShDU1NTZWxlY3Rvcjo6UmVsYXRpb24sIFBhc3NPd25QdHI8Q1NTUGFyc2VyU2VsZWN0
b3I+KTsKICAgICB2b2lkIHByZXBlbmRUYWdTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiwg
Ym9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUgPSBmYWxzZSk7CisgICAgdm9pZCBwcmVwZW5kU2Vs
ZWN0b3IoUGFzc093blB0cjxDU1NTZWxlY3Rvcj4pOwogCiBwcml2YXRlOgogICAgIE93blB0cjxD
U1NTZWxlY3Rvcj4gbV9zZWxlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4
IDJlMzQ5M2YuLmMyMWZhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMTAy
LDYgKzEwMiw5IEBAIGlubGluZSB1bnNpZ25lZCBDU1NTZWxlY3Rvcjo6c3BlY2lmaWNpdHlGb3JP
bmVTZWxlY3RvcigpIGNvbnN0CiAgICAgICAgIHJldHVybiAweDEwMDsKICAgICBjYXNlIFRhZzoK
ICAgICAgICAgcmV0dXJuICh0YWdRTmFtZSgpLmxvY2FsTmFtZSgpICE9IHN0YXJBdG9tKSA/IDEg
OiAwOworICAgIGNhc2UgTWl4ZWRDYXNlVGFnOgorICAgICAgICAvLyBNaXhlZCBjYXNlIHRhZyBz
ZWxlY3RvcnMgY2Fubm90IGJlIHN0YXJ0IGF0b21zLCBzbyB3ZSBjYW4gb25seSByZXR1cm4gMSBo
ZXJlLgorICAgICAgICByZXR1cm4gMTsKICAgICBjYXNlIFVua25vd246CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KQEAgLTU5NiwxMyArNTk5LDE0IEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6c2Vs
ZWN0b3JUZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdCdWlsZGVyIHN0cjsKIAotICAgIGlmICht
X21hdGNoID09IENTU1NlbGVjdG9yOjpUYWcgJiYgIW1fdGFnSXNGb3JOYW1lc3BhY2VSdWxlKSB7
Ci0gICAgICAgIGlmICh0YWdRTmFtZSgpLnByZWZpeCgpLmlzTnVsbCgpKQotICAgICAgICAgICAg
c3RyLmFwcGVuZCh0YWdRTmFtZSgpLmxvY2FsTmFtZSgpKTsKKyAgICBpZiAoIW1fdGFnSXNGb3JO
YW1lc3BhY2VSdWxlICYmIChtX21hdGNoID09IENTU1NlbGVjdG9yOjpUYWcgfHwgbV9tYXRjaCA9
PSBDU1NTZWxlY3Rvcjo6TWl4ZWRDYXNlVGFnKSkgeworICAgICAgICBjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdRTmFtZVRvVXNlID0gbWF0Y2hpbmdUYWdRTmFtZSgpOworICAgICAgICBpZiAodGFn
UU5hbWVUb1VzZS5wcmVmaXgoKS5pc051bGwoKSkKKyAgICAgICAgICAgIHN0ci5hcHBlbmQodGFn
UU5hbWVUb1VzZS5sb2NhbE5hbWUoKSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgc3Ry
LmFwcGVuZCh0YWdRTmFtZSgpLnByZWZpeCgpLnN0cmluZygpKTsKKyAgICAgICAgICAgIHN0ci5h
cHBlbmQodGFnUU5hbWVUb1VzZS5wcmVmaXgoKS5zdHJpbmcoKSk7CiAgICAgICAgICAgICBzdHIu
YXBwZW5kKCd8Jyk7Ci0gICAgICAgICAgICBzdHIuYXBwZW5kKHRhZ1FOYW1lKCkubG9jYWxOYW1l
KCkpOworICAgICAgICAgICAgc3RyLmFwcGVuZCh0YWdRTmFtZVRvVXNlLmxvY2FsTmFtZSgpKTsK
ICAgICAgICAgfQogICAgIH0KIApAQCAtNzE2LDEzICs3MjAsMjkgQEAgU3RyaW5nIENTU1NlbGVj
dG9yOjpzZWxlY3RvclRleHQoKSBjb25zdAogdm9pZCBDU1NTZWxlY3Rvcjo6c2V0QXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHZhbHVlKQogewogICAgIGNyZWF0ZVJhcmVEYXRhKCk7Ci0g
ICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXR0cmlidXRlID0gdmFsdWU7CisgICAgbV9kYXRhLm1f
cmFyZURhdGEtPm1fYXR0cmlidXRlT3JNaXhlZENhc2VMb3dlclRhZ1FOYW1lID0gdmFsdWU7CiB9
CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OnNldEFyZ3VtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKLSAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9h
cmd1bWVudCA9IHZhbHVlOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50T3JNaXhl
ZENhc2VQYXJzZWRUYWdOYW1lID0gdmFsdWU7Cit9CisKK3ZvaWQgQ1NTU2VsZWN0b3I6OnNldE1p
eGVkQ2FzZUxvd2VyVGFnUU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdmFsdWUpCit7CisgICAg
QVNTRVJUKG1fbWF0Y2ggPT0gTWl4ZWRDYXNlVGFnKTsKKyAgICAvLyBNaXhlZCBjYXNlIHRhZyBz
ZWxlY3RvcnMgc2hvdWxkIG5ldmVyIGJlIHN0YXJBdG9tcyBhcyB0aGVyZSdzIG5vIHVwcGVyIGNh
c2UgdmVyc2lvbiBvZiB0aGUgc3RhckF0b20uCisgICAgQVNTRVJUKHZhbHVlLmxvY2FsTmFtZSgp
ICE9IHN0YXJBdG9tKTsKKyAgICBjcmVhdGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVE
YXRhLT5tX2F0dHJpYnV0ZU9yTWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSA9IHZhbHVlOworfQorCit2
b2lkIENTU1NlbGVjdG9yOjpzZXRNaXhlZENhc2VQYXJzZWRUYWdOYW1lKGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCit7CisgICAgQVNTRVJUKG1fbWF0Y2ggPT0gTWl4ZWRDYXNlVGFnKTsKKyAg
ICBjcmVhdGVSYXJlRGF0YSgpOworICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50T3JN
aXhlZENhc2VQYXJzZWRUYWdOYW1lID0gdmFsdWU7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OnNl
dFNlbGVjdG9yTGlzdChQYXNzT3duUHRyPENTU1NlbGVjdG9yTGlzdD4gc2VsZWN0b3JMaXN0KQpA
QCAtNzUxLDggKzc3MSw4IEBAIENTU1NlbGVjdG9yOjpSYXJlRGF0YTo6UmFyZURhdGEoUGFzc1Jl
ZlB0cjxBdG9taWNTdHJpbmdJbXBsPiB2YWx1ZSkKICAgICA6IG1fdmFsdWUodmFsdWUubGVha1Jl
ZigpKQogICAgICwgbV9hKDApCiAgICAgLCBtX2IoMCkKLSAgICAsIG1fYXR0cmlidXRlKGFueVFO
YW1lKCkpCi0gICAgLCBtX2FyZ3VtZW50KG51bGxBdG9tKQorICAgICwgbV9hdHRyaWJ1dGVPck1p
eGVkQ2FzZUxvd2VyVGFnUU5hbWUoYW55UU5hbWUoKSkKKyAgICAsIG1fYXJndW1lbnRPck1peGVk
Q2FzZVBhcnNlZFRhZ05hbWUobnVsbEF0b20pCiB7CiB9CiAKQEAgLTc2NSw3ICs3ODUsNyBAQCBD
U1NTZWxlY3Rvcjo6UmFyZURhdGE6On5SYXJlRGF0YSgpCiAvLyBhIGhlbHBlciBmdW5jdGlvbiBm
b3IgcGFyc2luZyBudGgtYXJndW1lbnRzCiBib29sIENTU1NlbGVjdG9yOjpSYXJlRGF0YTo6cGFy
c2VOdGgoKQogewotICAgIFN0cmluZyBhcmd1bWVudCA9IG1fYXJndW1lbnQubG93ZXIoKTsKKyAg
ICBTdHJpbmcgYXJndW1lbnQgPSBtX2FyZ3VtZW50T3JNaXhlZENhc2VQYXJzZWRUYWdOYW1lLmxv
d2VyKCk7CiAKICAgICBpZiAoYXJndW1lbnQuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDViYzYzMjcuLmRiZTlmZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgQ1NTU2VsZWN0b3IoKTsKICAgICAgICAgQ1NTU2VsZWN0b3IoY29uc3QgQ1NT
U2VsZWN0b3ImKTsKICAgICAgICAgZXhwbGljaXQgQ1NTU2VsZWN0b3IoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGJvb2wgdGFnSXNGb3JOYW1lc3BhY2VSdWxlID0gZmFsc2UpOworICAgICAgICBDU1NT
ZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiBtaXhlZENhc2VMb3dlclRhZ1FOYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIG1peGVkQ2FzZVBhcnNlZFRhZ05hbWUpOwogCiAgICAgICAgIH5DU1NT
ZWxlY3RvcigpOwogCkBAIC01Nyw2ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgZW51bSBNYXRjaCB7CiAgICAgICAgICAgICBVbmtub3duID0gMCwKICAgICAgICAgICAgIFRh
ZywKKyAgICAgICAgICAgIE1peGVkQ2FzZVRhZywKICAgICAgICAgICAgIElkLAogICAgICAgICAg
ICAgQ2xhc3MsCiAgICAgICAgICAgICBFeGFjdCwKQEAgLTIwMiw5ICsyMDQsMTkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogdGFnSGlzdG9yeSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5ID8gMCA6IGNvbnN0X2Nhc3Q8Q1NTU2Vs
ZWN0b3IqPih0aGlzICsgMSk7IH0KIAogICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdR
TmFtZSgpIGNvbnN0OworICAgICAgICBib29sIGlzVGFnTWF0Y2goKSBjb25zdCB7IHJldHVybiBt
X21hdGNoID09IFRhZyB8fCBtX21hdGNoID09IE1peGVkQ2FzZVRhZzsgfQorICAgICAgICBpbmxp
bmUgY29uc3QgUXVhbGlmaWVkTmFtZSYgbWF0Y2hpbmdUYWdRTmFtZSgpIGNvbnN0IHsgcmV0dXJu
IChtX21hdGNoID09IFRhZykgPyB0YWdRTmFtZSgpIDogbWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSgp
OyB9CisgICAgICAgIAorICAgICAgICAvLyBXaGVuZXZlciBhIHRhZyBzZWxlY3RvciBpcyBwYXJz
ZWQgaW4gYW4gSFRNTCBkb2N1bWVudCBhbmQgaXQgaGFzIG1peGVkIGNhc2UgbGV0dGVycywgd2Ug
bmVlZCB0byBzdG9yZQorICAgICAgICAvLyBib3RoIHRoZSBwYXJzZWQgdGFnIHZhbHVlIGFuZCB0
aGUgbG93ZXIgY2FzZWQgdmVyc2lvbiBvZiBpdCwgc28gdGhhdCB3ZSBjYW4gbWF0Y2ggYmFzZWQg
b24gdGhlIGVsZW1lbnQgdHlwZToKKyAgICAgICAgLy8gLSBIVE1MIGVsZW1lbnRzIHdpbGwgbWF0
Y2ggdXNpbmcgdGhlIGxvd2VyIGNhc2UgdmVyc2lvbiAtIG1peGVkQ2FzZUxvd2VyVGFnUU5hbWUo
KQorICAgICAgICAvLyAtIG5vbi1IVE1MIGVsZW1lbnRzIHdpbGwgbWF0Y2ggdXNpbmcgdGhlIHBh
cnNlZCBtaXhlZCBjYXNlIHZlcnNpb24gLSBtaXhlZENhc2VQYXJzZWRUYWdOYW1lKCkKKyAgICAg
ICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgbWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSgpIGNvbnN0Owor
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG1peGVkQ2FzZVBhcnNlZFRhZ05hbWUoKSBjb25z
dCB7IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnRP
ck1peGVkQ2FzZVBhcnNlZFRhZ05hbWUgOiBudWxsQXRvbTsgfQorCiAgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUoKSBjb25zdDsKICAgICAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlKCkgY29uc3Q7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJn
dW1lbnQgOiBudWxsQXRvbTsgfQorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyZ3VtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSYXJlRGF0YSA/IG1fZGF0YS5tX3JhcmVEYXRhLT5tX2Fy
Z3VtZW50T3JNaXhlZENhc2VQYXJzZWRUYWdOYW1lIDogbnVsbEF0b207IH0KICAgICAgICAgY29u
c3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jh
cmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fc2VsZWN0b3JMaXN0LmdldCgpIDogMDsgfQog
CiAgICAgICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJik7CkBAIC0yMjksNyAr
MjQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldE5vdExhc3RJblRh
Z0hpc3RvcnkoKSB7IG1faXNMYXN0SW5UYWdIaXN0b3J5ID0gZmFsc2U7IH0KIAogICAgICAgICBi
b29sIGlzU2ltcGxlKCkgY29uc3Q7Ci0KKyAgICAgICAgCiAgICAgICAgIGJvb2wgaXNGb3JQYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvclBhZ2U7IH0KICAgICAgICAgdm9pZCBzZXRGb3JQYWdl
KCkgeyBtX2lzRm9yUGFnZSA9IHRydWU7IH0KIApAQCAtMjYyLDE0ICsyNzQsMTYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgQXRvbWljU3RyaW5nSW1wbCogbV92YWx1ZTsgLy8g
UGxhaW4gcG9pbnRlciB0byBrZWVwIHRoaW5ncyB1bmlmb3JtIHdpdGggdGhlIHVuaW9uLgogICAg
ICAgICAgICAgaW50IG1fYTsgLy8gVXNlZCBmb3IgOm50aC0qCiAgICAgICAgICAgICBpbnQgbV9i
OyAvLyBVc2VkIGZvciA6bnRoLSoKLSAgICAgICAgICAgIFF1YWxpZmllZE5hbWUgbV9hdHRyaWJ1
dGU7IC8vIHVzZWQgZm9yIGF0dHJpYnV0ZSBzZWxlY3RvcgotICAgICAgICAgICAgQXRvbWljU3Ry
aW5nIG1fYXJndW1lbnQ7IC8vIFVzZWQgZm9yIDpjb250YWlucywgOmxhbmcgYW5kIDpudGgtKgor
ICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBtX2F0dHJpYnV0ZU9yTWl4ZWRDYXNlTG93ZXJUYWdR
TmFtZTsgLy8gdXNlZCBmb3IgYXR0cmlidXRlIHNlbGVjdG9yIGFuZCBtaXhlZCBjYXNlIHRhZyBz
ZWxlY3RvcnMKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtX2FyZ3VtZW50T3JNaXhlZENhc2VQ
YXJzZWRUYWdOYW1lOyAvLyBVc2VkIGZvciA6Y29udGFpbnMsIDpsYW5nIGFuZCA6bnRoLSogYW5k
IG1peGVkIGNhc2UgdGFnIHNlbGVjdG9ycwogICAgICAgICAgICAgT3duUHRyPENTU1NlbGVjdG9y
TGlzdD4gbV9zZWxlY3Rvckxpc3Q7IC8vIFVzZWQgZm9yIDotd2Via2l0LWFueSBhbmQgOm5vdAog
ICAgICAgICAKICAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgIFJhcmVEYXRhKFBhc3NSZWZQ
dHI8QXRvbWljU3RyaW5nSW1wbD4gdmFsdWUpOwogICAgICAgICB9OwogICAgICAgICB2b2lkIGNy
ZWF0ZVJhcmVEYXRhKCk7CisgICAgICAgIHZvaWQgc2V0TWl4ZWRDYXNlTG93ZXJUYWdRTmFtZShj
b25zdCBRdWFsaWZpZWROYW1lJik7CisgICAgICAgIHZvaWQgc2V0TWl4ZWRDYXNlUGFyc2VkVGFn
TmFtZShjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgICAgICB1bmlvbiBEYXRhVW5pb24gewog
ICAgICAgICAgICAgRGF0YVVuaW9uKCkgOiBtX3ZhbHVlKDApIHsgfQpAQCAtMjgzLDcgKzI5Nywx
NCBAQCBpbmxpbmUgY29uc3QgUXVhbGlmaWVkTmFtZSYgQ1NTU2VsZWN0b3I6OmF0dHJpYnV0ZSgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzQXR0cmlidXRlU2VsZWN0b3IoKSk7CiAgICAgQVNTRVJU
KG1faGFzUmFyZURhdGEpOwotICAgIHJldHVybiBtX2RhdGEubV9yYXJlRGF0YS0+bV9hdHRyaWJ1
dGU7CisgICAgcmV0dXJuIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2F0dHJpYnV0ZU9yTWl4ZWRDYXNl
TG93ZXJUYWdRTmFtZTsKK30KKworaW5saW5lIGNvbnN0IFF1YWxpZmllZE5hbWUmIENTU1NlbGVj
dG9yOjptaXhlZENhc2VMb3dlclRhZ1FOYW1lKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9tYXRj
aCA9PSBNaXhlZENhc2VUYWcpOworICAgIEFTU0VSVChtX2hhc1JhcmVEYXRhKTsKKyAgICByZXR1
cm4gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXR0cmlidXRlT3JNaXhlZENhc2VMb3dlclRhZ1FOYW1l
OwogfQogCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6bWF0Y2hlc1BzZXVkb0VsZW1lbnQoKSBj
b25zdApAQCAtMzg1LDYgKzQwNiwyMSBAQCBpbmxpbmUgQ1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9y
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ1FOYW1lLCBib29sIHRhZ0lzRm9yTmFtZQogICAgIG1f
ZGF0YS5tX3RhZ1FOYW1lLT5yZWYoKTsKIH0KIAoraW5saW5lIENTU1NlbGVjdG9yOjpDU1NTZWxl
Y3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiBtaXhlZENhc2VMb3dlclRhZ1FOYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIG1peGVkQ2FzZVBhcnNlZFRhZ05hbWUpCisgICAgOiBtX3JlbGF0aW9uKERl
c2NlbmRhbnQpCisgICAgLCBtX21hdGNoKE1peGVkQ2FzZVRhZykKKyAgICAsIG1fcHNldWRvVHlw
ZShQc2V1ZG9Ob3RQYXJzZWQpCisgICAgLCBtX3BhcnNlZE50aChmYWxzZSkKKyAgICAsIG1faXNM
YXN0SW5TZWxlY3Rvckxpc3QoZmFsc2UpCisgICAgLCBtX2lzTGFzdEluVGFnSGlzdG9yeSh0cnVl
KQorICAgICwgbV9oYXNSYXJlRGF0YShmYWxzZSkKKyAgICAsIG1faXNGb3JQYWdlKGZhbHNlKQor
ICAgICwgbV90YWdJc0Zvck5hbWVzcGFjZVJ1bGUoZmFsc2UpCit7CisgICAgc2V0TWl4ZWRDYXNl
TG93ZXJUYWdRTmFtZShtaXhlZENhc2VMb3dlclRhZ1FOYW1lKTsKKyAgICBzZXRNaXhlZENhc2VQ
YXJzZWRUYWdOYW1lKG1peGVkQ2FzZVBhcnNlZFRhZ05hbWUpOworfQorCiBpbmxpbmUgQ1NTU2Vs
ZWN0b3I6OkNTU1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yJiBvKQogICAgIDogbV9yZWxhdGlv
bihvLm1fcmVsYXRpb24pCiAgICAgLCBtX21hdGNoKG8ubV9tYXRjaCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmNwcAppbmRleCA3ZDY3N2M0Li44NmViZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC02
MCw4ICs2MCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBzdGF0aWMgaW5saW5lIGJv
b2wgaXNTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaChjb25zdCBDU1NTZWxlY3Rv
ciogc2VsZWN0b3IpCiB7CiAgICAgQVNTRVJUKHNlbGVjdG9yKTsKLSAgICBpZiAoc2VsZWN0b3It
Pm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlRhZykgewotICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIHNlbGVjdG9yTmFtZXNwYWNlID0gc2VsZWN0b3ItPnRhZ1FOYW1lKCkubmFtZXNwYWNlVVJJ
KCk7CisgICAgaWYgKHNlbGVjdG9yLT5pc1RhZ01hdGNoKCkpIHsKKyAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBzZWxlY3Rvck5hbWVzcGFjZSA9IHNlbGVjdG9yLT5tYXRjaGluZ1RhZ1FOYW1l
KCkubmFtZXNwYWNlVVJJKCk7CiAgICAgICAgIGlmIChzZWxlY3Rvck5hbWVzcGFjZSAhPSBzdGFy
QXRvbSAmJiBzZWxlY3Rvck5hbWVzcGFjZSAhPSB4aHRtbE5hbWVzcGFjZVVSSSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKHNlbGVjdG9yLT5yZWxhdGlvbigpID09IENT
U1NlbGVjdG9yOjpTdWJTZWxlY3RvcikKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgaW5saW5l
IFByb3BlcnR5V2hpdGVsaXN0VHlwZSBkZXRlcm1pbmVQcm9wZXJ0eVdoaXRlbGlzdFR5cGUoY29u
c3QgQWRkUnVsZQogICAgICAgICByZXR1cm4gUHJvcGVydHlXaGl0ZWxpc3RSZWdpb247CiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIGNvbXBvbmVu
dCA9IHNlbGVjdG9yOyBjb21wb25lbnQ7IGNvbXBvbmVudCA9IGNvbXBvbmVudC0+dGFnSGlzdG9y
eSgpKSB7Ci0gICAgICAgIGlmIChjb21wb25lbnQtPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ3VlIHx8IChjb21wb25lbnQtPm1fbWF0Y2ggIT0gQ1NTU2VsZWN0b3I6OlRhZyAm
JiBjb21wb25lbnQtPnZhbHVlKCkgPT0gVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgp
KSkKKyAgICAgICAgaWYgKGNvbXBvbmVudC0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQ
c2V1ZG9DdWUgfHwgKCFjb21wb25lbnQtPmlzVGFnTWF0Y2goKSAmJiBjb21wb25lbnQtPnZhbHVl
KCkgPT0gVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpKSkKICAgICAgICAgICAgIHJl
dHVybiBQcm9wZXJ0eVdoaXRlbGlzdEN1ZTsKICAgICB9CiAjZWxzZQpAQCAtMTY4LDYgKzE2OCw3
IEBAIHZvaWQgUnVsZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV9pZFJ1
bGVzKTsKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV9jbGFzc1J1bGVzKTsKICAgICBy
ZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV90YWdSdWxlcyk7CisgICAgcmVwb3J0QXRvbVJ1bGVN
YXAoJmluZm8sIG1fbWl4ZWRDYXNlVGFnUnVsZXMpOwogICAgIHJlcG9ydEF0b21SdWxlTWFwKCZp
bmZvLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9s
aW5rUHNldWRvQ2xhc3NSdWxlcyk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMjU0LDE4
ICsyNTUsMjIgQEAgYm9vbCBSdWxlU2V0OjpmaW5kQmVzdFJ1bGVTZXRBbmRBZGQoY29uc3QgQ1NT
U2VsZWN0b3IqIGNvbXBvbmVudCwgUnVsZURhdGEmIHJ1bGUKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmIChjb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlRhZykgewotICAgICAg
ICBpZiAoY29tcG9uZW50LT50YWdRTmFtZSgpLmxvY2FsTmFtZSgpICE9IHN0YXJBdG9tKSB7Cisg
ICAgaWYgKGNvbXBvbmVudC0+aXNUYWdNYXRjaCgpKSB7CisgICAgICAgIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ1FOYW1lVG9Vc2UgPSBjb21wb25lbnQtPm1hdGNoaW5nVGFnUU5hbWUoKTsKKyAg
ICAgICAgaWYgKHRhZ1FOYW1lVG9Vc2UubG9jYWxOYW1lKCkgIT0gc3RhckF0b20pIHsKICAgICAg
ICAgICAgIC8vIElmIHRoaXMgaXMgcGFydCBvZiBhIHN1YnNlbGVjdG9yIGNoYWluLCByZWN1cnNl
IGFoZWFkIHRvIGZpbmQgYSBuYXJyb3dlciBzZXQgKElEL2NsYXNzLikKICAgICAgICAgICAgIGlm
IChjb21wb25lbnQtPnJlbGF0aW9uKCkgPT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yCiAgICAg
ICAgICAgICAgICAgJiYgKGNvbXBvbmVudC0+dGFnSGlzdG9yeSgpLT5tX21hdGNoID09IENTU1Nl
bGVjdG9yOjpDbGFzcyB8fCBjb21wb25lbnQtPnRhZ0hpc3RvcnkoKS0+bV9tYXRjaCA9PSBDU1NT
ZWxlY3Rvcjo6SWQgfHwgU2VsZWN0b3JDaGVja2VyOjppc0NvbW1vblBzZXVkb0NsYXNzU2VsZWN0
b3IoY29tcG9uZW50LT50YWdIaXN0b3J5KCkpKQogICAgICAgICAgICAgICAgICYmIGZpbmRCZXN0
UnVsZVNldEFuZEFkZChjb21wb25lbnQtPnRhZ0hpc3RvcnkoKSwgcnVsZURhdGEpKQogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgICAgICAgICBhZGRUb1J1bGVTZXQoY29tcG9u
ZW50LT50YWdRTmFtZSgpLmxvY2FsTmFtZSgpLmltcGwoKSwgbV90YWdSdWxlcywgcnVsZURhdGEp
OworICAgICAgICAgICAgYWRkVG9SdWxlU2V0KHRhZ1FOYW1lVG9Vc2UubG9jYWxOYW1lKCkuaW1w
bCgpLCBtX3RhZ1J1bGVzLCBydWxlRGF0YSk7CisgICAgICAgICAgICBpZiAoY29tcG9uZW50LT5t
X21hdGNoID09IENTU1NlbGVjdG9yOjpNaXhlZENhc2VUYWcpCisgICAgICAgICAgICAgICAgYWRk
VG9SdWxlU2V0KGNvbXBvbmVudC0+bWl4ZWRDYXNlUGFyc2VkVGFnTmFtZSgpLmltcGwoKSwgbV9t
aXhlZENhc2VUYWdSdWxlcywgcnVsZURhdGEpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICB9CisKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQwMSw2ICs0MDYs
NyBAQCB2b2lkIFJ1bGVTZXQ6OnNocmlua1RvRml0KCkKICAgICBzaHJpbmtNYXBWZWN0b3JzVG9G
aXQobV9pZFJ1bGVzKTsKICAgICBzaHJpbmtNYXBWZWN0b3JzVG9GaXQobV9jbGFzc1J1bGVzKTsK
ICAgICBzaHJpbmtNYXBWZWN0b3JzVG9GaXQobV90YWdSdWxlcyk7CisgICAgc2hyaW5rTWFwVmVj
dG9yc1RvRml0KG1fbWl4ZWRDYXNlVGFnUnVsZXMpOwogICAgIHNocmlua01hcFZlY3RvcnNUb0Zp
dChtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyk7CiAgICAgbV9saW5rUHNldWRvQ2xhc3NSdWxl
cy5zaHJpbmtUb0ZpdCgpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5o
CmluZGV4IDQxYmVhMjEuLjk4OWVjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9S
dWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtMTI1LDYgKzEy
NSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBpZFJ1bGVzKEF0b21p
Y1N0cmluZ0ltcGwqIGtleSkgY29uc3QgeyByZXR1cm4gbV9pZFJ1bGVzLmdldChrZXkpOyB9CiAg
ICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogY2xhc3NSdWxlcyhBdG9taWNTdHJpbmdJbXBsKiBr
ZXkpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NSdWxlcy5nZXQoa2V5KTsgfQogICAgIGNvbnN0IFZl
Y3RvcjxSdWxlRGF0YT4qIHRhZ1J1bGVzKEF0b21pY1N0cmluZ0ltcGwqIGtleSkgY29uc3QgeyBy
ZXR1cm4gbV90YWdSdWxlcy5nZXQoa2V5KTsgfQorICAgIGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4q
IG1peGVkQ2FzZVRhZ1J1bGVzKEF0b21pY1N0cmluZ0ltcGwqIGtleSkgY29uc3QgeyByZXR1cm4g
bV9taXhlZENhc2VUYWdSdWxlcy5nZXQoa2V5KTsgfQogICAgIGNvbnN0IFZlY3RvcjxSdWxlRGF0
YT4qIHNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhBdG9taWNTdHJpbmdJbXBsKiBrZXkpIGNvbnN0
IHsgcmV0dXJuIG1fc2hhZG93UHNldWRvRWxlbWVudFJ1bGVzLmdldChrZXkpOyB9CiAgICAgY29u
c3QgVmVjdG9yPFJ1bGVEYXRhPiogbGlua1BzZXVkb0NsYXNzUnVsZXMoKSBjb25zdCB7IHJldHVy
biAmbV9saW5rUHNldWRvQ2xhc3NSdWxlczsgfQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAg
LTE0Niw2ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgQXRvbVJ1bGVNYXAgbV9pZFJ1bGVzOwogICAg
IEF0b21SdWxlTWFwIG1fY2xhc3NSdWxlczsKICAgICBBdG9tUnVsZU1hcCBtX3RhZ1J1bGVzOwor
ICAgIEF0b21SdWxlTWFwIG1fbWl4ZWRDYXNlVGFnUnVsZXM7CiAgICAgQXRvbVJ1bGVNYXAgbV9z
aGFkb3dQc2V1ZG9FbGVtZW50UnVsZXM7CiAgICAgVmVjdG9yPFJ1bGVEYXRhPiBtX2xpbmtQc2V1
ZG9DbGFzc1J1bGVzOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggMWY1ZTBjMC4uMzcyMmQxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTEzNyw2ICsxMzcsMTEgQEAgaW5saW5lIGJvb2wg
Y2hlY2tUYWdWYWx1ZShjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBDU1NTZWxlY3Rvciog
c2VsZWN0b3IpCiAgICAgcmV0dXJuIFNlbGVjdG9yQ2hlY2tlcjo6dGFnTWF0Y2hlcyhlbGVtZW50
LCBzZWxlY3Rvci0+dGFnUU5hbWUoKSk7CiB9CiAKK2lubGluZSBib29sIGNoZWNrTWl4ZWRDYXNl
VGFnVmFsdWUoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yKQoreworICAgIHJldHVybiBTZWxlY3RvckNoZWNrZXI6Om1peGVkQ2FzZVRhZ01hdGNoZXMo
ZWxlbWVudCwgc2VsZWN0b3ItPm1peGVkQ2FzZUxvd2VyVGFnUU5hbWUoKSwgc2VsZWN0b3ItPm1p
eGVkQ2FzZVBhcnNlZFRhZ05hbWUoKSk7Cit9CisKIH0KIAogaW5saW5lIGJvb2wgU2VsZWN0b3JD
aGVja2VyOjpmYXN0Q2hlY2tSaWdodG1vc3RTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciogc2Vs
ZWN0b3IsIGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIFZpc2l0ZWRNYXRjaFR5cGUgdmlzaXRlZE1h
dGNoVHlwZSkgY29uc3QKQEAgLTE0Niw2ICsxNTEsOCBAQCBpbmxpbmUgYm9vbCBTZWxlY3RvckNo
ZWNrZXI6OmZhc3RDaGVja1JpZ2h0bW9zdFNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxl
YwogICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKICAgICBjYXNlIENTU1NlbGVjdG9y
OjpUYWc6CiAgICAgICAgIHJldHVybiBjaGVja1RhZ1ZhbHVlKGVsZW1lbnQsIHNlbGVjdG9yKTsK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpNaXhlZENhc2VUYWc6CisgICAgICAgIHJldHVybiBjaGVj
a01peGVkQ2FzZVRhZ1ZhbHVlKGVsZW1lbnQsIHNlbGVjdG9yKTsKICAgICBjYXNlIENTU1NlbGVj
dG9yOjpDbGFzczoKICAgICAgICAgcmV0dXJuIGNoZWNrQ2xhc3NWYWx1ZShlbGVtZW50LCBzZWxl
Y3Rvcik7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6CkBAIC0xOTAsNiArMTk3LDEwIEBAIGJv
b2wgU2VsZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2soY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9y
LCBjb25zdCBFbGVtZW50KiBlbGVtCiAgICAgICAgICAgICBpZiAoIWZhc3RDaGVja1NpbmdsZVNl
bGVjdG9yPGNoZWNrVGFnVmFsdWU+KHNlbGVjdG9yLCBlbGVtZW50LCB0b3BDaGlsZE9yU3Vic2Vs
ZWN0b3IsIHRvcENoaWxkT3JTdWJzZWxlY3Rvck1hdGNoRWxlbWVudCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6Ok1peGVkQ2FzZVRhZzoKKyAgICAgICAgICAgIGlmICghZmFzdENoZWNrU2luZ2xlU2Vs
ZWN0b3I8Y2hlY2tNaXhlZENhc2VUYWdWYWx1ZT4oc2VsZWN0b3IsIGVsZW1lbnQsIHRvcENoaWxk
T3JTdWJzZWxlY3RvciwgdG9wQ2hpbGRPclN1YnNlbGVjdG9yTWF0Y2hFbGVtZW50KSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6U2V0OgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKICAg
ICAgICAgICAgIGlmICghZmFzdENoZWNrU2luZ2xlU2VsZWN0b3I8Y2hlY2tFeGFjdEF0dHJpYnV0
ZVZhbHVlPihzZWxlY3RvciwgZWxlbWVudCwgdG9wQ2hpbGRPclN1YnNlbGVjdG9yLCB0b3BDaGls
ZE9yU3Vic2VsZWN0b3JNYXRjaEVsZW1lbnQpKQpAQCAtMjE2LDcgKzIyNyw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc0Zhc3RDaGVja2FibGVNYXRjaChjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0
b3IpCiAgICAgfQogICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6RXhh
Y3QpCiAgICAgICAgIHJldHVybiBzZWxlY3Rvci0+YXR0cmlidXRlKCkgIT0gc3R5bGVBdHRyICYm
IEhUTUxEb2N1bWVudDo6aXNDYXNlU2Vuc2l0aXZlQXR0cmlidXRlKHNlbGVjdG9yLT5hdHRyaWJ1
dGUoKSk7Ci0gICAgcmV0dXJuIHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpUYWcg
fHwgc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OklkIHx8IHNlbGVjdG9yLT5tX21h
dGNoID09IENTU1NlbGVjdG9yOjpDbGFzczsKKyAgICByZXR1cm4gc2VsZWN0b3ItPmlzVGFnTWF0
Y2goKSB8fCBzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6SWQgfHwgc2VsZWN0b3It
Pm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNGYXN0Q2hlY2thYmxlUmlnaHRtb3N0U2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yKQpAQCAtNDc1LDYgKzQ4Niw5IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShj
b25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2liCiAgICAgaWYg
KHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpUYWcpCiAgICAgICAgIHJldHVybiBT
ZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMoZWxlbWVudCwgc2VsZWN0b3ItPnRhZ1FOYW1lKCkp
OwogCisgICAgaWYgKHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpNaXhlZENhc2VU
YWcpCisgICAgICAgIHJldHVybiBTZWxlY3RvckNoZWNrZXI6Om1peGVkQ2FzZVRhZ01hdGNoZXMo
ZWxlbWVudCwgc2VsZWN0b3ItPm1peGVkQ2FzZUxvd2VyVGFnUU5hbWUoKSwgc2VsZWN0b3ItPm1p
eGVkQ2FzZVBhcnNlZFRhZ05hbWUoKSk7CisKICAgICBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggPT0g
Q1NTU2VsZWN0b3I6OkNsYXNzKQogICAgICAgICByZXR1cm4gZWxlbWVudC0+aGFzQ2xhc3MoKSAm
JiBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4oZWxlbWVudCktPmNsYXNzTmFtZXMoKS5jb250
YWlucyhzZWxlY3Rvci0+dmFsdWUoKSk7CiAKQEAgLTcyNiw3ICs3NDAsNyBAQCBib29sIFNlbGVj
dG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFNpYgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKICAg
ICAgICAgICAgIC8vIElmIHdlJ3JlIGluIHF1aXJrcyBtb2RlLCB0aGVuIGhvdmVyIHNob3VsZCBu
ZXZlciBtYXRjaCBhbmNob3JzIHdpdGggbm8KICAgICAgICAgICAgIC8vIGhyZWYgYW5kICo6aG92
ZXIgc2hvdWxkIG5vdCBtYXRjaCBhbnl0aGluZy4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIHNpdGVz
IGxpa2Ugd3NqLmNvbS4KLSAgICAgICAgICAgIGlmIChtX3N0cmljdFBhcnNpbmcgfHwgY29udGV4
dC5pc1N1YlNlbGVjdG9yIHx8IChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFn
ICYmIHNlbGVjdG9yLT50YWdRTmFtZSgpICE9IGFueVFOYW1lKCkgJiYgIWVsZW1lbnQtPmhhc1Rh
Z05hbWUoYVRhZykpIHx8IGVsZW1lbnQtPmlzTGluaygpKSB7CisgICAgICAgICAgICBpZiAobV9z
dHJpY3RQYXJzaW5nIHx8IGNvbnRleHQuaXNTdWJTZWxlY3RvciB8fCAoc2VsZWN0b3ItPmlzVGFn
TWF0Y2goKSAmJiBzZWxlY3Rvci0+bWF0Y2hpbmdUYWdRTmFtZSgpICE9IGFueVFOYW1lKCkgJiYg
IWVsZW1lbnQtPmhhc1RhZ05hbWUoYVRhZykpIHx8IGVsZW1lbnQtPmlzTGluaygpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSkgewogICAgICAgICAgICAg
ICAgICAgICBpZiAoY29udGV4dC5lbGVtZW50U3R5bGUpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250ZXh0LmVsZW1lbnRTdHlsZS0+c2V0QWZmZWN0ZWRCeUhvdmVyKCk7CkBAIC03NDAsNyAr
NzU0LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hl
Y2tpbmdDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaWIKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQWN0aXZlOgogICAgICAgICAgICAgLy8gSWYgd2UncmUgaW4gcXVpcmtzIG1vZGUs
IHRoZW4gOmFjdGl2ZSBzaG91bGQgbmV2ZXIgbWF0Y2ggYW5jaG9ycyB3aXRoIG5vCiAgICAgICAg
ICAgICAvLyBocmVmIGFuZCAqOmFjdGl2ZSBzaG91bGQgbm90IG1hdGNoIGFueXRoaW5nLgotICAg
ICAgICAgICAgaWYgKG1fc3RyaWN0UGFyc2luZyB8fCBjb250ZXh0LmlzU3ViU2VsZWN0b3IgfHwg
KHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpUYWcgJiYgc2VsZWN0b3ItPnRhZ1FO
YW1lKCkgIT0gYW55UU5hbWUoKSAmJiAhZWxlbWVudC0+aGFzVGFnTmFtZShhVGFnKSkgfHwgZWxl
bWVudC0+aXNMaW5rKCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0cmljdFBhcnNpbmcgfHwgY29u
dGV4dC5pc1N1YlNlbGVjdG9yIHx8IChzZWxlY3Rvci0+aXNUYWdNYXRjaCgpICYmIHNlbGVjdG9y
LT5tYXRjaGluZ1RhZ1FOYW1lKCkgIT0gYW55UU5hbWUoKSAmJiAhZWxlbWVudC0+aGFzVGFnTmFt
ZShhVGFnKSkgfHwgZWxlbWVudC0+aXNMaW5rKCkpIHsKICAgICAgICAgICAgICAgICBpZiAobV9t
b2RlID09IFJlc29sdmluZ1N0eWxlKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjb250ZXh0
LmVsZW1lbnRTdHlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZWxlbWVudFN0
eWxlLT5zZXRBZmZlY3RlZEJ5QWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmgKaW5kZXggMzkzOWJjMy4uN2E3ZGI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuaApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNb2RlKE1vZGUgbW9k
ZSkgeyBtX21vZGUgPSBtb2RlOyB9CiAKICAgICBzdGF0aWMgYm9vbCB0YWdNYXRjaGVzKGNvbnN0
IEVsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CisgICAgc3RhdGljIGJvb2wgbWl4ZWRD
YXNlVGFnTWF0Y2hlcyhjb25zdCBFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYgbWl4ZWRDYXNlRWxlbWVudE5hbWUpOwogICAgIHN0YXRpYyBib29sIGlz
Q29tbW9uUHNldWRvQ2xhc3NTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciopOwogICAgIGJvb2wg
bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoY29uc3QgRWxlbWVudCopIGNvbnN0OwogICAgIHN0YXRp
YyBib29sIGZhc3RDaGVja1JpZ2h0bW9zdEF0dHJpYnV0ZVNlbGVjdG9yKGNvbnN0IEVsZW1lbnQq
LCBjb25zdCBDU1NTZWxlY3RvciopOwpAQCAtMTM5LDYgKzE0MCwxNyBAQCBpbmxpbmUgYm9vbCBT
ZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3Qg
UXVhbGlmaWVkTgogICAgIHJldHVybiBuYW1lc3BhY2VVUkkgPT0gc3RhckF0b20gfHwgbmFtZXNw
YWNlVVJJID09IGVsZW1lbnQtPm5hbWVzcGFjZVVSSSgpOwogfQogCitpbmxpbmUgYm9vbCBTZWxl
Y3RvckNoZWNrZXI6Om1peGVkQ2FzZVRhZ01hdGNoZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbWl4ZWRD
YXNlRWxlbWVudE5hbWUpCit7CisgICAgQVNTRVJUKHRhZ1FOYW1lICE9IGFueVFOYW1lKCkpOwor
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gZWxlbWVudC0+aXNIVE1MRWxlbWVu
dCgpID8gdGFnUU5hbWUubG9jYWxOYW1lKCkgOiBtaXhlZENhc2VFbGVtZW50TmFtZTsKKyAgICBB
U1NFUlQobG9jYWxOYW1lICE9IHN0YXJBdG9tKTsKKyAgICBpZiAobG9jYWxOYW1lICE9IGVsZW1l
bnQtPmxvY2FsTmFtZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lc3BhY2VVUkkgPSB0YWdRTmFtZS5uYW1lc3BhY2VVUkkoKTsKKyAgICByZXR1
cm4gbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG5hbWVzcGFjZVVSSSA9PSBlbGVtZW50LT5u
YW1lc3BhY2VVUkkoKTsKK30KKwogaW5saW5lIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja0V4
YWN0QXR0cmlidXRlKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IHNlbGVjdG9yQXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nSW1wbCogdmFsdWUpCiB7
CiAgICAgaWYgKCFlbGVtZW50LT5oYXNBdHRyaWJ1dGVzV2l0aG91dFVwZGF0ZSgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckZpbHRlci5jcHAKaW5kZXggNjFmOWRmZS4uNDYyNGFmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yRmlsdGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCkBAIC0xMjQsNiArMTI0LDExIEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBjb2xsZWN0RGVzY2VuZGFudFNlbGVjdG9ySWRlbnRpZmllckhhc2hlcyhj
b25zdCBDU1NTZWxlY3RvcioKICAgICAgICAgaWYgKHNlbGVjdG9yLT50YWdRTmFtZSgpLmxvY2Fs
TmFtZSgpICE9IHN0YXJBdG9tKQogICAgICAgICAgICAgKCpoYXNoKyspID0gc2VsZWN0b3ItPnRh
Z1FOYW1lKCkubG9jYWxOYW1lKCkuaW1wbCgpLT5leGlzdGluZ0hhc2goKSAqIFRhZ05hbWVTYWx0
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpNaXhlZENhc2VUYWc6Cisg
ICAgICAgIC8vIFdlIGFyZSBub3QgY29sbGVjdGluZyBtaXhlZCBjYXNlIHRhZyBuYW1lcywgYXMg
d2UgZG9uJ3Qga25vdyB3aGljaCBvbmUgaXMgYWN0dWFsbHkgZ29pbmcgdG8gbWF0Y2ggdGhlIGVs
ZW1lbnQuCisgICAgICAgIC8vIFdlIGNvdWxkIHVzZSB0aGUgbG93ZXIgY2FzZSB0YWcgbmFtZSwg
aWYgd2UgcHVzaGVkIHRoZSBsb3dlciBjYXNlIHRhZyBuYW1lIGluc3RlYWQgb2YgdGhlIGNhbm9u
aWNhbCBmb3JtLCBidXQKKyAgICAgICAgLy8gdGhhdCB3aWxsIHJlcXVpcmUgY2hlY2tpbmcgdGhl
IHRhZyBuYW1lcyBmb3IgbG93ZXIgY2FzZSBhbmQgbWlnaHQgcG9zc2libHkgdGFrZSBtb3JlIHRp
bWUgdGhhbiB0aGlzIG9wdGltaXphdGlvbiBpcyBzYXZpbmcuCisgICAgICAgIGJyZWFrOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCA5NTZiOTg0Li4zOTlhYzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC02OTYsNiArNjk2LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0
TWF0Y2hpbmdSdWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdCwgUnVsZVIKICAg
ICBpZiAobV9zZWxlY3RvckNoZWNrZXIubWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MobV9lbGVtZW50
KSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVxdWVzdC5ydWxl
U2V0LT5mb2N1c1BzZXVkb0NsYXNzUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2UpOwog
ICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+dGFn
UnVsZXMobV9lbGVtZW50LT5sb2NhbE5hbWUoKS5pbXBsKCkpLCBtYXRjaFJlcXVlc3QsIHJ1bGVS
YW5nZSk7CisgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVxdWVzdC5ydWxl
U2V0LT5taXhlZENhc2VUYWdSdWxlcyhtX2VsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSksIG1h
dGNoUmVxdWVzdCwgcnVsZVJhbmdlKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qo
bWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPnVuaXZlcnNhbFJ1bGVzKCksIG1hdGNoUmVxdWVzdCwgcnVs
ZVJhbmdlKTsKIH0KIApAQCAtMjI4OSw2ICsyMjkwLDkgQEAgaW5saW5lIGJvb2wgU3R5bGVSZXNv
bHZlcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCBjb25zdCBDb250YWlu
ZXIKICAgICAgICAgfQogICAgICAgICBpZiAocnVsZURhdGEuc2VsZWN0b3IoKS0+bV9tYXRjaCA9
PSBDU1NTZWxlY3Rvcjo6VGFnICYmICFTZWxlY3RvckNoZWNrZXI6OnRhZ01hdGNoZXMobV9lbGVt
ZW50LCBydWxlRGF0YS5zZWxlY3RvcigpLT50YWdRTmFtZSgpKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgaWYgKHJ1bGVEYXRhLnNlbGVjdG9yKCktPm1fbWF0Y2ggPT0gQ1NT
U2VsZWN0b3I6Ok1peGVkQ2FzZVRhZyAKKyAgICAgICAgICAgICYmICFTZWxlY3RvckNoZWNrZXI6
Om1peGVkQ2FzZVRhZ01hdGNoZXMobV9lbGVtZW50LCBydWxlRGF0YS5zZWxlY3RvcigpLT5taXhl
ZENhc2VMb3dlclRhZ1FOYW1lKCksIHJ1bGVEYXRhLnNlbGVjdG9yKCktPm1peGVkQ2FzZVBhcnNl
ZFRhZ05hbWUoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICghU2Vs
ZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2tSaWdodG1vc3RBdHRyaWJ1dGVTZWxlY3RvcihtX2VsZW1l
bnQsIHJ1bGVEYXRhLnNlbGVjdG9yKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICByZXR1cm4gbV9zZWxlY3RvckNoZWNrZXIuZmFzdENoZWNrKHJ1bGVEYXRhLnNlbGVjdG9y
KCksIG1fZWxlbWVudCk7CkBAIC0yNjE4LDYgKzI2MjIsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6
Om1hdGNoUGFnZVJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIFJ1bGVTZXQqIHJ1bGVzLCBib29s
IGlzTAogc3RhdGljIGJvb2wgY2hlY2tQYWdlU2VsZWN0b3JDb21wb25lbnRzKGNvbnN0IENTU1Nl
bGVjdG9yKiBzZWxlY3RvciwgYm9vbCBpc0xlZnRQYWdlLCBib29sIGlzRmlyc3RQYWdlLCBjb25z
dCBTdHJpbmcmIHBhZ2VOYW1lKQogewogICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIGNvbXBv
bmVudCA9IHNlbGVjdG9yOyBjb21wb25lbnQ7IGNvbXBvbmVudCA9IGNvbXBvbmVudC0+dGFnSGlz
dG9yeSgpKSB7CisgICAgICAgIEFTU0VSVChjb21wb25lbnQtPm1fbWF0Y2ggIT0gQ1NTU2VsZWN0
b3I6Ok1peGVkQ2FzZVRhZyk7CiAgICAgICAgIGlmIChjb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NT
U2VsZWN0b3I6OlRhZykgewogICAgICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5h
bWUgPSBjb21wb25lbnQtPnRhZ1FOYW1lKCkubG9jYWxOYW1lKCk7CiAgICAgICAgICAgICBpZiAo
bG9jYWxOYW1lICE9IHN0YXJBdG9tICYmIGxvY2FsTmFtZSAhPSBwYWdlTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDQw
NDQ3MTQuLjJjYWIxNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcApAQCAtMTIxLDYgKzEyMSw3IEBAIHN0YXRpYyBib29sIHZhbGlk
YXRlU3ViU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogewogICAgIHN3aXRj
aCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKICAgICBjYXNlIENTU1NlbGVjdG9yOjpUYWc6CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6TWl4ZWRDYXNlVGFnOgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6Oklk
OgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNsYXNzOgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4
YWN0Ogo=
</data>
<flag name="commit-queue"
          id="204343"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185355</attachid>
            <date>2013-01-29 17:21:50 -0800</date>
            <delta_ts>2013-01-30 03:01:11 -0800</delta_ts>
            <desc>Patch V6</desc>
            <filename>bug83438_11.patch</filename>
            <type>text/plain</type>
            <size>76483</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDAzNmU1Li43NDUxZjk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDEt
MjkgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIHF1
ZXJ5U2VsZWN0b3JBbGwgdW5hYmxlIHRvIGZpbmQgU1ZHIGNhbWVsQ2FzZSBlbGVtZW50cyBpbXBv
cnRlZCBpbnRvIEhUTUwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgzNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1pbnNlbnNpdGl2ZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWlu
c2Vuc2l0aXZlLmh0bWw6IEFkZGVkLiBDaGVja2luZyB0aGF0IHRhZyBuYW1lcyBhcmUgc3RpbGwg
bWF0Y2hlZCB1c2luZyBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIGluIEhUTUwgZG9jdW1lbnRz
LgorICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LXNlbnNpdGl2ZS54aHRtbDogQWRkZWQuIENoZWNraW5nIHRoYXQgdGFnIG5hbWVzIGFyZSBzdGls
bCBtYXRjaGVkIHVzaW5nIGNhc2Utc2Vuc2l0aXZlIG1hdGNoaW5nIGluIFhIVE1MIGRvY3VtZW50
cy4KKyAgICAgICAgKiBzdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MuaHRtbDogQWRkZWQu
IENoZWNraW5nIHRoYXQgdGFnIG5hbWVzIGFyZSBtYXRjaGVkIHVzaW5nIGNhc2Utc2Vuc2l0aXZl
IG1hdGNoaW5nIGZvciBTVkcgdGFncyBpbnNpZGUgSFRNTCBkb2N1bWVudHMuIFRoaXMgdGVzdCBp
cyBhY3R1YWxseSB1c2luZyBzdHlsZSBydWxlcyAKKyAgICAgICAgYW5kIGNoZWNraW5nIHRoZSBj
b21wdXRlZCBzdHlsZS4KKyAgICAgICAgKiBzdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmct
aW4taHRtbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vdGFnLWNhc2Ut
c2Vuc2l0aXZlLXN2Zy1pbi1odG1sLmh0bWw6IEFkZGVkLiBDaGVja2luZyB0aGF0IHRhZyBuYW1l
cyBhcmUgbWF0Y2hlZCB1c2luZyBjYXNlLXNlbnNpdGl2ZSBtYXRjaGluZyBmb3IgU1ZHIHRhZ3Mg
aW5zaWRlIEhUTUwgZG9jdW1lbnRzLgorCiAyMDEzLTAxLTI5ICBPbGl2ZXIgSHVudCAgPG9saXZl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE0MDU5NCk6IFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEIGluIEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWlu
c2Vuc2l0aXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mMWFkMTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vU2VsZWN0
b3JBUEkvdGFnLWNhc2UtaW5zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAK
K1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignU1BBTicpIGlzIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJyku
d2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdTUEFOID4gaW1nJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZzEn
KQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpLndlYmtpdE1hdGNoZXNTZWxl
Y3RvcignU1BBTiA+IGltZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcign
U1BBTiBpbWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdTUEFOIGlt
ZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2IHVsIGxpIFNQQU4n
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcignZGl2IHVsIGxpIFNQ
QU4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1bCBsaSB0ZXh0
YXJlYSArIFNQQU4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykKK1BBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcign
ZGl2IHVsIGxpIHRleHRhcmVhICsgU1BBTicpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBw
ZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1hdGNo
ZXNTZWxlY3RvcignZGl2IHVsIGxpIHNwYW4nKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJ2RpdiB1bCBsaSBzcEFuJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vw
cGVyMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ2RpdiB1bCBsaSBzcEFuJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1
cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0
Y2hlc1NlbGVjdG9yKCdESVYgdWwgbGkgc3BhbicpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dXBwZXIxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpLndlYmtpdE1h
dGNoZXNTZWxlY3RvcignZGl2IFVMIGxpIHNwYW4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVl
cnlTZWxlY3Rvcignc3BhbjEnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
c3BhbiNVUFBFUjEnKSBpcyBudWxsCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vua25v
d25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0
b3IoJ3Vua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rp
diB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCdkaXYgdW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcigndWwgKyB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vu
a25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJyku
d2Via2l0TWF0Y2hlc1NlbGVjdG9yKCd1bCArIHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ0RJViB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vu
a25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdESVYgdW5rbm93blRhZycpIGlzIHRy
dWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignVUwgKyB1bmtub3duVGFnJykgaXMgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdVTCArIHVua25v
d25UYWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vua25vd250YWcn
KSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3Vu
a25vd250YWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1Vua25vd250
YWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3Io
J1Vua25vd250YWcnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiB1
bmtub3dudGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykKK1BB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0TWF0Y2hlc1Nl
bGVjdG9yKCdkaXYgdW5rbm93bnRhZycpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigndWwnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndWwxJykKK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3VsMScpLndlYmtpdE1hdGNoZXNTZWxlY3RvcigndWwnKSBpcyB0
cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1VMJykgaXMgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3VsMScpCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bDEnKS53ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoJ1VMJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ3Vua25vd250YWcxJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ29s
JykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ09MJykgaXMgbnVsbAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNlLWluc2Vuc2l0aXZl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1pbnNlbnNp
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmZmFlYzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90YWctY2Fz
ZS1pbnNlbnNpdGl2ZS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPCEtLSBUZXN0aW5nIHRoYXQgaW4g
SFRNTCBkb2N1bWVudHMgQ1NTIHNlbGVjdG9ycyB1c2UgY2FzZS1pbnNlbnNpdGl2ZSB0YWcgbmFt
ZSBtYXRjaGluZy4gLS0+CisgICAgPGRpdiBpZD0iY29udGVudCI+CisgICAgICAgIDxkaXYgc3R5
bGU9ImRpc3BsYXk6IG5vbmUiPgorICAgICAgICAgICAgPHVsIGlkPSJ1bDEiPgorICAgICAgICAg
ICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYTEi
PjwvdGV4dGFyZWE+CisgICAgICAgICAgICAgICAgICAgIDxTUEFOIGlkPSJ1cHBlcjEiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPGltZyBpZD0iaW1nMSIgLz4KKyAgICAgICAgICAgICAgICAg
ICAgPC9TUEFOPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAg
ICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcxIj48L3Vua25vd25UYWc+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBjb250ZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24g
Y2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiLCAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBlbGVtZW50SWQgKyAiJykiKTsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyIgKyBlbGVtZW50SWQg
KyAiJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCciICsgc2VsZWN0b3IgKyAiJykiKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcihzZWxlY3Rv
cikgeworICAgICAgICAgICAgc2hvdWxkQmVOdWxsKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIg
KyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
IlNQQU4gPiBpbWciLCAiaW1nMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlNQ
QU4gaW1nIiwgImltZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdWwg
bGkgU1BBTiIsICJ1cHBlcjEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYg
dWwgbGkgdGV4dGFyZWEgKyBTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5n
U2VsZWN0b3IoImRpdiB1bCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNo
aW5nU2VsZWN0b3IoImRpdiB1bCBsaSBzcEFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoIkRJViB1bCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBjaGVj
a01hdGNoaW5nU2VsZWN0b3IoImRpdiBVTCBsaSBzcGFuIiwgInVwcGVyMSIpOworICAgICAgICBj
aGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInNwYW4xIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hp
bmdTZWxlY3Rvcigic3BhbiNVUFBFUjEiKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoInVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJkaXYgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoInVsICsgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAg
ICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIkRJViB1bmtub3duVGFnIiwgInVua25vd25UYWcxIik7
CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigiVUwgKyB1bmtub3duVGFnIiwgInVua25v
d25UYWcxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93bnRhZyIsICJ1
bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlVua25vd250YWci
LCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJkaXYgdW5r
bm93bnRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
InVsIiwgInVsMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoIlVMIiwgInVsMSIp
OworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInVua25vd250YWcxIik7CisgICAg
ICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3Rvcigib2wiKTsKKyAgICAgICAgY2hlY2tOb25NYXRj
aGluZ1NlbGVjdG9yKCJPTCIpOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1NlbGVjdG9yQVBJL3RhZy1jYXNl
LXNlbnNpdGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQ
SS90YWctY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjY2ZDI4NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9TZWxlY3RvckFQSS90YWctY2FzZS1zZW5zaXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjQgQEAKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicpIGlz
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdkaXYgdWwgbGkgU1BBTicp
IGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdWwgbGkgdGV4dGFyZWEg
KyBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2RpdiB1
bCBsaSB0ZXh0YXJlYSArIFNQQU4nKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cignZGl2IHVsIGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
ZGl2IHVsIGxpIHNwQW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRElW
IHVsIGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignZGl2IFVM
IGxpIHNwYW4nKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcigndW5rbm93blRh
ZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxlY3Rvcign
dW5rbm93blRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdW5r
bm93blRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNTZWxl
Y3RvcignZGl2IHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cigndWwgKyB1bmtub3duVGFnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25U
YWcxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Vua25vd25UYWcxJykud2Via2l0
TWF0Y2hlc1NlbGVjdG9yKCd1bCArIHVua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQu
cXVlcnlTZWxlY3RvcignRElWIHVua25vd25UYWcnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVl
cnlTZWxlY3RvcignVUwgKyB1bmtub3duVGFnJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5
U2VsZWN0b3IoJ3Vua25vd25UYWcxJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ3Vua25vd250YWcnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignVW5r
bm93bnRhZycpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCdkaXYgdW5rbm93
bnRhZycpIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQSS90
YWctY2FzZS1zZW5zaXRpdmUueGh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9TZWxlY3RvckFQ
SS90YWctY2FzZS1zZW5zaXRpdmUueGh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWIyZWNkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Nl
bGVjdG9yQVBJL3RhZy1jYXNlLXNlbnNpdGl2ZS54aHRtbApAQCAtMCwwICsxLDU0IEBACis8P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgCisgICAg
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIFN0cmljdC8vRU4iCisgICAgICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBYSFRN
TCBkb2N1bWVudHMgQ1NTIHNlbGVjdG9ycyB1c2UgY2FzZS1zZW5zaXRpdmUgdGFnIG5hbWUgbWF0
Y2hpbmcuIC0tPgorICAgIDxkaXYgaWQ9ImNvbnRlbnQiPgorICAgICAgICA8ZGl2IHN0eWxlPSJk
aXNwbGF5OiBub25lIj4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+Cisg
ICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0idGV4dGFyZWExIj48L3RleHRhcmVhPgor
ICAgICAgICAgICAgICAgICAgICA8U1BBTiBpZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAg
ICAgICAgPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8dW5rbm93blRhZyBp
ZD0idW5rbm93blRhZzEiPjwvdW5rbm93blRhZz4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+
CisgICAgPHNjcmlwdD4KKyAgICA8IVtDREFUQVsgCisgICAgICAgIHZhciBjb250ZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKTsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tN
YXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIsICJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKSIpOworICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53
ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBzZWxlY3RvciArICInKSIpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7Cisg
ICAgICAgICAgICBzaG91bGRCZU51bGwoImNvbnRlbnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVj
dG9yICsgIicpIik7CisgICAgICAgIH0KKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3Io
ImRpdiB1bCBsaSBTUEFOIiwgInVwcGVyMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoImRpdiB1bCBsaSB0ZXh0YXJlYSArIFNQQU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNr
Tm9uTWF0Y2hpbmdTZWxlY3RvcigiZGl2IHVsIGxpIHNwYW4iKTsKKyAgICAgICAgY2hlY2tOb25N
YXRjaGluZ1NlbGVjdG9yKCJkaXYgdWwgbGkgc3BBbiIpOworICAgICAgICBjaGVja05vbk1hdGNo
aW5nU2VsZWN0b3IoIkRJViB1bCBsaSBzcGFuIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdT
ZWxlY3RvcigiZGl2IFVMIGxpIHNwYW4iKTsKKworICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0
b3IoInVua25vd25UYWciLCAidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1Nl
bGVjdG9yKCJkaXYgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01h
dGNoaW5nU2VsZWN0b3IoInVsICsgdW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAg
ICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoIkRJViB1bmtub3duVGFnIik7CisgICAgICAgIGNo
ZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiVUwgKyB1bmtub3duVGFnIik7CisgICAgICAgIGNoZWNr
Tm9uTWF0Y2hpbmdTZWxlY3RvcigidW5rbm93blRhZzEiKTsKKyAgICAgICAgY2hlY2tOb25NYXRj
aGluZ1NlbGVjdG9yKCJ1bmtub3dudGFnIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxl
Y3RvcigiVW5rbm93bnRhZyIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoImRp
diB1bmtub3dudGFnIik7CisgICAgXV0+IAorICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jc3MvY2FzZS1zZW5zaXRpdmUt
dGFncy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRh
Z3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YjY3
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZl
LXRhZ3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1BBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKSkuY29sb3IgaXMgInJnYigw
LCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MiIpKS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYzIikpLmNvbG9yIGlz
ICJyZ2IoMCwgMTI4LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZvMSIpKS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmbzIiKSkuY29s
b3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZm8zIikpLmNvbG9yIGlzICJyZ2IoMCwgMTI4LCAwKSIKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvNCIp
KS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaXJjbGUxIikpLmZpbGwgaXMgIiMwMDgwMDAiCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaXJj
bGUyIikpLmZpbGwgaXMgIiMwMDgwMDAiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaXJjbGUzIikpLmZpbGwgaXMgIiMwMDgwMDAiCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wMSIp
KS5zdG9wQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcDIiKSkuc3RvcENvbG9yIGlzICJyZ2Io
MCwgMTI4LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0b3AzIikpLnN0b3BDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wNCIpKS5z
dG9wQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcDUiKSkuc3RvcENvbG9yIGlzICJyZ2IoMCwg
MTI4LCAwKSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInN0b3A2IikpLnN0b3BDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wNyIpKS5zdG9w
Q29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcDgiKSkuc3RvcENvbG9yIGlzICJyZ2IoMCwgMTI4
LCAwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MuaHRt
bCBiL0xheW91dFRlc3RzL3N2Zy9jc3MvY2FzZS1zZW5zaXRpdmUtdGFncy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNDhkOGIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdmcvY3NzL2Nhc2Utc2Vuc2l0aXZlLXRhZ3MuaHRtbApAQCAtMCwwICsxLDE5
MSBAQAorCis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICBAbmFtZXNwYWNlIHN2ZyAiaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciOworCisgICAgICAgICAgICAucmVkLWNvbG9yIHsKKyAgICAgICAgICAgICAgICBjb2xvcjog
cmVkOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuZ3JlZW4tY29sb3IgeworICAgICAg
ICAgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLnJl
ZC1maWxsIHsKKyAgICAgICAgICAgICAgICBmaWxsOiByZWQ7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIC5ncmVlbi1maWxsIHsKKyAgICAgICAgICAgICAgICBmaWxsOiBncmVlbjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLnJlZC1zdG9wLWNvbG9yIHsKKyAgICAgICAgICAg
ICAgICBzdG9wLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ncmVl
bi1zdG9wLWNvbG9yIHsKKyAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiBncmVlbjsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgLmdyb3VwMCBkaXY6bnRoLW9mLXR5cGUoMSksCisgICAg
ICAgICAgICAuZ3JvdXAwIERJVjpudGgtb2YtdHlwZSgyKSwKKyAgICAgICAgICAgIC5ncm91cDAg
RGl2Om50aC1vZi10eXBlKDMpLAorICAgICAgICAgICAgLmdyb3VwMSBmb3JlaWduT2JqZWN0Om50
aC1vZi10eXBlKDMpIHsKKyAgICAgICAgICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC5ncm91cDEgZm9yZWlnbm9iamVjdDpudGgtb2YtdHlwZSgxKSwK
KyAgICAgICAgICAgIC5ncm91cDEgRk9SRUlHTk9CSkVDVDpudGgtb2YtdHlwZSgyKSwKKyAgICAg
ICAgICAgIC5ncm91cDEgRm9yZWlnbk9iamVjdDpudGgtb2YtdHlwZSg0KQorICAgICAgICAgICAg
eyAKKyAgICAgICAgICAgICAgICBjb2xvcjogcmVkOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuZ3JvdXAyIGNpcmNsZTpudGgtb2YtdHlwZSgxKQorICAgICAgICAgICAgeyAKKyAgICAg
ICAgICAgICAgICBmaWxsOiBncmVlbjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmdy
b3VwMiBDSVJDTEU6bnRoLW9mLXR5cGUoMiksCisgICAgICAgICAgICAuZ3JvdXAyIENpcmNsZTpu
dGgtb2YtdHlwZSgzKSB7CisgICAgICAgICAgICAgICAgLyogTWF0Y2hpbmcgYW55IG9mIHRoZXNl
IHNlbGVjdG9ycyBpcyBiYWQgYXMgU1ZHIHNob3VsZCB1c2UgY2FzZS1zZW5zaXRpdmUgbWF0Y2hp
bmcuICovCisgICAgICAgICAgICAgICAgZmlsbDogcmVkOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAuZ3JvdXAzIGxpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDMpIHN0b3AgeworICAg
ICAgICAgICAgICAgIHN0b3AtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuZ3JvdXAzIGxpbmVhcmdyYWRpZW50Om50aC1vZi10eXBlKDEpIHN0b3AsCisgICAgICAg
ICAgICAuZ3JvdXAzIExJTkVBUkdSQURJRU5UOm50aC1vZi10eXBlKDIpIHN0b3AsCisgICAgICAg
ICAgICAuZ3JvdXAzIExpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDQpIHN0b3AKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAvKiBNYXRjaGluZyBhbnkgb2YgdGhlc2Ugc2VsZWN0b3Jz
IGlzIGJhZCBhcyBTVkcgc2hvdWxkIHVzZSBjYXNlLXNlbnNpdGl2ZSBtYXRjaGluZy4gKi8KKyAg
ICAgICAgICAgICAgICBzdG9wLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIC5ncm91cDQgc3ZnfGxpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDMpIHN0b3AgeworICAg
ICAgICAgICAgICAgIHN0b3AtY29sb3I6IGdyZWVuOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAuZ3JvdXA0IHN2Z3xsaW5lYXJncmFkaWVudDpudGgtb2YtdHlwZSgxKSBzdG9wLAorICAg
ICAgICAgICAgLmdyb3VwNCBzdmd8TElORUFSR1JBRElFTlQ6bnRoLW9mLXR5cGUoMikgc3RvcCwK
KyAgICAgICAgICAgIC5ncm91cDQgc3ZnfExpbmVhckdyYWRpZW50Om50aC1vZi10eXBlKDQpIHN0
b3AKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKiBNYXRjaGluZyBhbnkgb2YgdGhl
c2Ugc2VsZWN0b3JzIGlzIGJhZCBhcyBTVkcgc2hvdWxkIHVzZSBjYXNlLXNlbnNpdGl2ZSBtYXRj
aGluZy4gKi8KKyAgICAgICAgICAgICAgICBzdG9wLWNvbG9yOiByZWQ7CisgICAgICAgICAgICB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgICAgICA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0i
Z3JvdXAwIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkaXYxIiBjbGFzcz0icmVkLWNvbG9y
Ij5IVE1MIGVsZW1lbnQgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNlbGVjdG9yLjwvZGl2Pgor
ICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRpdjIiIGNsYXNzPSJyZWQtY29sb3IiPkhUTUwgZWxl
bWVudCBtYXRjaGVkIHVzaW5nIHVwcGVyIGNhc2Ugc2VsZWN0b3IuPC9kaXY+CisgICAgICAgICAg
ICAgICAgPGRpdiBpZD0iZGl2MyIgY2xhc3M9InJlZC1jb2xvciI+SFRNTCBlbGVtZW50IG1hdGNo
ZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxlY3Rvci48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2Pgor
CisgICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVy
c2lvbj0iMS4xIiBoZWlnaHQ9IjkwMCIgd2lkdGg9IjgwMCI+CisgICAgICAgICAgICAgICAgPGcg
Y2xhc3M9Imdyb3VwMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwgMTApIj4KKyAgICAgICAgICAg
ICAgICAgICAgPGZvcmVpZ25PYmplY3QgaWQ9ImZvMSIgY2xhc3M9ImdyZWVuLWNvbG9yIiB5PSIw
IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIyMCI+CisgICAgICAgICAgICAgICAgICAgICAgICBTVkcg
Zm9yZWlnbiBvYmplY3QgaXMgTk9UIG1hdGNoZWQgdXNpbmcgbG93ZXIgY2FzZSBzZWxlY3Rvci4K
KyAgICAgICAgICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAgICAgICAgICAgICAg
ICA8Zm9yZWlnbk9iamVjdCBpZD0iZm8yIiBjbGFzcz0iZ3JlZW4tY29sb3IiIHk9IjQwIiB3aWR0
aD0iMTAwJSIgaGVpZ2h0PSIyMCI+CisgICAgICAgICAgICAgICAgICAgICAgICBTVkcgZm9yZWln
biBvYmplY3QgaXMgTk9UIG1hdGNoZWQgdXNpbmcgdXBwZXIgY2FzZSBzZWxlY3Rvci4KKyAgICAg
ICAgICAgICAgICAgICAgPC9mb3JlaWduT2JqZWN0PgorICAgICAgICAgICAgICAgICAgICA8Zm9y
ZWlnbk9iamVjdCBpZD0iZm8zIiBjbGFzcz0icmVkLWNvbG9yIiB5PSI4MCIgd2lkdGg9IjEwMCUi
IGhlaWdodD0iMjAiPgorICAgICAgICAgICAgICAgICAgICAgICAgU1ZHIGZvcmVpZ24gb2JqZWN0
IGlzIG1hdGNoZWQgdXNpbmcgY2Fub25pY2FsIGZvcm0gc2VsZWN0b3IuCisgICAgICAgICAgICAg
ICAgICAgIDwvZm9yZWlnbk9iamVjdD4KKyAgICAgICAgICAgICAgICAgICAgPGZvcmVpZ25PYmpl
Y3QgaWQ9ImZvNCIgY2xhc3M9ImdyZWVuLWNvbG9yIiB5PSIxMjAiIHdpZHRoPSIxMDAlIiBoZWln
aHQ9IjIwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIFNWRyBmb3JlaWduIG9iamVjdCBpcyBO
T1QgbWF0Y2hlZCB1c2luZyBtaXhlZCBjYXNlIHNlbGVjdG9yLgorICAgICAgICAgICAgICAgICAg
ICA8L2ZvcmVpZ25PYmplY3Q+CisgICAgICAgICAgICAgICAgPC9nPgorCisgICAgICAgICAgICAg
ICAgPGcgY2xhc3M9Imdyb3VwMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUsIDE5MCkiPgorICAg
ICAgICAgICAgICAgICAgICA8bGluZSB4MT0iLTI1IiB5MT0iLTMwIiB4Mj0iMTAwJSIgeTI9Ii0z
MCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9ImdyYXkiPjwvbGluZT4KKworICAgICAgICAgICAg
ICAgICAgICA8Y2lyY2xlIGlkPSJjaXJjbGUxIiBjbGFzcz0icmVkLWZpbGwiIGN5PSIwIiByPSIy
MCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiAvPgorICAgICAgICAgICAgICAgICAg
ICA8dGV4dCB4PSI1MCIgeT0iMCI+Q2lyY2xlIFNWRyBlbGVtZW50IGlzIG1hdGNoZWQgdXNpbmcg
bG93ZXIgY2FzZSAvIGNhbm9uaWNhbCBmb3JtIHNlbGVjdG9yPC90ZXh0PgorCisgICAgICAgICAg
ICAgICAgICAgIDxjaXJjbGUgaWQ9ImNpcmNsZTIiIGNsYXNzPSJncmVlbi1maWxsIiBjeT0iNjAi
IHI9IjIwIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIC8+CisgICAgICAgICAgICAg
ICAgICAgIDx0ZXh0IHg9IjUwIiB5PSI2MCI+Q2lyY2xlIFNWRyBlbGVtZW50IGlzIE5PVCBtYXRj
aGVkIHVzaW5nIHVwcGVyIGNhc2Ugc2VsZWN0b3I8L3RleHQ+CisKKyAgICAgICAgICAgICAgICAg
ICAgPGNpcmNsZSBpZD0iY2lyY2xlMyIgY2xhc3M9ImdyZWVuLWZpbGwiIGN5PSIxMjAiIHI9IjIw
IiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIC8+CisgICAgICAgICAgICAgICAgICAg
IDx0ZXh0IHg9IjUwIiB5PSIxMjAiPkNpcmNsZSBTVkcgZWxlbWVudCBpcyBOT1QgbWF0Y2hlZCB1
c2luZyBtaXhlZCBjYXNlIHNlbGVjdG9yPC90ZXh0PgorICAgICAgICAgICAgICAgIDwvZz4KKwor
ICAgICAgICAgICAgICAgIDxnIGNsYXNzPSJncm91cDMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI1
LCAzNzApIj4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9Ii0yNSIgeTE9Ii0zMCIgeDI9
IjEwMCUiIHkyPSItMzAiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJncmF5Ij48L2xpbmU+CisK
KyAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJHcmFkaWVudDEiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPHN0b3AgaWQ9InN0b3AxIiBvZmZzZXQ9IjAlIiBjbGFzcz0i
Z3JlZW4tc3RvcC1jb2xvciIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVu
dD4KKyAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeT0iMCIgcj0iMjAiIHN0cm9rZT0iYmxh
Y2siIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0idXJsKCNHcmFkaWVudDEpIiAvPgorICAgICAgICAg
ICAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBpcyBOT1QgbWF0Y2hlZCB1c2luZyBsb3dlciBjYXNlIHNlbGVjdG9yPC90ZXh0PgorCisg
ICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQyIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdG9wIGlkPSJzdG9wMiIgb2Zmc2V0PSIwJSIgY2xhc3M9Imdy
ZWVuLXN0b3AtY29sb3IiIC8+CisgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+
CisgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3k9IjYwIiByPSIyMCIgc3Ryb2tlPSJibGFj
ayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50MikiIC8+CisgICAgICAgICAg
ICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSI2MCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBpcyBOT1QgbWF0Y2hlZCB1c2luZyB1cHBlciBjYXNlIHNlbGVjdG9yPC90ZXh0PgorCisg
ICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQzIj4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdG9wIGlkPSJzdG9wMyIgb2Zmc2V0PSIwJSIgY2xhc3M9InJl
ZC1zdG9wLWNvbG9yIiAvPgorICAgICAgICAgICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50Pgor
ICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN5PSIxMjAiIHI9IjIwIiBzdHJva2U9ImJsYWNr
IiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9InVybCgjR3JhZGllbnQzKSIgLz4KKyAgICAgICAgICAg
ICAgICAgICAgPHRleHQgeD0iNTAiIHk9IjEyMCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxl
bWVudCBpcyBtYXRjaGVkIHVzaW5nIGNhbm9uaWNhbCBmb3JtIHNlbGVjdG9yPC90ZXh0PgorCisg
ICAgICAgICAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQ0Ij4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIDxzdG9wIGlkPSJzdG9wNCIgb2Zmc2V0PSIwJSIgY2xhc3M9Imdy
ZWVuLXN0b3AtY29sb3IiIC8+CisgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+
CisgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3k9IjE4MCIgcj0iMjAiIHN0cm9rZT0iYmxh
Y2siIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0idXJsKCNHcmFkaWVudDQpIiAvPgorICAgICAgICAg
ICAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iMTgwIj5TVkcgTGluZWFyR3JhZGllbnQgZmlsbCBl
bGVtZW50IGlzIE5PVCBtYXRjaGVkIHVzaW5nIG1peGVkIGNhc2Ugc2VsZWN0b3I8L3RleHQ+Cisg
ICAgICAgICAgICAgICAgPC9nPgorCisgICAgICAgICAgICAgICAgPGcgY2xhc3M9Imdyb3VwNCIg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjUsIDYxMCkiPgorICAgICAgICAgICAgICAgICAgICA8bGlu
ZSB4MT0iLTI1IiB5MT0iLTMwIiB4Mj0iMTAwJSIgeTI9Ii0zMCIgc3Ryb2tlLXdpZHRoPSIyIiBz
dHJva2U9ImdyYXkiPjwvbGluZT4KKworICAgICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGll
bnQgaWQ9IkdyYWRpZW50NSI+CisgICAgICAgICAgICAgICAgICAgICAgICA8c3RvcCBpZD0ic3Rv
cDUiIG9mZnNldD0iMCUiIGNsYXNzPSJncmVlbi1zdG9wLWNvbG9yIiAvPgorICAgICAgICAgICAg
ICAgICAgICA8L2xpbmVhckdyYWRpZW50PgorICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN5
PSIwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dy
YWRpZW50NSkiIC8+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIwIj5TVkcg
TGluZWFyR3JhZGllbnQgZmlsbCBlbGVtZW50IGlzIE5PVCBtYXRjaGVkIHVzaW5nIGxvd2VyIGNh
c2Ugc2VsZWN0b3IgKyBzdmcgbmFtZXNwYWNlPC90ZXh0PgorCisgICAgICAgICAgICAgICAgICAg
IDxsaW5lYXJHcmFkaWVudCBpZD0iR3JhZGllbnQ2Ij4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxzdG9wIGlkPSJzdG9wNiIgb2Zmc2V0PSIwJSIgY2xhc3M9ImdyZWVuLXN0b3AtY29sb3IiIC8+
CisgICAgICAgICAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CisgICAgICAgICAgICAgICAg
ICAgIDxjaXJjbGUgY3k9IjYwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIy
IiBmaWxsPSJ1cmwoI0dyYWRpZW50NikiIC8+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9
IjUwIiB5PSI2MCI+U1ZHIExpbmVhckdyYWRpZW50IGZpbGwgZWxlbWVudCBpcyBOT1QgbWF0Y2hl
ZCB1c2luZyB1cHBlciBjYXNlIHNlbGVjdG9yICsgc3ZnIG5hbWVzcGFjZTwvdGV4dD4KKworICAg
ICAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9IkdyYWRpZW50NyI+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8c3RvcCBpZD0ic3RvcDciIG9mZnNldD0iMCUiIGNsYXNzPSJyZWQt
c3RvcC1jb2xvciIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KKyAg
ICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeT0iMTIwIiByPSIyMCIgc3Ryb2tlPSJibGFjayIg
c3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50NykiIC8+CisgICAgICAgICAgICAg
ICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIxMjAiPlNWRyBMaW5lYXJHcmFkaWVudCBmaWxsIGVsZW1l
bnQgaXMgbWF0Y2hlZCB1c2luZyBjYW5vbmljYWwgZm9ybSBzZWxlY3RvciArIHN2ZyBuYW1lc3Bh
Y2U8L3RleHQ+CisKKyAgICAgICAgICAgICAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJHcmFk
aWVudDgiPgorICAgICAgICAgICAgICAgICAgICAgICAgPHN0b3AgaWQ9InN0b3A4IiBvZmZzZXQ9
IjAlIiBjbGFzcz0iZ3JlZW4tc3RvcC1jb2xvciIgLz4KKyAgICAgICAgICAgICAgICAgICAgPC9s
aW5lYXJHcmFkaWVudD4KKyAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeT0iMTgwIiByPSIy
MCIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJ1cmwoI0dyYWRpZW50OCki
IC8+CisgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9IjUwIiB5PSIxODAiPlNWRyBMaW5lYXJH
cmFkaWVudCBmaWxsIGVsZW1lbnQgaXMgTk9UIG1hdGNoZWQgdXNpbmcgbWl4ZWQgY2FzZSBzZWxl
Y3RvciArIHN2ZyBuYW1lc3BhY2U8L3RleHQ+CisgICAgICAgICAgICAgICAgPC9nPgorICAgICAg
ICAgICAgPC9zdmc+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAg
ICAgZnVuY3Rpb24gY2hlY2tTdHlsZShwcmVmaXgsIGNvdW50LCBwcm9wZXJ0eSwgdmFsdWUpIHsK
KyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBjb3VudDsgKytpKQorICAgICAg
ICAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoXCIiICsgcHJlZml4ICsgaSArICJcIikpLiIgKyBwcm9wZXJ0eSwgIlwi
IiArIHZhbHVlICsgIlwiIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaGVja1N0eWxl
KCJkaXYiLCAzLCAiY29sb3IiLCAicmdiKDAsIDEyOCwgMCkiKTsKKyAgICAgICAgICAgIGNoZWNr
U3R5bGUoImZvIiwgNCwgImNvbG9yIiwgInJnYigwLCAxMjgsIDApIik7CisgICAgICAgICAgICBj
aGVja1N0eWxlKCJjaXJjbGUiLCAzLCAiZmlsbCIsICIjMDA4MDAwIik7CisgICAgICAgICAgICBj
aGVja1N0eWxlKCJzdG9wIiwgOCwgInN0b3BDb2xvciIsICJyZ2IoMCwgMTI4LCAwKSIpOworCisg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikuc3R5bGUuZGlz
cGxheSA9ICJub25lIjsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRt
bC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjcyNmZh
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vdGFnLWNhc2Utc2Vuc2l0
aXZlLXN2Zy1pbi1odG1sLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitQQVNTIGNvbnRl
bnQucXVlcnlTZWxlY3RvcignU1BBTicpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBl
cjEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXBwZXIxJykud2Via2l0TWF0Y2hl
c1NlbGVjdG9yKCdTUEFOJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rp
diB1bCBsaSBTUEFOJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VwcGVyMScpCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cHBlcjEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3Io
J2RpdiB1bCBsaSBTUEFOJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3Vu
a25vd25UYWcnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndW5rbm93blRhZzEnKS53ZWJraXRNYXRjaGVzU2Vs
ZWN0b3IoJ3Vua25vd25UYWcnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rvcign
dW5rbm93bnRhZycpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bmtub3duVGFnMScpLndlYmtpdE1hdGNoZXNT
ZWxlY3RvcigndW5rbm93bnRhZycpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCdnJykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyb3VwMScpCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdncm91cDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ2cnKSBpcyB0
cnVlCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRycpIGlzIG51bGwKK1BBU1MgY29udGVu
dC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCcpIGlzIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXh0UGF0aDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dFBhdGgxJykud2Vi
a2l0TWF0Y2hlc1NlbGVjdG9yKCd0ZXh0UGF0aCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVy
eVNlbGVjdG9yKCdzdmcgdGV4dFBhdGgnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4
dFBhdGgxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRQYXRoMScpLndlYmtp
dE1hdGNoZXNTZWxlY3Rvcignc3ZnIHRleHRQYXRoJykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1
ZXJ5U2VsZWN0b3IoJ3RleHRwYXRoJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0
b3IoJ1RleHRQYXRoJykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZvcmVp
Z25PYmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRj
aGVzU2VsZWN0b3IoJ2ZvcmVpZ25PYmplY3QnKSBpcyB0cnVlCitQQVNTIGNvbnRlbnQucXVlcnlT
ZWxlY3Rvcignc3ZnIGZvcmVpZ25PYmplY3QnKSBpcyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Zm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9i
amVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3N2ZyBmb3JlaWduT2JqZWN0JykgaXMgdHJ1
ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZvcmVpZ25vYmplY3QnKSBpcyBudWxsCitQ
QVNTIGNvbnRlbnQucXVlcnlTZWxlY3RvcignRm9yZWlnbk9iamVjdCcpIGlzIG51bGwKK1BBU1Mg
Y29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0UGF0aCArIGZvcmVpZ25PYmplY3QnKSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKQorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZm9yZWlnbk9iamVjdDEnKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJ3RleHRQ
YXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIHRydWUKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9y
KCdzdmcgdGV4dFBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ZvcmVpZ25PYmplY3QxJykKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZvcmVp
Z25PYmplY3QxJykud2Via2l0TWF0Y2hlc1NlbGVjdG9yKCdzdmcgdGV4dFBhdGggKyBmb3JlaWdu
T2JqZWN0JykgaXMgdHJ1ZQorUEFTUyBjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRQYXRoICsg
Zm9yZWlnbm9iamVjdCcpIGlzIG51bGwKK1BBU1MgY29udGVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0
UGF0aCArIEZvcmVpZ25PYmplY3QnKSBpcyBudWxsCitQQVNTIGNvbnRlbnQucXVlcnlTZWxlY3Rv
cigndGV4dHBhdGggKyBmb3JlaWduT2JqZWN0JykgaXMgbnVsbAorUEFTUyBjb250ZW50LnF1ZXJ5
U2VsZWN0b3IoJ1RleHRQYXRoICsgZm9yZWlnbk9iamVjdCcpIGlzIG51bGwKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdmcvZG9tL3RhZy1jYXNlLXNlbnNpdGl2ZS1zdmctaW4taHRtbC5odG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzdlNmYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRpdmUtc3ZnLWluLWh0bWwuaHRt
bApAQCAtMCwwICsxLDYzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8IS0tIFRlc3RpbmcgdGhhdCBpbiBTVkcg
dGFncyBpbnNpZGUgSFRNTCBkb2N1bWVudHMgbWF0Y2ggdXNpbmcgY2FzZS1pbnNlbnNpdGl2ZSBt
b2RlLiAtLT4KKyAgICA8ZGl2IGlkPSJjb250ZW50Ij4KKyAgICAgICAgPGRpdiBzdHlsZT0iZGlz
cGxheTogbm9uZSI+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAg
ICAgICAgICAgICAgICAgICA8U1BBTiBpZD0idXBwZXIxIj48L1NQQU4+CisgICAgICAgICAgICAg
ICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIDxnIGlkPSJncm91cDEiPjwvZz4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIDx0ZXh0UGF0aCBpZD0idGV4dFBhdGgxIj48L3RleHRQYXRoPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPGZvcmVpZ25PYmplY3QgaWQ9ImZvcmVpZ25PYmplY3QxIj48L2ZvcmVpZ25PYmpl
Y3Q+CisgICAgICAgICAgICAgICAgICAgIDwvc3ZnPgorICAgICAgICAgICAgICAgIDwvbGk+Cisg
ICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPHVua25vd25UYWcgaWQ9InVua25vd25UYWcx
Ij48L3Vua25vd25UYWc+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQi
KTsKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tNYXRjaGluZ1NlbGVjdG9yKHNlbGVjdG9yLCBlbGVt
ZW50SWQpIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJjb250ZW50LnF1ZXJ5U2VsZWN0b3IoJyIg
KyBzZWxlY3RvciArICInKSIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIGVsZW1lbnRJ
ZCArICInKSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnIiArIGVsZW1lbnRJZCArICInKS53ZWJraXRNYXRjaGVzU2VsZWN0b3IoJyIgKyBzZWxl
Y3RvciArICInKSIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tOb25NYXRj
aGluZ1NlbGVjdG9yKHNlbGVjdG9yKSB7CisgICAgICAgICAgICBzaG91bGRCZU51bGwoImNvbnRl
bnQucXVlcnlTZWxlY3RvcignIiArIHNlbGVjdG9yICsgIicpIik7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBDaGVja2luZyB0aGF0IHRhZyBuYW1lIHNlbGVjdG9ycyBzdGlsbCB3b3JrIG9uIEhU
TUwgZWxlbWVudHMgd2hlbiBTVkcgaXMgYXJvdW5kLgorICAgICAgICBjaGVja01hdGNoaW5nU2Vs
ZWN0b3IoIlNQQU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigi
ZGl2IHVsIGxpIFNQQU4iLCAidXBwZXIxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rv
cigidW5rbm93blRhZyIsICJ1bmtub3duVGFnMSIpOworICAgICAgICBjaGVja01hdGNoaW5nU2Vs
ZWN0b3IoInVua25vd250YWciLCAidW5rbm93blRhZzEiKTsKKworICAgICAgICBjaGVja01hdGNo
aW5nU2VsZWN0b3IoImciLCAiZ3JvdXAxIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxl
Y3RvcigiRyIpOworCisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGgiLCAi
dGV4dFBhdGgxIik7CisgICAgICAgIGNoZWNrTWF0Y2hpbmdTZWxlY3Rvcigic3ZnIHRleHRQYXRo
IiwgInRleHRQYXRoMSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3IoInRleHRw
YXRoIik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigiVGV4dFBhdGgiKTsKKwor
ICAgICAgICBjaGVja01hdGNoaW5nU2VsZWN0b3IoImZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9i
amVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJzdmcgZm9yZWlnbk9iamVj
dCIsICJmb3JlaWduT2JqZWN0MSIpOworICAgICAgICBjaGVja05vbk1hdGNoaW5nU2VsZWN0b3Io
ImZvcmVpZ25vYmplY3QiKTsKKyAgICAgICAgY2hlY2tOb25NYXRjaGluZ1NlbGVjdG9yKCJGb3Jl
aWduT2JqZWN0Iik7CisKKyAgICAgICAgY2hlY2tNYXRjaGluZ1NlbGVjdG9yKCJ0ZXh0UGF0aCAr
IGZvcmVpZ25PYmplY3QiLCAiZm9yZWlnbk9iamVjdDEiKTsKKyAgICAgICAgY2hlY2tNYXRjaGlu
Z1NlbGVjdG9yKCJzdmcgdGV4dFBhdGggKyBmb3JlaWduT2JqZWN0IiwgImZvcmVpZ25PYmplY3Qx
Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGggKyBmb3JlaWdu
b2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dFBhdGggKyBG
b3JlaWduT2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3RvcigidGV4dHBh
dGggKyBmb3JlaWduT2JqZWN0Iik7CisgICAgICAgIGNoZWNrTm9uTWF0Y2hpbmdTZWxlY3Rvcigi
VGV4dFBhdGggKyBmb3JlaWduT2JqZWN0Iik7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFt
ZVNlbGVjdG9ycy5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxlY3RvcnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDI3OGU0Ci0tLSAvZGV2
L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DU1MvVHlwZU5hbWVTZWxlY3RvcnMuaHRtbApA
QCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlk
PSJ0ZXN0LXRhcmdldCIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgorICAgIDxkaXYgaWQ9InRlc3Qt
dGVtcGxhdGUiPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAg
ICAgICAgIDxkaXY+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8
bGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8Yj4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDwvYj4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgor
ICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPGI+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2I+CisgICAgICAg
ICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwv
ZGl2PgorICAgICAgICAgICAgPGRpdj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxk
aXY+CisgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgIDxwPjwvcD4KKyAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHA+PC9wPgorICAgICAgICA8cD48
L3A+CisgICAgICAgIDxwPjwvcD4KKyAgICAgICAgPHA+PC9wPgorICAgIDwvZGl2PgorPC9kaXY+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gZ2VuZXJhdGVFbGVtZW50cygpIHsKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC10ZW1wbGF0ZSIpOworICAgIHRlbXBsYXRlLnJlbW92
ZUF0dHJpYnV0ZSgiaWQiKTsKKyAgICB2YXIgdGFyZ2V0ID0gdGVtcGxhdGUucGFyZW50Tm9kZTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgdGFyZ2V0LmFwcGVu
ZENoaWxkKHRlbXBsYXRlLmNsb25lTm9kZSgpKTsKK30KK2dlbmVyYXRlRWxlbWVudHMoKTsKKwor
Ly8gS2VlcCBhIHJlZmVyZW5jZSB0byBhbGwgdGhlIG5vZGVzLCBzbyB0aGF0IHRoZXkgYXJlIG5v
dCBnYXJiYWdlIGNvbGxlY3RlZCBkdXJpbmcgdGhlIHJ1bnMuCit2YXIgbm9kZXMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIqIik7CisKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVy
U2Vjb25kKHsKKyAgICBkZXNjcmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBTZWxl
Y3RvciBwZXJmb3JtYW5jZSB3aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qt
dGFyZ2V0Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAg
ICAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbCgiZGl2IHVsIGxpIGIiKTsKKyAgICAgICAgICAg
IHJvb3QucXVlcnlTZWxlY3RvckFsbCgicCIpOworICAgICAgICAgICAgcm9vdC5xdWVyeVNlbGVj
dG9yQWxsKCJkaXYiKTsKKyAgICAgICAgfQorICAgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFtZVNlbGVj
dG9ycy54aHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQ1NTL1R5cGVOYW1lU2VsZWN0b3JzLnhodG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MmUzOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0NTUy9UeXBlTmFtZVNlbGVjdG9ycy54aHRtbApAQCAt
MCwwICsxLDY3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFE
T0NUWVBFIGh0bWwgCisgICAgIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIFN0cmljdC8v
RU4iCisgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3Qu
ZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFu
Zz0iZW4iIGxhbmc9ImVuIj4KKzxib2R5PgorPGRpdiBpZD0idGVzdC10YXJnZXQiIHN0eWxlPSJk
aXNwbGF5OiBub25lIj4KKyAgICA8ZGl2IGlkPSJ0ZXN0LXRlbXBsYXRlIj4KKyAgICAgICAgPGRp
dj4KKyAgICAgICAgICAgIDxkaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2PgorICAgICAgICAg
ICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPGI+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2I+CisgICAgICAgICAgICAgICAg
ICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8dWw+Cisg
ICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxiPgorICAg
ICAgICAgICAgICAgICAgICAgICAgPC9iPgorICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAg
ICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxkaXY+
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdj4K
KyAgICAgICAgICAgICAgICA8cD48L3A+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxwPjwvcD4KKyAgICAgICAgPHA+PC9wPgorICAgICAgICA8cD48L3A+Cisg
ICAgICAgIDxwPjwvcD4KKyAgICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKzwhW0NEQVRBWworZnVuY3Rpb24g
Z2VuZXJhdGVFbGVtZW50cygpIHsKKyAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdC10ZW1wbGF0ZSIpOworICAgIHRlbXBsYXRlLnJlbW92ZUF0dHJpYnV0ZSgi
aWQiKTsKKyAgICB2YXIgdGFyZ2V0ID0gdGVtcGxhdGUucGFyZW50Tm9kZTsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDA7ICsraSkKKyAgICAgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHRlbXBs
YXRlLmNsb25lTm9kZSgpKTsKK30KK2dlbmVyYXRlRWxlbWVudHMoKTsKKworLy8gS2VlcCBhIHJl
ZmVyZW5jZSB0byBhbGwgdGhlIG5vZGVzLCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBnYXJiYWdlIGNv
bGxlY3RlZCBkdXJpbmcgdGhlIHJ1bnMuCit2YXIgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCIqIik7CisKK1BlcmZUZXN0UnVubmVyLm1lYXN1cmVSdW5zUGVyU2Vjb25kKHsKKyAg
ICBkZXNjcmlwdGlvbjogIlRoaXMgYmVuY2htYXJrIHRlc3RzIENTUyBTZWxlY3RvciBwZXJmb3Jt
YW5jZSB3aXRoIHF1ZXJ5U2VsZWN0b3IoKS4iLAorICAgIHJ1bjogZnVuY3Rpb24oKSB7CisgICAg
ICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QtdGFyZ2V0Iik7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKKyAgICAgICAgICAgIHJvb3Qu
cXVlcnlTZWxlY3RvckFsbCgiZGl2IHVsIGxpIGIiKTsKKyAgICAgICAgICAgIHJvb3QucXVlcnlT
ZWxlY3RvckFsbCgicCIpOworICAgICAgICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYi
KTsKKyAgICAgICAgfQorICAgIH0KK30pOworXV0+Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk1NmExNS4uZmM2NmNjNyAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9DaGFuZ2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMy0wMS0yOSAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBh
ZG9iZS5jb20+CisKKyAgICAgICAgcXVlcnlTZWxlY3RvckFsbCB1bmFibGUgdG8gZmluZCBTVkcg
Y2FtZWxDYXNlIGVsZW1lbnRzIGltcG9ydGVkIGludG8gSFRNTAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM0MzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENTUy9UeXBlTmFtZVNlbGVjdG9ycy5odG1s
OiBBZGRlZC4gVGVzdGluZyBwZXJmb3JtYW5jZSBvZiB0aGUgbW9zdCBjb21tb24gY2FzZTogc2Vs
ZWN0b3JzIHdpdGggb25seSBsb3dlci1jYXNlIGxldHRlcnMuCisgICAgICAgICogQ1NTL1R5cGVO
YW1lU2VsZWN0b3JzLnhodG1sOiBBZGRlZC4gVGVzdGluZyB0aGF0IHBlcmZvcm1hbmNlIG9uIFhI
VE1MIGRvY3VtZW50cyBoYXMgbm8gcmVncmVzc2lvbi4gCisgICAgICAgIEkgbmVlZCB0d28gc2Vw
YXJhdGUgdGVzdHMgYmVjYXVzZSB0aGVyZSdzIGRpZmZlcmVudCBiZWhhdmlvciBiZXR3ZWVuIFhI
VE1MIGFuZCBIVE1MIGRvY3VtZW50cy4gCisgICAgICAgIFhIVE1MIGRvY3VtZW50cyB3aWxsIG5l
dmVyIGNyZWF0ZSB0aGUgTWl4ZWRDYXNlVGFnLCBzbyBzaG91bGQgaGF2ZSBubyBwZXJmb3JtYW5j
ZSBpbXBhY3QuCisKIDIwMTMtMDEtMjMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc29tZSBtZWFzdXJlbWVudHMgYXJlIG1p
c3NpbmcgaW4gUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3IvaGVhcC0qLmh0bWwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyMzJlN2I3Li42NDYzYjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDEz
LTAxLTI5ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAg
ICBxdWVyeVNlbGVjdG9yQWxsIHVuYWJsZSB0byBmaW5kIFNWRyBjYW1lbENhc2UgZWxlbWVudHMg
aW1wb3J0ZWQgaW50byBIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MzQzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEluIEhUTUwgZG9jdW1lbnRzIHRoZSBDU1MgcGFyc2VyIHRyYW5zZm9ybXMgdGhl
IENTUyB0YWcgbmFtZSBzZWxlY3RvcnMgdG8gbG93ZXItY2FzZS4gVGhhdCdzIGJlY2F1c2UgSFRN
TCBlbGVtZW50cyBpbiBIVE1MIGRvY3VtZW50cworICAgICAgICB1c2UgY2FzZS1pbnNlbnNpdGl2
ZSB0YWcgbWF0Y2hpbmcuIFRoYXQncyBtZWFucyB0aGF0IHRoZSBtYXRjaCBmdW5jdGlvbiB3aWxs
IGp1c3QgdXNlIHRoZSBjYW5vbmljYWwgZm9ybSAod2hpY2ggaXMgbG93ZXIgY2FzZSBmb3IgYWxs
IAorICAgICAgICBIVE1MIGVsZW1lbnRzKSBhbmQgY29tcGFyZSB0aGF0IHRvIHRoZSBDU1MgU2Vs
ZWN0b3IuCisKKyAgICAgICAgSG93ZXZlciwgbm9uLUhUTUwgZWxlbWVudHMgZW1iZWRkZWQgaW4g
SFRNTCBuZWVkIHRvIGZvbGxvdyB0aGUgWE1MIHJ1bGUgaW5zdGVhZC4gVGhleSBuZWVkIHRvIGJl
IG1hdGNoZWQgdXNpbmcgY2FzZS1zZW5zaXRpdmUgY29tcGFyaXNvbi4KKyAgICAgICAgVGhhdCdz
IGFsaWduZWQgd2l0aCB0aGUgYmVoYXZpb3Igb2YgRkYgYW5kIElFMTAuIEhvd2V2ZXIsIGJlY2F1
c2UgdGhlIENTUyBwYXJzZXIgYWxyZWFkeSBsb3dlci1jYXNlZCB0aGUgdGFnIG5hbWUsIHRoZSBt
YXRjaGluZyBuZXZlcgorICAgICAgICB3b3JrcyBmb3IgZWxlbWVudHMgbGlrZSAiZm9yZWlnbk9i
amVjdCIgb3IgInRleHRQYXRoIiwgYXMgdGhlaXIgY2Fub25pY2FsIGZvcm0gaGFzIGJvdGggbG93
ZXItY2FzZSBhbmQgdXBwZXItY2FzZSBsZXR0ZXJzLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhbm90aGVyIG1hdGNoIHR5cGUgaW4gdGhlIENTUyBTZWxlY3RvciBhbmQgcmV1c2VzIHR3byBm
aWVsZHMgaW4gdGhlIFJhcmVEYXRhIHN0cnVjdHVyZS4gVGhlIG5ldyBNaXhlZENhc2VUYWcgbWF0
Y2ggdHlwZSBpcyAKKyAgICAgICAgb25seSBjcmVhdGVkIHdoZW4gdGhlIHBhcnNlciBpcyB1c2Vk
IGluIHRoZSBjb250ZXh0IG9mIEhUTUwgZG9jdW1lbnRzLiBJdCB3aWxsIHN0b3JlIGJvdGggdmVy
c2lvbnMgb2YgdGhlIHRhZyBuYW1lLCBib3RoIGxvd2VyIGNhc2UgYW5kCisgICAgICAgIHRoZSBv
bmUgaW5pdGlhbGx5IHBhcnNlZCBpbiB0aGUgQ1NTIHNvdXJjZSBmaWxlLiAKKworICAgICAgICBO
b3RlIHRoYXQgdGhlIG5ldyBzZWxlY3RvciB0eXBlIGlzIG5vdCBnb2luZyB0byBiZSB1c2VkIGlm
IHRoZSBzZWxlY3RvciBoYXMgb25seSBsb3dlciBjYXNlIHRhZyBuYW1lLCBzbyB0aGUgY29tbW9u
IGNhc2Ugd2hlcmUKKyAgICAgICAgdGhlIHNlbGVjdG9yIHRhZyBpcyBsb3dlci1jYXNlIGlzIG5v
dCBiZSBhZmZlY3RlZCBieSB0aGlzIGNoYW5nZS4KKworICAgICAgICBUaGUgbWF0Y2hpbmcgaGFw
cGVucyBiYXNlZCBvbiB0aGUgZWxlbWVudCB0eXBlOgorICAgICAgICAtIEhUTUwgZWxlbWVudHMg
c3RpbGwgdXNlIHRoZSBsb3dlciBjYXNlIHZlcnNpb24uCisgICAgICAgIC0gbm9uLUhUTUwgZWxl
bWVudHMgdXNlIHRoZSB2ZXJzaW9uIHBhcnNlZCBpbiB0aGUgQ1NTIGZpbGUsIHNvIFNWRyB0YWdz
IGxpa2UgZm9yZWlnbk9iamVjdCBjYW4gYmUgdXNlZCBhZ2Fpbi4KKworICAgICAgICBXZSBuZWVk
IHRvIHN0b3JlIGJvdGggbG93ZXItY2FzZSBhbmQgbWl4ZWQtY2FzZSB2ZXJzaW9ucyB0byBzcGVl
ZCB1cCB0aGUgbWF0Y2hpbmcgZnVuY3Rpb24gYnkganVzdCBkb2luZyBhIHBvaW50ZXIgCisgICAg
ICAgIGNvbXBhcmlzb24gb2YgdGhlIEF0b21pY1N0cmluZ3MuCisKKyAgICAgICAgVGhlIFNlbGVj
dG9yRmlsdGVyIG5lZWRzIHRvIGF2b2lkIGhhc2hpbmcgdGhlIE1peGVkQ2FzZVRhZyBzZWxlY3Rv
cnMuIFRoYXQncyBiZWNhdXNlIHRoZSBzZWxlY3RvciBtaWdodCBtYXRjaCBkaWZmZXJlbnRseSBi
YXNlZCBvbiB0aGUKKyAgICAgICAgdHlwZSBvZiB0aGUgZWxlbWVudC4gV2UgbWlnaHQgY29uc2lk
ZXIgY29taW5nIGJhY2sgdG8gdGhpcyBvbmUgYW5kIGltcGxlbWVudCBhbHRlcm5hdGl2ZSBoYXNo
ZXMgKGllLiBpZiB0aGUgbG93ZXIgZG9lc24ndCBtYXRjaAorICAgICAgICB0cnkgdGhlIHVwcGVy
LWNhc2UgdmVyc2lvbiBhbmQgdGhlbiByZWplY3QpLgorCisgICAgICAgIEkndmUgcmV1c2VkIHR3
byBvZiB0aGUgZXhpc3RpbmcgZmllbGRzIGluIHRoZSBDU1NTZWxlY3Rvcjo6UmFyZURhdGEgc3Ry
dWN0dXJlLiBUaGV5IGFyZSBzaGFyZWQgd2l0aCBvdGhlciBDU1NTZWxlY3RvciBtYXRjaCB0eXBl
cy4KKyAgICAgICAgLSBtX2F0dHJpYnV0ZSBiZWNvbWVzIG1fYXR0cmlidXRlT3JNaXhlZENhc2VM
b3dlclRhZ1FOYW1lCisgICAgICAgIC0gbV9hcmdtZW50IGJlY29tZXMgbV9hcmd1bWVudE9yTWl4
ZWRDYXNlUGFyc2VkVGFnTmFtZQorCisgICAgICAgIE1peGVkQ2FzZVRhZyBhcmUgc3RpbGwgc2Vy
aWFsaXppbmcgdXNpbmcgdGhlIGxvd2VyIGNhc2UgdmVyc2lvbiBvZiB0aGUgdGFnIG5hbWUuIEkg
d2lsbCBtYWtlIGEgc2VwYXJhdGUgYnVnIGZvciB0aGF0LCBhcyBhIGNvdXBsZSBvZiB0ZXN0Cisg
ICAgICAgIHJlc3VsdHMgbmVlZCB0byBiZSB1cGRhdGVkIGFuZCB3b3VsZCBtYWtlIHRoaXMgcGF0
Y2ggdG9vIGJpZy4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vU2VsZWN0b3JBUEkvdGFnLWNh
c2UtaW5zZW5zaXRpdmUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vU2VsZWN0b3JBUEkv
dGFnLWNhc2Utc2Vuc2l0aXZlLnhodG1sCisgICAgICAgICAgICAgICBzdmcvY3NzL2Nhc2Utc2Vu
c2l0aXZlLXRhZ3MuaHRtbAorICAgICAgICAgICAgICAgc3ZnL2RvbS90YWctY2FzZS1zZW5zaXRp
dmUtc3ZnLWluLWh0bWwuaHRtbAorCisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6aXNMb3dlckNhc2VTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
U3RyaW5nOjppc0xvd2VyQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0
ZUZsb2F0aW5nU2VsZWN0b3JXaXRoTWl4ZWRDYXNlVGFnTmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRoTmFtZXNwYWNlSWZOZWVkZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlVGFnU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6Q1NTUGFyc2VyU2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6aXNTaW1w
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OnByZXBlbmRTZWxlY3Rv
cik6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5oOgorICAgICAgICAoQ1NTUGFyc2Vy
U3RyaW5nKToKKyAgICAgICAgKENTU1BhcnNlclNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNwZWNpZmljaXR5
Rm9yT25lU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9y
VGV4dCk6IEFkZGVkIGNvZGUgdG8gdXNlIGVpdGhlciBUYWcgb3IgTWl4ZWRDYXNlVGFnIHR5cGVz
LiBTdGlsbCB1c2luZyB0aGUgbG93ZXIgY2FzZSB2ZXJzaW9uLCBldmVuIHRob3VnaCB3ZSBoYWQK
KyAgICAgICAgdGhlIGluaXRpYWxseSBwYXJzZWQgdmVyc2lvbiBvZiBNaXhlZENhc2VUYWcuIFdp
bGwgYmUgZml4ZWQgaW4gYSBmb2xsb3cgdXAgYnVnLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2Vs
ZWN0b3I6OnNldEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0
QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6c2V0TWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6c2V0TWl4ZWRDYXNlUGFyc2VkVGFnTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NTZWxlY3Rvcjo6UmFyZURhdGE6OlJhcmVEYXRhKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0
b3IuaDoKKyAgICAgICAgKENTU1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVj
dG9yOjppc1RhZ01hdGNoKTogQSBidW5jaCBvZiBwbGFjZXMgYWNjZXB0IGJvdGggVGFnIGFuZCBN
aXhlZENhc2VUYWcsIHNvIHRoaXMgZnVuY3Rpb24gd2lsbAorICAgICAgICByZXR1cm4gdHJ1ZSBm
b3IgYm90aCBvZiB0aGVtLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Om1hdGNoaW5n
VGFnUU5hbWUpOiBSZXR1cm5zIGVpdGhlciB0aGUgdGFnIG9mIGEgVGFnIHNlbGVjdG9yIG9yIHRo
ZSBsb3dlciBjYXNlIHRhZyBvZiBhIE1peGVkQ2FzZVRhZy4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjptaXhlZENhc2VQYXJzZWRUYWdOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1NlbGVjdG9yOjphcmd1bWVudCk6CisgICAgICAgIChSYXJlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTZWxlY3Rvcjo6YXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6Om1peGVkQ2FzZUxvd2VyVGFnUU5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvUnVs
ZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1NlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRP
blJ1bGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OmRldGVybWluZVByb3BlcnR5V2hpdGVsaXN0
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpmaW5kQmVzdFJ1bGVTZXRBbmRBZGQpOiBXZSBjYW4g
dXNlIGJvdGggdGhlIGxvd2VyIGNhc2UgYW5kIHRoZSBtaXhlZC1jYXNlIHRhZ3MgdG8gbWF0Y2gg
dGhlIGVsZW1lbnRzLiBUaGUgdHdvIHNldHMKKyAgICAgICAgd2lsbCBiZSBkaXNqb2ludCwgc28g
YSBydWxlIGNhbm5vdCBtYXRjaCB3aXRoIGJvdGggYXQgdGhlIHNhbWUgdGltZS4gVGhhdCdzIGJl
Y2F1c2UgdGhlaXIga2V5cyBhcmUgYWxsIGxvd2VyIGNhc2UgZm9yIHRoZSBtX3RhZ1J1bGVzIHNl
dCBhbmQKKyAgICAgICAgYXQgbGVhc3Qgb25lIHVwcGVyLWNhc2UgbGV0dGVyIGZvciB0aGUgbV9t
aXhlZENhc2VUYWdSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OnNocmlua1RvRml0
KToKKyAgICAgICAgKiBjc3MvUnVsZVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6
bWl4ZWRDYXNlVGFnUnVsZXMpOgorICAgICAgICAoUnVsZVNldCk6CisgICAgICAgICogY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNrUmlnaHRtb3N0U2VsZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpmYXN0Q2hlY2spOgorICAgICAgICAoV2ViQ29yZTo6
aXNGYXN0Q2hlY2thYmxlTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2Vy
OjpjaGVja09uZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAo
U2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6bWl4
ZWRDYXNlVGFnTWF0Y2hlcyk6IEFkZGVkIHRoZSBlcXVpdmFsZW50IG9mIHRoZSBTZWxlY3RvckNo
ZWNrZXI6OnRhZ01hdGNoZXMgZm9yIHRoZSBuZXcgTWl4ZWRDYXNlVGFnIHNlbGVjdG9yIHR5cGUu
CisgICAgICAgICogY3NzL1NlbGVjdG9yRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKTogQWRkZWQgdGhlIE1peGVk
Q2FzZVRhZyB0eXBlIHRvIHRoZSBzd2l0Y2ggYW5kIGEgY29tbWVudCBleHBsYWluaW5nIHdoeSBp
dCBjYW5ub3QgYmUgdXNlZCwKKyAgICAgICAgc28gdGhhdCBpdCBpcyBub3QgYWRkZWQgYnkgbWlz
dGFrZS4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyk6IAorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6cnVsZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tQ
YWdlU2VsZWN0b3JDb21wb25lbnRzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdWJTZWxlY3Rvcik6CisK
IDIwMTMtMDEtMjkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENo
YW5nZSBEYXRhYmFzZUNvbnRleHQgbG9va3VwIHRvIGJlIHRocmVhZC1zYWZlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggNTc4ZDQyNy4uMDE4ZDQ1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTR3JhbW1hci55LmluCkBAIC0xMTczLDEyICsxMTczLDIzIEBAIG5hbWVzcGFjZV9zZWxlY3Rv
cjoKICAgICAKIHNpbXBsZV9zZWxlY3RvcjoKICAgICBlbGVtZW50X25hbWUgewotICAgICAgICAk
JCA9IHBhcnNlci0+Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcldpdGhUYWdOYW1lKFF1YWxpZmllZE5h
bWUobnVsbEF0b20sICQxLCBwYXJzZXItPm1fZGVmYXVsdE5hbWVzcGFjZSkpOworICAgICAgICBp
ZiAocGFyc2VyLT5tX2NvbnRleHQuaXNIVE1MRG9jdW1lbnQgJiYgISQxLmlzTG93ZXJDYXNlKCkp
IHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtaXhlZENhc2VFbGVtZW50TmFtZSA9ICQxOwor
ICAgICAgICAgICAgJDEubG93ZXIoKTsKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVG
bG9hdGluZ1NlbGVjdG9yV2l0aE1peGVkQ2FzZVRhZ05hbWUoUXVhbGlmaWVkTmFtZShudWxsQXRv
bSwgJDEsIHBhcnNlci0+bV9kZWZhdWx0TmFtZXNwYWNlKSwgbWl4ZWRDYXNlRWxlbWVudE5hbWUp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGlu
Z1NlbGVjdG9yV2l0aFRhZ05hbWUoUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgJDEsIHBhcnNlci0+
bV9kZWZhdWx0TmFtZXNwYWNlKSk7CiAgICAgfQogICAgIHwgZWxlbWVudF9uYW1lIHNwZWNpZmll
cl9saXN0IHsKICAgICAgICAgJCQgPSAkMjsKLSAgICAgICAgaWYgKCQkKQotICAgICAgICAgICAg
cGFyc2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKG51bGxBdG9tLCAkMSwgJCQp
OworICAgICAgICBpZiAoJCQpIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtaXhlZENhc2VU
YWdOYW1lOworICAgICAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50
ICYmICEkMS5pc0xvd2VyQ2FzZSgpKSB7CisgICAgICAgICAgICAgICAgbWl4ZWRDYXNlVGFnTmFt
ZSA9ICQxOworICAgICAgICAgICAgICAgICQxLmxvd2VyKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUobnVsbEF0b20s
ICQxLCBtaXhlZENhc2VUYWdOYW1lLCAkJCk7CisgICAgICAgIH0KICAgICB9CiAgICAgfCBzcGVj
aWZpZXJfbGlzdCB7CiAgICAgICAgICQkID0gJDE7CkBAIC0xMTg2LDE3ICsxMTk3LDI4IEBAIHNp
bXBsZV9zZWxlY3RvcjoKICAgICAgICAgICAgIHBhcnNlci0+dXBkYXRlU3BlY2lmaWVyc1dpdGhO
YW1lc3BhY2VJZk5lZWRlZCgkJCk7CiAgICAgfQogICAgIHwgbmFtZXNwYWNlX3NlbGVjdG9yIGVs
ZW1lbnRfbmFtZSB7Ci0gICAgICAgICQkID0gcGFyc2VyLT5jcmVhdGVGbG9hdGluZ1NlbGVjdG9y
V2l0aFRhZ05hbWUocGFyc2VyLT5kZXRlcm1pbmVOYW1lSW5OYW1lc3BhY2UoJDEsICQyKSk7Cisg
ICAgICAgIGlmIChwYXJzZXItPm1fY29udGV4dC5pc0hUTUxEb2N1bWVudCAmJiAhJDEuaXNMb3dl
ckNhc2UoKSkgeworICAgICAgICAgICAgQXRvbWljU3RyaW5nIG1peGVkQ2FzZUVsZW1lbnROYW1l
ID0gJDI7CisgICAgICAgICAgICAkMi5sb3dlcigpOworICAgICAgICAgICAgJCQgPSBwYXJzZXIt
PmNyZWF0ZUZsb2F0aW5nU2VsZWN0b3JXaXRoTWl4ZWRDYXNlVGFnTmFtZShwYXJzZXItPmRldGVy
bWluZU5hbWVJbk5hbWVzcGFjZSgkMSwgJDIpLCBtaXhlZENhc2VFbGVtZW50TmFtZSk7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgJCQgPSBwYXJzZXItPmNyZWF0ZUZsb2F0aW5nU2VsZWN0
b3JXaXRoVGFnTmFtZShwYXJzZXItPmRldGVybWluZU5hbWVJbk5hbWVzcGFjZSgkMSwgJDIpKTsK
ICAgICB9CiAgICAgfCBuYW1lc3BhY2Vfc2VsZWN0b3IgZWxlbWVudF9uYW1lIHNwZWNpZmllcl9s
aXN0IHsKICAgICAgICAgJCQgPSAkMzsKLSAgICAgICAgaWYgKCQkKQotICAgICAgICAgICAgcGFy
c2VyLT51cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKCQxLCAkMiwgJCQpOworICAgICAg
ICBpZiAoJCQpIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmluZyBtaXhlZENhc2VUYWdOYW1lOwor
ICAgICAgICAgICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50ICYmICEkMi5p
c0xvd2VyQ2FzZSgpKSB7CisgICAgICAgICAgICAgICAgbWl4ZWRDYXNlVGFnTmFtZSA9ICQyOwor
ICAgICAgICAgICAgICAgICQyLmxvd2VyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBw
YXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoJDEsICQyLCBtaXhlZENhc2VU
YWdOYW1lLCAkJCk7CisgICAgICAgIH0KICAgICB9CiAgICAgfCBuYW1lc3BhY2Vfc2VsZWN0b3Ig
c3BlY2lmaWVyX2xpc3QgewogICAgICAgICAkJCA9ICQyOwogICAgICAgICBpZiAoJCQpCi0gICAg
ICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoJDEsIHN0YXJB
dG9tLCAkJCk7CisgICAgICAgICAgICBwYXJzZXItPnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVu
dE5hbWUoJDEsIHN0YXJBdG9tLCBudWxsQXRvbSwgJCQpOwogICAgIH0KICAgOwogCkBAIC0xMjIx
LDEyICsxMjQzLDcgQEAgc2ltcGxlX3NlbGVjdG9yX2xpc3Q6CiAgIDsKIAogZWxlbWVudF9uYW1l
OgotICAgIElERU5UIHsKLSAgICAgICAgQ1NTUGFyc2VyU3RyaW5nJiBzdHIgPSAkMTsKLSAgICAg
ICAgaWYgKHBhcnNlci0+bV9jb250ZXh0LmlzSFRNTERvY3VtZW50KQotICAgICAgICAgICAgc3Ry
Lmxvd2VyKCk7Ci0gICAgICAgICQkID0gc3RyOwotICAgIH0KKyAgICBJREVOVAogICAgIHwgJyon
IHsKICAgICAgICAgc3RhdGljIExDaGFyIHN0YXIgPSAnKic7CiAgICAgICAgICQkLmluaXQoJnN0
YXIsIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBlNjY4MDhkLi5lOWMxYzFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMzIwLDYgKzMyMCwyOSBAQCBBTFdBWVNfSU5M
SU5FIHN0YXRpYyB2b2lkIG1ha2VMb3dlcihjb25zdCBDaGFyYWN0ZXJUeXBlKiBpbnB1dCwgQ2hh
cmFjdGVyVHlwZSogbwogICAgIH0KIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+CitBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGlzTG93ZXJDYXNlU3RyaW5nKGNvbnN0IENo
YXJhY3RlclR5cGUqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgLy8gRklYTUU6IElm
IHdlIG5lZWQgVW5pY29kZSBsb3dlcmNhc2luZyBoZXJlLCB0aGVuIHdlIHByb2JhYmx5IHdhbnQg
dGhlIHJlYWwga2luZAorICAgIC8vIHRoYXQgY2FuIHBvdGVudGlhbGx5IGNoYW5nZSB0aGUgbGVu
Z3RoIG9mIHRoZSBzdHJpbmcgcmF0aGVyIHRoYW4gdGhlIGNoYXJhY3RlcgorICAgIC8vIGJ5IGNo
YXJhY3RlciBraW5kLiBJZiB3ZSBkb24ndCBuZWVkIFVuaWNvZGUgbG93ZXJjYXNpbmcsIGl0IHdv
dWxkIGJlIGdvb2QgdG8KKyAgICAvLyBzaW1wbGlmeSB0aGlzIGZ1bmN0aW9uLgorCisgICAgaWYg
KGNoYXJhY3RlcnNBcmVBbGxBU0NJSShpbnB1dCwgbGVuZ3RoKSkgeworICAgICAgICAvLyBGYXN0
IGNhc2UgZm9yIGFsbC1BU0NJSS4KKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aDsgaSsrKQorICAgICAgICAgICAgaWYgKHRvQVNDSUlMb3dlcihpbnB1dFtpXSkgIT0gaW5w
dXRbaV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGlm
IChVbmljb2RlOjp0b0xvd2VyKGlucHV0W2ldKSAhPSBpbnB1dFtpXSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKwogdm9pZCBD
U1NQYXJzZXJTdHJpbmc6Omxvd2VyKCkKIHsKICAgICBpZiAoaXM4Qml0KCkpIHsKQEAgLTMzMCw2
ICszNTMsMTEgQEAgdm9pZCBDU1NQYXJzZXJTdHJpbmc6Omxvd2VyKCkKICAgICBtYWtlTG93ZXIo
Y2hhcmFjdGVyczE2KCksIGNoYXJhY3RlcnMxNigpLCBsZW5ndGgoKSk7CiB9CiAKK2Jvb2wgQ1NT
UGFyc2VyU3RyaW5nOjppc0xvd2VyQ2FzZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzOEJpdCgp
ID8gaXNMb3dlckNhc2VTdHJpbmcoY2hhcmFjdGVyczgoKSwgbGVuZ3RoKCkpIDogaXNMb3dlckNh
c2VTdHJpbmcoY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpKTsKK30KKwogQXRvbWljU3RyaW5nIENT
U1BhcnNlclN0cmluZzo6bG93ZXJTdWJzdHJpbmcodW5zaWduZWQgcG9zaXRpb24sIHVuc2lnbmVk
IGxlbmd0aCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9sZW5ndGggPj0gcG9zaXRpb24gKyBsZW5n
dGgpOwpAQCAtMTA1ODksNiArMTA2MTcsMTMgQEAgQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNl
cjo6Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcldpdGhUYWdOYW1lKGNvbnN0IFF1YWxpZmllZE4KICAg
ICByZXR1cm4gc2VsZWN0b3I7CiB9CiAKK0NTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXI6OmNy
ZWF0ZUZsb2F0aW5nU2VsZWN0b3JXaXRoTWl4ZWRDYXNlVGFnTmFtZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBsb3dlckNhc2VUYWdRTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBtaXhlZENhc2VUYWdO
YW1lKQoreworICAgIENTU1BhcnNlclNlbGVjdG9yKiBzZWxlY3RvciA9IG5ldyBDU1NQYXJzZXJT
ZWxlY3RvcihhZG9wdFB0cihuZXcgQ1NTU2VsZWN0b3IobG93ZXJDYXNlVGFnUU5hbWUsIG1peGVk
Q2FzZVRhZ05hbWUpKSk7CisgICAgbV9mbG9hdGluZ1NlbGVjdG9ycy5hZGQoc2VsZWN0b3IpOwor
ICAgIHJldHVybiBzZWxlY3RvcjsKK30KKwogQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNlcjo6
Y3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpCiB7CiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIHNlbGVj
dG9yID0gbmV3IENTU1BhcnNlclNlbGVjdG9yOwpAQCAtMTA5NDcsMTAgKzEwOTgyLDE3IEBAIFF1
YWxpZmllZE5hbWUgQ1NTUGFyc2VyOjpkZXRlcm1pbmVOYW1lSW5OYW1lc3BhY2UoY29uc3QgQXRv
bWljU3RyaW5nJiBwcmVmaXgsIGNvCiB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dp
dGhOYW1lc3BhY2VJZk5lZWRlZChDU1NQYXJzZXJTZWxlY3Rvciogc3BlY2lmaWVycykKIHsKICAg
ICBpZiAobV9kZWZhdWx0TmFtZXNwYWNlICE9IHN0YXJBdG9tIHx8IHNwZWNpZmllcnMtPmlzQ3Vz
dG9tUHNldWRvRWxlbWVudCgpKQotICAgICAgICB1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnRO
YW1lKG51bGxBdG9tLCBzdGFyQXRvbSwgc3BlY2lmaWVycywgLyp0YWdJc0Zvck5hbWVzcGFjZVJ1
bGUqL3RydWUpOworICAgICAgICB1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKG51bGxB
dG9tLCBzdGFyQXRvbSwgbnVsbEF0b20sIHNwZWNpZmllcnMsIC8qdGFnSXNGb3JOYW1lc3BhY2VS
dWxlKi90cnVlKTsKK30KKworc3RhdGljIGlubGluZSBQYXNzT3duUHRyPENTU1NlbGVjdG9yPiBj
cmVhdGVUYWdTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcsIGNvbnN0IEF0b21pY1N0
cmluZyYgbWl4ZWRDYXNlRWxlbWVudE5hbWUsIGJvb2wgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKQor
eworICAgIC8vIE1peGVkIGNhc2Ugc2VsZWN0b3JzIGNhbm5vdCBiZSBjcmVhdGVkIGZvciBuYW1l
c3BhY2UgcnVsZXMsIGFzIHRoZSBzdGFyQXRvbSBoYXMgbm8gdXBwZXItY2FzZSB2ZXJzaW9uLgor
ICAgIEFTU0VSVChtaXhlZENhc2VFbGVtZW50TmFtZS5pc051bGwoKSB8fCAhdGFnSXNGb3JOYW1l
c3BhY2VSdWxlKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobWl4ZWRDYXNlRWxlbWVudE5hbWUuaXNO
dWxsKCkgPyBuZXcgQ1NTU2VsZWN0b3IodGFnLCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpIDogbmV3
IENTU1NlbGVjdG9yKHRhZywgbWl4ZWRDYXNlRWxlbWVudE5hbWUpKTsKIH0KIAotdm9pZCBDU1NQ
YXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVudE5hbWUsIENTU1Bh
cnNlclNlbGVjdG9yKiBzcGVjaWZpZXJzLCBib29sIHRhZ0lzRm9yTmFtZXNwYWNlUnVsZSkKK3Zv
aWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZXNwYWNlUHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIGVsZW1lbnROYW1l
LCBjb25zdCBBdG9taWNTdHJpbmcmIG1peGVkQ2FzZUVsZW1lbnROYW1lLCBDU1NQYXJzZXJTZWxl
Y3Rvciogc3BlY2lmaWVycywgYm9vbCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpCiB7CiAgICAgQXRv
bWljU3RyaW5nIGRldGVybWluZWROYW1lc3BhY2UgPSBuYW1lc3BhY2VQcmVmaXggIT0gbnVsbEF0
b20gJiYgbV9zdHlsZVNoZWV0ID8gbV9zdHlsZVNoZWV0LT5kZXRlcm1pbmVOYW1lc3BhY2UobmFt
ZXNwYWNlUHJlZml4KSA6IG1fZGVmYXVsdE5hbWVzcGFjZTsKICAgICBRdWFsaWZpZWROYW1lIHRh
ZyhuYW1lc3BhY2VQcmVmaXgsIGVsZW1lbnROYW1lLCBkZXRlcm1pbmVkTmFtZXNwYWNlKTsKQEAg
LTEwOTYxLDcgKzExMDAzLDcgQEAgdm9pZCBDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRo
RWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcmUKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgICAgIGlmICghKHNwZWNpZmllcnMtPnBzZXVkb1R5cGUoKSA9PSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ3VlKSkKICNlbmRpZgotICAgICAgICAgICAgc3BlY2lmaWVycy0+
cHJlcGVuZFRhZ1NlbGVjdG9yKHRhZywgdGFnSXNGb3JOYW1lc3BhY2VSdWxlKTsKKyAgICAgICAg
ICAgIHNwZWNpZmllcnMtPnByZXBlbmRTZWxlY3RvcihjcmVhdGVUYWdTZWxlY3Rvcih0YWcsIG1p
eGVkQ2FzZUVsZW1lbnROYW1lLCB0YWdJc0Zvck5hbWVzcGFjZVJ1bGUpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTA5NzUsMTMgKzExMDE3LDEzIEBAIHZvaWQgQ1NTUGFyc2VyOjp1
cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNw
YWNlUHJlCiAKICAgICBpZiAobGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnRhZ0hpc3RvcnkoKSkgewog
ICAgICAgICBpZiAodGFnICE9IGFueVFOYW1lKCkpCi0gICAgICAgICAgICBsYXN0U2hhZG93RGVz
Y2VuZGFudC0+dGFnSGlzdG9yeSgpLT5wcmVwZW5kVGFnU2VsZWN0b3IodGFnLCB0YWdJc0Zvck5h
bWVzcGFjZVJ1bGUpOworICAgICAgICAgICAgbGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnRhZ0hpc3Rv
cnkoKS0+cHJlcGVuZFNlbGVjdG9yKGNyZWF0ZVRhZ1NlbGVjdG9yKHRhZywgbWl4ZWRDYXNlRWxl
bWVudE5hbWUsIHRhZ0lzRm9yTmFtZXNwYWNlUnVsZSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgLy8gRm9yIHNoYWRvdy1JRCBwc2V1ZG8tZWxlbWVudHMgdG8gYmUgY29ycmVjdGx5
IG1hdGNoZWQsIHRoZSBTaGFkb3dEZXNjZW5kYW50IGNvbWJpbmF0b3IgaGFzIHRvIGJlIHVzZWQu
CiAgICAgLy8gV2UgdGhlcmVmb3JlIGNyZWF0ZSBhIG5ldyBTZWxlY3RvciB3aXRoIHRoYXQgY29t
YmluYXRvciBoZXJlIGluIGFueSBjYXNlLCBldmVuIGlmIG1hdGNoaW5nIGFueSAoaG9zdCkgZWxl
bWVudCBpbiBhbnkgbmFtZXNwYWNlIChpLmUuICcqJykuCi0gICAgT3duUHRyPENTU1BhcnNlclNl
bGVjdG9yPiBlbGVtZW50TmFtZVNlbGVjdG9yID0gYWRvcHRQdHIobmV3IENTU1BhcnNlclNlbGVj
dG9yKHRhZykpOworICAgIE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gZWxlbWVudE5hbWVTZWxl
Y3RvciA9IGFkb3B0UHRyKG5ldyBDU1NQYXJzZXJTZWxlY3RvcihjcmVhdGVUYWdTZWxlY3Rvcih0
YWcsIG1peGVkQ2FzZUVsZW1lbnROYW1lLCBmYWxzZSkpKTsKICAgICBsYXN0U2hhZG93RGVzY2Vu
ZGFudC0+c2V0VGFnSGlzdG9yeShlbGVtZW50TmFtZVNlbGVjdG9yLnJlbGVhc2UoKSk7CiAgICAg
bGFzdFNoYWRvd0Rlc2NlbmRhbnQtPnNldFJlbGF0aW9uKENTU1NlbGVjdG9yOjpTaGFkb3dEZXNj
ZW5kYW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCAwMGRkYTFjLi41YzM5ZDhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjYsNiArMjY2LDcgQEAgcHVibGljOgogICAgIGJv
b2wgcGFyc2VGb250VmFyaWFudExpZ2F0dXJlcyhib29sIGltcG9ydGFudCk7CiAKICAgICBDU1NQ
YXJzZXJTZWxlY3RvciogY3JlYXRlRmxvYXRpbmdTZWxlY3RvcigpOworICAgIENTU1BhcnNlclNl
bGVjdG9yKiBjcmVhdGVGbG9hdGluZ1NlbGVjdG9yV2l0aE1peGVkQ2FzZVRhZ05hbWUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbG93ZXJDYXNlVGFnUU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbWl4
ZWRDYXNlVGFnTmFtZSk7CiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGNyZWF0ZUZsb2F0aW5nU2Vs
ZWN0b3JXaXRoVGFnTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgUGFzc093blB0cjxD
U1NQYXJzZXJTZWxlY3Rvcj4gc2lua0Zsb2F0aW5nU2VsZWN0b3IoQ1NTUGFyc2VyU2VsZWN0b3Iq
KTsKIApAQCAtMzIxLDcgKzMyMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkTmFtZXNwYWNl
KGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4LCBjb25zdCBBdG9taWNTdHJpbmcmIHVyaSk7CiAg
ICAgUXVhbGlmaWVkTmFtZSBkZXRlcm1pbmVOYW1lSW5OYW1lc3BhY2UoY29uc3QgQXRvbWljU3Ry
aW5nJiBwcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKLSAgICB2b2lkIHVw
ZGF0ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3Bh
Y2VQcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgZWxlbWVudE5hbWUsIENTU1BhcnNlclNlbGVj
dG9yKiwgYm9vbCBpc05hbWVzcGFjZVBsYWNlaG9sZGVyID0gZmFsc2UpOworICAgIHZvaWQgdXBk
YXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFj
ZVByZWZpeCwgY29uc3QgQXRvbWljU3RyaW5nJiBlbGVtZW50TmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBtaXhlZENhc2VFbGVtZW50TmFtZSwgQ1NTUGFyc2VyU2VsZWN0b3IqLCBib29sIGlzTmFt
ZXNwYWNlUGxhY2Vob2xkZXIgPSBmYWxzZSk7CiAgICAgdm9pZCB1cGRhdGVTcGVjaWZpZXJzV2l0
aE5hbWVzcGFjZUlmTmVlZGVkKENTU1BhcnNlclNlbGVjdG9yKik7CiAgICAgQ1NTUGFyc2VyU2Vs
ZWN0b3IqIHVwZGF0ZVNwZWNpZmllcnMoQ1NTUGFyc2VyU2VsZWN0b3IqLCBDU1NQYXJzZXJTZWxl
Y3RvciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IDFhODQ3
NTUuLjE2ZTFjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC0x
NDksNiArMTQ5LDExIEBAIENTU1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3RvcigpCiB7
CiB9CiAKK0NTU1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3RvcihQYXNzT3duUHRyPENT
U1NlbGVjdG9yPiBzZWxlY3RvcikKKyAgICA6IG1fc2VsZWN0b3Ioc2VsZWN0b3IpCit7Cit9CisK
IENTU1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdRTmFtZSkKICAgICA6IG1fc2VsZWN0b3IoYWRvcHRQdHIobmV3IENTU1NlbGVjdG9yKHRh
Z1FOYW1lKSkpCiB7CkBAIC0xOTMsNiArMTk4LDkgQEAgYm9vbCBDU1NQYXJzZXJTZWxlY3Rvcjo6
aXNTaW1wbGUoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIG1fdGFnSGlzdG9yeS0+aXNTaW1w
bGUoKTsKICAgICB9CiAKKyAgICAvLyBNaXhlZCBjYXNlIHRhZ3MgY2Fubm90IGJlIHN0YXIgYXRv
bXMuCisgICAgQVNTRVJUKG1fc2VsZWN0b3ItPm1fbWF0Y2ggIT0gQ1NTU2VsZWN0b3I6Ok1peGVk
Q2FzZVRhZyB8fCBtX3NlbGVjdG9yLT5taXhlZENhc2VMb3dlclRhZ1FOYW1lKCkubG9jYWxOYW1l
KCkgIT0gc3RhckF0b20pOworCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0yMjUsNSArMjMz
LDE2IEBAIHZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnByZXBlbmRUYWdTZWxlY3Rvcihjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdRTmFtZSwgYm9vbCB0CiAgICAgbV9zZWxlY3Rvci0+bV9yZWxhdGlv
biA9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcjsKIH0KIAordm9pZCBDU1NQYXJzZXJTZWxlY3Rv
cjo6cHJlcGVuZFNlbGVjdG9yKFBhc3NPd25QdHI8Q1NTU2VsZWN0b3I+IHRhZ1NlbGVjdG9yKQor
eworICAgIE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gc2Vjb25kID0gYWRvcHRQdHIobmV3IENT
U1BhcnNlclNlbGVjdG9yKTsKKyAgICBzZWNvbmQtPm1fc2VsZWN0b3IgPSBtX3NlbGVjdG9yLnJl
bGVhc2UoKTsKKyAgICBzZWNvbmQtPm1fdGFnSGlzdG9yeSA9IG1fdGFnSGlzdG9yeS5yZWxlYXNl
KCk7CisgICAgbV90YWdIaXN0b3J5ID0gc2Vjb25kLnJlbGVhc2UoKTsKKworICAgIG1fc2VsZWN0
b3IgPSB0YWdTZWxlY3RvcjsKKyAgICBtX3NlbGVjdG9yLT5tX3JlbGF0aW9uID0gQ1NTU2VsZWN0
b3I6OlN1YlNlbGVjdG9yOworfQorCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMu
aAppbmRleCA2ZWM4MDQ5Li42MzQ0MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVl
cy5oCkBAIC03NSw2ICs3NSw3IEBAIHN0cnVjdCBDU1NQYXJzZXJTdHJpbmcgewogICAgIHZvaWQg
c2V0TGVuZ3RoKHVuc2lnbmVkIGxlbmd0aCkgeyBtX2xlbmd0aCA9IGxlbmd0aDsgfQogCiAgICAg
dm9pZCBsb3dlcigpOworICAgIGJvb2wgaXNMb3dlckNhc2UoKSBjb25zdDsKIAogICAgIFVDaGFy
IG9wZXJhdG9yW10odW5zaWduZWQgaSkKICAgICB7CkBAIC0xNzIsNiArMTczLDcgQEAgY2xhc3Mg
Q1NTUGFyc2VyU2VsZWN0b3IgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIENTU1BhcnNlclNlbGVjdG9yKCk7CisgICAgQ1NTUGFyc2VyU2VsZWN0b3IoUGFzc093
blB0cjxDU1NTZWxlY3Rvcj4pOwogICAgIGV4cGxpY2l0IENTU1BhcnNlclNlbGVjdG9yKGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKICAgICB+Q1NTUGFyc2VyU2VsZWN0b3IoKTsKIApAQCAtMTk3LDYg
KzE5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6
OlJlbGF0aW9uIGJlZm9yZSwgUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4sIENTU1NlbGVj
dG9yOjpSZWxhdGlvbiBhZnRlcik7CiAgICAgdm9pZCBhcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVj
dG9yOjpSZWxhdGlvbiwgUGFzc093blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4pOwogICAgIHZvaWQg
cHJlcGVuZFRhZ1NlbGVjdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBib29sIHRhZ0lzRm9yTmFt
ZXNwYWNlUnVsZSA9IGZhbHNlKTsKKyAgICB2b2lkIHByZXBlbmRTZWxlY3RvcihQYXNzT3duUHRy
PENTU1NlbGVjdG9yPik7CiAKIHByaXZhdGU6CiAgICAgT3duUHRyPENTU1NlbGVjdG9yPiBtX3Nl
bGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggMmUzNDkzZi4uYzIxZmFi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0xMDIsNiArMTAyLDkgQEAgaW5s
aW5lIHVuc2lnbmVkIENTU1NlbGVjdG9yOjpzcGVjaWZpY2l0eUZvck9uZVNlbGVjdG9yKCkgY29u
c3QKICAgICAgICAgcmV0dXJuIDB4MTAwOwogICAgIGNhc2UgVGFnOgogICAgICAgICByZXR1cm4g
KHRhZ1FOYW1lKCkubG9jYWxOYW1lKCkgIT0gc3RhckF0b20pID8gMSA6IDA7CisgICAgY2FzZSBN
aXhlZENhc2VUYWc6CisgICAgICAgIC8vIE1peGVkIGNhc2UgdGFnIHNlbGVjdG9ycyBjYW5ub3Qg
YmUgc3RhcnQgYXRvbXMsIHNvIHdlIGNhbiBvbmx5IHJldHVybiAxIGhlcmUuCisgICAgICAgIHJl
dHVybiAxOwogICAgIGNhc2UgVW5rbm93bjoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAt
NTk2LDEzICs1OTksMTQgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoKSBjb25z
dAogewogICAgIFN0cmluZ0J1aWxkZXIgc3RyOwogCi0gICAgaWYgKG1fbWF0Y2ggPT0gQ1NTU2Vs
ZWN0b3I6OlRhZyAmJiAhbV90YWdJc0Zvck5hbWVzcGFjZVJ1bGUpIHsKLSAgICAgICAgaWYgKHRh
Z1FOYW1lKCkucHJlZml4KCkuaXNOdWxsKCkpCi0gICAgICAgICAgICBzdHIuYXBwZW5kKHRhZ1FO
YW1lKCkubG9jYWxOYW1lKCkpOworICAgIGlmICghbV90YWdJc0Zvck5hbWVzcGFjZVJ1bGUgJiYg
KG1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlRhZyB8fCBtX21hdGNoID09IENTU1NlbGVjdG9yOjpN
aXhlZENhc2VUYWcpKSB7CisgICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ1FOYW1lVG9V
c2UgPSBtYXRjaGluZ1RhZ1FOYW1lKCk7CisgICAgICAgIGlmICh0YWdRTmFtZVRvVXNlLnByZWZp
eCgpLmlzTnVsbCgpKQorICAgICAgICAgICAgc3RyLmFwcGVuZCh0YWdRTmFtZVRvVXNlLmxvY2Fs
TmFtZSgpKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBzdHIuYXBwZW5kKHRhZ1FOYW1l
KCkucHJlZml4KCkuc3RyaW5nKCkpOworICAgICAgICAgICAgc3RyLmFwcGVuZCh0YWdRTmFtZVRv
VXNlLnByZWZpeCgpLnN0cmluZygpKTsKICAgICAgICAgICAgIHN0ci5hcHBlbmQoJ3wnKTsKLSAg
ICAgICAgICAgIHN0ci5hcHBlbmQodGFnUU5hbWUoKS5sb2NhbE5hbWUoKSk7CisgICAgICAgICAg
ICBzdHIuYXBwZW5kKHRhZ1FOYW1lVG9Vc2UubG9jYWxOYW1lKCkpOwogICAgICAgICB9CiAgICAg
fQogCkBAIC03MTYsMTMgKzcyMCwyOSBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4
dCgpIGNvbnN0CiB2b2lkIENTU1NlbGVjdG9yOjpzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdmFsdWUpCiB7CiAgICAgY3JlYXRlUmFyZURhdGEoKTsKLSAgICBtX2RhdGEubV9yYXJl
RGF0YS0+bV9hdHRyaWJ1dGUgPSB2YWx1ZTsKKyAgICBtX2RhdGEubV9yYXJlRGF0YS0+bV9hdHRy
aWJ1dGVPck1peGVkQ2FzZUxvd2VyVGFnUU5hbWUgPSB2YWx1ZTsKIH0KIAogdm9pZCBDU1NTZWxl
Y3Rvcjo6c2V0QXJndW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBjcmVh
dGVSYXJlRGF0YSgpOwotICAgIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2FyZ3VtZW50ID0gdmFsdWU7
CisgICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnRPck1peGVkQ2FzZVBhcnNlZFRhZ05h
bWUgPSB2YWx1ZTsKK30KKwordm9pZCBDU1NTZWxlY3Rvcjo6c2V0TWl4ZWRDYXNlTG93ZXJUYWdR
TmFtZShjb25zdCBRdWFsaWZpZWROYW1lJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQobV9tYXRjaCA9
PSBNaXhlZENhc2VUYWcpOworICAgIC8vIE1peGVkIGNhc2UgdGFnIHNlbGVjdG9ycyBzaG91bGQg
bmV2ZXIgYmUgc3RhckF0b21zIGFzIHRoZXJlJ3Mgbm8gdXBwZXIgY2FzZSB2ZXJzaW9uIG9mIHRo
ZSBzdGFyQXRvbS4KKyAgICBBU1NFUlQodmFsdWUubG9jYWxOYW1lKCkgIT0gc3RhckF0b20pOwor
ICAgIGNyZWF0ZVJhcmVEYXRhKCk7CisgICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXR0cmlidXRl
T3JNaXhlZENhc2VMb3dlclRhZ1FOYW1lID0gdmFsdWU7Cit9CisKK3ZvaWQgQ1NTU2VsZWN0b3I6
OnNldE1peGVkQ2FzZVBhcnNlZFRhZ05hbWUoY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKK3sK
KyAgICBBU1NFUlQobV9tYXRjaCA9PSBNaXhlZENhc2VUYWcpOworICAgIGNyZWF0ZVJhcmVEYXRh
KCk7CisgICAgbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnRPck1peGVkQ2FzZVBhcnNlZFRh
Z05hbWUgPSB2YWx1ZTsKIH0KIAogdm9pZCBDU1NTZWxlY3Rvcjo6c2V0U2VsZWN0b3JMaXN0KFBh
c3NPd25QdHI8Q1NTU2VsZWN0b3JMaXN0PiBzZWxlY3Rvckxpc3QpCkBAIC03NTEsOCArNzcxLDgg
QEAgQ1NTU2VsZWN0b3I6OlJhcmVEYXRhOjpSYXJlRGF0YShQYXNzUmVmUHRyPEF0b21pY1N0cmlu
Z0ltcGw+IHZhbHVlKQogICAgIDogbV92YWx1ZSh2YWx1ZS5sZWFrUmVmKCkpCiAgICAgLCBtX2Eo
MCkKICAgICAsIG1fYigwKQotICAgICwgbV9hdHRyaWJ1dGUoYW55UU5hbWUoKSkKLSAgICAsIG1f
YXJndW1lbnQobnVsbEF0b20pCisgICAgLCBtX2F0dHJpYnV0ZU9yTWl4ZWRDYXNlTG93ZXJUYWdR
TmFtZShhbnlRTmFtZSgpKQorICAgICwgbV9hcmd1bWVudE9yTWl4ZWRDYXNlUGFyc2VkVGFnTmFt
ZShudWxsQXRvbSkKIHsKIH0KIApAQCAtNzY1LDcgKzc4NSw3IEBAIENTU1NlbGVjdG9yOjpSYXJl
RGF0YTo6flJhcmVEYXRhKCkKIC8vIGEgaGVscGVyIGZ1bmN0aW9uIGZvciBwYXJzaW5nIG50aC1h
cmd1bWVudHMKIGJvb2wgQ1NTU2VsZWN0b3I6OlJhcmVEYXRhOjpwYXJzZU50aCgpCiB7Ci0gICAg
U3RyaW5nIGFyZ3VtZW50ID0gbV9hcmd1bWVudC5sb3dlcigpOworICAgIFN0cmluZyBhcmd1bWVu
dCA9IG1fYXJndW1lbnRPck1peGVkQ2FzZVBhcnNlZFRhZ05hbWUubG93ZXIoKTsKIAogICAgIGlm
IChhcmd1bWVudC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1NlbGVjdG9yLmgKaW5kZXggNWJjNjMyNy4uZGJlOWZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBDU1NT
ZWxlY3RvcigpOwogICAgICAgICBDU1NTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciYpOwogICAg
ICAgICBleHBsaWNpdCBDU1NTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCB0YWdJ
c0Zvck5hbWVzcGFjZVJ1bGUgPSBmYWxzZSk7CisgICAgICAgIENTU1NlbGVjdG9yKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG1peGVkQ2FzZUxvd2VyVGFnUU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bWl4ZWRDYXNlUGFyc2VkVGFnTmFtZSk7CiAKICAgICAgICAgfkNTU1NlbGVjdG9yKCk7CiAKQEAg
LTU3LDYgKzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBlbnVtIE1hdGNoIHsK
ICAgICAgICAgICAgIFVua25vd24gPSAwLAogICAgICAgICAgICAgVGFnLAorICAgICAgICAgICAg
TWl4ZWRDYXNlVGFnLAogICAgICAgICAgICAgSWQsCiAgICAgICAgICAgICBDbGFzcywKICAgICAg
ICAgICAgIEV4YWN0LApAQCAtMjAyLDkgKzIwNCwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9p
c0xhc3RJblRhZ0hpc3RvcnkgPyAwIDogY29uc3RfY2FzdDxDU1NTZWxlY3Rvcio+KHRoaXMgKyAx
KTsgfQogCiAgICAgICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ1FOYW1lKCkgY29uc3Q7Cisg
ICAgICAgIGJvb2wgaXNUYWdNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0Y2ggPT0gVGFnIHx8
IG1fbWF0Y2ggPT0gTWl4ZWRDYXNlVGFnOyB9CisgICAgICAgIGlubGluZSBjb25zdCBRdWFsaWZp
ZWROYW1lJiBtYXRjaGluZ1RhZ1FOYW1lKCkgY29uc3QgeyByZXR1cm4gKG1fbWF0Y2ggPT0gVGFn
KSA/IHRhZ1FOYW1lKCkgOiBtaXhlZENhc2VMb3dlclRhZ1FOYW1lKCk7IH0KKyAgICAgICAgCisg
ICAgICAgIC8vIFdoZW5ldmVyIGEgdGFnIHNlbGVjdG9yIGlzIHBhcnNlZCBpbiBhbiBIVE1MIGRv
Y3VtZW50IGFuZCBpdCBoYXMgbWl4ZWQgY2FzZSBsZXR0ZXJzLCB3ZSBuZWVkIHRvIHN0b3JlCisg
ICAgICAgIC8vIGJvdGggdGhlIHBhcnNlZCB0YWcgdmFsdWUgYW5kIHRoZSBsb3dlciBjYXNlZCB2
ZXJzaW9uIG9mIGl0LCBzbyB0aGF0IHdlIGNhbiBtYXRjaCBiYXNlZCBvbiB0aGUgZWxlbWVudCB0
eXBlOgorICAgICAgICAvLyAtIEhUTUwgZWxlbWVudHMgd2lsbCBtYXRjaCB1c2luZyB0aGUgbG93
ZXIgY2FzZSB2ZXJzaW9uIC0gbWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSgpCisgICAgICAgIC8vIC0g
bm9uLUhUTUwgZWxlbWVudHMgd2lsbCBtYXRjaCB1c2luZyB0aGUgcGFyc2VkIG1peGVkIGNhc2Ug
dmVyc2lvbiAtIG1peGVkQ2FzZVBhcnNlZFRhZ05hbWUoKQorICAgICAgICBjb25zdCBRdWFsaWZp
ZWROYW1lJiBtaXhlZENhc2VMb3dlclRhZ1FOYW1lKCkgY29uc3Q7CisgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgbWl4ZWRDYXNlUGFyc2VkVGFnTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFz
UmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudE9yTWl4ZWRDYXNlUGFyc2Vk
VGFnTmFtZSA6IG51bGxBdG9tOyB9CisKICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSgpIGNvbnN0OwogICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUoKSBjb25z
dDsKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1faGFzUmFyZURhdGEgPyBtX2RhdGEubV9yYXJlRGF0YS0+bV9hcmd1bWVudCA6IG51bGxBdG9t
OyB9CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgYXJndW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2hhc1JhcmVEYXRhID8gbV9kYXRhLm1fcmFyZURhdGEtPm1fYXJndW1lbnRPck1peGVkQ2Fz
ZVBhcnNlZFRhZ05hbWUgOiBudWxsQXRvbTsgfQogICAgICAgICBjb25zdCBDU1NTZWxlY3Rvckxp
c3QqIHNlbGVjdG9yTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmFyZURhdGEgPyBtX2RhdGEu
bV9yYXJlRGF0YS0+bV9zZWxlY3Rvckxpc3QuZ2V0KCkgOiAwOyB9CiAKICAgICAgICAgdm9pZCBz
ZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKQEAgLTIyOSw3ICsyNDEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0Tm90TGFzdEluVGFnSGlzdG9yeSgpIHsgbV9p
c0xhc3RJblRhZ0hpc3RvcnkgPSBmYWxzZTsgfQogCiAgICAgICAgIGJvb2wgaXNTaW1wbGUoKSBj
b25zdDsKLQorICAgICAgICAKICAgICAgICAgYm9vbCBpc0ZvclBhZ2UoKSBjb25zdCB7IHJldHVy
biBtX2lzRm9yUGFnZTsgfQogICAgICAgICB2b2lkIHNldEZvclBhZ2UoKSB7IG1faXNGb3JQYWdl
ID0gdHJ1ZTsgfQogCkBAIC0yNjIsMTQgKzI3NCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICBBdG9taWNTdHJpbmdJbXBsKiBtX3ZhbHVlOyAvLyBQbGFpbiBwb2ludGVyIHRv
IGtlZXAgdGhpbmdzIHVuaWZvcm0gd2l0aCB0aGUgdW5pb24uCiAgICAgICAgICAgICBpbnQgbV9h
OyAvLyBVc2VkIGZvciA6bnRoLSoKICAgICAgICAgICAgIGludCBtX2I7IC8vIFVzZWQgZm9yIDpu
dGgtKgotICAgICAgICAgICAgUXVhbGlmaWVkTmFtZSBtX2F0dHJpYnV0ZTsgLy8gdXNlZCBmb3Ig
YXR0cmlidXRlIHNlbGVjdG9yCi0gICAgICAgICAgICBBdG9taWNTdHJpbmcgbV9hcmd1bWVudDsg
Ly8gVXNlZCBmb3IgOmNvbnRhaW5zLCA6bGFuZyBhbmQgOm50aC0qCisgICAgICAgICAgICBRdWFs
aWZpZWROYW1lIG1fYXR0cmlidXRlT3JNaXhlZENhc2VMb3dlclRhZ1FOYW1lOyAvLyB1c2VkIGZv
ciBhdHRyaWJ1dGUgc2VsZWN0b3IgYW5kIG1peGVkIGNhc2UgdGFnIHNlbGVjdG9ycworICAgICAg
ICAgICAgQXRvbWljU3RyaW5nIG1fYXJndW1lbnRPck1peGVkQ2FzZVBhcnNlZFRhZ05hbWU7IC8v
IFVzZWQgZm9yIDpjb250YWlucywgOmxhbmcgYW5kIDpudGgtKiBhbmQgbWl4ZWQgY2FzZSB0YWcg
c2VsZWN0b3JzCiAgICAgICAgICAgICBPd25QdHI8Q1NTU2VsZWN0b3JMaXN0PiBtX3NlbGVjdG9y
TGlzdDsgLy8gVXNlZCBmb3IgOi13ZWJraXQtYW55IGFuZCA6bm90CiAgICAgICAgIAogICAgICAg
ICBwcml2YXRlOgogICAgICAgICAgICAgUmFyZURhdGEoUGFzc1JlZlB0cjxBdG9taWNTdHJpbmdJ
bXBsPiB2YWx1ZSk7CiAgICAgICAgIH07CiAgICAgICAgIHZvaWQgY3JlYXRlUmFyZURhdGEoKTsK
KyAgICAgICAgdm9pZCBzZXRNaXhlZENhc2VMb3dlclRhZ1FOYW1lKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKKyAgICAgICAgdm9pZCBzZXRNaXhlZENhc2VQYXJzZWRUYWdOYW1lKGNvbnN0IEF0b21p
Y1N0cmluZyYpOwogCiAgICAgICAgIHVuaW9uIERhdGFVbmlvbiB7CiAgICAgICAgICAgICBEYXRh
VW5pb24oKSA6IG1fdmFsdWUoMCkgeyB9CkBAIC0yODMsNyArMjk3LDE0IEBAIGlubGluZSBjb25z
dCBRdWFsaWZpZWROYW1lJiBDU1NTZWxlY3Rvcjo6YXR0cmlidXRlKCkgY29uc3QKIHsKICAgICBB
U1NFUlQoaXNBdHRyaWJ1dGVTZWxlY3RvcigpKTsKICAgICBBU1NFUlQobV9oYXNSYXJlRGF0YSk7
Ci0gICAgcmV0dXJuIG1fZGF0YS5tX3JhcmVEYXRhLT5tX2F0dHJpYnV0ZTsKKyAgICByZXR1cm4g
bV9kYXRhLm1fcmFyZURhdGEtPm1fYXR0cmlidXRlT3JNaXhlZENhc2VMb3dlclRhZ1FOYW1lOwor
fQorCitpbmxpbmUgY29uc3QgUXVhbGlmaWVkTmFtZSYgQ1NTU2VsZWN0b3I6Om1peGVkQ2FzZUxv
d2VyVGFnUU5hbWUoKSBjb25zdAoreworICAgIEFTU0VSVChtX21hdGNoID09IE1peGVkQ2FzZVRh
Zyk7CisgICAgQVNTRVJUKG1faGFzUmFyZURhdGEpOworICAgIHJldHVybiBtX2RhdGEubV9yYXJl
RGF0YS0+bV9hdHRyaWJ1dGVPck1peGVkQ2FzZUxvd2VyVGFnUU5hbWU7CiB9CiAKIGlubGluZSBi
b29sIENTU1NlbGVjdG9yOjptYXRjaGVzUHNldWRvRWxlbWVudCgpIGNvbnN0CkBAIC0zODUsNiAr
NDA2LDIxIEBAIGlubGluZSBDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0b3IoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnUU5hbWUsIGJvb2wgdGFnSXNGb3JOYW1lCiAgICAgbV9kYXRhLm1fdGFnUU5hbWUt
PnJlZigpOwogfQogCitpbmxpbmUgQ1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG1peGVkQ2FzZUxvd2VyVGFnUU5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbWl4
ZWRDYXNlUGFyc2VkVGFnTmFtZSkKKyAgICA6IG1fcmVsYXRpb24oRGVzY2VuZGFudCkKKyAgICAs
IG1fbWF0Y2goTWl4ZWRDYXNlVGFnKQorICAgICwgbV9wc2V1ZG9UeXBlKFBzZXVkb05vdFBhcnNl
ZCkKKyAgICAsIG1fcGFyc2VkTnRoKGZhbHNlKQorICAgICwgbV9pc0xhc3RJblNlbGVjdG9yTGlz
dChmYWxzZSkKKyAgICAsIG1faXNMYXN0SW5UYWdIaXN0b3J5KHRydWUpCisgICAgLCBtX2hhc1Jh
cmVEYXRhKGZhbHNlKQorICAgICwgbV9pc0ZvclBhZ2UoZmFsc2UpCisgICAgLCBtX3RhZ0lzRm9y
TmFtZXNwYWNlUnVsZShmYWxzZSkKK3sKKyAgICBzZXRNaXhlZENhc2VMb3dlclRhZ1FOYW1lKG1p
eGVkQ2FzZUxvd2VyVGFnUU5hbWUpOworICAgIHNldE1peGVkQ2FzZVBhcnNlZFRhZ05hbWUobWl4
ZWRDYXNlUGFyc2VkVGFnTmFtZSk7Cit9CisKIGlubGluZSBDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0
b3IoY29uc3QgQ1NTU2VsZWN0b3ImIG8pCiAgICAgOiBtX3JlbGF0aW9uKG8ubV9yZWxhdGlvbikK
ICAgICAsIG1fbWF0Y2goby5tX21hdGNoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IDdkNjc3
YzQuLjg2ZWJkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTYwLDggKzYwLDggQEAgdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NlbGVjdG9yTWF0
Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKIHsK
ICAgICBBU1NFUlQoc2VsZWN0b3IpOwotICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NT
ZWxlY3Rvcjo6VGFnKSB7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0b3JOYW1l
c3BhY2UgPSBzZWxlY3Rvci0+dGFnUU5hbWUoKS5uYW1lc3BhY2VVUkkoKTsKKyAgICBpZiAoc2Vs
ZWN0b3ItPmlzVGFnTWF0Y2goKSkgeworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVj
dG9yTmFtZXNwYWNlID0gc2VsZWN0b3ItPm1hdGNoaW5nVGFnUU5hbWUoKS5uYW1lc3BhY2VVUkko
KTsKICAgICAgICAgaWYgKHNlbGVjdG9yTmFtZXNwYWNlICE9IHN0YXJBdG9tICYmIHNlbGVjdG9y
TmFtZXNwYWNlICE9IHhodG1sTmFtZXNwYWNlVVJJKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICBpZiAoc2VsZWN0b3ItPnJlbGF0aW9uKCkgPT0gQ1NTU2VsZWN0b3I6OlN1YlNl
bGVjdG9yKQpAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBpbmxpbmUgUHJvcGVydHlXaGl0ZWxp
c3RUeXBlIGRldGVybWluZVByb3BlcnR5V2hpdGVsaXN0VHlwZShjb25zdCBBZGRSdWxlCiAgICAg
ICAgIHJldHVybiBQcm9wZXJ0eVdoaXRlbGlzdFJlZ2lvbjsKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogY29tcG9uZW50ID0gc2VsZWN0b3I7IGNv
bXBvbmVudDsgY29tcG9uZW50ID0gY29tcG9uZW50LT50YWdIaXN0b3J5KCkpIHsKLSAgICAgICAg
aWYgKGNvbXBvbmVudC0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DdWUgfHwg
KGNvbXBvbmVudC0+bV9tYXRjaCAhPSBDU1NTZWxlY3Rvcjo6VGFnICYmIGNvbXBvbmVudC0+dmFs
dWUoKSA9PSBUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkpKQorICAgICAgICBpZiAo
Y29tcG9uZW50LT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0N1ZSB8fCAoIWNv
bXBvbmVudC0+aXNUYWdNYXRjaCgpICYmIGNvbXBvbmVudC0+dmFsdWUoKSA9PSBUZXh0VHJhY2tD
dWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkpKQogICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5V2hp
dGVsaXN0Q3VlOwogICAgIH0KICNlbHNlCkBAIC0xNjgsNiArMTY4LDcgQEAgdm9pZCBSdWxlU2V0
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAogICAgIHJlcG9ydEF0b21SdWxlTWFwKCZpbmZvLCBtX2lkUnVsZXMpOwogICAgIHJlcG9y
dEF0b21SdWxlTWFwKCZpbmZvLCBtX2NsYXNzUnVsZXMpOwogICAgIHJlcG9ydEF0b21SdWxlTWFw
KCZpbmZvLCBtX3RhZ1J1bGVzKTsKKyAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV9taXhl
ZENhc2VUYWdSdWxlcyk7CiAgICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fc2hhZG93UHNl
dWRvRWxlbWVudFJ1bGVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmtQc2V1ZG9DbGFzc1J1
bGVzKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0yNTQsMTggKzI1NSwyMiBAQCBib29s
IFJ1bGVTZXQ6OmZpbmRCZXN0UnVsZVNldEFuZEFkZChjb25zdCBDU1NTZWxlY3RvciogY29tcG9u
ZW50LCBSdWxlRGF0YSYgcnVsZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGNvbXBvbmVu
dC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFnKSB7Ci0gICAgICAgIGlmIChjb21wb25lbnQt
PnRhZ1FOYW1lKCkubG9jYWxOYW1lKCkgIT0gc3RhckF0b20pIHsKKyAgICBpZiAoY29tcG9uZW50
LT5pc1RhZ01hdGNoKCkpIHsKKyAgICAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5hbWVU
b1VzZSA9IGNvbXBvbmVudC0+bWF0Y2hpbmdUYWdRTmFtZSgpOworICAgICAgICBpZiAodGFnUU5h
bWVUb1VzZS5sb2NhbE5hbWUoKSAhPSBzdGFyQXRvbSkgewogICAgICAgICAgICAgLy8gSWYgdGhp
cyBpcyBwYXJ0IG9mIGEgc3Vic2VsZWN0b3IgY2hhaW4sIHJlY3Vyc2UgYWhlYWQgdG8gZmluZCBh
IG5hcnJvd2VyIHNldCAoSUQvY2xhc3MuKQogICAgICAgICAgICAgaWYgKGNvbXBvbmVudC0+cmVs
YXRpb24oKSA9PSBDU1NTZWxlY3Rvcjo6U3ViU2VsZWN0b3IKICAgICAgICAgICAgICAgICAmJiAo
Y29tcG9uZW50LT50YWdIaXN0b3J5KCktPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzIHx8
IGNvbXBvbmVudC0+dGFnSGlzdG9yeSgpLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpJZCB8fCBT
ZWxlY3RvckNoZWNrZXI6OmlzQ29tbW9uUHNldWRvQ2xhc3NTZWxlY3Rvcihjb21wb25lbnQtPnRh
Z0hpc3RvcnkoKSkpCiAgICAgICAgICAgICAgICAgJiYgZmluZEJlc3RSdWxlU2V0QW5kQWRkKGNv
bXBvbmVudC0+dGFnSGlzdG9yeSgpLCBydWxlRGF0YSkpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICAgICAgICAgIGFkZFRvUnVsZVNldChjb21wb25lbnQtPnRhZ1FOYW1lKCku
bG9jYWxOYW1lKCkuaW1wbCgpLCBtX3RhZ1J1bGVzLCBydWxlRGF0YSk7CisgICAgICAgICAgICBh
ZGRUb1J1bGVTZXQodGFnUU5hbWVUb1VzZS5sb2NhbE5hbWUoKS5pbXBsKCksIG1fdGFnUnVsZXMs
IHJ1bGVEYXRhKTsKKyAgICAgICAgICAgIGlmIChjb21wb25lbnQtPm1fbWF0Y2ggPT0gQ1NTU2Vs
ZWN0b3I6Ok1peGVkQ2FzZVRhZykKKyAgICAgICAgICAgICAgICBhZGRUb1J1bGVTZXQoY29tcG9u
ZW50LT5taXhlZENhc2VQYXJzZWRUYWdOYW1lKCkuaW1wbCgpLCBtX21peGVkQ2FzZVRhZ1J1bGVz
LCBydWxlRGF0YSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
KwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtNDAxLDYgKzQwNiw3IEBAIHZvaWQgUnVsZVNl
dDo6c2hyaW5rVG9GaXQoKQogICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX2lkUnVsZXMpOwog
ICAgIHNocmlua01hcFZlY3RvcnNUb0ZpdChtX2NsYXNzUnVsZXMpOwogICAgIHNocmlua01hcFZl
Y3RvcnNUb0ZpdChtX3RhZ1J1bGVzKTsKKyAgICBzaHJpbmtNYXBWZWN0b3JzVG9GaXQobV9taXhl
ZENhc2VUYWdSdWxlcyk7CiAgICAgc2hyaW5rTWFwVmVjdG9yc1RvRml0KG1fc2hhZG93UHNldWRv
RWxlbWVudFJ1bGVzKTsKICAgICBtX2xpbmtQc2V1ZG9DbGFzc1J1bGVzLnNocmlua1RvRml0KCk7
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKaW5kZXggNDFiZWEyMS4u
OTg5ZWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCkBAIC0xMjUsNiArMTI1LDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIGlkUnVsZXMoQXRvbWljU3RyaW5nSW1wbCoga2V5
KSBjb25zdCB7IHJldHVybiBtX2lkUnVsZXMuZ2V0KGtleSk7IH0KICAgICBjb25zdCBWZWN0b3I8
UnVsZURhdGE+KiBjbGFzc1J1bGVzKEF0b21pY1N0cmluZ0ltcGwqIGtleSkgY29uc3QgeyByZXR1
cm4gbV9jbGFzc1J1bGVzLmdldChrZXkpOyB9CiAgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiog
dGFnUnVsZXMoQXRvbWljU3RyaW5nSW1wbCoga2V5KSBjb25zdCB7IHJldHVybiBtX3RhZ1J1bGVz
LmdldChrZXkpOyB9CisgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogbWl4ZWRDYXNlVGFnUnVs
ZXMoQXRvbWljU3RyaW5nSW1wbCoga2V5KSBjb25zdCB7IHJldHVybiBtX21peGVkQ2FzZVRhZ1J1
bGVzLmdldChrZXkpOyB9CiAgICAgY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogc2hhZG93UHNldWRv
RWxlbWVudFJ1bGVzKEF0b21pY1N0cmluZ0ltcGwqIGtleSkgY29uc3QgeyByZXR1cm4gbV9zaGFk
b3dQc2V1ZG9FbGVtZW50UnVsZXMuZ2V0KGtleSk7IH0KICAgICBjb25zdCBWZWN0b3I8UnVsZURh
dGE+KiBsaW5rUHNldWRvQ2xhc3NSdWxlcygpIGNvbnN0IHsgcmV0dXJuICZtX2xpbmtQc2V1ZG9D
bGFzc1J1bGVzOyB9CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMTQ2LDYgKzE0Nyw3IEBA
IHB1YmxpYzoKICAgICBBdG9tUnVsZU1hcCBtX2lkUnVsZXM7CiAgICAgQXRvbVJ1bGVNYXAgbV9j
bGFzc1J1bGVzOwogICAgIEF0b21SdWxlTWFwIG1fdGFnUnVsZXM7CisgICAgQXRvbVJ1bGVNYXAg
bV9taXhlZENhc2VUYWdSdWxlczsKICAgICBBdG9tUnVsZU1hcCBtX3NoYWRvd1BzZXVkb0VsZW1l
bnRSdWxlczsKICAgICBWZWN0b3I8UnVsZURhdGE+IG1fbGlua1BzZXVkb0NsYXNzUnVsZXM7CiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNw
cAppbmRleCAxZjVlMGMwLi4zNzIyZDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcApAQCAtMTM3LDYgKzEzNywxMSBAQCBpbmxpbmUgYm9vbCBjaGVja1RhZ1ZhbHVlKGNv
bnN0IEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKICAgICBy
ZXR1cm4gU2VsZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKGVsZW1lbnQsIHNlbGVjdG9yLT50YWdR
TmFtZSgpKTsKIH0KIAoraW5saW5lIGJvb2wgY2hlY2tNaXhlZENhc2VUYWdWYWx1ZShjb25zdCBF
bGVtZW50KiBlbGVtZW50LCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgcmV0
dXJuIFNlbGVjdG9yQ2hlY2tlcjo6bWl4ZWRDYXNlVGFnTWF0Y2hlcyhlbGVtZW50LCBzZWxlY3Rv
ci0+bWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSgpLCBzZWxlY3Rvci0+bWl4ZWRDYXNlUGFyc2VkVGFn
TmFtZSgpKTsKK30KKwogfQogCiBpbmxpbmUgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmZhc3RDaGVj
a1JpZ2h0bW9zdFNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciwgY29uc3QgRWxl
bWVudCogZWxlbWVudCwgVmlzaXRlZE1hdGNoVHlwZSB2aXNpdGVkTWF0Y2hUeXBlKSBjb25zdApA
QCAtMTQ2LDYgKzE1MSw4IEBAIGlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6ZmFzdENoZWNr
UmlnaHRtb3N0U2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjCiAgICAgc3dpdGNoIChz
ZWxlY3Rvci0+bV9tYXRjaCkgewogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlRhZzoKICAgICAgICAg
cmV0dXJuIGNoZWNrVGFnVmFsdWUoZWxlbWVudCwgc2VsZWN0b3IpOworICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6Ok1peGVkQ2FzZVRhZzoKKyAgICAgICAgcmV0dXJuIGNoZWNrTWl4ZWRDYXNlVGFnVmFs
dWUoZWxlbWVudCwgc2VsZWN0b3IpOwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNsYXNzOgogICAg
ICAgICByZXR1cm4gY2hlY2tDbGFzc1ZhbHVlKGVsZW1lbnQsIHNlbGVjdG9yKTsKICAgICBjYXNl
IENTU1NlbGVjdG9yOjpJZDoKQEAgLTE5MCw2ICsxOTcsMTAgQEAgYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OmZhc3RDaGVjayhjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IsIGNvbnN0IEVsZW1lbnQq
IGVsZW0KICAgICAgICAgICAgIGlmICghZmFzdENoZWNrU2luZ2xlU2VsZWN0b3I8Y2hlY2tUYWdW
YWx1ZT4oc2VsZWN0b3IsIGVsZW1lbnQsIHRvcENoaWxkT3JTdWJzZWxlY3RvciwgdG9wQ2hpbGRP
clN1YnNlbGVjdG9yTWF0Y2hFbGVtZW50KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6TWl4ZWRDYXNl
VGFnOgorICAgICAgICAgICAgaWYgKCFmYXN0Q2hlY2tTaW5nbGVTZWxlY3RvcjxjaGVja01peGVk
Q2FzZVRhZ1ZhbHVlPihzZWxlY3RvciwgZWxlbWVudCwgdG9wQ2hpbGRPclN1YnNlbGVjdG9yLCB0
b3BDaGlsZE9yU3Vic2VsZWN0b3JNYXRjaEVsZW1lbnQpKQorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpT
ZXQ6CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgogICAgICAgICAgICAgaWYgKCFm
YXN0Q2hlY2tTaW5nbGVTZWxlY3RvcjxjaGVja0V4YWN0QXR0cmlidXRlVmFsdWU+KHNlbGVjdG9y
LCBlbGVtZW50LCB0b3BDaGlsZE9yU3Vic2VsZWN0b3IsIHRvcENoaWxkT3JTdWJzZWxlY3Rvck1h
dGNoRWxlbWVudCkpCkBAIC0yMTYsNyArMjI3LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzRmFz
dENoZWNrYWJsZU1hdGNoKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKICAgICB9CiAgICAg
aWYgKHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpFeGFjdCkKICAgICAgICAgcmV0
dXJuIHNlbGVjdG9yLT5hdHRyaWJ1dGUoKSAhPSBzdHlsZUF0dHIgJiYgSFRNTERvY3VtZW50Ojpp
c0Nhc2VTZW5zaXRpdmVBdHRyaWJ1dGUoc2VsZWN0b3ItPmF0dHJpYnV0ZSgpKTsKLSAgICByZXR1
cm4gc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlRhZyB8fCBzZWxlY3Rvci0+bV9t
YXRjaCA9PSBDU1NTZWxlY3Rvcjo6SWQgfHwgc2VsZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0
b3I6OkNsYXNzOworICAgIHJldHVybiBzZWxlY3Rvci0+aXNUYWdNYXRjaCgpIHx8IHNlbGVjdG9y
LT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpJZCB8fCBzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NT
ZWxlY3Rvcjo6Q2xhc3M7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0Zhc3RDaGVja2FibGVS
aWdodG1vc3RTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCkBAIC00NzUsNiAr
NDg2LDkgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hl
Y2tpbmdDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaWIKICAgICBpZiAoc2VsZWN0b3ItPm1fbWF0
Y2ggPT0gQ1NTU2VsZWN0b3I6OlRhZykKICAgICAgICAgcmV0dXJuIFNlbGVjdG9yQ2hlY2tlcjo6
dGFnTWF0Y2hlcyhlbGVtZW50LCBzZWxlY3Rvci0+dGFnUU5hbWUoKSk7CiAKKyAgICBpZiAoc2Vs
ZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6Ok1peGVkQ2FzZVRhZykKKyAgICAgICAgcmV0
dXJuIFNlbGVjdG9yQ2hlY2tlcjo6bWl4ZWRDYXNlVGFnTWF0Y2hlcyhlbGVtZW50LCBzZWxlY3Rv
ci0+bWl4ZWRDYXNlTG93ZXJUYWdRTmFtZSgpLCBzZWxlY3Rvci0+bWl4ZWRDYXNlUGFyc2VkVGFn
TmFtZSgpKTsKKwogICAgIGlmIChzZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6Q2xh
c3MpCiAgICAgICAgIHJldHVybiBlbGVtZW50LT5oYXNDbGFzcygpICYmIHN0YXRpY19jYXN0PFN0
eWxlZEVsZW1lbnQqPihlbGVtZW50KS0+Y2xhc3NOYW1lcygpLmNvbnRhaW5zKHNlbGVjdG9yLT52
YWx1ZSgpKTsKIApAQCAtNzI2LDcgKzc0MCw3IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVj
a09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2liCiAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvdmVyOgogICAgICAgICAgICAgLy8gSWYg
d2UncmUgaW4gcXVpcmtzIG1vZGUsIHRoZW4gaG92ZXIgc2hvdWxkIG5ldmVyIG1hdGNoIGFuY2hv
cnMgd2l0aCBubwogICAgICAgICAgICAgLy8gaHJlZiBhbmQgKjpob3ZlciBzaG91bGQgbm90IG1h
dGNoIGFueXRoaW5nLiBUaGlzIGlzIGltcG9ydGFudCBmb3Igc2l0ZXMgbGlrZSB3c2ouY29tLgot
ICAgICAgICAgICAgaWYgKG1fc3RyaWN0UGFyc2luZyB8fCBjb250ZXh0LmlzU3ViU2VsZWN0b3Ig
fHwgKHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpUYWcgJiYgc2VsZWN0b3ItPnRh
Z1FOYW1lKCkgIT0gYW55UU5hbWUoKSAmJiAhZWxlbWVudC0+aGFzVGFnTmFtZShhVGFnKSkgfHwg
ZWxlbWVudC0+aXNMaW5rKCkpIHsKKyAgICAgICAgICAgIGlmIChtX3N0cmljdFBhcnNpbmcgfHwg
Y29udGV4dC5pc1N1YlNlbGVjdG9yIHx8IChzZWxlY3Rvci0+aXNUYWdNYXRjaCgpICYmIHNlbGVj
dG9yLT5tYXRjaGluZ1RhZ1FOYW1lKCkgIT0gYW55UU5hbWUoKSAmJiAhZWxlbWVudC0+aGFzVGFn
TmFtZShhVGFnKSkgfHwgZWxlbWVudC0+aXNMaW5rKCkpIHsKICAgICAgICAgICAgICAgICBpZiAo
bV9tb2RlID09IFJlc29sdmluZ1N0eWxlKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChjb250
ZXh0LmVsZW1lbnRTdHlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZWxlbWVu
dFN0eWxlLT5zZXRBZmZlY3RlZEJ5SG92ZXIoKTsKQEAgLTc0MCw3ICs3NTQsNyBAQCBib29sIFNl
bGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFNpYgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9BY3RpdmU6
CiAgICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiBxdWlya3MgbW9kZSwgdGhlbiA6YWN0aXZlIHNo
b3VsZCBuZXZlciBtYXRjaCBhbmNob3JzIHdpdGggbm8KICAgICAgICAgICAgIC8vIGhyZWYgYW5k
ICo6YWN0aXZlIHNob3VsZCBub3QgbWF0Y2ggYW55dGhpbmcuCi0gICAgICAgICAgICBpZiAobV9z
dHJpY3RQYXJzaW5nIHx8IGNvbnRleHQuaXNTdWJTZWxlY3RvciB8fCAoc2VsZWN0b3ItPm1fbWF0
Y2ggPT0gQ1NTU2VsZWN0b3I6OlRhZyAmJiBzZWxlY3Rvci0+dGFnUU5hbWUoKSAhPSBhbnlRTmFt
ZSgpICYmICFlbGVtZW50LT5oYXNUYWdOYW1lKGFUYWcpKSB8fCBlbGVtZW50LT5pc0xpbmsoKSkg
eworICAgICAgICAgICAgaWYgKG1fc3RyaWN0UGFyc2luZyB8fCBjb250ZXh0LmlzU3ViU2VsZWN0
b3IgfHwgKHNlbGVjdG9yLT5pc1RhZ01hdGNoKCkgJiYgc2VsZWN0b3ItPm1hdGNoaW5nVGFnUU5h
bWUoKSAhPSBhbnlRTmFtZSgpICYmICFlbGVtZW50LT5oYXNUYWdOYW1lKGFUYWcpKSB8fCBlbGVt
ZW50LT5pc0xpbmsoKSkgewogICAgICAgICAgICAgICAgIGlmIChtX21vZGUgPT0gUmVzb2x2aW5n
U3R5bGUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudFN0eWxlKQog
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5lbGVtZW50U3R5bGUtPnNldEFmZmVjdGVk
QnlBY3RpdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAppbmRleCAzOTM5YmMz
Li43YTdkYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC05MCw2ICs5
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vZGUoTW9kZSBtb2RlKSB7IG1fbW9kZSA9IG1v
ZGU7IH0KIAogICAgIHN0YXRpYyBib29sIHRhZ01hdGNoZXMoY29uc3QgRWxlbWVudCosIGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKKyAgICBzdGF0aWMgYm9vbCBtaXhlZENhc2VUYWdNYXRjaGVzKGNv
bnN0IEVsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiBt
aXhlZENhc2VFbGVtZW50TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tb25Qc2V1ZG9DbGFz
c1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CiAgICAgYm9vbCBtYXRjaGVzRm9jdXNQc2V1
ZG9DbGFzcyhjb25zdCBFbGVtZW50KikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZmFzdENoZWNr
UmlnaHRtb3N0QXR0cmlidXRlU2VsZWN0b3IoY29uc3QgRWxlbWVudCosIGNvbnN0IENTU1NlbGVj
dG9yKik7CkBAIC0xMzksNiArMTQwLDE3IEBAIGlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6
dGFnTWF0Y2hlcyhjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROCiAgICAg
cmV0dXJuIG5hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSB8fCBuYW1lc3BhY2VVUkkgPT0gZWxlbWVu
dC0+bmFtZXNwYWNlVVJJKCk7CiB9CiAKK2lubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6bWl4
ZWRDYXNlVGFnTWF0Y2hlcyhjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdRTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBtaXhlZENhc2VFbGVtZW50TmFtZSkK
K3sKKyAgICBBU1NFUlQodGFnUU5hbWUgIT0gYW55UU5hbWUoKSk7CisgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbE5hbWUgPSBlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgPyB0YWdRTmFtZS5s
b2NhbE5hbWUoKSA6IG1peGVkQ2FzZUVsZW1lbnROYW1lOworICAgIEFTU0VSVChsb2NhbE5hbWUg
IT0gc3RhckF0b20pOworICAgIGlmIChsb2NhbE5hbWUgIT0gZWxlbWVudC0+bG9jYWxOYW1lKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFj
ZVVSSSA9IHRhZ1FOYW1lLm5hbWVzcGFjZVVSSSgpOworICAgIHJldHVybiBuYW1lc3BhY2VVUkkg
PT0gc3RhckF0b20gfHwgbmFtZXNwYWNlVVJJID09IGVsZW1lbnQtPm5hbWVzcGFjZVVSSSgpOwor
fQorCiBpbmxpbmUgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrRXhhY3RBdHRyaWJ1dGUoY29u
c3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgc2VsZWN0b3JBdHRyaWJ1
dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmdJbXBsKiB2YWx1ZSkKIHsKICAgICBpZiAoIWVsZW1l
bnQtPmhhc0F0dHJpYnV0ZXNXaXRob3V0VXBkYXRlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
RmlsdGVyLmNwcAppbmRleCA2MWY5ZGZlLi40NjI0YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckZpbHRlci5jcHAKQEAgLTEyNCw2ICsxMjQsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIGNv
bGxlY3REZXNjZW5kYW50U2VsZWN0b3JJZGVudGlmaWVySGFzaGVzKGNvbnN0IENTU1NlbGVjdG9y
KgogICAgICAgICBpZiAoc2VsZWN0b3ItPnRhZ1FOYW1lKCkubG9jYWxOYW1lKCkgIT0gc3RhckF0
b20pCiAgICAgICAgICAgICAoKmhhc2grKykgPSBzZWxlY3Rvci0+dGFnUU5hbWUoKS5sb2NhbE5h
bWUoKS5pbXBsKCktPmV4aXN0aW5nSGFzaCgpICogVGFnTmFtZVNhbHQ7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ1NTU2VsZWN0b3I6Ok1peGVkQ2FzZVRhZzoKKyAgICAgICAgLy8gV2UgYXJl
IG5vdCBjb2xsZWN0aW5nIG1peGVkIGNhc2UgdGFnIG5hbWVzLCBhcyB3ZSBkb24ndCBrbm93IHdo
aWNoIG9uZSBpcyBhY3R1YWxseSBnb2luZyB0byBtYXRjaCB0aGUgZWxlbWVudC4KKyAgICAgICAg
Ly8gV2UgY291bGQgdXNlIHRoZSBsb3dlciBjYXNlIHRhZyBuYW1lLCBpZiB3ZSBwdXNoZWQgdGhl
IGxvd2VyIGNhc2UgdGFnIG5hbWUgaW5zdGVhZCBvZiB0aGUgY2Fub25pY2FsIGZvcm0sIGJ1dAor
ICAgICAgICAvLyB0aGF0IHdpbGwgcmVxdWlyZSBjaGVja2luZyB0aGUgdGFnIG5hbWVzIGZvciBs
b3dlciBjYXNlIGFuZCBtaWdodCBwb3NzaWJseSB0YWtlIG1vcmUgdGltZSB0aGFuIHRoaXMgb3B0
aW1pemF0aW9uIGlzIHNhdmluZy4KKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDk1
NmI5ODQuLjM5OWFjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTY5
Niw2ICs2OTYsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNv
bnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0LCBSdWxlUgogICAgIGlmIChtX3NlbGVjdG9y
Q2hlY2tlci5tYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyhtX2VsZW1lbnQpKQogICAgICAgICBjb2xs
ZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPmZvY3VzUHNldWRv
Q2xhc3NSdWxlcygpLCBtYXRjaFJlcXVlc3QsIHJ1bGVSYW5nZSk7CiAgICAgY29sbGVjdE1hdGNo
aW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVxdWVzdC5ydWxlU2V0LT50YWdSdWxlcyhtX2VsZW1lbnQt
PmxvY2FsTmFtZSgpLmltcGwoKSksIG1hdGNoUmVxdWVzdCwgcnVsZVJhbmdlKTsKKyAgICBjb2xs
ZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPm1peGVkQ2FzZVRh
Z1J1bGVzKG1fZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBydWxl
UmFuZ2UpOwogICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVs
ZVNldC0+dW5pdmVyc2FsUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2UpOwogfQogCkBA
IC0yMjg5LDYgKzIyOTAsOSBAQCBpbmxpbmUgYm9vbCBTdHlsZVJlc29sdmVyOjpydWxlTWF0Y2hl
cyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIGNvbnN0IENvbnRhaW5lcgogICAgICAgICB9CiAg
ICAgICAgIGlmIChydWxlRGF0YS5zZWxlY3RvcigpLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpU
YWcgJiYgIVNlbGVjdG9yQ2hlY2tlcjo6dGFnTWF0Y2hlcyhtX2VsZW1lbnQsIHJ1bGVEYXRhLnNl
bGVjdG9yKCktPnRhZ1FOYW1lKCkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAocnVsZURhdGEuc2VsZWN0b3IoKS0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6TWl4ZWRD
YXNlVGFnIAorICAgICAgICAgICAgJiYgIVNlbGVjdG9yQ2hlY2tlcjo6bWl4ZWRDYXNlVGFnTWF0
Y2hlcyhtX2VsZW1lbnQsIHJ1bGVEYXRhLnNlbGVjdG9yKCktPm1peGVkQ2FzZUxvd2VyVGFnUU5h
bWUoKSwgcnVsZURhdGEuc2VsZWN0b3IoKS0+bWl4ZWRDYXNlUGFyc2VkVGFnTmFtZSgpKSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCFTZWxlY3RvckNoZWNrZXI6OmZh
c3RDaGVja1JpZ2h0bW9zdEF0dHJpYnV0ZVNlbGVjdG9yKG1fZWxlbWVudCwgcnVsZURhdGEuc2Vs
ZWN0b3IoKSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBtX3Nl
bGVjdG9yQ2hlY2tlci5mYXN0Q2hlY2socnVsZURhdGEuc2VsZWN0b3IoKSwgbV9lbGVtZW50KTsK
QEAgLTI2MTgsNiArMjYyMiw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hQYWdlUnVsZXMo
TWF0Y2hSZXN1bHQmIHJlc3VsdCwgUnVsZVNldCogcnVsZXMsIGJvb2wgaXNMCiBzdGF0aWMgYm9v
bCBjaGVja1BhZ2VTZWxlY3RvckNvbXBvbmVudHMoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9y
LCBib29sIGlzTGVmdFBhZ2UsIGJvb2wgaXNGaXJzdFBhZ2UsIGNvbnN0IFN0cmluZyYgcGFnZU5h
bWUpCiB7CiAgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogY29tcG9uZW50ID0gc2VsZWN0b3I7
IGNvbXBvbmVudDsgY29tcG9uZW50ID0gY29tcG9uZW50LT50YWdIaXN0b3J5KCkpIHsKKyAgICAg
ICAgQVNTRVJUKGNvbXBvbmVudC0+bV9tYXRjaCAhPSBDU1NTZWxlY3Rvcjo6TWl4ZWRDYXNlVGFn
KTsKICAgICAgICAgaWYgKGNvbXBvbmVudC0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6VGFnKSB7
CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IGNvbXBvbmVudC0+
dGFnUU5hbWUoKS5sb2NhbE5hbWUoKTsKICAgICAgICAgICAgIGlmIChsb2NhbE5hbWUgIT0gc3Rh
ckF0b20gJiYgbG9jYWxOYW1lICE9IHBhZ2VOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNDA0NDcxNC4uMmNhYjE2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
Y3BwCkBAIC0xMjEsNiArMTIxLDcgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVTdWJTZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiB7CiAgICAgc3dpdGNoIChzZWxlY3Rvci0+bV9t
YXRjaCkgewogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlRhZzoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpNaXhlZENhc2VUYWc6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6CiAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6Q2xhc3M6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6Cg==
</data>
<flag name="review"
          id="204377"
          type_id="1"
          status="-"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="204378"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>