<?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>34231</bug_id>
          
          <creation_ts>2010-01-27 16:10:27 -0800</creation_ts>
          <short_desc>XPathResult should keep its node set&apos;s JS wrappers alive</short_desc>
          <delta_ts>2012-08-23 17:18:44 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn</cc>
    
    <cc>ggaren</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185263</commentid>
    <comment_count>0</comment_count>
      <attachid>47571</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-27 16:10:27 -0800</bug_when>
    <thetext>Created attachment 47571
test case

Test attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187953</commentid>
    <comment_count>1</comment_count>
      <attachid>48173</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-02-04 15:10:12 -0800</bug_when>
    <thetext>Created attachment 48173
test case 2

Here&apos;s another test case with event listeners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375402</commentid>
    <comment_count>2</comment_count>
      <attachid>87341</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-29 09:07:41 -0700</bug_when>
    <thetext>Created attachment 87341
Proposed fix: Mark the node in the XPathResult nodeset for snapshot types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375455</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-29 10:02:08 -0700</bug_when>
    <thetext>Attachment 87341 did not build on win:
Build output: http://queues.webkit.org/results/8283360</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376972</commentid>
    <comment_count>4</comment_count>
      <attachid>87673</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-30 23:56:59 -0700</bug_when>
    <thetext>Created attachment 87673
Rebased proposed fix: Mark the node in the XPathResult nodeset for snapshot types 

The previous patch did not apply properly on most EWS. Rebased the patch to get proper coverage on all our build system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376974</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-31 00:15:07 -0700</bug_when>
    <thetext>Attachment 87673 did not build on win:
Build output: http://queues.webkit.org/results/8314151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378331</commentid>
    <comment_count>6</comment_count>
      <attachid>87964</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-01 22:03:59 -0700</bug_when>
    <thetext>Created attachment 87964
Re-Rebased proposed fix: Mark the node in the XPathResult nodeset for snapshot types

Reworked the windows part, let&apos;s hope it works this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378349</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-01 23:02:54 -0700</bug_when>
    <thetext>Attachment 87964 did not build on win:
Build output: http://queues.webkit.org/results/8319376</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378472</commentid>
    <comment_count>8</comment_count>
      <attachid>87964</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-02 21:50:52 -0700</bug_when>
    <thetext>Comment on attachment 87964
Re-Rebased proposed fix: Mark the node in the XPathResult nodeset for snapshot types

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

R- because this breaks the build, and also I don&apos;t think that it&apos;s worth making the fix for snapshot results only. But looks mostly good!

&gt; LayoutTests/ChangeLog:12
&gt; +        Test that an event listener registered on an XPATH result snapshots&apos; node does
&gt; +        not crash. This case was already fixed prior to this change. However it is better
&gt; +        to keep it as a regression test.

Geoff&apos;s test crashes with an assertion in debug builds of ToT. I think that this hasn&apos;t changed since it was attached.

&gt; Source/WebCore/ChangeLog:15
&gt; +        * Android.jscbindings.mk:
&gt; +        Added the new file to our build systems.

ChangeLog doesn&apos;t mention most changed project files.

&gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:63100
&gt; +						ExcludedFromBuild=&quot;true&quot;

Since this file is excluded from build, it should be added to JSBindingsAllInOne.cpp. This is why the build failed.

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:2
&gt; + * Copyright (C) 2010 Julien Chaffraix &lt;jchaffraix@webkit.org&gt;

2011

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:3
&gt; + * All right reserved.

Why did you split the copyright line in two?

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:43
&gt; +    // Only mark the snapshots&apos; node.

I don&apos;t understand what this comment is saying.

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:44
&gt; +    if (impl()-&gt;resultType() == XPathResult::UNORDERED_NODE_SNAPSHOT_TYPE || impl()-&gt;resultType() == XPathResult::ORDERED_NODE_SNAPSHOT_TYPE) {

What about other types based on NodeSet? There are two iterator types, and two single-node types, and it seems that they are affected, too.

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:47
&gt; +        ExceptionCode ignoredException = 0;
&gt; +        unsigned long snapshotLength = impl()-&gt;snapshotLength(ignoredException);
&gt; +        ASSERT_UNUSED(ignoredException, !ignoredException);

I would suggest adding necessary functions to XPathResult to avoid the runtime cost of doing the checks repeatedly, and also to avoid the ugly code that ignores exceptions.

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:54
&gt; +    // FIXME: We need to mark the result of ANY_UNORDERED_NODE_TYPE and FIRST_ORDERED_NODE_TYPE.

Ah yes. Why not do that right now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382228</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-08 07:50:29 -0700</bug_when>
    <thetext>&gt; Geoff&apos;s test crashes with an assertion in debug builds of ToT. I think that this hasn&apos;t changed since it was attached.

I haven&apos;t seen that on ToT. I am using a Debug build of Qt.

&gt; &gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:63100
&gt; &gt; +						ExcludedFromBuild=&quot;true&quot;
&gt; 
&gt; Since this file is excluded from build, it should be added to JSBindingsAllInOne.cpp. This is why the build failed.

Ah, thanks! That explains the build failure.

&gt; &gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:3
&gt; &gt; + * All right reserved.
&gt; 
&gt; Why did you split the copyright line in two?

Because it inelegantly extended on the line past the rest of the license. I double checked and the &quot;All right reserved.&quot; is optional so I just removed it.

&gt; &gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:44
&gt; &gt; +    if (impl()-&gt;resultType() == XPathResult::UNORDERED_NODE_SNAPSHOT_TYPE || impl()-&gt;resultType() == XPathResult::ORDERED_NODE_SNAPSHOT_TYPE) {
&gt; 
&gt; What about other types based on NodeSet? There are two iterator types, and two single-node types, and it seems that they are affected, too.

This is mostly true. The iterators are not affected as any change in the DOM would invalidate them. Thus there is no way for us to reach a node removed from the DOM using an iterator.

&gt; I would suggest adding necessary functions to XPathResult to avoid the runtime cost of doing the checks repeatedly, and also to avoid the ugly code that ignores exceptions.

Fine enough. I did not want to expose more of XPathResult but I am not too set on that.

&gt; &gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:54
&gt; &gt; +    // FIXME: We need to mark the result of ANY_UNORDERED_NODE_TYPE and FIRST_ORDERED_NODE_TYPE.
&gt; 
&gt; Ah yes. Why not do that right now?

I wanted to keep the change small but it is not too hard to add that too.

The other comments will be taken of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382239</commentid>
    <comment_count>10</comment_count>
      <attachid>88825</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-08 08:17:19 -0700</bug_when>
    <thetext>Created attachment 88825
Mark XPathResult nodeset JS wrapper - taken Alexey&apos;s comments into account</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382264</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-08 09:01:14 -0700</bug_when>
    <thetext>&gt; The iterators are not affected as any change in the DOM would invalidate them. Thus there is no way for us to reach a node removed from the DOM using an iterator.

I&apos;m not quite convinced yet. What if XPath results are in a frameless document that becomes unreferenced? E.g.

var doc = (new DOMParser).parse(...);
doc.getElementById(...).foo = &quot;bar&quot;;
var result = doc.evaluate(...);
doc = 0;
gc();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382785</commentid>
    <comment_count>12</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-09 12:53:11 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; The iterators are not affected as any change in the DOM would invalidate them. Thus there is no way for us to reach a node removed from the DOM using an iterator.
&gt; 
&gt; I&apos;m not quite convinced yet. What if XPath results are in a frameless document that becomes unreferenced? E.g.

Indeed, I overlooked frameless document. I will update the patch with a test for that to cover that iterators are fixed too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382812</commentid>
    <comment_count>13</comment_count>
      <attachid>88936</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-09 17:11:46 -0700</bug_when>
    <thetext>Created attachment 88936
Same as previously with testing for the iterator type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382900</commentid>
    <comment_count>14</comment_count>
      <attachid>88936</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-10 10:16:33 -0700</bug_when>
    <thetext>Comment on attachment 88936
Same as previously with testing for the iterator type

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

r=me. You may need to land this manually, since commit queue usually fails on changes to vcproj files. But we&apos;ll see.

&gt; LayoutTests/ChangeLog:12
&gt; +        Test that an event listener registered on an XPATH result snapshots&apos; node does
&gt; +        not crash. This case was already fixed prior to this change. However it is better
&gt; +        to keep it as a regression test.

Since I&apos;m still seeing this test crashing with an assertion test, I&apos;m not a fan of this comment.

&gt; LayoutTests/ChangeLog:16
&gt; +        Test that an XPATH snapshot result keeps its node wrapper alive.

XPath.

&gt; LayoutTests/ChangeLog:20
&gt; +        Test that an XPATH iterator result keeps its node wrapper alive.

XPath.

&gt; LayoutTests/ChangeLog:24
&gt; +        Test that other XPATH result that holds nodes keeps their wrapper alive.

XPath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382901</commentid>
    <comment_count>15</comment_count>
      <attachid>88936</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-10 10:18:38 -0700</bug_when>
    <thetext>Comment on attachment 88936
Same as previously with testing for the iterator type

Rejecting attachment 88936 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
ct.pbxproj
Hunk #2 succeeded at 9701 (offset 1 line).
Hunk #3 succeeded at 18169 (offset 3 lines).
Hunk #4 succeeded at 24767 (offset 3 lines).
patching file Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
patching file Source/WebCore/bindings/js/JSXPathResultCustom.cpp
patching file Source/WebCore/xml/XPathResult.h
patching file Source/WebCore/xml/XPathResult.idl

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Alexey Proskuryakov&apos;, ...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8377665</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395837</commentid>
    <comment_count>16</comment_count>
      <attachid>91808</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-30 16:33:07 -0700</bug_when>
    <thetext>Created attachment 91808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395838</commentid>
    <comment_count>17</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-30 16:36:12 -0700</bug_when>
    <thetext>The patch is updated after JSC&apos;s GC changes, Geoffrey could you check that this is the right way to mark the nodes now? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395923</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-01 09:48:09 -0700</bug_when>
    <thetext>Oliver understands the ways of the new marking as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398328</commentid>
    <comment_count>19</comment_count>
      <attachid>91808</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-04 15:45:13 -0700</bug_when>
    <thetext>Comment on attachment 91808
Patch

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

The tests here are great, and I think this patch would work as-is, but I think it&apos;s worth it to implement the optimization I suggested above.

&gt; Source/WebCore/bindings/js/JSXPathResultCustom.cpp:49
&gt; +    const XPath::Value&amp; xpathValue = impl()-&gt;value();
&gt; +    if (xpathValue.isNodeSet()) {
&gt; +        const XPath::NodeSet&amp; nodesToMark = xpathValue.toNodeSet();
&gt; +        for (size_t i = 0; i &lt; nodesToMark.size(); ++i) {
&gt; +            Node* node = nodesToMark[i];
&gt; +            visitor.addOpaqueRoot(root(node));
&gt; +        }

I think you can make this more efficient.

All nodes in an XPathResult are in the same document, which is XPathResult::m_document, and iteration is only allowed so long as the document has not changed. Therefore, you can just do this:

visitor.addOpaqueRoot(impl()-&gt;document());

and this:

class XPathResult {
...
    Document* document() { return m_document.get(); }
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399518</commentid>
    <comment_count>20</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-06 08:03:54 -0700</bug_when>
    <thetext>&gt; The tests here are great, and I think this patch would work as-is, but I think it&apos;s worth it to implement the optimization I suggested above.

Thanks for the review Geoffrey.

&gt; All nodes in an XPathResult are in the same document, which is XPathResult::m_document, and iteration is only allowed so long as the document has not changed.

You are right about the iteration. However there are other types of XPathResult - namely snapshot and node type - that allow to access the underlying Nodes even if the DOM changed.

&gt; Therefore, you can just do this:

I tried your solution and unfortunately it will not do. We can modify the DOM and still access the results, thus we need to mark each Nodes individually as they may have been removed from the DOM but still need to be kept alive. Let me know what you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399927</commentid>
    <comment_count>21</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-06 17:10:23 -0700</bug_when>
    <thetext>&gt; &gt; Therefore, you can just do this:
&gt; 
&gt; I tried your solution and unfortunately it will not do. We can modify the DOM and still access the results, thus we need to mark each Nodes individually as they may have been removed from the DOM but still need to be kept alive. Let me know what you think?

Ah, I see my ignorance of XPath is showing through :(. Thanks for looking into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399928</commentid>
    <comment_count>22</comment_count>
      <attachid>91808</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-06 17:11:01 -0700</bug_when>
    <thetext>Comment on attachment 91808
Patch

Changing my r- to r+ because the optimization I suggested wouldn&apos;t work for all XPath result types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401982</commentid>
    <comment_count>23</comment_count>
      <attachid>91808</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-11 08:24:44 -0700</bug_when>
    <thetext>Comment on attachment 91808
Patch

Clearing flags on attachment: 91808

Committed r86234: &lt;http://trac.webkit.org/changeset/86234&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401983</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-11 08:24:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47571</attachid>
            <date>2010-01-27 16:10:27 -0800</date>
            <delta_ts>2010-01-27 16:10:27 -0800</delta_ts>
            <desc>test case</desc>
            <filename>xpath-no-wrapper.html</filename>
            <type>text/html</type>
            <size>617</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHkgb25sb2FkID0gInRlc3QoKSI+CjxkaXY+PC9kaXY+CjxzY3JpcHQ+CmZ1bmN0aW9uIGdj
KCkKewogICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCiAgICAgICAgcmV0dXJuIEdDQ29udHJv
bGxlci5jb2xsZWN0KCk7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8v
ID4gZm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0
aW9ucyBiZWZvcmUgYSBjb2xsZWN0KQogICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiYWJjIik7
CiAgICB9Cn0KCmZ1bmN0aW9uIHRlc3QoKQp7CiAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZXZh
bHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsLCBYUGF0aFJlc3Vs
dC5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKICAgIHJlc3VsdC5zbmFwc2hv
dEl0ZW0oMCkuZm9vID0gIlBBU1MiOwogICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyZXN1
bHQuc25hcHNob3RJdGVtKDApKTsKICAgIGdjKCk7CiAgICBhbGVydCgiU2hvdWxkIHNheSBQQVNT
OiAiICsgcmVzdWx0LnNuYXBzaG90SXRlbSgwKS5mb28pOwp9Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48173</attachid>
            <date>2010-02-04 15:10:12 -0800</date>
            <delta_ts>2010-02-04 15:10:12 -0800</delta_ts>
            <desc>test case 2</desc>
            <filename>correct-event-listener-invalidation.html</filename>
            <type>text/html</type>
            <size>1497</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">PHA+VGhpcyBwYWdlIHRlc3RzIGZvciBwcm9wZXIgaW52YWxpZGF0aW9uIG9mIGEgbm9kZSdzIGV2
ZW50IGxpc3RlbmVycy4gSWYgdGhlCnRlc3QgcGFzc2VzLCB5b3UnbGwgc2VlIGEgUEFTUyBtZXNz
YWdlIGJlbG93LjwvcD4KPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cgo8ZGl2IGlkPSJkaXYiPjwv
ZGl2PgoKPHNjcmlwdD4KZnVuY3Rpb24gJChpZCkKewogICAgcmV0dXJuIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGlkKTsKfQoKZnVuY3Rpb24gbG9nKHMpCnsKICAgICQoJ2NvbnNvbGUnKS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzICsgJ1xuJykpOwp9CgpmdW5jdGlvbiBh
bGxvY2F0ZSgpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMzAwMDsgKytpKQogICAgICAgIFN0
cmluZyhpKTsKfQoKKGZ1bmN0aW9uICgpIHsKICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAg
IAogICAgLy8gRmlsbCB0aGUgaGVhcCB3aXRoIGV2ZW50IGxpc3RlbmVycy4uLgogICAgdmFyIGEg
PSBbXQogICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyArK2kpCiAgICAgICAgYVthLmxlbmd0
aF0gPSBmdW5jdGlvbigpIHsgfTsKCiAgICAvLyAuLi5mb2xsb3dlZCBieSBhIERPTSBub2RlIHdy
YXBwZXIKICAgIHZhciBkaXYgPSAkKCJkaXYiKTsKICAgIAogICAgLy8gQWRkIHRoZSBsaXN0ZW5l
cnMgdG8gdGhlIERPTSBub2RlLgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytp
KQogICAgICAgIGRpdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFbaV0sIGZhbHNlKTsKCiAg
ICAvLyBFbGltaW5hdGUgSlMgcmVmZXJlbmNlcyB0byB0aGUgZGl2IGFuZCBpdHMgbGlzdGVuZXJz
LCBidXQga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgZGl2IGluIGFuIFhQYXRoIHF1ZXJ5LgogICAg
dmFyIHF1ZXJ5ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LCBudWxsLCBYUGF0aFJlc3VsdC5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBu
dWxsKTsKICAgIGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRpdik7CiAgICBkaXYgPSBudWxs
CiAgICBhID0gbnVsbDsKCiAgICAvLyBQb3RlbnRpYWxseSBvdmVyd3JpdGUgbGlzdGVuZXJzIHdp
dGggc3RyaW5ncywgYnV0IGRvbid0IG92ZXJ3cml0ZSBkaXYuCiAgICBhbGxvY2F0ZSgpOwogICAg
CiAgICAvLyBGaXJlIGxpc3RlbmVycyBhbmQgc2VlIGlmIHdlIGNyYXNoLgogICAgdmFyIGV2ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnQnKTsKICAgIGV2ZW50LmluaXRFdmVu
dCgnY2xpY2snLCB0cnVlLCB0cnVlKTsKICAgIHF1ZXJ5LnNuYXBzaG90SXRlbSgwKS5kaXNwYXRj
aEV2ZW50KGV2ZW50KTsKICAgIAogICAgbG9nKCJQQVNTOiBZb3UgZGlkbid0IGNyYXNoLiIpOwp9
KSgpOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87341</attachid>
            <date>2011-03-29 09:07:41 -0700</date>
            <delta_ts>2011-03-30 23:56:59 -0700</delta_ts>
            <desc>Proposed fix: Mark the node in the XPathResult nodeset for snapshot types</desc>
            <filename>bug34231-XPathResult-mark-1.diff</filename>
            <type>text/plain</type>
            <size>19632</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MDQ3MDllLi5lZTMzYmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMt
MjggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZXMgaW4gWFBhdGggcmVz
dWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEKKworICAgICAgICAqIGZh
c3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNy
YXNoLmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gZXZlbnQgbGlzdGVuZXIgcmVn
aXN0ZXJlZCBvbiBhbiBYUEFUSCByZXN1bHQgc25hcHNob3RzJyBub2RlIGRvZXMKKyAgICAgICAg
bm90IGNyYXNoLiBUaGlzIGNhc2Ugd2FzIGFscmVhZHkgZml4ZWQgcHJpb3IgdG8gdGhpcyBjaGFu
Z2UuIEhvd2V2ZXIgaXQgaXMgYmV0dGVyCisgICAgICAgIHRvIGtlZXAgaXQgYXMgYSByZWdyZXNz
aW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFy
ay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgv
eHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICBUZXN0IHRoYXQgYW4gWFBBVEggc25hcHNob3RzIGtlZXAgaXRzIG5vZGUgYWxpdmUuCisKIDIw
MTEtMDMtMjggIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggdGVzdCByZXN1bHRzIHRoYXQgd2VyZSBhY2NpZGVudGFsbHkgY29tbWl0dGVkIHdpdGggYSB3
cm9uZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZl
bnRsaXN0ZW5lci1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hw
YXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDY5NjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IGZvciBidWcgMzQyMzE6IE5vZGVzIGluIFhQYXRo
IHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUuCisKK1RoaXMg
cGFnZSB0ZXN0cyBmb3IgcHJvcGVyIGludmFsaWRhdGlvbiBvZiBhIG5vZGUncyBldmVudCBsaXN0
ZW5lcnMuIElmIHRoZSB0ZXN0IHBhc3NlcywgeW91J2xsIHNlZSBhIFBBU1MgbWVzc2FnZSBiZWxv
dy4KKworUEFTUzogWW91IGRpZG4ndCBjcmFzaC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjZTMzMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNy
YXNoLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImRpdiI+
PC9kaXY+Cis8cD4gVGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDIzMSI+MzQyMzE8L2E+OiBOb2RlcyBpbiBYUGF0aCByZXN1bHQg
c25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLjwvcD4KKzxwPlRoaXMgcGFn
ZSB0ZXN0cyBmb3IgcHJvcGVyIGludmFsaWRhdGlvbiBvZiBhIG5vZGUncyBldmVudCBsaXN0ZW5l
cnMuIElmIHRoZSB0ZXN0IHBhc3NlcywgeW91J2xsIHNlZSBhIFBBU1MgbWVzc2FnZSBiZWxvdy48
L3A+Cis8cHJlIGlkPSJjb25zb2xlIj5GQUlMRUQ6IFRlc3QgZGlkIG5vdCBydW4uPC9wcmU+Cis8
c2NyaXB0PgorZnVuY3Rpb24gJChpZCkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoaWQpOworfQorCitmdW5jdGlvbiBsb2cocykKK3sKKyAgICAkKCdjb25zb2xlJykuaW5u
ZXJIVE1MID0gcyArICdcbic7Cit9CisKK2Z1bmN0aW9uIGFsbG9jYXRlKCkgeworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMzAwMDsgKytpKQorICAgICAgICBTdHJpbmcoaSk7Cit9CisKKyhmdW5j
dGlvbiAoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgLy8gRmlsbCB0aGUgaGVh
cCB3aXRoIGV2ZW50IGxpc3RlbmVycy4uLgorICAgIHZhciBhID0gW10KKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDUwMDA7ICsraSkKKyAgICAgICAgYVthLmxlbmd0aF0gPSBmdW5jdGlvbigpIHsg
fTsKKworICAgIC8vIC4uLmZvbGxvd2VkIGJ5IGEgRE9NIG5vZGUgd3JhcHBlcgorICAgIHZhciBk
aXYgPSAkKCJkaXYiKTsKKworICAgIC8vIEFkZCB0aGUgbGlzdGVuZXJzIHRvIHRoZSBET00gbm9k
ZS4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgIGRpdi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFbaV0sIGZhbHNlKTsKKworICAgIC8vIEVsaW1pbmF0
ZSBKUyByZWZlcmVuY2VzIHRvIHRoZSBkaXYgYW5kIGl0cyBsaXN0ZW5lcnMsIGJ1dCBrZWVwIGEg
cmVmZXJlbmNlIHRvIHRoZSBkaXYgaW4gYW4gWFBhdGggcXVlcnkuCisgICAgdmFyIHF1ZXJ5ID0g
ZG9jdW1lbnQuZXZhbHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxs
LCBYUGF0aFJlc3VsdC5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKKyAgICBk
aXYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkaXYpOworICAgIGRpdiA9IG51bGwKKyAgICBhID0g
bnVsbDsKKworICAgIC8vIFBvdGVudGlhbGx5IG92ZXJ3cml0ZSBsaXN0ZW5lcnMgd2l0aCBzdHJp
bmdzLCBidXQgZG9uJ3Qgb3ZlcndyaXRlIGRpdi4KKyAgICBhbGxvY2F0ZSgpOworCisgICAgLy8g
RmlyZSBsaXN0ZW5lcnMgYW5kIHNlZSBpZiB3ZSBjcmFzaC4KKyAgICB2YXIgZXZlbnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudCcpOworICAgIGV2ZW50LmluaXRFdmVudCgnY2xp
Y2snLCB0cnVlLCB0cnVlKTsKKyAgICBxdWVyeS5zbmFwc2hvdEl0ZW0oMCkuZGlzcGF0Y2hFdmVu
dChldmVudCk7CisKKyAgICBsb2coIlBBU1M6IFlvdSBkaWRuJ3QgY3Jhc2guIik7Cit9KSgpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94
cGF0aC94cGF0aC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVz
ZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNzBh
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3Vs
dC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitU
ZXN0IGZvciBidWcgMzQyMzE6IE5vZGVzIGluIFhQYXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxk
IGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUuCitGb3IgdGhpcyB0ZXN0IHRvIFBBU1MgeW91IHNob3Vs
ZCBzZWUgMiBQQVNTIGJlbG93LgorCitQQVNTCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9k
ZXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4M2JhNWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91
bGQtbWFyay1pdHMtbm9kZXNldC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPjxoZWFkPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAg
dmFyIHR5cGVzID0gWyBYUGF0aFJlc3VsdC5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLAor
ICAgICAgICAgICAgICAgICAgICAgIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9U
WVBFIF07CisKKyAgICAgICAgZnVuY3Rpb24gZ2MoKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gR0NDb250cm9s
bGVyLmNvbGxlY3QoKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
aSsrKSB7IC8vID4gZm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5
SyBhbGxvY2F0aW9ucyBiZWZvcmUgYSBjb2xsZWN0KQorICAgICAgICAgICAgICAgIHZhciBzID0g
bmV3IFN0cmluZygiYWJjIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiB0ZXN0KHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBk
b2N1bWVudC5ldmFsdWF0ZSgiLy9kaXYiLCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIG51bGws
IHR5cGUsIG51bGwpOworICAgICAgICAgICAgcmVzdWx0LnNuYXBzaG90SXRlbSgwKS5mb28gPSAi
UEFTUyI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJlc3VsdC5zbmFw
c2hvdEl0ZW0oMCkpOworICAgICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocmVzdWx0LnNuYXBzaG90SXRl
bSgwKS5mb28pKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiYnIiKSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0cygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHdoaWxlICh0eXBlcy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0KHR5cGVzLnBvcCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0cygpIj4KKzxkaXY+PC9kaXY+
Cis8ZGl2PjwvZGl2PgorPGRpdj4gVGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIzMSI+MzQyMzE8L2E+OiBOb2RlcyBpbiBYUGF0
aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLjwvZGl2Pgor
PGRpdj4gRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91bGQgc2VlIDIgUEFTUyBiZWxvdy48
L2Rpdj48YnI+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT48L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvU291cmNlL1dl
YkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawppbmRleCA0ZmY4ODRjLi5hNWY0N2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKQEAgLTE3NSw2ICsxNzUsNyBAQCBMT0NB
TF9TUkNfRklMRVMgKz0gXAogCWJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCBcCiAJYmlu
ZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKKwliaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0
Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCBcCiAJ
YmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBcCiAJYmluZGluZ3MvanMvU2NyaXB0QXJy
YXkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3MjFiODFhLi5kNjM5YTkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzEgQEAKKzIwMTEtMDMtMjggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm9kZXMgaW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVy
cyBhbGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQyMzEKKworICAgICAgICBUaGUgY2hhbmdlIGFkZGVkIGEgY3VzdG9tIG1hcmsgZnVuY3Rpb24g
Zm9yIEpTQy4gVjggd2FzIGFscmVhZHkgcHJvcGVybHkKKyAgICAgICAgbWFya2luZyB0aGUgbm9k
ZXMgc28gbm8gY2hhbmdlIHdlcmUgZG9uZSBvbiB0aGUgVjggc2lkZS4KKworICAgICAgICBUZXN0
czogZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNl
dC5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFVzZUpTQy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICBBZGRlZCB0aGUgbmV3IGZpbGUgdG8gb3VyIGJ1aWxkIHN5c3RlbXMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU1hQYXRoUmVzdWx0OjptYXJrQ2hpbGRyZW4pOiBBZGRlZCBjb2Rl
IHRvIG1hcmsgdGhlCisgICAgICAgIFhQYXRoUmVzdWx0IHNuYXBzaG90J3Mgbm9kZXMuCisgICAg
ICAgICogeG1sL1hQYXRoUmVzdWx0LmlkbDogVG9sZCB0aGUgSURMIHBhcnNlciB0aGF0IHdlIG5v
dyBuZWVkCisgICAgICAgIGEgY3VzdG9tIG1hcmsgZnVuY3Rpb24uCisKIDIwMTEtMDMtMjggIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA4NTZkYjA2Li41Zjg1NDM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQpAQCAtODg5LDYgKzg4OSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5j
bWFrZQppbmRleCBmZTMzMWJmLi41MTI3MmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9V
c2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xNDAsNiAr
MTQwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
VXBsb2FkQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5j
cHAKKyAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0
aW9uLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCA5MjFlMDMwLi5jZDgxM2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODQ2
LDYgKzE4NDYsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20u
Y3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmlu
ZGV4IDQyNTFkNzMuLjY5ZWExNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zNDYsNiArMzQ2LDcgQEAg
djggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAorICAgICAgICBiaW5k
aW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1Nj
aGVkdWxlZEFjdGlvbi5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFt
ZURhdGEuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBmMTcwM2QzLi42YWM0N2ZlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNjMwODksNiArNjMwODksMTEwIEBACiAJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlhQYXRoUmVzdWx0Q3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNYUGF0aFJl
c3VsdEN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxU
b29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVs
ZWFzZV9MVENHfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiCiAJ
CQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2Q2NTUzMy4uMTE0MWMxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMzE1NCw2ICszMTU0LDcgQEAKIAkJQTEzNkEwMEQxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTM2QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCAqLzsgfTsKIAkJQTE3QzgxMjIwRjJBNUNG
NzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRN
TEVsZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJQTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8q
IEhUTUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9y
eS5oICovOyB9OworCQlBMUM3RkFBMjEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi87IH07
CiAJCUExRTExNTQ0MTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDMxMzAx
NUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgKi87IH07CiAJCUExRTExNTQ2
MTMwMTVDNEUwMDU0QUM4QyAvKiBQb2ludExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTExNTQ1MTMwMTVDNEUwMDU0QUM4QyAv
KiBQb2ludExpZ2h0U291cmNlLmNwcCAqLzsgfTsKIAkJQTFFMTE1NDgxMzAxNUM1RDAwNTRBQzhD
IC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUUxMTU0NzEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNl
LmNwcCAqLzsgfTsKQEAgLTk2NDUsNiArOTY0Niw3IEBACiAJCUExMzZBMDBCMTEzNERCRDIwMEND
OEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdDODEyMDBGMkE1Q0Y3MDA1REFB
RUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBK
U1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERpc3RhbnRMaWdodFNvdXJjZS5jcHA7
IHBhdGggPSBmaWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExRTExNTQ1MTMwMTVDNEUwMDU0QUM4QyAvKiBQb2ludExpZ2h0U291cmNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBvaW50TGlnaHRTb3Vy
Y2UuY3BwOyBwYXRoID0gZmlsdGVycy9Qb2ludExpZ2h0U291cmNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDcxMzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTcG90TGlnaHRT
b3VyY2UuY3BwOyBwYXRoID0gZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTgwNDAsNiArMTgwNDIsNyBAQAogCQlCQzRFREVGNzBDMDhG
NDE0MDA3RURENDkgLyogQ3VzdG9tICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1
c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVDQjIxMUM1RTg1QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZm
ZXJDdXN0b20uY3BwICovLAogCQkJCTg2MjQzRDAwMTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5
QnVmZmVyVmlld0hlbHBlci5oICovLAogCQkJCUJDMkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBK
U0F0dHJDdXN0b20uY3BwICovLApAQCAtMjUzODYsNiArMjUzODksNyBAQAogCQkJCTdFMzdFRjJF
MTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxvYWRlckNGLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTRGMTQ0MjI4MTMzOUZENjIwMEUwRDZGOCAvKiBET01Ob2RlSGlnaGxpZ2h0ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODRCNjI2ODUxMzMxMzhGOTAwOTVBNDg5IC8qIEZvbnRQbGF0
Zm9ybURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJE
IC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMWJlYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcApAQCAtMCwwICsx
LDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEp1bGllbiBDaGFmZnJhaXggPGpjaGFm
ZnJhaXhAd2Via2l0Lm9yZz4KKyAqIEFsbCByaWdodCByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1hQYXRoUmVzdWx0LmgiCisK
KyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJYUGF0aFJlc3VsdC5oIgorCit1
c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNYUGF0
aFJlc3VsdDo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEJhc2U6
Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOworCisgICAgLy8gT25seSBtYXJrIHRoZSBzbmFwc2hv
dHMnIG5vZGUuCisgICAgaWYgKGltcGwoKS0+cmVzdWx0VHlwZSgpID09IFhQYXRoUmVzdWx0OjpV
Tk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIHx8IGltcGwoKS0+cmVzdWx0VHlwZSgpID09IFhQ
YXRoUmVzdWx0OjpPUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSkgeworICAgICAgICBFeGNlcHRp
b25Db2RlIGlnbm9yZWRFeGNlcHRpb24gPSAwOworICAgICAgICB1bnNpZ25lZCBsb25nIHNuYXBz
aG90TGVuZ3RoID0gaW1wbCgpLT5zbmFwc2hvdExlbmd0aChpZ25vcmVkRXhjZXB0aW9uKTsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChpZ25vcmVkRXhjZXB0aW9uLCAhaWdub3JlZEV4Y2VwdGlvbik7
CisgICAgICAgIGZvciAodW5zaWduZWQgbG9uZyBpID0gMDsgaSA8IHNuYXBzaG90TGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPnNuYXBzaG90SXRlbShpLCBp
Z25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEFTU0VSVCghaWdub3JlZEV4Y2VwdGlvbik7
CisgICAgICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNrLCBub2RlLT5kb2N1bWVu
dCgpLCBub2RlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBt
YXJrIHRoZSByZXN1bHQgb2YgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUgYW5kIEZJUlNUX09SREVS
RURfTk9ERV9UWVBFLgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hQ
YXRoUmVzdWx0LmlkbAppbmRleCBlYmJmZjQyLi5iYjljNjRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFJlc3VsdC5pZGwKQEAgLTE5LDcgKzE5LDcgQEAKIAogbW9kdWxlIHhwYXRoIHsKIAotICAgIGlu
dGVyZmFjZSBbQ29uZGl0aW9uYWw9WFBBVEhdIFhQYXRoUmVzdWx0IHsKKyAgICBpbnRlcmZhY2Ug
W0NvbmRpdGlvbmFsPVhQQVRILCBDdXN0b21NYXJrRnVuY3Rpb25dIFhQYXRoUmVzdWx0IHsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQU5ZX1RZUEUgICAgICAgICAgICAgICAgICAgICAg
ID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTlVNQkVSX1RZUEUgICAgICAgICAg
ICAgICAgICAgID0gMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RSSU5HX1RZUEUg
ICAgICAgICAgICAgICAgICAgID0gMjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87673</attachid>
            <date>2011-03-30 23:56:59 -0700</date>
            <delta_ts>2011-04-01 22:03:59 -0700</delta_ts>
            <desc>Rebased proposed fix: Mark the node in the XPathResult nodeset for snapshot types </desc>
            <filename>bug34231-XPathResult-mark-2.diff</filename>
            <type>text/plain</type>
            <size>18308</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZDQ3NGYwLi5kZTdhMDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDMt
MzAgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZXMgaW4gWFBhdGggcmVz
dWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEKKworICAgICAgICAqIGZh
c3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNy
YXNoLmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gZXZlbnQgbGlzdGVuZXIgcmVn
aXN0ZXJlZCBvbiBhbiBYUEFUSCByZXN1bHQgc25hcHNob3RzJyBub2RlIGRvZXMKKyAgICAgICAg
bm90IGNyYXNoLiBUaGlzIGNhc2Ugd2FzIGFscmVhZHkgZml4ZWQgcHJpb3IgdG8gdGhpcyBjaGFu
Z2UuIEhvd2V2ZXIgaXQgaXMgYmV0dGVyCisgICAgICAgIHRvIGtlZXAgaXQgYXMgYSByZWdyZXNz
aW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFy
ay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgv
eHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICBUZXN0IHRoYXQgYW4gWFBBVEggc25hcHNob3RzIGtlZXAgaXRzIG5vZGUgYWxpdmUuCisKIDIw
MTEtMDMtMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGRpbmcg
ZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLmh0bWwgdG8gbWFjLXdrMiBTa2lwcGVk
IGxpc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2
ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94
cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA2OTY0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBmb3IgYnVnIDM0MjMxOiBOb2RlcyBpbiBYUGF0
aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLgorCitUaGlz
IHBhZ2UgdGVzdHMgZm9yIHByb3BlciBpbnZhbGlkYXRpb24gb2YgYSBub2RlJ3MgZXZlbnQgbGlz
dGVuZXJzLiBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSdsbCBzZWUgYSBQQVNTIG1lc3NhZ2UgYmVs
b3cuCisKK1BBU1M6IFlvdSBkaWRuJ3QgY3Jhc2guCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2guaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2UzMzM2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1j
cmFzaC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJkaXYi
PjwvZGl2PgorPHA+IFRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9hPjogTm9kZXMgaW4gWFBhdGggcmVzdWx0
IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS48L3A+Cis8cD5UaGlzIHBh
Z2UgdGVzdHMgZm9yIHByb3BlciBpbnZhbGlkYXRpb24gb2YgYSBub2RlJ3MgZXZlbnQgbGlzdGVu
ZXJzLiBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSdsbCBzZWUgYSBQQVNTIG1lc3NhZ2UgYmVsb3cu
PC9wPgorPHByZSBpZD0iY29uc29sZSI+RkFJTEVEOiBUZXN0IGRpZCBub3QgcnVuLjwvcHJlPgor
PHNjcmlwdD4KK2Z1bmN0aW9uICQoaWQpCit7CisgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKTsKK30KKworZnVuY3Rpb24gbG9nKHMpCit7CisgICAgJCgnY29uc29sZScpLmlu
bmVySFRNTCA9IHMgKyAnXG4nOworfQorCitmdW5jdGlvbiBhbGxvY2F0ZSgpIHsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDMwMDA7ICsraSkKKyAgICAgICAgU3RyaW5nKGkpOworfQorCisoZnVu
Y3Rpb24gKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIC8vIEZpbGwgdGhlIGhl
YXAgd2l0aCBldmVudCBsaXN0ZW5lcnMuLi4KKyAgICB2YXIgYSA9IFtdCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCA1MDAwOyArK2kpCisgICAgICAgIGFbYS5sZW5ndGhdID0gZnVuY3Rpb24oKSB7
IH07CisKKyAgICAvLyAuLi5mb2xsb3dlZCBieSBhIERPTSBub2RlIHdyYXBwZXIKKyAgICB2YXIg
ZGl2ID0gJCgiZGl2Iik7CisKKyAgICAvLyBBZGQgdGhlIGxpc3RlbmVycyB0byB0aGUgRE9NIG5v
ZGUuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytpKQorICAgICAgICBkaXYu
YWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhW2ldLCBmYWxzZSk7CisKKyAgICAvLyBFbGltaW5h
dGUgSlMgcmVmZXJlbmNlcyB0byB0aGUgZGl2IGFuZCBpdHMgbGlzdGVuZXJzLCBidXQga2VlcCBh
IHJlZmVyZW5jZSB0byB0aGUgZGl2IGluIGFuIFhQYXRoIHF1ZXJ5LgorICAgIHZhciBxdWVyeSA9
IGRvY3VtZW50LmV2YWx1YXRlKCIvL2RpdiIsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVs
bCwgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7CisgICAg
ZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICBkaXYgPSBudWxsCisgICAgYSA9
IG51bGw7CisKKyAgICAvLyBQb3RlbnRpYWxseSBvdmVyd3JpdGUgbGlzdGVuZXJzIHdpdGggc3Ry
aW5ncywgYnV0IGRvbid0IG92ZXJ3cml0ZSBkaXYuCisgICAgYWxsb2NhdGUoKTsKKworICAgIC8v
IEZpcmUgbGlzdGVuZXJzIGFuZCBzZWUgaWYgd2UgY3Jhc2guCisgICAgdmFyIGV2ZW50ID0gZG9j
dW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnQnKTsKKyAgICBldmVudC5pbml0RXZlbnQoJ2Ns
aWNrJywgdHJ1ZSwgdHJ1ZSk7CisgICAgcXVlcnkuc25hcHNob3RJdGVtKDApLmRpc3BhdGNoRXZl
bnQoZXZlbnQpOworCisgICAgbG9nKCJQQVNTOiBZb3UgZGlkbid0IGNyYXNoLiIpOworfSkoKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
eHBhdGgveHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rl
c2V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTcw
YWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1
bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAor
VGVzdCBmb3IgYnVnIDM0MjMxOiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3Vs
ZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLgorRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91
bGQgc2VlIDIgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5v
ZGVzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODNiYTVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtc2hv
dWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRtbD48aGVhZD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAg
IHZhciB0eXBlcyA9IFsgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwK
KyAgICAgICAgICAgICAgICAgICAgICBYUGF0aFJlc3VsdC5PUkRFUkVEX05PREVfU05BUFNIT1Rf
VFlQRSBdOworCisgICAgICAgIGZ1bmN0aW9uIGdjKCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEdDQ29udHJv
bGxlci5jb2xsZWN0KCk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJvdXQg
OUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKKyAgICAgICAgICAgICAgICB2YXIgcyA9
IG5ldyBTdHJpbmcoImFiYyIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gdGVzdCh0eXBlKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0g
ZG9jdW1lbnQuZXZhbHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxs
LCB0eXBlLCBudWxsKTsKKyAgICAgICAgICAgIHJlc3VsdC5zbmFwc2hvdEl0ZW0oMCkuZm9vID0g
IlBBU1MiOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyZXN1bHQuc25h
cHNob3RJdGVtKDApKTsKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAgICAgICB2YXIgY29uc29s
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgICAgICAgICBjb25z
b2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJlc3VsdC5zbmFwc2hvdEl0
ZW0oMCkuZm9vKSk7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdHMo
KQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAodHlwZXMubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgdGVzdCh0eXBlcy5wb3AoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdHMoKSI+Cis8ZGl2PjwvZGl2
PgorPGRpdj48L2Rpdj4KKzxkaXY+IFRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9hPjogTm9kZXMgaW4gWFBh
dGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS48L2Rpdj4K
KzxkaXY+IEZvciB0aGlzIHRlc3QgdG8gUEFTUyB5b3Ugc2hvdWxkIHNlZSAyIFBBU1MgYmVsb3cu
PC9kaXY+PGJyPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+PC9odG1sPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggNWU1ZTMwZi4uOThkYTYzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC0xNzUsNiArMTc1LDcgQEAgTE9D
QUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCWJp
bmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCisJYmluZGluZ3MvanMvSlNYUGF0aFJlc3Vs
dEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgXAog
CWJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAgXAogCWJpbmRpbmdzL2pzL1NjcmlwdEFy
cmF5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjJiMTUzNS4uY2YzNDM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDExLTAzLTMwICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vZGVzIGluIFhQYXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAgSlMgd3JhcHBl
cnMgYWxpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0MjMxCisKKyAgICAgICAgVGhlIGNoYW5nZSBhZGRlZCBhIGN1c3RvbSBtYXJrIGZ1bmN0aW9u
IGZvciBKU0MuIFY4IHdhcyBhbHJlYWR5IHByb3Blcmx5CisgICAgICAgIG1hcmtpbmcgdGhlIG5v
ZGVzIHNvIG5vIGNoYW5nZSB3ZXJlIGRvbmUgb24gdGhlIFY4IHNpZGUuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2guaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVz
ZXQuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgQWRk
ZWQgdGhlIG5ldyBmaWxlIHRvIG91ciBidWlsZCBzeXN0ZW1zLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNYUGF0aFJlc3VsdDo6bWFya0NoaWxkcmVuKTogQWRkZWQgY29kZSB0byBtYXJrIHRoZQorICAg
ICAgICBYUGF0aFJlc3VsdCBzbmFwc2hvdCdzIG5vZGVzLgorICAgICAgICAqIHhtbC9YUGF0aFJl
c3VsdC5pZGw6IFRvbGQgdGhlIElETCBwYXJzZXIgdGhhdCB3ZSBub3cgbmVlZAorICAgICAgICBh
IGN1c3RvbSBtYXJrIGZ1bmN0aW9uLgorCiAyMDExLTAzLTMwICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGNvcnJlY3Rpb24g
YWZ0ZXIgcjgyNDk2LiAoUGFydCAzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlZWRiYzlhLi5j
NzQwY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtODg5LDYgKzg4OSw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9h
ZEN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRD
dXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JD
dXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFt
ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1VzZUpTQy5jbWFrZQppbmRleCBmNmQ5YzkwLi5iZWFmNDc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNt
YWtlCkBAIC0xNDAsNiArMTQwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFBy
b2Nlc3NvckN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCiAgICAgYmluZGluZ3Mv
anMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFj
dGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyOTBiOTNhLi41ZjRmNmYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0xODQ3LDYgKzE4NDcsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
V29ya2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RVcGxvYWRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29y
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IDJhYzkxN2EuLmUwNGNmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0z
NDYsNiArMzQ2LDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAg
XAorICAgICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBcCiAgICAgICAg
IGJpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgXAogICAgICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2Fj
aGVkRnJhbWVEYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDNkY2I4YTAuLjMzMDc4M2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02MzE0NSw2ICs2MzE0NSw1OCBAQAogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIgorCQkJCQk+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4K
KwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDQ1ZWE2NjQuLmE0YWUxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxNTcsNiArMzE1Nyw3IEBACiAJ
CUExMzZBMDBEMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRU
aHJvdHRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlLmggKi87IH07CiAJCUExN0M4MTIyMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVu
dEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi87
IH07CiAJCUExN0M4MTIzMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExN0M4MTIxMEYy
QTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLzsgfTsKKwkJQTFDN0ZBQTIx
MzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJE
IC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovOyB9OwogCQlBMUUxMTU0NDEzMDE1QzNEMDA1
NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50
TGlnaHRTb3VyY2UuY3BwICovOyB9OwogCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyogUG9p
bnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMUUxMTU0NTEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAg
Ki87IH07CiAJCUExRTExNTQ4MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDcx
MzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgKi87IH07CkBAIC05NjYxLDYg
Kzk2NjIsNyBAQAogCQlBMTM2QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTE3QzgxMjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9y
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRWxlbWVudEZh
Y3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdDODEyMTBGMkE1Q0Y3
MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoUmVzdWx0Q3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDMxMzAxNUMzRDAwNTRB
QzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBEaXN0YW50TGlnaHRTb3VyY2UuY3BwOyBwYXRoID0gZmlsdGVycy9EaXN0YW50
TGlnaHRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0NTEz
MDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBQb2ludExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMv
UG9pbnRMaWdodFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTEx
NTQ3MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3BvdExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRl
cnMvU3BvdExpZ2h0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
MDc3LDYgKzE4MDc5LDcgQEAKIAkJQkM0RURFRjcwQzA4RjQxNDAwN0VERDQ5IC8qIEN1c3RvbSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTFDN0ZBQTEx
MzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovLAogCQkJCUJDMjc1
Q0IyMTFDNUU4NUMwMEM5MjA2QyAvKiBKU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk4
NjI0M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCAqLywK
IAkJCQlCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKQEAg
LTI1NDM4LDYgKzI1NDQxLDcgQEAKIAkJCQlGMzQ3NDJFMDEzNDM2MzFGMDA1MzFCQzIgLyogV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ3NDJFNDEzNDM2MzND
MDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUYzNDc0MkU4MTM0MzYzNTAwMDUzMUJDMiAvKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBMUM3RkFBMjEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJl
c3VsdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMWMxYmViMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJraXQu
b3JnPgorICogQWxsIHJpZ2h0IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTWFBhdGhSZXN1bHQuaCIKKworI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgorI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU1hQYXRoUmVzdWx0OjptYXJr
Q2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVu
KG1hcmtTdGFjayk7CisKKyAgICAvLyBPbmx5IG1hcmsgdGhlIHNuYXBzaG90cycgbm9kZS4KKyAg
ICBpZiAoaW1wbCgpLT5yZXN1bHRUeXBlKCkgPT0gWFBhdGhSZXN1bHQ6OlVOT1JERVJFRF9OT0RF
X1NOQVBTSE9UX1RZUEUgfHwgaW1wbCgpLT5yZXN1bHRUeXBlKCkgPT0gWFBhdGhSZXN1bHQ6Ok9S
REVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKSB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgaWdub3Jl
ZEV4Y2VwdGlvbiA9IDA7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgc25hcHNob3RMZW5ndGggPSBp
bXBsKCktPnNuYXBzaG90TGVuZ3RoKGlnbm9yZWRFeGNlcHRpb24pOworICAgICAgICBBU1NFUlRf
VU5VU0VEKGlnbm9yZWRFeGNlcHRpb24sICFpZ25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBsb25nIGkgPSAwOyBpIDwgc25hcHNob3RMZW5ndGg7ICsraSkgeworICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IGltcGwoKS0+c25hcHNob3RJdGVtKGksIGlnbm9yZWRFeGNlcHRp
b24pOworICAgICAgICAgICAgQVNTRVJUKCFpZ25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgICAg
IG1hcmtET01Ob2RlV3JhcHBlcihtYXJrU3RhY2ssIG5vZGUtPmRvY3VtZW50KCksIG5vZGUpOwor
ICAgICAgICB9CisgICAgfQorICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIG1hcmsgdGhlIHJlc3Vs
dCBvZiBBTllfVU5PUkRFUkVEX05PREVfVFlQRSBhbmQgRklSU1RfT1JERVJFRF9OT0RFX1RZUEUu
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YUGF0aFJlc3VsdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRs
CmluZGV4IGViYmZmNDIuLmJiOWM2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFJlc3VsdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmlkbApA
QCAtMTksNyArMTksNyBAQAogCiBtb2R1bGUgeHBhdGggewogCi0gICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD1YUEFUSF0gWFBhdGhSZXN1bHQgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
WFBBVEgsIEN1c3RvbU1hcmtGdW5jdGlvbl0gWFBhdGhSZXN1bHQgewogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBBTllfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgPSAwOwogICAgICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOVU1CRVJfVFlQRSAgICAgICAgICAgICAgICAgICAgPSAx
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVFJJTkdfVFlQRSAgICAgICAgICAgICAg
ICAgICAgPSAyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87964</attachid>
            <date>2011-04-01 22:03:59 -0700</date>
            <delta_ts>2011-04-08 08:17:19 -0700</delta_ts>
            <desc>Re-Rebased proposed fix: Mark the node in the XPathResult nodeset for snapshot types</desc>
            <filename>bug34231-XPathResult-mark-3.diff</filename>
            <type>text/plain</type>
            <size>18477</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2YWE3N2Y3Li40MWUxZjE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDQt
MDEgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm9kZXMgaW4gWFBhdGggcmVz
dWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEKKworICAgICAgICAqIGZh
c3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNy
YXNoLmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gZXZlbnQgbGlzdGVuZXIgcmVn
aXN0ZXJlZCBvbiBhbiBYUEFUSCByZXN1bHQgc25hcHNob3RzJyBub2RlIGRvZXMKKyAgICAgICAg
bm90IGNyYXNoLiBUaGlzIGNhc2Ugd2FzIGFscmVhZHkgZml4ZWQgcHJpb3IgdG8gdGhpcyBjaGFu
Z2UuIEhvd2V2ZXIgaXQgaXMgYmV0dGVyCisgICAgICAgIHRvIGtlZXAgaXQgYXMgYSByZWdyZXNz
aW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFy
ay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgv
eHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICBUZXN0IHRoYXQgYW4gWFBBVEggc25hcHNob3RzIGtlZXAgaXRzIG5vZGUgYWxpdmUuCisKIDIw
MTEtMDQtMDEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBTa2lwIHRoZSB0ZXN0IGxhbmRlZCBpbiByODI3NTgsIHNpbmNlIFdlYktpdFRlc3RSdW5u
ZXIgZG9lc24ndCBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgv
eHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA2OTY0NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVu
ZXItY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBmb3IgYnVnIDM0MjMx
OiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJz
IGFsaXZlLgorCitUaGlzIHBhZ2UgdGVzdHMgZm9yIHByb3BlciBpbnZhbGlkYXRpb24gb2YgYSBu
b2RlJ3MgZXZlbnQgbGlzdGVuZXJzLiBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSdsbCBzZWUgYSBQ
QVNTIG1lc3NhZ2UgYmVsb3cuCisKK1BBU1M6IFlvdSBkaWRuJ3QgY3Jhc2guCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVu
ZXItY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2UzMzM2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQt
ZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGJvZHk+
Cis8ZGl2IGlkPSJkaXYiPjwvZGl2PgorPHA+IFRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9hPjogTm9kZXMg
aW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS48
L3A+Cis8cD5UaGlzIHBhZ2UgdGVzdHMgZm9yIHByb3BlciBpbnZhbGlkYXRpb24gb2YgYSBub2Rl
J3MgZXZlbnQgbGlzdGVuZXJzLiBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSdsbCBzZWUgYSBQQVNT
IG1lc3NhZ2UgYmVsb3cuPC9wPgorPHByZSBpZD0iY29uc29sZSI+RkFJTEVEOiBUZXN0IGRpZCBu
b3QgcnVuLjwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0aW9uICQoaWQpCit7CisgICAgcmV0dXJuIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKK30KKworZnVuY3Rpb24gbG9nKHMpCit7CisgICAg
JCgnY29uc29sZScpLmlubmVySFRNTCA9IHMgKyAnXG4nOworfQorCitmdW5jdGlvbiBhbGxvY2F0
ZSgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMwMDA7ICsraSkKKyAgICAgICAgU3RyaW5n
KGkpOworfQorCisoZnVuY3Rpb24gKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAg
IC8vIEZpbGwgdGhlIGhlYXAgd2l0aCBldmVudCBsaXN0ZW5lcnMuLi4KKyAgICB2YXIgYSA9IFtd
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyArK2kpCisgICAgICAgIGFbYS5sZW5ndGhd
ID0gZnVuY3Rpb24oKSB7IH07CisKKyAgICAvLyAuLi5mb2xsb3dlZCBieSBhIERPTSBub2RlIHdy
YXBwZXIKKyAgICB2YXIgZGl2ID0gJCgiZGl2Iik7CisKKyAgICAvLyBBZGQgdGhlIGxpc3RlbmVy
cyB0byB0aGUgRE9NIG5vZGUuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytp
KQorICAgICAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhW2ldLCBmYWxzZSk7CisK
KyAgICAvLyBFbGltaW5hdGUgSlMgcmVmZXJlbmNlcyB0byB0aGUgZGl2IGFuZCBpdHMgbGlzdGVu
ZXJzLCBidXQga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgZGl2IGluIGFuIFhQYXRoIHF1ZXJ5Lgor
ICAgIHZhciBxdWVyeSA9IGRvY3VtZW50LmV2YWx1YXRlKCIvL2RpdiIsIGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQ
RSwgbnVsbCk7CisgICAgZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICBkaXYg
PSBudWxsCisgICAgYSA9IG51bGw7CisKKyAgICAvLyBQb3RlbnRpYWxseSBvdmVyd3JpdGUgbGlz
dGVuZXJzIHdpdGggc3RyaW5ncywgYnV0IGRvbid0IG92ZXJ3cml0ZSBkaXYuCisgICAgYWxsb2Nh
dGUoKTsKKworICAgIC8vIEZpcmUgbGlzdGVuZXJzIGFuZCBzZWUgaWYgd2UgY3Jhc2guCisgICAg
dmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnQnKTsKKyAgICBldmVu
dC5pbml0RXZlbnQoJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSk7CisgICAgcXVlcnkuc25hcHNob3RJdGVt
KDApLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgbG9nKCJQQVNTOiBZb3UgZGlkbid0IGNy
YXNoLiIpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LXNob3Vs
ZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4wYTcwYWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94
cGF0aC94cGF0aC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorVGVzdCBmb3IgYnVnIDM0MjMxOiBOb2RlcyBpbiBYUGF0aCByZXN1bHQg
c25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLgorRm9yIHRoaXMgdGVzdCB0
byBQQVNTIHlvdSBzaG91bGQgc2VlIDIgUEFTUyBiZWxvdy4KKworUEFTUworUEFTUworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1zaG91bGQtbWFyay1p
dHMtbm9kZXNldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtc2hv
dWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lODNiYTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94
cGF0aC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbApAQCAtMCwwICsxLDQ0IEBA
Cis8aHRtbD48aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgIHZhciB0eXBlcyA9IFsgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVf
U05BUFNIT1RfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICBYUGF0aFJlc3VsdC5PUkRFUkVE
X05PREVfU05BUFNIT1RfVFlQRSBdOworCisgICAgICAgIGZ1bmN0aW9uIGdjKCkKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAg
cmV0dXJuIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYg
cmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKKyAgICAgICAg
ICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdCh0eXBlKQorICAgICAgICB7CisgICAgICAgICAg
ICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LCBudWxsLCB0eXBlLCBudWxsKTsKKyAgICAgICAgICAgIHJlc3VsdC5zbmFwc2hv
dEl0ZW0oMCkuZm9vID0gIlBBU1MiOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChyZXN1bHQuc25hcHNob3RJdGVtKDApKTsKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAg
ICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7Cisg
ICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJl
c3VsdC5zbmFwc2hvdEl0ZW0oMCkuZm9vKSk7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gdGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAodHlwZXMubGVu
Z3RoKSB7CisgICAgICAgICAgICAgICAgdGVzdCh0eXBlcy5wb3AoKSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdHMo
KSI+Cis8ZGl2PjwvZGl2PgorPGRpdj48L2Rpdj4KKzxkaXY+IFRlc3QgZm9yIGJ1ZyA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9h
PjogTm9kZXMgaW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVy
cyBhbGl2ZS48L2Rpdj4KKzxkaXY+IEZvciB0aGlzIHRlc3QgdG8gUEFTUyB5b3Ugc2hvdWxkIHNl
ZSAyIFBBU1MgYmVsb3cuPC9kaXY+PGJyPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2Jv
ZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5n
cy5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggNWU1ZTMw
Zi4uOThkYTYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5n
cy5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC0xNzUs
NiArMTc1LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1
c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAli
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCisJYmluZGluZ3Mv
anMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3Nv
ckN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAgXAogCWJpbmRp
bmdzL2pzL1NjcmlwdEFycmF5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYxOGMyZS4uN2Q5MjQ1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDExLTA0LTAxICBKdWxpZW4gQ2hhZmZyYWl4
ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5vZGVzIGluIFhQYXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxk
IGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0MjMxCisKKyAgICAgICAgVGhlIGNoYW5nZSBhZGRlZCBhIGN1c3Rv
bSBtYXJrIGZ1bmN0aW9uIGZvciBKU0MuIFY4IHdhcyBhbHJlYWR5IHByb3Blcmx5CisgICAgICAg
IG1hcmtpbmcgdGhlIG5vZGVzIHNvIG5vIGNoYW5nZSB3ZXJlIGRvbmUgb24gdGhlIFY4IHNpZGUu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXIt
Y3Jhc2guaHRtbAorICAgICAgICAgICAgICAgZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtc2hvdWxk
LW1hcmstaXRzLW5vZGVzZXQuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5qc2NiaW5kaW5ncy5t
azoKKyAgICAgICAgQWRkZWQgdGhlIG5ldyBmaWxlIHRvIG91ciBidWlsZCBzeXN0ZW1zLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNYUGF0aFJlc3VsdDo6bWFya0NoaWxkcmVuKTogQWRkZWQgY29kZSB0
byBtYXJrIHRoZQorICAgICAgICBYUGF0aFJlc3VsdCBzbmFwc2hvdCdzIG5vZGVzLgorICAgICAg
ICAqIHhtbC9YUGF0aFJlc3VsdC5pZGw6IFRvbGQgdGhlIElETCBwYXJzZXIgdGhhdCB3ZSBub3cg
bmVlZAorICAgICAgICBhIGN1c3RvbSBtYXJrIGZ1bmN0aW9uLgorCiAyMDExLTA0LTAxICBNaWNo
YWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5OWQ2ODQxLi4zZmJmNmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtODkwLDYgKzg5MCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZUpT
Qy5jbWFrZQppbmRleCBmNmQ5YzkwLi5iZWFmNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xNDAs
NiArMTQwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0VXBsb2FkQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3Rv
bS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCiAgICAgYmluZGluZ3MvanMvUGFnZVNjcmlw
dERlYnVnU2VydmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCA2ZmQyNTFmLi5jOTc1YzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0x
ODQ3LDYgKzE4NDcsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0
b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IDJhYzkxN2EuLmUwNGNmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zNDYsNiArMzQ2LDcg
QEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAorICAgICAgICBi
aW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY2hlZHVs
ZWRBY3Rpb24uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRh
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGJhMDQ5OGYuLjE3YmQxM2YgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC02MzA5Myw2ICs2MzA5Myw1OCBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNYU0xUUHJv
Y2Vzc29yQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2
Yzk5ZWMxLi45NDMxNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTU4LDYgKzMxNTgsNyBAQAogCQlBMTM2QTAwRDExMzRE
QkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMzZBMDBCMTEzNERC
RDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oICovOyB9
OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExN0M4MTIwMEYy
QTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovOyB9OwogCQlBMTdDODEy
MzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEyMTBGMkE1Q0Y3MDA1REFBRUIg
LyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CisJCUExQzdGQUEyMTMzQTVEMzUwMEQ2NzMy
RCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExQzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVz
dWx0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3Rh
bnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNw
cCAqLzsgfTsKIAkJQTFFMTE1NDYxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1
NDUxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwICovOyB9OwogCQlBMUUx
MTU0ODEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTExNTQ3MTMwMTVDNUQwMDU0QUM4
QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwICovOyB9OwpAQCAtOTY2NCw2ICs5NjY1LDcgQEAKIAkJ
QTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudFRocm90dGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEx
N0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhU
TUxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1M
RWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFDN0ZBQTEx
MzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50
TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRGlz
dGFudExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDUxMzAxNUM0RTAwNTRBQzhD
IC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gUG9pbnRMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1BvaW50TGlnaHRTb3Vy
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0NzEzMDE1QzVEMDA1
NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFNwb3RMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL1Nwb3RMaWdodFNv
dXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODA4MSw2ICsxODA4Myw3
IEBACiAJCUJDNEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUExQzdGQUExMTMzQTVEMzUwMEQ2NzMy
RCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzI3NUNCMjExQzVFODVDMDBD
OTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgKi8sCiAJCQkJODYyNDNEMDAxMUJDMzFG
NzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggKi8sCiAJCQkJQkMyRUQ2QkIw
QzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAgKi8sCkBAIC0yNDYyOSw2ICsyNDYz
Miw3IEBACiAJCQkJMUE3NjJDNzUwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhFeHByZXNzaW9u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc3MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQ
YXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3OTBBMDc0RjI2MDA5
ODlGNUIgLyogSlNYUGF0aFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMUM3RkFBMjEz
M0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0VGRTFFQTBEQ0E1RjY0MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDRUZFMUU1MERDQTVGMzMwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNz
b3JDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDMwQTQ0RUZDNzAwRjk5MkUw
IC8qIEtleWJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmFlMjRiYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEp1bGllbiBDaGFmZnJhaXggPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KKyAqIEFsbCByaWdodCByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1hQYXRoUmVzdWx0LmgiCisKKyNpZiBF
TkFCTEUoWFBBVEgpCisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJYUGF0
aFJlc3VsdC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgSlNYUGF0aFJlc3VsdDo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNr
KQoreworICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOworCisgICAgLy8gT25seSBt
YXJrIHRoZSBzbmFwc2hvdHMnIG5vZGUuCisgICAgaWYgKGltcGwoKS0+cmVzdWx0VHlwZSgpID09
IFhQYXRoUmVzdWx0OjpVTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFIHx8IGltcGwoKS0+cmVz
dWx0VHlwZSgpID09IFhQYXRoUmVzdWx0OjpPUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSkgewor
ICAgICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZWRFeGNlcHRpb24gPSAwOworICAgICAgICB1bnNp
Z25lZCBsb25nIHNuYXBzaG90TGVuZ3RoID0gaW1wbCgpLT5zbmFwc2hvdExlbmd0aChpZ25vcmVk
RXhjZXB0aW9uKTsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChpZ25vcmVkRXhjZXB0aW9uLCAhaWdu
b3JlZEV4Y2VwdGlvbik7CisgICAgICAgIGZvciAodW5zaWduZWQgbG9uZyBpID0gMDsgaSA8IHNu
YXBzaG90TGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPnNu
YXBzaG90SXRlbShpLCBpZ25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIEFTU0VSVCghaWdu
b3JlZEV4Y2VwdGlvbik7CisgICAgICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNr
LCBub2RlLT5kb2N1bWVudCgpLCBub2RlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBGSVhN
RTogV2UgbmVlZCB0byBtYXJrIHRoZSByZXN1bHQgb2YgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEUg
YW5kIEZJUlNUX09SREVSRURfTk9ERV9UWVBFLgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoWFBBVEgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhSZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmlkbApp
bmRleCBlYmJmZjQyLi5iYjljNjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhSZXN1bHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGwKQEAg
LTE5LDcgKzE5LDcgQEAKIAogbW9kdWxlIHhwYXRoIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9WFBBVEhdIFhQYXRoUmVzdWx0IHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVhQ
QVRILCBDdXN0b21NYXJrRnVuY3Rpb25dIFhQYXRoUmVzdWx0IHsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQU5ZX1RZUEUgICAgICAgICAgICAgICAgICAgICAgID0gMDsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgTlVNQkVSX1RZUEUgICAgICAgICAgICAgICAgICAgID0gMTsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RSSU5HX1RZUEUgICAgICAgICAgICAgICAg
ICAgID0gMjsK
</data>
<flag name="review"
          id="80428"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="80429"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88825</attachid>
            <date>2011-04-08 08:17:19 -0700</date>
            <delta_ts>2011-04-09 17:11:46 -0700</delta_ts>
            <desc>Mark XPathResult nodeset JS wrapper - taken Alexey&apos;s comments into account</desc>
            <filename>bug34231-XPathResult-mark-4.diff</filename>
            <type>text/plain</type>
            <size>22670</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NGE3OTRlLi4wNzVmNWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDQt
MDggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yOiBYUGF0aFJl
c3VsdCBzaG91bGQga2VlcCBpdHMgbm9kZSBzZXQncyBKUyB3cmFwcGVycyBhbGl2ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEKKworICAgICAg
ICAqIGZhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3Rl
bmVyLWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gZXZlbnQgbGlzdGVu
ZXIgcmVnaXN0ZXJlZCBvbiBhbiBYUEFUSCByZXN1bHQgc25hcHNob3RzJyBub2RlIGRvZXMKKyAg
ICAgICAgbm90IGNyYXNoLiBUaGlzIGNhc2Ugd2FzIGFscmVhZHkgZml4ZWQgcHJpb3IgdG8gdGhp
cyBjaGFuZ2UuIEhvd2V2ZXIgaXQgaXMgYmV0dGVyCisgICAgICAgIHRvIGtlZXAgaXQgYXMgYSBy
ZWdyZXNzaW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJl
c3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QveHBhdGgveHBhdGgtc25hcHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rl
c2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gWFBBVEggc25hcHNob3RzIGtl
ZXAgaXRzIG5vZGUgd3JhcHBlciBhbGl2ZS4KKworICAgICAgICAqIGZhc3QveHBhdGgveHBhdGgt
b3RoZXItbm9kZXNldC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0
LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQg
b3RoZXIgWFBBVEggcmVzdWx0cyB0aGF0IGhvbGQgbm9kZXMga2VlcCB0aGVpciB3cmFwcGVyIGFs
aXZlLgorCiAyMDExLTA0LTA4ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QveHBhdGgveHBhdGgtb3RoZXItbm9kZXNldC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5v
ZGVzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1vdGhlci1u
b2Rlc2V0LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE3MGFjZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtb3RoZXItbm9kZXNldC1yZXN1bHQtc2hvdWxk
LW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBmb3Ig
YnVnIDM0MjMxOiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpT
IHdyYXBwZXJzIGFsaXZlLgorRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91bGQgc2VlIDIg
UEFTUyBiZWxvdy4KKworUEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0
LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjc4ZjdjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBh
dGgveHBhdGgtb3RoZXItbm9kZXNldC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQuaHRt
bApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD48aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIC8vIEFOWV9PUkRFUkVEX05PREVfVFlQ
RSBzaG91bGQgYmUgdGhlIGxhc3QgaXRlbSBpbiB0aGUgYXJyYXkgc28gdGhhdAorICAgICAgICAv
LyB0aGVyZSBpcyBvbmx5IG9uZSBub2RlIHRoYXQgY2FuIG1hdGNoICh0aHVzIGl0IGRvZXMgbm90
IHRpZSB1cyB0byB0aGUKKyAgICAgICAgLy8gb3JkZXJpbmcgaW4gdGhlIG5vZGVzZXQpLgorICAg
ICAgICB2YXIgdHlwZXMgPSBbIFhQYXRoUmVzdWx0LkZJUlNUX09SREVSRURfTk9ERV9UWVBFLCBY
UGF0aFJlc3VsdC5BTllfVU5PUkRFUkVEX05PREVfVFlQRSBdOworCisgICAgICAgIGZ1bmN0aW9u
IGdjKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2Ug
Y29sbGVjdGlvbiAoRkYgcmVxdWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29s
bGVjdCkKKyAgICAgICAgICAgICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdCh0eXBlKQorICAgICAg
ICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpWzBd
LmZvbyA9ICJQQVNTIjsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5ldmFsdWF0
ZSgiLy9zcGFuIiwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsLCB0eXBlLCBudWxsKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInNwYW4iKVswXSk7CisgICAgICAgICAgICBnYygpOworICAgICAgICAgICAg
dmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAg
ICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyZXN1bHQu
c2luZ2xlTm9kZVZhbHVlLmZvbykpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHRlc3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKHR5cGVzLmxlbmd0aCkg
eworICAgICAgICAgICAgICAgIHRlc3QodHlwZXMucG9wKCkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RzKCkiPgor
PHNwYW4+PC9zcGFuPgorPHNwYW4+PC9zcGFuPgorPGRpdj4gVGVzdCBmb3IgYnVnIDxhIGhyZWY9
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIzMSI+MzQyMzE8L2E+
OiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJz
IGFsaXZlLjwvZGl2PgorPGRpdj4gRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91bGQgc2Vl
IDIgUEFTUyBiZWxvdy48L2Rpdj48YnI+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9k
eT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3Vs
dC1ldmVudGxpc3RlbmVyLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHBh
dGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwNjk2NDUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNyYXNoLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgZm9yIGJ1ZyAzNDIzMTogTm9kZXMgaW4g
WFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS4KKwor
VGhpcyBwYWdlIHRlc3RzIGZvciBwcm9wZXIgaW52YWxpZGF0aW9uIG9mIGEgbm9kZSdzIGV2ZW50
IGxpc3RlbmVycy4gSWYgdGhlIHRlc3QgcGFzc2VzLCB5b3UnbGwgc2VlIGEgUEFTUyBtZXNzYWdl
IGJlbG93LgorCitQQVNTOiBZb3UgZGlkbid0IGNyYXNoLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNyYXNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNyYXNoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlMzMzNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVu
ZXItY3Jhc2guaHRtbApAQCAtMCwwICsxLDU2IEBACis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0i
ZGl2Ij48L2Rpdj4KKzxwPiBUZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjMxIj4zNDIzMTwvYT46IE5vZGVzIGluIFhQYXRoIHJl
c3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUuPC9wPgorPHA+VGhp
cyBwYWdlIHRlc3RzIGZvciBwcm9wZXIgaW52YWxpZGF0aW9uIG9mIGEgbm9kZSdzIGV2ZW50IGxp
c3RlbmVycy4gSWYgdGhlIHRlc3QgcGFzc2VzLCB5b3UnbGwgc2VlIGEgUEFTUyBtZXNzYWdlIGJl
bG93LjwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUiPkZBSUxFRDogVGVzdCBkaWQgbm90IHJ1bi48L3By
ZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiAkKGlkKQoreworICAgIHJldHVybiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgICQoJ2NvbnNvbGUn
KS5pbm5lckhUTUwgPSBzICsgJ1xuJzsKK30KKworZnVuY3Rpb24gYWxsb2NhdGUoKSB7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAzMDAwOyArK2kpCisgICAgICAgIFN0cmluZyhpKTsKK30KKwor
KGZ1bmN0aW9uICgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAvLyBGaWxsIHRo
ZSBoZWFwIHdpdGggZXZlbnQgbGlzdGVuZXJzLi4uCisgICAgdmFyIGEgPSBbXQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgNTAwMDsgKytpKQorICAgICAgICBhW2EubGVuZ3RoXSA9IGZ1bmN0aW9u
KCkgeyB9OworCisgICAgLy8gLi4uZm9sbG93ZWQgYnkgYSBET00gbm9kZSB3cmFwcGVyCisgICAg
dmFyIGRpdiA9ICQoImRpdiIpOworCisgICAgLy8gQWRkIHRoZSBsaXN0ZW5lcnMgdG8gdGhlIERP
TSBub2RlLgorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7ICsraSkKKyAgICAgICAg
ZGl2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYVtpXSwgZmFsc2UpOworCisgICAgLy8gRWxp
bWluYXRlIEpTIHJlZmVyZW5jZXMgdG8gdGhlIGRpdiBhbmQgaXRzIGxpc3RlbmVycywgYnV0IGtl
ZXAgYSByZWZlcmVuY2UgdG8gdGhlIGRpdiBpbiBhbiBYUGF0aCBxdWVyeS4KKyAgICB2YXIgcXVl
cnkgPSBkb2N1bWVudC5ldmFsdWF0ZSgiLy9kaXYiLCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQs
IG51bGwsIFhQYXRoUmVzdWx0LlVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUsIG51bGwpOwor
ICAgIGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRpdik7CisgICAgZGl2ID0gbnVsbAorICAg
IGEgPSBudWxsOworCisgICAgLy8gUG90ZW50aWFsbHkgb3ZlcndyaXRlIGxpc3RlbmVycyB3aXRo
IHN0cmluZ3MsIGJ1dCBkb24ndCBvdmVyd3JpdGUgZGl2LgorICAgIGFsbG9jYXRlKCk7CisKKyAg
ICAvLyBGaXJlIGxpc3RlbmVycyBhbmQgc2VlIGlmIHdlIGNyYXNoLgorICAgIHZhciBldmVudCA9
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7CisgICAgZXZlbnQuaW5pdEV2ZW50
KCdjbGljaycsIHRydWUsIHRydWUpOworICAgIHF1ZXJ5LnNuYXBzaG90SXRlbSgwKS5kaXNwYXRj
aEV2ZW50KGV2ZW50KTsKKworICAgIGxvZygiUEFTUzogWW91IGRpZG4ndCBjcmFzaC4iKTsKK30p
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJlc3Vs
dC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMGE3MGFjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QveHBhdGgveHBhdGgtc25hcHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgZm9yIGJ1ZyAzNDIzMTogTm9kZXMg
aW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS4K
K0ZvciB0aGlzIHRlc3QgdG8gUEFTUyB5b3Ugc2hvdWxkIHNlZSAyIFBBU1MgYmVsb3cuCisKK1BB
U1MKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1zbmFw
c2hvdC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QveHBhdGgveHBhdGgtc25hcHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgzYmE1ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtc25hcHNob3QtcmVzdWx0LXNo
b3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+PGhlYWQ+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAg
ICB2YXIgdHlwZXMgPSBbIFhQYXRoUmVzdWx0LlVOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUs
CisgICAgICAgICAgICAgICAgICAgICAgWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9U
X1RZUEUgXTsKKworICAgICAgICBmdW5jdGlvbiBnYygpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBHQ0NvbnRy
b2xsZXIuY29sbGVjdCgpOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyBpKyspIHsgLy8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0
IDlLIGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgICAgICAgICAgdmFyIHMg
PSBuZXcgU3RyaW5nKCJhYmMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIHRlc3QodHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHJlc3VsdCA9
IGRvY3VtZW50LmV2YWx1YXRlKCIvL2RpdiIsIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVs
bCwgdHlwZSwgbnVsbCk7CisgICAgICAgICAgICByZXN1bHQuc25hcHNob3RJdGVtKDApLmZvbyA9
ICJQQVNTIjsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocmVzdWx0LnNu
YXBzaG90SXRlbSgwKSk7CisgICAgICAgICAgICBnYygpOworICAgICAgICAgICAgdmFyIGNvbnNv
bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgICAgICAgICAgY29u
c29sZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyZXN1bHQuc25hcHNob3RJ
dGVtKDApLmZvbykpOworICAgICAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJiciIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHRlc3Rz
KCkKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKHR5cGVzLmxlbmd0aCkgeworICAgICAg
ICAgICAgICAgIHRlc3QodHlwZXMucG9wKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3RzKCkiPgorPGRpdj48L2Rp
dj4KKzxkaXY+PC9kaXY+Cis8ZGl2PiBUZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjMxIj4zNDIzMTwvYT46IE5vZGVzIGluIFhQ
YXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUuPC9kaXY+
Cis8ZGl2PiBGb3IgdGhpcyB0ZXN0IHRvIFBBU1MgeW91IHNob3VsZCBzZWUgMiBQQVNTIGJlbG93
LjwvZGl2Pjxicj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PjwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsgYi9Tb3VyY2Uv
V2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4IGE3NDNhN2IuLjc5OTVhZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvU291
cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawpAQCAtMTc2LDYgKzE3Niw3IEBAIExP
Q0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAli
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAgXAorCWJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1
bHRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIFwK
IAliaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKIAliaW5kaW5ncy9qcy9TY3JpcHRB
cnJheS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ1ZWQ5ZDIuLjRmMmUwMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxMS0wNC0wOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBYUGF0aFJlc3VsdCBzaG91bGQga2VlcCBpdHMgbm9kZSBzZXQncyBKUyB3cmFwcGVycyBh
bGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQy
MzEKKworICAgICAgICBUaGUgY2hhbmdlIGFkZGVkIGEgY3VzdG9tIG1hcmsgZnVuY3Rpb24gZm9y
IEpTQy4gVjggd2FzIGFscmVhZHkgcHJvcGVybHkKKyAgICAgICAgbWFya2luZyB0aGUgbm9kZXMg
c28gbm8gY2hhbmdlIHdlcmUgZG9uZSBvbiB0aGUgVjggc2lkZS4KKworICAgICAgICBUZXN0czog
ZmFzdC94cGF0aC94cGF0aC1vdGhlci1ub2Rlc2V0LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9k
ZXNldC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxp
c3RlbmVyLWNyYXNoLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QveHBhdGgveHBhdGgtc25hcHNo
b3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwKKworICAgICAgICAqIEFuZHJv
aWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgorICAgICAgICBBZGRlZCB0aGUgbmV3IGZp
bGUgdG8gb3VyIGJ1aWxkIHN5c3RlbXMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hQYXRo
UmVzdWx0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU1hQYXRoUmVzdWx0
OjptYXJrQ2hpbGRyZW4pOiBBZGRlZCBjb2RlIHRvIG1hcmsgdGhlCisgICAgICAgIFhQYXRoUmVz
dWx0IHNuYXBzaG90J3Mgbm9kZXMuCisgICAgICAgICogeG1sL1hQYXRoUmVzdWx0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpYUGF0aFJlc3VsdDo6dmFsdWUpOiBFeHBvc2VkIHRoaXMgZ2V0dGVyIHNv
IHRoYXQgd2UgY2FuCisgICAgICAgIG1hcmsgb3VyIFhQYXRoVmFsdWUuCisgICAgICAgICogeG1s
L1hQYXRoUmVzdWx0LmlkbDogVG9sZCB0aGUgSURMIHBhcnNlciB0aGF0IHdlIG5vdyBuZWVkCisg
ICAgICAgIGEgY3VzdG9tIG1hcmsgZnVuY3Rpb24uCisKIDIwMTEtMDQtMDggIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBT
ZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDEyNzUwYTQuLjUx
MzZjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODA3LDYgKzgwNyw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdFVwbG9hZEN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBh
dGhSZXN1bHRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQ
cm9jZXNzb3JDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlw
dENhbGxGcmFtZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQppbmRleCBmNmQ5YzkwLi5iZWFmNDc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
VXNlSlNDLmNtYWtlCkBAIC0xNDAsNiArMTQwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwCiAgICAg
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL1Nj
aGVkdWxlZEFjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhZDE1OGUwLi45NjUzMWJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0xODU2LDYgKzE4NTYsNyBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYU0xU
UHJvY2Vzc29yQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxs
RnJhbWUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDdlODFmNTIuLjg3ZGVkNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCkBAIC0zNDcsNiArMzQ3LDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dFBvaW50Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1
c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgXAogICAgICAg
ICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMv
U2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDBhOWU2YWUuLjI3ZWNmNzMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02MzMyMSw2ICs2MzMyMSw1
OCBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWFBhdGhSZXN1bHRDdXN0b20uY3Bw
IgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBkY2RkMTk3Li44MTk5MjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTYxLDYgKzMxNjEs
NyBAQAogCQlBMTM2QTAwRDExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMzZBMDBCMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5oICovOyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1REFBRUIgLyogSFRN
TEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3Rvcnku
Y3BwICovOyB9OwogCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0
b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdD
ODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CisJCUEx
QzdGQUEyMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQzdGQUExMTMzQTVEMzUw
MEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQTFFMTE1NDQxMzAx
NUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyog
RGlzdGFudExpZ2h0U291cmNlLmNwcCAqLzsgfTsKIAkJQTFFMTE1NDYxMzAxNUM0RTAwNTRBQzhD
IC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFFMTE1NDUxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3Vy
Y2UuY3BwICovOyB9OwogCQlBMUUxMTU0ODEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291
cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
RTExNTQ3MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwICovOyB9OwpAQCAt
OTY5OSw2ICs5NzAwLDcgQEAKIAkJQTEzNkEwMEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVu
dEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVs
ZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3QzgxMjEw
RjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYUGF0aFJlc3Vs
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTExNTQzMTMwMTVD
M0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRGlzdGFudExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMv
RGlzdGFudExpZ2h0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFF
MTE1NDUxMzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUG9pbnRMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBm
aWx0ZXJzL1BvaW50TGlnaHRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMUUxMTU0NzEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFNwb3RMaWdodFNvdXJjZS5jcHA7IHBhdGgg
PSBmaWx0ZXJzL1Nwb3RMaWdodFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODE2NCw2ICsxODE2Niw3IEBACiAJCUJDNEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBD
dXN0b20gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUEx
QzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLywKIAkJ
CQlCQzI3NUNCMjExQzVFODVDMDBDOTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgKi8s
CiAJCQkJODYyNDNEMDAxMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVy
LmggKi8sCiAJCQkJQkMyRUQ2QkIwQzZCRDJGMDAwOTIwQkZGIC8qIEpTQXR0ckN1c3RvbS5jcHAg
Ki8sCkBAIC0yNDc2MSw2ICsyNDc2NCw3IEBACiAJCQkJMUE3NjJDNzUwQTA3NEYyNjAwOTg5RjVC
IC8qIEpTWFBhdGhFeHByZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc3MEEw
NzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoTlNSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQTc2MkM3OTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aFJlc3VsdC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBMUM3RkFBMjEzM0E1RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGRTFFQTBEQ0E1RjY0MDA3MzkyMTkgLyogSlNY
U0xUUHJvY2Vzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZFMUU1MERDQTVGMzMwMDcz
OTIxOSAvKiBKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUw
MzFCNDMwQTQ0RUZDNzAwRjk5MkUwIC8qIEtleWJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNw
cAppbmRleCBhNDU3Y2U4Li45ZmJmYWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTE1Nyw2ICsxNTcsNyBAQAogI2luY2x1
ZGUgIkpTV29ya2VyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCIKKyNpbmNs
dWRlICJKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hTTFRQcm9jZXNzb3JD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIgogI2luY2x1ZGUg
Ik1lbW9yeUluZm8uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQ
YXRoUmVzdWx0Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
OTUyNzk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
UGF0aFJlc3VsdEN1c3RvbS5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNYUGF0aFJlc3Vs
dC5oIgorCisjaWYgRU5BQkxFKFhQQVRIKQorCisjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisj
aW5jbHVkZSAiWFBhdGhSZXN1bHQuaCIKKyNpbmNsdWRlICJYUGF0aFZhbHVlLmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU1hQYXRoUmVz
dWx0OjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFy
a0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICAvLyBXZSBhcmUgbWFya2luZyBhbGwgdGhlIHJl
c3VsdHMgdGhhdCBjb250YWlucyBhIE5vZGVTZXQuIEhvd2V2ZXIgaXQgaXMgdW5uZWVkZWQKKyAg
ICAvLyBmb3IgKl9OT0RFX0lURVJBVE9SX1RZUEUgYXMgdGhlIFhQYXRoUmVzdWx0IGlzIGludmFs
aWRhdGVkIG9uIGFueSBET00gdHJlZSBjaGFuZ2UuCisgICAgY29uc3QgWFBhdGg6OlZhbHVlJiB4
cGF0aFZhbHVlID0gaW1wbCgpLT52YWx1ZSgpOworICAgIGlmICh4cGF0aFZhbHVlLmlzTm9kZVNl
dCgpKSB7CisgICAgICAgIGNvbnN0IFhQYXRoOjpOb2RlU2V0JiBub2Rlc1RvTWFyayA9IHhwYXRo
VmFsdWUudG9Ob2RlU2V0KCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbm9kZXNU
b01hcmsuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBub2Rlc1RvTWFy
a1tpXTsKKyAgICAgICAgICAgIG1hcmtET01Ob2RlV3JhcHBlcihtYXJrU3RhY2ssIG5vZGUtPmRv
Y3VtZW50KCksIG5vZGUpOworICAgICAgICB9CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoWFBBVEgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhSZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5o
CmluZGV4IGU0NTkxNmMuLjgyYTliY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
UGF0aFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5oCkBAIC03
Miw2ICs3Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTm9kZSogaXRlcmF0ZU5l
eHQoRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICBOb2RlKiBzbmFwc2hvdEl0ZW0odW5zaWduZWQg
bG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgICAgIGNvbnN0IFhQYXRoOjpWYWx1
ZSYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisKICAgICBwcml2YXRlOgogICAg
ICAgICBYUGF0aFJlc3VsdChEb2N1bWVudCosIGNvbnN0IFhQYXRoOjpWYWx1ZSYpOwogICAgICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsCmluZGV4IGViYmZmNDIuLmJiOWM2NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmlkbApAQCAtMTksNyArMTksNyBAQAogCiBtb2R1bGUg
eHBhdGggewogCi0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1YUEFUSF0gWFBhdGhSZXN1bHQg
eworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9WFBBVEgsIEN1c3RvbU1hcmtGdW5jdGlvbl0g
WFBhdGhSZXN1bHQgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBTllfVFlQRSAgICAg
ICAgICAgICAgICAgICAgICAgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOVU1C
RVJfVFlQRSAgICAgICAgICAgICAgICAgICAgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBTVFJJTkdfVFlQRSAgICAgICAgICAgICAgICAgICAgPSAyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88936</attachid>
            <date>2011-04-09 17:11:46 -0700</date>
            <delta_ts>2011-04-30 16:33:03 -0700</delta_ts>
            <desc>Same as previously with testing for the iterator type</desc>
            <filename>bug34231-XPathResult-mark-5.diff</filename>
            <type>text/plain</type>
            <size>25260</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NGE3OTRlLi44NmNhMWM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQt
MDkgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yOiBYUGF0aFJl
c3VsdCBzaG91bGQga2VlcCBpdHMgbm9kZSBzZXQncyBKUyB3cmFwcGVycyBhbGl2ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEKKworICAgICAg
ICAqIGZhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3Rl
bmVyLWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gZXZlbnQgbGlzdGVu
ZXIgcmVnaXN0ZXJlZCBvbiBhbiBYUEFUSCByZXN1bHQgc25hcHNob3RzJyBub2RlIGRvZXMKKyAg
ICAgICAgbm90IGNyYXNoLiBUaGlzIGNhc2Ugd2FzIGFscmVhZHkgZml4ZWQgcHJpb3IgdG8gdGhp
cyBjaGFuZ2UuIEhvd2V2ZXIgaXQgaXMgYmV0dGVyCisgICAgICAgIHRvIGtlZXAgaXQgYXMgYSBy
ZWdyZXNzaW9uIHRlc3QuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJl
c3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QveHBhdGgveHBhdGgtc25hcHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rl
c2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gWFBBVEggc25hcHNob3QgcmVz
dWx0IGtlZXBzIGl0cyBub2RlIHdyYXBwZXIgYWxpdmUuCisKKyAgICAgICAgKiBmYXN0L3hwYXRo
L3hwYXRoLWl0ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgveHBhdGgtaXRlcmF0b3ItcmVzdWx0LXNo
b3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4g
WFBBVEggaXRlcmF0b3IgcmVzdWx0IGtlZXBzIGl0cyBub2RlIHdyYXBwZXIgYWxpdmUuCisKKyAg
ICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0LXNob3VsZC1tYXJr
LWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC94
cGF0aC1vdGhlci1ub2Rlc2V0LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgVGVzdCB0aGF0IG90aGVyIFhQQVRIIHJlc3VsdCB0aGF0IGhvbGRzIG5v
ZGVzIGtlZXBzIHRoZWlyIHdyYXBwZXIgYWxpdmUuCisKIDIwMTEtMDQtMDggIFN0ZXZlIEJsb2Nr
ICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1pdGVyYXRvci1yZXN1
bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC94cGF0aC94cGF0aC1pdGVyYXRvci1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMjgxYTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJl
c3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitUZXN0IGZvciBidWcgMzQyMzE6IE5vZGVzIGluIFhQYXRoUmVzdWx0IHNob3VsZCBrZWVwIEpT
IHdyYXBwZXJzIGFsaXZlLgorRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91bGQgc2VlIDIg
UEFTUyBiZWxvdy4KKworUEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1pdGVyYXRvci1yZXN1bHQtc2hvdWxkLW1h
cmstaXRzLW5vZGVzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j
Y2I5ODg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1p
dGVyYXRvci1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbApAQCAtMCwwICsxLDQ1
IEBACis8aHRtbD48aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCisgICAgICAgIHZhciB0eXBlcyA9IFsKKyAgICAgICAgICAgICAgICAgICAgICBY
UGF0aFJlc3VsdC5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSwKKyAgICAgICAgICAgICAgICAg
ICAgICBYUGF0aFJlc3VsdC5VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFCisgICAgICAgICAg
ICAgICAgICAgIF07CisKKyAgICAgICAgZnVuY3Rpb24gZ2MoKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gR0ND
b250cm9sbGVyLmNvbGxlY3QoKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgaSsrKSB7IC8vID4gZm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBh
Ym91dCA5SyBhbGxvY2F0aW9ucyBiZWZvcmUgYSBjb2xsZWN0KQorICAgICAgICAgICAgICAgIHZh
ciBzID0gbmV3IFN0cmluZygiYWJjIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiB0ZXN0KHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBkb2Mg
PSAobmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKCI8aHRtbD48Ym9keT48c3Bhbj48L3Nw
YW4+PC9ib2R5PjwvaHRtbD4iLCAidGV4dC94bWwiKTsKKyAgICAgICAgICAgIGRvYy5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgic3BhbiIpWzBdLmZvbyA9ICJQQVNTIjsKKyAgICAgICAgICAgIHZhciBy
ZXN1bHQgPSBkb2MuZXZhbHVhdGUoIi8vc3BhbiIsIGRvYy5kb2N1bWVudEVsZW1lbnQsIG51bGws
IHR5cGUsIG51bGwpOworICAgICAgICAgICAgZG9jID0gMDsKKyAgICAgICAgICAgIGdjKCk7Cisg
ICAgICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iik7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHJlc3VsdC5pdGVyYXRlTmV4dCgpLmZvbykpOworICAgICAgICAgICAgY29uc29sZS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3RzKCkKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKHR5cGVz
Lmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRlc3QodHlwZXMucG9wKCkpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3RzKCkiPgorPGRpdj4gVGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIzMSI+MzQyMzE8L2E+OiBOb2RlcyBpbiBYUGF0aFJlc3Vs
dCBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS48L2Rpdj4KKzxkaXY+IEZvciB0aGlzIHRl
c3QgdG8gUEFTUyB5b3Ugc2hvdWxkIHNlZSAyIFBBU1MgYmVsb3cuPC9kaXY+PGJyPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC94cGF0aC94cGF0aC1vdGhlci1ub2Rlc2V0LXJlc3VsdC1zaG91bGQtbWFyay1pdHMt
bm9kZXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW90aGVy
LW5vZGVzZXQtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTcwYWNmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1vdGhlci1ub2Rlc2V0LXJlc3VsdC1zaG91
bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IGZv
ciBidWcgMzQyMzE6IE5vZGVzIGluIFhQYXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAg
SlMgd3JhcHBlcnMgYWxpdmUuCitGb3IgdGhpcyB0ZXN0IHRvIFBBU1MgeW91IHNob3VsZCBzZWUg
MiBQQVNTIGJlbG93LgorCitQQVNTCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QveHBhdGgveHBhdGgtb3RoZXItbm9kZXNldC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVz
ZXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtb3RoZXItbm9kZXNldC1yZXN1
bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43ODY1NjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94
cGF0aC94cGF0aC1vdGhlci1ub2Rlc2V0LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5o
dG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPjxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgLy8gQU5ZX09SREVSRURfTk9ERV9U
WVBFIHNob3VsZCBiZSB0aGUgbGFzdCBpdGVtIGluIHRoZSBhcnJheSBzbyB0aGF0CisgICAgICAg
IC8vIHRoZXJlIGlzIG9ubHkgb25lIG5vZGUgdGhhdCBjYW4gbWF0Y2ggKHRodXMgaXQgZG9lcyBu
b3QgdGllIHVzIHRvIGFueQorICAgICAgICAvLyBzcGVjaWZpYyBvcmRlcmluZyBpbiB0aGUgbm9k
ZXNldCkuCisgICAgICAgIHZhciB0eXBlcyA9IFsgWFBhdGhSZXN1bHQuRklSU1RfT1JERVJFRF9O
T0RFX1RZUEUsIFhQYXRoUmVzdWx0LkFOWV9VTk9SREVSRURfTk9ERV9UWVBFIF07CisKKyAgICAg
ICAgZnVuY3Rpb24gZ2MoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAod2luZG93LkdDQ29u
dHJvbGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gR0NDb250cm9sbGVyLmNvbGxlY3QoKTsK
KworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKSB7IC8vID4gZm9y
Y2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJlcyBhYm91dCA5SyBhbGxvY2F0aW9ucyBi
ZWZvcmUgYSBjb2xsZWN0KQorICAgICAgICAgICAgICAgIHZhciBzID0gbmV3IFN0cmluZygiYWJj
Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0KHR5
cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJzcGFuIilbMF0uZm9vID0gIlBBU1MiOworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGRvY3Vt
ZW50LmV2YWx1YXRlKCIvL3NwYW4iLCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIG51bGwsIHR5
cGUsIG51bGwpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3BhbiIpWzBdKTsKKyAgICAgICAgICAgIGdjKCk7Cisg
ICAgICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
Iik7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHJlc3VsdC5zaW5nbGVOb2RlVmFsdWUuZm9vKSk7CisgICAgICAgICAgICBjb25zb2xlLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gdGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAodHlw
ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGVzdCh0eXBlcy5wb3AoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
dGVzdHMoKSI+Cis8c3Bhbj48L3NwYW4+Cis8c3Bhbj48L3NwYW4+Cis8ZGl2PiBUZXN0IGZvciBi
dWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjMx
Ij4zNDIzMTwvYT46IE5vZGVzIGluIFhQYXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAg
SlMgd3JhcHBlcnMgYWxpdmUuPC9kaXY+Cis8ZGl2PiBGb3IgdGhpcyB0ZXN0IHRvIFBBU1MgeW91
IHNob3VsZCBzZWUgMiBQQVNTIGJlbG93LjwvZGl2Pjxicj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgv
eHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA2OTY0NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVu
ZXItY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBmb3IgYnVnIDM0MjMx
OiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJz
IGFsaXZlLgorCitUaGlzIHBhZ2UgdGVzdHMgZm9yIHByb3BlciBpbnZhbGlkYXRpb24gb2YgYSBu
b2RlJ3MgZXZlbnQgbGlzdGVuZXJzLiBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSdsbCBzZWUgYSBQ
QVNTIG1lc3NhZ2UgYmVsb3cuCisKK1BBU1M6IFlvdSBkaWRuJ3QgY3Jhc2guCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVu
ZXItY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2UzMzM2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQt
ZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzxodG1sPgorPGJvZHk+
Cis8ZGl2IGlkPSJkaXYiPjwvZGl2PgorPHA+IFRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9hPjogTm9kZXMg
aW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS48
L3A+Cis8cD5UaGlzIHBhZ2UgdGVzdHMgZm9yIHByb3BlciBpbnZhbGlkYXRpb24gb2YgYSBub2Rl
J3MgZXZlbnQgbGlzdGVuZXJzLiBJZiB0aGUgdGVzdCBwYXNzZXMsIHlvdSdsbCBzZWUgYSBQQVNT
IG1lc3NhZ2UgYmVsb3cuPC9wPgorPHByZSBpZD0iY29uc29sZSI+RkFJTEVEOiBUZXN0IGRpZCBu
b3QgcnVuLjwvcHJlPgorPHNjcmlwdD4KK2Z1bmN0aW9uICQoaWQpCit7CisgICAgcmV0dXJuIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKK30KKworZnVuY3Rpb24gbG9nKHMpCit7CisgICAg
JCgnY29uc29sZScpLmlubmVySFRNTCA9IHMgKyAnXG4nOworfQorCitmdW5jdGlvbiBhbGxvY2F0
ZSgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMwMDA7ICsraSkKKyAgICAgICAgU3RyaW5n
KGkpOworfQorCisoZnVuY3Rpb24gKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAg
IC8vIEZpbGwgdGhlIGhlYXAgd2l0aCBldmVudCBsaXN0ZW5lcnMuLi4KKyAgICB2YXIgYSA9IFtd
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA1MDAwOyArK2kpCisgICAgICAgIGFbYS5sZW5ndGhd
ID0gZnVuY3Rpb24oKSB7IH07CisKKyAgICAvLyAuLi5mb2xsb3dlZCBieSBhIERPTSBub2RlIHdy
YXBwZXIKKyAgICB2YXIgZGl2ID0gJCgiZGl2Iik7CisKKyAgICAvLyBBZGQgdGhlIGxpc3RlbmVy
cyB0byB0aGUgRE9NIG5vZGUuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgKytp
KQorICAgICAgICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhW2ldLCBmYWxzZSk7CisK
KyAgICAvLyBFbGltaW5hdGUgSlMgcmVmZXJlbmNlcyB0byB0aGUgZGl2IGFuZCBpdHMgbGlzdGVu
ZXJzLCBidXQga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgZGl2IGluIGFuIFhQYXRoIHF1ZXJ5Lgor
ICAgIHZhciBxdWVyeSA9IGRvY3VtZW50LmV2YWx1YXRlKCIvL2RpdiIsIGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudCwgbnVsbCwgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQ
RSwgbnVsbCk7CisgICAgZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICBkaXYg
PSBudWxsCisgICAgYSA9IG51bGw7CisKKyAgICAvLyBQb3RlbnRpYWxseSBvdmVyd3JpdGUgbGlz
dGVuZXJzIHdpdGggc3RyaW5ncywgYnV0IGRvbid0IG92ZXJ3cml0ZSBkaXYuCisgICAgYWxsb2Nh
dGUoKTsKKworICAgIC8vIEZpcmUgbGlzdGVuZXJzIGFuZCBzZWUgaWYgd2UgY3Jhc2guCisgICAg
dmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnQnKTsKKyAgICBldmVu
dC5pbml0RXZlbnQoJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSk7CisgICAgcXVlcnkuc25hcHNob3RJdGVt
KDApLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworCisgICAgbG9nKCJQQVNTOiBZb3UgZGlkbid0IGNy
YXNoLiIpOworfSkoKTsKKzwvc2NyaXB0PgorPC9ib2R5PjwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtc25hcHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0
cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtc25h
cHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTcwYWNmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1zbmFwc2hvdC1yZXN1bHQtc2hvdWxkLW1hcmst
aXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCBmb3IgYnVnIDM0
MjMxOiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBw
ZXJzIGFsaXZlLgorRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91bGQgc2VlIDIgUEFTUyBi
ZWxvdy4KKworUEFTUworUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3hwYXRo
L3hwYXRoLXNuYXBzaG90LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1zbmFwc2hvdC1yZXN1bHQtc2hvdWxkLW1hcmstaXRz
LW5vZGVzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODNiYTVm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1zbmFwc2hv
dC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8
aHRtbD48aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCisgICAgICAgIHZhciB0eXBlcyA9IFsgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05B
UFNIT1RfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICBYUGF0aFJlc3VsdC5PUkRFUkVEX05P
REVfU05BUFNIT1RfVFlQRSBdOworCisgICAgICAgIGZ1bmN0aW9uIGdjKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKHdpbmRvdy5HQ0NvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7IGkrKykgeyAvLyA+IGZvcmNlIGdhcmJhZ2UgY29sbGVjdGlvbiAoRkYgcmVx
dWlyZXMgYWJvdXQgOUsgYWxsb2NhdGlvbnMgYmVmb3JlIGEgY29sbGVjdCkKKyAgICAgICAgICAg
ICAgICB2YXIgcyA9IG5ldyBTdHJpbmcoImFiYyIpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdCh0eXBlKQorICAgICAgICB7CisgICAgICAgICAgICB2
YXIgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50LCBudWxsLCB0eXBlLCBudWxsKTsKKyAgICAgICAgICAgIHJlc3VsdC5zbmFwc2hvdEl0
ZW0oMCkuZm9vID0gIlBBU1MiOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChyZXN1bHQuc25hcHNob3RJdGVtKDApKTsKKyAgICAgICAgICAgIGdjKCk7CisgICAgICAgICAg
ICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAg
ICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHJlc3Vs
dC5zbmFwc2hvdEl0ZW0oMCkuZm9vKSk7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gdGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAodHlwZXMubGVuZ3Ro
KSB7CisgICAgICAgICAgICAgICAgdGVzdCh0eXBlcy5wb3AoKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdHMoKSI+
Cis8ZGl2PjwvZGl2PgorPGRpdj48L2Rpdj4KKzxkaXY+IFRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9hPjog
Tm9kZXMgaW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBh
bGl2ZS48L2Rpdj4KKzxkaXY+IEZvciB0aGlzIHRlc3QgdG8gUEFTUyB5b3Ugc2hvdWxkIHNlZSAy
IFBBU1MgYmVsb3cuPC9kaXY+PGJyPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
ayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggYTc0M2E3Yi4u
Nzk5NWFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
aworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC0xNzYsNiAr
MTc2LDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckN1c3Rv
bS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAliaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCisJYmluZGluZ3MvanMv
SlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1
c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAgXAogCWJpbmRpbmdz
L2pzL1NjcmlwdEFycmF5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVlZDlkMi4uY2ZiZDAwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDExLTA0LTA5ICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFhQYXRoUmVzdWx0IHNob3VsZCBrZWVwIGl0cyBub2RlIHNldCdzIEpT
IHdyYXBwZXJzIGFsaXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDIzMQorCisgICAgICAgIFRoZSBjaGFuZ2UgYWRkZWQgYSBjdXN0b20gbWFyayBm
dW5jdGlvbiBmb3IgSlNDLiBWOCB3YXMgYWxyZWFkeSBwcm9wZXJseQorICAgICAgICBtYXJraW5n
IHRoZSBub2RlcyBzbyBubyBjaGFuZ2Ugd2VyZSBkb25lIG9uIHRoZSBWOCBzaWRlLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1p
dHMtbm9kZXNldC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5v
ZGVzZXQtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QveHBhdGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2guaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC94cGF0aC94cGF0aC1zbmFwc2hvdC1yZXN1bHQtc2hvdWxkLW1hcmstaXRz
LW5vZGVzZXQuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFVzZUpTQy5jbWFrZToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHA6CisgICAgICAgIEFkZGVkIHRoZSBuZXcgZmlsZSB0byBvdXIgYnVpbGQgc3lzdGVtcy4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTWFBhdGhSZXN1bHQ6Om1hcmtDaGlsZHJlbik6IEFkZGVkIGNv
ZGUgdG8gbWFyayB0aGUKKyAgICAgICAgWFBhdGhSZXN1bHQgc25hcHNob3QncyBub2Rlcy4KKyAg
ICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0
Ojp2YWx1ZSk6IEV4cG9zZWQgdGhpcyBnZXR0ZXIgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgbWFy
ayBvdXIgWFBhdGhWYWx1ZS4KKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuaWRsOiBUb2xkIHRo
ZSBJREwgcGFyc2VyIHRoYXQgd2Ugbm93IG5lZWQKKyAgICAgICAgYSBjdXN0b20gbWFyayBmdW5j
dGlvbi4KKwogMjAxMS0wNC0wOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggMTI3NTBhNC4uNTEzNmNkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC04MDcsNiArODA3LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNt
YWtlCmluZGV4IGY2ZDljOTAuLmJlYWY0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Vz
ZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTE0MCw2ICsx
NDAsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNw
cAorICAgIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAKICAgICBiaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IGFkMTU4ZTAuLjk2NTMxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NTYs
NiArMTg1Niw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXb3JrZXJDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5j
cHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSmF2YVNjcmlwdENhbGxGcmFtZS5oJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggN2U4MWY1Mi4uODdkZWQ2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM0Nyw2ICszNDcsNyBAQCB2
OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKICAgICAg
ICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCisgICAgICAgIGJpbmRp
bmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvUGFn
ZVNjcmlwdERlYnVnU2VydmVyLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFj
dGlvbi5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MGE5ZTZhZS4uMjdlY2Y3MyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTYzMzIxLDYgKzYzMzIxLDU4IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1hTTFRQcm9jZXNz
b3JDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRjZGQx
OTcuLjgxOTkyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTMxNjEsNiArMzE2MSw3IEBACiAJCUExMzZBMDBEMTEzNERCRDIw
MENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzNkEwMEIxMTM0REJEMjAw
Q0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggKi87IH07CiAJ
CUExN0M4MTIyMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjAwRjJBNUNG
NzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi87IH07CiAJCUExN0M4MTIzMEYy
QTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExN0M4MTIxMEYyQTVDRjcwMDVEQUFFQiAvKiBI
VE1MRWxlbWVudEZhY3RvcnkuaCAqLzsgfTsKKwkJQTFDN0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8q
IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRD
dXN0b20uY3BwICovOyB9OwogCQlBMUUxMTU0NDEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExp
Z2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwICov
OyB9OwogCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUxMTU0NTEz
MDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAgKi87IH07CiAJCUExRTExNTQ4
MTMwMTVDNUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMTE1NDcxMzAxNUM1RDAwNTRBQzhDIC8q
IFNwb3RMaWdodFNvdXJjZS5jcHAgKi87IH07CkBAIC05Njk5LDYgKzk3MDAsNyBAQAogCQlBMTM2
QTAwQjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE3Qzgx
MjAwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTdDODEyMTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVs
ZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxFbGVt
ZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUM3RkFBMTEzM0E1
RDM1MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDMxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdo
dFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBEaXN0YW50
TGlnaHRTb3VyY2UuY3BwOyBwYXRoID0gZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0NTEzMDE1QzRFMDA1NEFDOEMgLyog
UG9pbnRMaWdodFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBQb2ludExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTExNTQ3MTMwMTVDNUQwMDU0QUM4
QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU3BvdExpZ2h0U291cmNlLmNwcDsgcGF0aCA9IGZpbHRlcnMvU3BvdExpZ2h0U291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTY0LDYgKzE4MTY2LDcgQEAK
IAkJQkM0RURFRjcwQzA4RjQxNDAwN0VERDQ5IC8qIEN1c3RvbSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTFDN0ZBQTExMzNBNUQzNTAwRDY3MzJEIC8q
IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwICovLAogCQkJCUJDMjc1Q0IyMTFDNUU4NUMwMEM5MjA2
QyAvKiBKU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCAqLywKIAkJCQk4NjI0M0QwMDExQkMzMUY3MDBD
QzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCAqLywKIAkJCQlCQzJFRDZCQjBDNkJE
MkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKQEAgLTI0NzYxLDYgKzI0NzY0LDcg
QEAKIAkJCQkxQTc2MkM3NTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aEV4cHJlc3Npb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzcwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhO
U1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc5MEEwNzRGMjYwMDk4OUY1
QiAvKiBKU1hQYXRoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExQzdGQUEyMTMzQTVE
MzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDRUZFMUVBMERDQTVGNjQwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFRkUxRTUwRENBNUYzMzAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3NvckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUI0MzBBNDRFRkM3MDBGOTkyRTAgLyog
S2V5Ym9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IGE0NTdjZTguLjlmYmZhYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcApAQCAtMTU3LDYgKzE1Nyw3IEBACiAjaW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0
cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTWFBhdGhSZXN1bHRDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSmF2
YVNjcmlwdENhbGxGcmFtZS5jcHAiCiAjaW5jbHVkZSAiTWVtb3J5SW5mby5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNjUxODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcApAQCAt
MCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEp1bGllbiBDaGFmZnJhaXgg
PGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJKU1hQYXRoUmVzdWx0LmgiCisKKyNpZiBFTkFCTEUoWFBBVEgp
CisKKyNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJYUGF0aFJlc3VsdC5oIgor
I2luY2x1ZGUgIlhQYXRoVmFsdWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIEpTWFBhdGhSZXN1bHQ6Om1hcmtDaGlsZHJlbihNYXJrU3Rh
Y2smIG1hcmtTdGFjaykKK3sKKyAgICBCYXNlOjptYXJrQ2hpbGRyZW4obWFya1N0YWNrKTsKKwor
ICAgIGNvbnN0IFhQYXRoOjpWYWx1ZSYgeHBhdGhWYWx1ZSA9IGltcGwoKS0+dmFsdWUoKTsKKyAg
ICBpZiAoeHBhdGhWYWx1ZS5pc05vZGVTZXQoKSkgeworICAgICAgICBjb25zdCBYUGF0aDo6Tm9k
ZVNldCYgbm9kZXNUb01hcmsgPSB4cGF0aFZhbHVlLnRvTm9kZVNldCgpOworICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG5vZGVzVG9NYXJrLnNpemUoKTsgKytpKSB7CisgICAgICAgICAg
ICBOb2RlKiBub2RlID0gbm9kZXNUb01hcmtbaV07CisgICAgICAgICAgICBtYXJrRE9NTm9kZVdy
YXBwZXIobWFya1N0YWNrLCBub2RlLT5kb2N1bWVudCgpLCBub2RlKTsKKyAgICAgICAgfQorICAg
IH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFhQQVRI
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmggYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAppbmRleCBlNDU5MTZjLi44MmE5YmNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhSZXN1bHQuaApAQCAtNzIsNiArNzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIE5vZGUqIGl0ZXJhdGVOZXh0KEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgTm9k
ZSogc25hcHNob3RJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKIAor
ICAgICAgICBjb25zdCBYUGF0aDo6VmFsdWUmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1
ZTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgWFBhdGhSZXN1bHQoRG9jdW1lbnQqLCBjb25z
dCBYUGF0aDo6VmFsdWUmKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhSZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0LmlkbApp
bmRleCBlYmJmZjQyLi5iYjljNjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhSZXN1bHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGwKQEAg
LTE5LDcgKzE5LDcgQEAKIAogbW9kdWxlIHhwYXRoIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9WFBBVEhdIFhQYXRoUmVzdWx0IHsKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVhQ
QVRILCBDdXN0b21NYXJrRnVuY3Rpb25dIFhQYXRoUmVzdWx0IHsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgQU5ZX1RZUEUgICAgICAgICAgICAgICAgICAgICAgID0gMDsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgTlVNQkVSX1RZUEUgICAgICAgICAgICAgICAgICAgID0gMTsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RSSU5HX1RZUEUgICAgICAgICAgICAgICAg
ICAgID0gMjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91808</attachid>
            <date>2011-04-30 16:33:07 -0700</date>
            <delta_ts>2011-05-11 08:24:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34231-20110430163304.patch</filename>
            <type>text/plain</type>
            <size>26142</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0MDIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWZlZWMyYmM3ODU1YjIzNzBiNDc4
OGU2NzAxMTg1Zjk5ZjAyMGY4Li41YWE1ODdiYjlkZWJmMjlhYTg2NzBkYWRiMmFiYWI4ZDUyNTE2
MTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQtMzAgIEp1bGllbiBDaGFmZnJhaXgg
IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yOiBYUGF0aFJlc3VsdCBzaG91bGQga2VlcCBpdHMg
bm9kZSBzZXQncyBKUyB3cmFwcGVycyBhbGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMzEKKworICAgICAgICAqIGZhc3QveHBhdGgveHBhdGgt
cmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNyYXNoLmh0bWw6IEFkZGVk
LgorICAgICAgICBUZXN0IHRoYXQgYW4gZXZlbnQgbGlzdGVuZXIgcmVnaXN0ZXJlZCBvbiBhbiBY
UEFUSCByZXN1bHQgc25hcHNob3RzJyBub2RlIGRvZXMKKyAgICAgICAgbm90IGNyYXNoLiBUaGlz
IGNhc2Ugd2FzIGFscmVhZHkgZml4ZWQgcHJpb3IgdG8gdGhpcyBjaGFuZ2UuIEhvd2V2ZXIgaXQg
aXMgYmV0dGVyCisgICAgICAgIHRvIGtlZXAgaXQgYXMgYSByZWdyZXNzaW9uIHRlc3QuCisKKyAg
ICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJlc3VsdC1zaG91bGQtbWFyay1pdHMt
bm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QveHBhdGgveHBhdGgt
c25hcHNob3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICBUZXN0IHRoYXQgYW4gWFBhdGggc25hcHNob3QgcmVzdWx0IGtlZXBzIGl0cyBub2RlIHdy
YXBwZXIgYWxpdmUuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJlc3Vs
dC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QveHBhdGgveHBhdGgtaXRlcmF0b3ItcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0
Lmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRoYXQgYW4gWFBhdGggaXRlcmF0b3IgcmVzdWx0
IGtlZXBzIGl0cyBub2RlIHdyYXBwZXIgYWxpdmUuCisKKyAgICAgICAgKiBmYXN0L3hwYXRoL3hw
YXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC94cGF0aC94cGF0aC1vdGhlci1ub2Rlc2V0LXJl
c3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgVGVzdCB0
aGF0IG90aGVyIFhQYXRoIHJlc3VsdCB0aGF0IGhvbGRzIG5vZGVzIGtlZXBzIHRoZWlyIHdyYXBw
ZXIgYWxpdmUuCisKIDIwMTEtMDQtMzAgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFNraXAgYW5vdGhlciB0ZXN0IHRoYXQgcmVxdWlyZXMgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyBvbiBtYWMtd2syCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMt
bm9kZXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWl0ZXJh
dG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWEyODFhNzc3NTY3NGYwN2Y5MjUwYzc0MzQyY2YxYzM3YzU5YzY1ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtaXRlcmF0b3ItcmVzdWx0LXNob3Vs
ZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3QgZm9y
IGJ1ZyAzNDIzMTogTm9kZXMgaW4gWFBhdGhSZXN1bHQgc2hvdWxkIGtlZXAgSlMgd3JhcHBlcnMg
YWxpdmUuCitGb3IgdGhpcyB0ZXN0IHRvIFBBU1MgeW91IHNob3VsZCBzZWUgMiBQQVNTIGJlbG93
LgorCitQQVNTCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBh
dGgtaXRlcmF0b3ItcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9k
ZXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYjk4ODY3Mzk3ODlkZWQ1YTUyMTk2ZGZlN2U3NzRjZWE1
M2U0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLWl0
ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1sCkBAIC0wLDAgKzEsNDUg
QEAKKzxodG1sPjxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKKyAgICAgICAgdmFyIHR5cGVzID0gWworICAgICAgICAgICAgICAgICAgICAgIFhQ
YXRoUmVzdWx0Lk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFLAorICAgICAgICAgICAgICAgICAg
ICAgIFhQYXRoUmVzdWx0LlVOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEUKKyAgICAgICAgICAg
ICAgICAgICAgXTsKKworICAgICAgICBmdW5jdGlvbiBnYygpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBHQ0Nv
bnRyb2xsZXIuY29sbGVjdCgpOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyBpKyspIHsgLy8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFi
b3V0IDlLIGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgICAgICAgICAgdmFy
IHMgPSBuZXcgU3RyaW5nKCJhYmMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3QodHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGRvYyA9
IChuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoIjxodG1sPjxib2R5PjxzcGFuPjwvc3Bh
bj48L2JvZHk+PC9odG1sPiIsICJ0ZXh0L3htbCIpOworICAgICAgICAgICAgZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJzcGFuIilbMF0uZm9vID0gIlBBU1MiOworICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IGRvYy5ldmFsdWF0ZSgiLy9zcGFuIiwgZG9jLmRvY3VtZW50RWxlbWVudCwgbnVsbCwg
dHlwZSwgbnVsbCk7CisgICAgICAgICAgICBkb2MgPSAwOworICAgICAgICAgICAgZ2MoKTsKKyAg
ICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUocmVzdWx0Lml0ZXJhdGVOZXh0KCkuZm9vKSk7CisgICAgICAgICAgICBjb25zb2xlLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdGVzdHMoKQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAodHlwZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGVzdCh0eXBlcy5wb3AoKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dHMoKSI+Cis8ZGl2PiBUZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0MjMxIj4zNDIzMTwvYT46IE5vZGVzIGluIFhQYXRoUmVzdWx0
IHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLjwvZGl2PgorPGRpdj4gRm9yIHRoaXMgdGVz
dCB0byBQQVNTIHlvdSBzaG91bGQgc2VlIDIgUEFTUyBiZWxvdy48L2Rpdj48YnI+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT48L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1u
b2Rlc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtb3RoZXIt
bm9kZXNldC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBhNzBhY2ZhMWFlY2QyYjU4MzY2NWYzNzhmOTk4MmQ4YWMxMGY4NDcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVz
dWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1Rlc3QgZm9yIGJ1ZyAzNDIzMTogTm9kZXMgaW4gWFBhdGggcmVzdWx0IHNuYXBzaG90cyBzaG91
bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS4KK0ZvciB0aGlzIHRlc3QgdG8gUEFTUyB5b3Ugc2hv
dWxkIHNlZSAyIFBBU1MgYmVsb3cuCisKK1BBU1MKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC1vdGhlci1ub2Rlc2V0LXJlc3VsdC1zaG91bGQtbWFyay1p
dHMtbm9kZXNldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1vdGhlci1ub2Rl
c2V0LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4NjU2
NTU2YTZkODJlZjk2YTEwMWZlNzlmODY4NjhlNGE0ZTJlNWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVzdWx0LXNob3VsZC1t
YXJrLWl0cy1ub2Rlc2V0Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+PGhlYWQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAvLyBB
TllfT1JERVJFRF9OT0RFX1RZUEUgc2hvdWxkIGJlIHRoZSBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5
IHNvIHRoYXQKKyAgICAgICAgLy8gdGhlcmUgaXMgb25seSBvbmUgbm9kZSB0aGF0IGNhbiBtYXRj
aCAodGh1cyBpdCBkb2VzIG5vdCB0aWUgdXMgdG8gYW55CisgICAgICAgIC8vIHNwZWNpZmljIG9y
ZGVyaW5nIGluIHRoZSBub2Rlc2V0KS4KKyAgICAgICAgdmFyIHR5cGVzID0gWyBYUGF0aFJlc3Vs
dC5GSVJTVF9PUkRFUkVEX05PREVfVFlQRSwgWFBhdGhSZXN1bHQuQU5ZX1VOT1JERVJFRF9OT0RF
X1RZUEUgXTsKKworICAgICAgICBmdW5jdGlvbiBnYygpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuR0NDb250cm9sbGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBHQ0NvbnRy
b2xsZXIuY29sbGVjdCgpOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyBpKyspIHsgLy8gPiBmb3JjZSBnYXJiYWdlIGNvbGxlY3Rpb24gKEZGIHJlcXVpcmVzIGFib3V0
IDlLIGFsbG9jYXRpb25zIGJlZm9yZSBhIGNvbGxlY3QpCisgICAgICAgICAgICAgICAgdmFyIHMg
PSBuZXcgU3RyaW5nKCJhYmMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IGZ1bmN0aW9uIHRlc3QodHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInNwYW4iKVswXS5mb28gPSAiUEFTUyI7CisgICAgICAgICAgICB2
YXIgcmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUoIi8vc3BhbiIsIGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCwgbnVsbCwgdHlwZSwgbnVsbCk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIilbMF0pOworICAg
ICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUocmVzdWx0LnNpbmdsZU5vZGVWYWx1ZS5mb28pKTsKKyAgICAg
ICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiB0ZXN0cygpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHdoaWxlICh0eXBlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0KHR5cGVz
LnBvcCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJ0ZXN0cygpIj4KKzxzcGFuPjwvc3Bhbj4KKzxzcGFuPjwvc3Bhbj4K
KzxkaXY+IFRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzQyMzEiPjM0MjMxPC9hPjogTm9kZXMgaW4gWFBhdGggcmVzdWx0IHNuYXBz
aG90cyBzaG91bGQga2VlcCBKUyB3cmFwcGVycyBhbGl2ZS48L2Rpdj4KKzxkaXY+IEZvciB0aGlz
IHRlc3QgdG8gUEFTUyB5b3Ugc2hvdWxkIHNlZSAyIFBBU1MgYmVsb3cuPC9kaXY+PGJyPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC94cGF0aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVy
LWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDY5NjQ1MzEwNjJmMmM1YWE1Yjk0ODZk
NWFjYWZiZTdlOTVhNzI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0
aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACitUZXN0IGZvciBidWcgMzQyMzE6IE5vZGVzIGluIFhQYXRoIHJlc3VsdCBzbmFwc2hv
dHMgc2hvdWxkIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUuCisKK1RoaXMgcGFnZSB0ZXN0cyBmb3Ig
cHJvcGVyIGludmFsaWRhdGlvbiBvZiBhIG5vZGUncyBldmVudCBsaXN0ZW5lcnMuIElmIHRoZSB0
ZXN0IHBhc3NlcywgeW91J2xsIHNlZSBhIFBBU1MgbWVzc2FnZSBiZWxvdy4KKworUEFTUzogWW91
IGRpZG4ndCBjcmFzaC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0
aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0
aC94cGF0aC1yZXN1bHQtZXZlbnRsaXN0ZW5lci1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjZTMz
MzY5ODg0YjBlMTdiNGMzNWQ1MDMxN2I0MzYzNTFhYmRjOGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXJlc3VsdC1ldmVudGxpc3RlbmVyLWNyYXNoLmh0
bWwKQEAgLTAsMCArMSw1NiBAQAorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9ImRpdiI+PC9kaXY+
Cis8cD4gVGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDIzMSI+MzQyMzE8L2E+OiBOb2RlcyBpbiBYUGF0aCByZXN1bHQgc25hcHNo
b3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZlLjwvcD4KKzxwPlRoaXMgcGFnZSB0ZXN0
cyBmb3IgcHJvcGVyIGludmFsaWRhdGlvbiBvZiBhIG5vZGUncyBldmVudCBsaXN0ZW5lcnMuIElm
IHRoZSB0ZXN0IHBhc3NlcywgeW91J2xsIHNlZSBhIFBBU1MgbWVzc2FnZSBiZWxvdy48L3A+Cis8
cHJlIGlkPSJjb25zb2xlIj5GQUlMRUQ6IFRlc3QgZGlkIG5vdCBydW4uPC9wcmU+Cis8c2NyaXB0
PgorZnVuY3Rpb24gJChpZCkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpOworfQorCitmdW5jdGlvbiBsb2cocykKK3sKKyAgICAkKCdjb25zb2xlJykuaW5uZXJIVE1M
ID0gcyArICdcbic7Cit9CisKK2Z1bmN0aW9uIGFsbG9jYXRlKCkgeworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMzAwMDsgKytpKQorICAgICAgICBTdHJpbmcoaSk7Cit9CisKKyhmdW5jdGlvbiAo
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgLy8gRmlsbCB0aGUgaGVhcCB3aXRo
IGV2ZW50IGxpc3RlbmVycy4uLgorICAgIHZhciBhID0gW10KKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDUwMDA7ICsraSkKKyAgICAgICAgYVthLmxlbmd0aF0gPSBmdW5jdGlvbigpIHsgfTsKKwor
ICAgIC8vIC4uLmZvbGxvd2VkIGJ5IGEgRE9NIG5vZGUgd3JhcHBlcgorICAgIHZhciBkaXYgPSAk
KCJkaXYiKTsKKworICAgIC8vIEFkZCB0aGUgbGlzdGVuZXJzIHRvIHRoZSBET00gbm9kZS4KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGEubGVuZ3RoOyArK2kpCisgICAgICAgIGRpdi5hZGRFdmVu
dExpc3RlbmVyKCJjbGljayIsIGFbaV0sIGZhbHNlKTsKKworICAgIC8vIEVsaW1pbmF0ZSBKUyBy
ZWZlcmVuY2VzIHRvIHRoZSBkaXYgYW5kIGl0cyBsaXN0ZW5lcnMsIGJ1dCBrZWVwIGEgcmVmZXJl
bmNlIHRvIHRoZSBkaXYgaW4gYW4gWFBhdGggcXVlcnkuCisgICAgdmFyIHF1ZXJ5ID0gZG9jdW1l
bnQuZXZhbHVhdGUoIi8vZGl2IiwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBudWxsLCBYUGF0
aFJlc3VsdC5VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTsKKyAgICBkaXYucGFy
ZW50Tm9kZS5yZW1vdmVDaGlsZChkaXYpOworICAgIGRpdiA9IG51bGwKKyAgICBhID0gbnVsbDsK
KworICAgIC8vIFBvdGVudGlhbGx5IG92ZXJ3cml0ZSBsaXN0ZW5lcnMgd2l0aCBzdHJpbmdzLCBi
dXQgZG9uJ3Qgb3ZlcndyaXRlIGRpdi4KKyAgICBhbGxvY2F0ZSgpOworCisgICAgLy8gRmlyZSBs
aXN0ZW5lcnMgYW5kIHNlZSBpZiB3ZSBjcmFzaC4KKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5j
cmVhdGVFdmVudCgnTW91c2VFdmVudCcpOworICAgIGV2ZW50LmluaXRFdmVudCgnY2xpY2snLCB0
cnVlLCB0cnVlKTsKKyAgICBxdWVyeS5zbmFwc2hvdEl0ZW0oMCkuZGlzcGF0Y2hFdmVudChldmVu
dCk7CisKKyAgICBsb2coIlBBU1M6IFlvdSBkaWRuJ3QgY3Jhc2guIik7Cit9KSgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94
cGF0aC1zbmFwc2hvdC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC94cGF0aC94cGF0aC1zbmFwc2hvdC1yZXN1bHQtc2hvdWxkLW1h
cmstaXRzLW5vZGVzZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhNzBhY2ZhMWFlY2QyYjU4
MzY2NWYzNzhmOTk4MmQ4YWMxMGY4NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IGZvciBidWcgMzQyMzE6IE5vZGVzIGlu
IFhQYXRoIHJlc3VsdCBzbmFwc2hvdHMgc2hvdWxkIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUuCitG
b3IgdGhpcyB0ZXN0IHRvIFBBU1MgeW91IHNob3VsZCBzZWUgMiBQQVNTIGJlbG93LgorCitQQVNT
CitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QveHBhdGgveHBhdGgtc25hcHNo
b3QtcmVzdWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU4M2JhNWZiNjQ5Mjg5YWU0NTdkNmYwZTcwNDViOGNkOWQ5ZDQwNWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3hwYXRoL3hwYXRoLXNuYXBzaG90LXJl
c3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNldC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1s
PjxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisK
KyAgICAgICAgdmFyIHR5cGVzID0gWyBYUGF0aFJlc3VsdC5VTk9SREVSRURfTk9ERV9TTkFQU0hP
VF9UWVBFLAorICAgICAgICAgICAgICAgICAgICAgIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9T
TkFQU0hPVF9UWVBFIF07CisKKyAgICAgICAgZnVuY3Rpb24gZ2MoKQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAod2luZG93LkdDQ29udHJvbGxlcikKKyAgICAgICAgICAgICAgICByZXR1cm4g
R0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgaSsrKSB7IC8vID4gZm9yY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIChGRiByZXF1aXJl
cyBhYm91dCA5SyBhbGxvY2F0aW9ucyBiZWZvcmUgYSBjb2xsZWN0KQorICAgICAgICAgICAgICAg
IHZhciBzID0gbmV3IFN0cmluZygiYWJjIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiB0ZXN0KHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBy
ZXN1bHQgPSBkb2N1bWVudC5ldmFsdWF0ZSgiLy9kaXYiLCBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQsIG51bGwsIHR5cGUsIG51bGwpOworICAgICAgICAgICAgcmVzdWx0LnNuYXBzaG90SXRlbSgw
KS5mb28gPSAiUEFTUyI7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHJl
c3VsdC5zbmFwc2hvdEl0ZW0oMCkpOworICAgICAgICAgICAgZ2MoKTsKKyAgICAgICAgICAgIHZh
ciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAg
ICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUocmVzdWx0LnNu
YXBzaG90SXRlbSgwKS5mb28pKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biB0ZXN0cygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdoaWxlICh0eXBlcy5sZW5ndGgpIHsK
KyAgICAgICAgICAgICAgICB0ZXN0KHR5cGVzLnBvcCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0cygpIj4KKzxk
aXY+PC9kaXY+Cis8ZGl2PjwvZGl2PgorPGRpdj4gVGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIzMSI+MzQyMzE8L2E+OiBOb2Rl
cyBpbiBYUGF0aCByZXN1bHQgc25hcHNob3RzIHNob3VsZCBrZWVwIEpTIHdyYXBwZXJzIGFsaXZl
LjwvZGl2PgorPGRpdj4gRm9yIHRoaXMgdGVzdCB0byBQQVNTIHlvdSBzaG91bGQgc2VlIDIgUEFT
UyBiZWxvdy48L2Rpdj48YnI+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzwvYm9keT48L2h0
bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggM2E1YjFjYWE4NGU3ZjFmZWRmYzAxMzMzY2Y5NzJhM2FjMDhlY2Yx
Ny4uMmY0ZTkyZDZlZjBkMmJkZmY3OGYwNzE2NmQ1ZDM4MThmNGYyZGU1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM3IEBACisyMDExLTA0LTMwICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFp
eEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFhQYXRoUmVzdWx0IHNob3VsZCBrZWVwIGl0cyBub2RlIHNldCdzIEpTIHdyYXBwZXJz
IGFsaXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NDIzMQorCisgICAgICAgIFRoZSBjaGFuZ2UgYWRkZWQgYSBjdXN0b20gbWFyayBmdW5jdGlvbiBm
b3IgSlNDLiBWOCB3YXMgYWxyZWFkeSBwcm9wZXJseQorICAgICAgICBtYXJraW5nIHRoZSBub2Rl
cyBzbyBubyBjaGFuZ2Ugd2VyZSBkb25lIG9uIHRoZSBWOCBzaWRlLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L3hwYXRoL3hwYXRoLWl0ZXJhdG9yLXJlc3VsdC1zaG91bGQtbWFyay1pdHMtbm9kZXNl
dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3hwYXRoL3hwYXRoLW90aGVyLW5vZGVzZXQtcmVz
dWx0LXNob3VsZC1tYXJrLWl0cy1ub2Rlc2V0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QveHBh
dGgveHBhdGgtcmVzdWx0LWV2ZW50bGlzdGVuZXItY3Jhc2guaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC94cGF0aC94cGF0aC1zbmFwc2hvdC1yZXN1bHQtc2hvdWxkLW1hcmstaXRzLW5vZGVzZXQu
aHRtbAorCisgICAgICAgICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFVzZUpTQy5jbWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6Cisg
ICAgICAgIEFkZGVkIHRoZSBuZXcgZmlsZSB0byBvdXIgYnVpbGQgc3lzdGVtcy4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkpTWFBhdGhSZXN1bHQ6Om1hcmtDaGlsZHJlbik6IEFkZGVkIGNvZGUgdG8gbWFy
ayB0aGUKKyAgICAgICAgWFBhdGhSZXN1bHQgc25hcHNob3QncyBub2Rlcy4KKyAgICAgICAgKiB4
bWwvWFBhdGhSZXN1bHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0Ojp2YWx1ZSk6
IEV4cG9zZWQgdGhpcyBnZXR0ZXIgc28gdGhhdCB3ZSBjYW4KKyAgICAgICAgbWFyayBvdXIgWFBh
dGhWYWx1ZS4KKyAgICAgICAgKiB4bWwvWFBhdGhSZXN1bHQuaWRsOiBUb2xkIHRoZSBJREwgcGFy
c2VyIHRoYXQgd2Ugbm93IG5lZWQKKyAgICAgICAgYSBjdXN0b20gbWFyayBmdW5jdGlvbi4KKwog
MjAxMS0wNC0zMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBOb3QgcmV2aWV3ZWQ6IGluc3BlY3RvciB0b29sYmFyIHRpdGxlcyB3ZXJlIDJweCBvZmYu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxN2YyYTVmOGEzODk4ODBjN2RmNWYx
ZDI5ZTk2MmJjODAyMmFhNDA0Li44YzE1Y2Q0NjUxM2FhOTZhMTA3NmM5OTcwODA5YjQ3MjI0NDRi
NjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTc5OCw2ICs3OTgsNyBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RVcGxvYWRDdXN0b20uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRo
UmVzdWx0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJv
Y2Vzc29yQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3JpcHRD
YWxsRnJhbWUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKaW5kZXggNmM3ZWY4MzJkZGRkODk5NjA4YjQzODEz
NjNkMmY4ZDkwMDRlYzg5Yy4uY2RkYmQ1ZjI2ZTY3ZmNjOTExNjIwYWFhZTY1MzgwNzg3MDVhYjQ4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1VzZUpTQy5jbWFrZQpAQCAtMTM5LDYgKzEzOSw3IEBAIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNYUGF0
aFJlc3VsdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNw
cAogICAgIGJpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKICAgICBiaW5kaW5n
cy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNTkwZWJjMjU5MWU5
MzdjYTUwZTZkMjhiZjRmOTU4ZmZiNzk2MGUwMi4uZWE5OGI2OTc0OTg1YjE0M2RjYWQ4YWMxM2Vk
ZjEyNjQ5NmQ1YmFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTg2Nyw2ICsxODY3LDcgQEAKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCcsCisgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2MTVjM2ZlZTNiMDdi
NThmOWYxNmIzNzk5OTdlYTBjNTNhZmZhNzY1Li4xNDFmZWJlZGVkNWExMjk0YjI4MjQxZmJlYjMy
NTM2MGEyMjY1YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzQzLDYgKzM0Myw3IEBAIHY4IHsKICAg
ICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvanMv
SlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9QYWdlU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBjYzM0OTMy
YWE1ZmI5ZTUxYjE4YWYxNjhjY2Y4Nzg2YzYxYTAzMDExLi40NjkyOTI2OTY5ODQ5ZGJlZGExY2Fi
NDA1NTcyOWU5NzI3NDJmYTRiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNjI4NTMsNiArNjI4NTMsNTggQEAKIAkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTWFNMVFByb2Nl
c3NvckN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzQ5
NjA0ZjI5OGY0ZTJjNTIxMzc5OGExNzE3NjM3ZjhmOGMzNWQwYi4uM2RkZTQyYjg3NzdiY2MzYTVj
Yjk0ODkyZjU2YjIxMmM1ODBlZGZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzEzNSw2ICszMTM1LDcgQEAKIAkJQTEzNkEw
MEQxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTM2QTAw
QjExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
aCAqLzsgfTsKIAkJQTE3QzgxMjIwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9y
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdD
ODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJ
QTE3QzgxMjMwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3QzgxMjEwRjJBNUNGNzAw
NURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovOyB9OworCQlBMUM3RkFBMjEzM0E1RDM1
MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUM3RkFBMTEzM0E1RDM1MDBENjczMkQgLyogSlNY
UGF0aFJlc3VsdEN1c3RvbS5jcHAgKi87IH07CiAJCUExRTExNTQ0MTMwMTVDM0QwMDU0QUM4QyAv
KiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFFMTE1NDMxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNv
dXJjZS5jcHAgKi87IH07CiAJCUExRTExNTQ2MTMwMTVDNEUwMDU0QUM4QyAvKiBQb2ludExpZ2h0
U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExRTExNTQ1MTMwMTVDNEUwMDU0QUM4QyAvKiBQb2ludExpZ2h0U291cmNlLmNwcCAqLzsgfTsK
IAkJQTFFMTE1NDgxMzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUxMTU0NzEzMDE1QzVE
MDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCAqLzsgfTsKQEAgLTk2MTksNiArOTYyMCw3
IEBACiAJCUExMzZBMDBCMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMTdDODEyMDBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbGVtZW50RmFjdG9yeS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExN0M4MTIxMEYyQTVDRjcwMDVEQUFF
QiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSFRNTEVsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEx
QzdGQUExMTMzQTVEMzUwMEQ2NzMyRCAvKiBKU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyog
RGlzdGFudExpZ2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IERpc3RhbnRMaWdodFNvdXJjZS5jcHA7IHBhdGggPSBmaWx0ZXJzL0Rpc3RhbnRMaWdodFNv
dXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTExNTQ1MTMwMTVDNEUw
MDU0QUM4QyAvKiBQb2ludExpZ2h0U291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFBvaW50TGlnaHRTb3VyY2UuY3BwOyBwYXRoID0gZmlsdGVycy9Qb2ludExp
Z2h0U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMTE1NDcxMzAx
NUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBTcG90TGlnaHRTb3VyY2UuY3BwOyBwYXRoID0gZmlsdGVycy9TcG90
TGlnaHRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc5OTYsNiAr
MTc5OTgsNyBAQAogCQlCQzRFREVGNzBDMDhGNDE0MDA3RURENDkgLyogQ3VzdG9tICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBMUM3RkFBMTEzM0E1RDM1
MDBENjczMkQgLyogSlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVDQjIxMUM1
RTg1QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZmZXJDdXN0b20uY3BwICovLAogCQkJCTg2MjQzRDAw
MTFCQzMxRjcwMENDMDA2QSAvKiBKU0FycmF5QnVmZmVyVmlld0hlbHBlci5oICovLAogCQkJCUJD
MkVENkJCMEM2QkQyRjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLApAQCAtMjQ1NzAs
NiArMjQ1NzMsNyBAQAogCQkJCTFBNzYyQzc1MEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXhw
cmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc2MkM3NzBBMDc0RjI2MDA5ODlGNUIg
LyogSlNYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3NjJDNzkwQTA3
NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFD
N0ZBQTIxMzNBNUQzNTAwRDY3MzJEIC8qIEpTWFBhdGhSZXN1bHRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNFRkUxRUEwRENBNUY2NDAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3Nvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGRTFFNTBEQ0E1RjMzMDA3MzkyMTkgLyogSlNYU0xU
UHJvY2Vzc29yQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQzMEE0NEVGQzcw
MEY5OTJFMCAvKiBLZXlib2FyZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggMGYxZGUz
NmYwMWQ1NWE4MTY0MWViY2IzMzJkYWJlZDRiOTc4NGVhMy4uZDE5MTlhMjkyNDRmZDc1M2U0NGE5
YjA5NWUzZTRmYzMwNWUxY2Q2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xNTYsNiArMTU2LDcgQEAKICNpbmNsdWRlICJK
U1dvcmtlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAiCisjaW5jbHVkZSAi
SlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNYU0xUUHJvY2Vzc29yQ3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCIKICNpbmNsdWRlICJNZW1v
cnlJbmZvLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBh
dGhSZXN1bHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aFJl
c3VsdEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I4M2VlN2JiODE5YzI3YTMwM2E3ZjFmMTI5OGIy
YmQxNTc2NjFkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTWFBhdGhS
ZXN1bHQuaCIKKworI2lmIEVOQUJMRShYUEFUSCkKKworI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgorI2luY2x1ZGUgIlhQYXRoUmVzdWx0LmgiCisjaW5jbHVkZSAiWFBhdGhWYWx1ZS5oIgorCit1
c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNYUGF0
aFJlc3VsdDo6dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBCYXNl
Ojp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOworCisgICAgY29uc3QgWFBhdGg6OlZhbHVlJiB4cGF0
aFZhbHVlID0gaW1wbCgpLT52YWx1ZSgpOworICAgIGlmICh4cGF0aFZhbHVlLmlzTm9kZVNldCgp
KSB7CisgICAgICAgIGNvbnN0IFhQYXRoOjpOb2RlU2V0JiBub2Rlc1RvTWFyayA9IHhwYXRoVmFs
dWUudG9Ob2RlU2V0KCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbm9kZXNUb01h
cmsuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBub2Rlc1RvTWFya1tp
XTsKKyAgICAgICAgICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KG5vZGUpKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFhQQVRIKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUmVzdWx0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAppbmRleCBlNDU5MTZjMGNiNzNkOTY2
ZTgzMjQwNGZjN2JmNDkxZTdkNTIyYmNmLi44MmE5YmNlNmY1MDQ3NjE4ODBjYjhmODQyNTg4ZGMx
ZTA4MDc4MDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaApAQCAtNzIsNiArNzIsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE5vZGUqIGl0ZXJhdGVOZXh0KEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICAgICAgTm9kZSogc25hcHNob3RJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4
Y2VwdGlvbkNvZGUmKTsKIAorICAgICAgICBjb25zdCBYUGF0aDo6VmFsdWUmIHZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgWFBhdGhSZXN1
bHQoRG9jdW1lbnQqLCBjb25zdCBYUGF0aDo6VmFsdWUmKTsKICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsIGIvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoUmVzdWx0LmlkbAppbmRleCBlYmJmZjQyZDY5Y2JmNGQ1ZDUzZmM4ZDMxYmJiNjNlNDYw
MmVjY2Q0Li5iYjljNjRiOTk4OThlY2Q4MTVhODRkOGM3YTgwZTNjYjFkYmVlMTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aFJlc3VsdC5pZGwKQEAgLTE5LDcgKzE5LDcgQEAKIAogbW9kdWxlIHhwYXRo
IHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9WFBBVEhdIFhQYXRoUmVzdWx0IHsKKyAg
ICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVhQQVRILCBDdXN0b21NYXJrRnVuY3Rpb25dIFhQYXRo
UmVzdWx0IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQU5ZX1RZUEUgICAgICAgICAg
ICAgICAgICAgICAgID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTlVNQkVSX1RZ
UEUgICAgICAgICAgICAgICAgICAgID0gMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1RSSU5HX1RZUEUgICAgICAgICAgICAgICAgICAgID0gMjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>