<?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>68106</bug_id>
          
          <creation_ts>2011-09-14 12:39:04 -0700</creation_ts>
          <short_desc>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;svg&gt;&lt;desc&gt;&lt;td&gt; parses incorrectly</short_desc>
          <delta_ts>2011-12-15 13:35:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Ian &apos;Hixie&apos; Hickson">ian</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>simonjam</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>467254</commentid>
    <comment_count>0</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-09-14 12:39:04 -0700</bug_when>
    <thetext>&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;svg&gt;&lt;desc&gt;&lt;td&gt; parses incorrectly. The second &lt;td&gt; should close the &lt;svg&gt;, as far as I can tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467265</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-14 12:52:17 -0700</bug_when>
    <thetext>Thanks for the report.  Fixing this bug will require updating the HTMLTreeBuilder state machine to match the updated state machine in the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519730</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-12 17:26:42 -0800</bug_when>
    <thetext>Working on a patch for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519848</commentid>
    <comment_count>3</comment_count>
      <attachid>118947</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-12 21:22:04 -0800</bug_when>
    <thetext>Created attachment 118947
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520411</commentid>
    <comment_count>4</comment_count>
      <attachid>118947</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-12-13 15:28:08 -0800</bug_when>
    <thetext>Comment on attachment 118947
work in progress

FWIW, I read the spec alongside this change and everything looks good to me. It&apos;ll be nice to be caught up with foreign content mode again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520422</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-13 15:36:35 -0800</bug_when>
    <thetext>&gt; FWIW, I read the spec alongside this change and everything looks good to me. It&apos;ll be nice to be caught up with foreign content mode again.

Thanks.  This patch uncovered a bug in the spec, which Hixie has just fixed.  I&apos;m going to try incorporating his fix and then we should have something reviewable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521338</commentid>
    <comment_count>6</comment_count>
      <attachid>119307</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-14 15:14:51 -0800</bug_when>
    <thetext>Created attachment 119307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521353</commentid>
    <comment_count>7</comment_count>
      <attachid>119307</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-12-14 15:22:58 -0800</bug_when>
    <thetext>Comment on attachment 119307
Patch

Attachment 119307 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10875456</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521378</commentid>
    <comment_count>8</comment_count>
      <attachid>119307</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-14 15:44:17 -0800</bug_when>
    <thetext>Comment on attachment 119307
Patch

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

&gt; Source/WebCore/html/parser/HTMLElementStack.cpp:293
&gt; +        // FIXME: Technically we shouldn&apos;t read back from the DOM here.

You should explain what we&apos;re supposed to do instead. :)

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:469
&gt; +    m_parser-&gt;tokenizer()-&gt;setShouldAllowCDATA(m_tree.openElements()-&gt;stackDepth() &gt; 0 &amp;&amp; !isInHTMLNamespace(m_tree.currentNode()));

Do we have an !isEmpty() instead?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2660
&gt; +    if (!m_tree.openElements()-&gt;stackDepth())

Again an isEmpty (if available) is probably clearer here.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2664
&gt; +    ContainerNode* node = m_tree.currentNode();
&gt; +    if (!node)
&gt; +        return false;

So this is a hack around the hack of allowing non-nodes onto the element stack?   Or how do we get to this case?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2670
&gt; +            &amp;&amp; token.name() != MathMLNames::mglyphTag.localName()
&gt; +            &amp;&amp; token.name() != MathMLNames::malignmarkTag.localName())

We don&apos;t have a shorter way to write this?  either token.hasTagName(mglyphTag) or mglyphTag.hasLocalName(token.name)?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2701
&gt; +            || token.name() == bigTag

Contrasting this line with my previous comment, this seems cleaner.  There must be an AtomicString == QualifiedName comparison operator?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2765
&gt; +        if (token.name() == SVGNames::scriptTag &amp;&amp; m_tree.currentNode()-&gt;hasTagName(SVGNames::scriptTag)) {
&gt; +            m_isPaused = true;
&gt; +            m_scriptToProcess = m_tree.currentElement();
&gt; +            m_tree.openElements()-&gt;pop();
&gt; +            return;
&gt; +        }

I&apos;m not sure I fully follow this special case for script.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2767
&gt; +            // FIXME: This code just wants an Element* iterator, instead of an ElementRecord*

Are there other places in the code which want this?  Do we have a bug for this request?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2779
&gt; +                if (isInHTMLNamespace(nodeRecord-&gt;node()))
&gt; +                    break;

So we pop all open elements unless we bottom out at some HTML, in which case we just process the token regularly?  I&apos;m confused as to why we break here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521391</commentid>
    <comment_count>9</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-12-14 15:53:13 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=119307&amp;action=review

FYI, I compared this closely with the spec and it still looks good to me.

&gt; Source/WebCore/ChangeLog:16
&gt; +        Tested by the html5lib LayoutTests.  These tests so the progression in

I don&apos;t follow this last sentence.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2334
&gt; +        // This check is the negation of what how we would normally write this

This took a while to parse. It might be better just to do the if/else with the awkward fall through. I suspect it&apos;d be easier to read, though possibly more error prone if someone modifies it. You&apos;re more familiar with WebKit though, so I&apos;ll leave it up to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521396</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-14 15:58:55 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2765
&gt; &gt; +        if (token.name() == SVGNames::scriptTag &amp;&amp; m_tree.currentNode()-&gt;hasTagName(SVGNames::scriptTag)) {
&gt; &gt; +            m_isPaused = true;
&gt; &gt; +            m_scriptToProcess = m_tree.currentElement();
&gt; &gt; +            m_tree.openElements()-&gt;pop();
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; 
&gt; I&apos;m not sure I fully follow this special case for script.
&gt; 
&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2767
&gt; &gt; +            // FIXME: This code just wants an Element* iterator, instead of an ElementRecord*
&gt; 
&gt; Are there other places in the code which want this?  Do we have a bug for this request?

This is all code that existed previously in the function that handled the &quot;in foreign content&quot; insertion mode.  It&apos;s just moving to this new location.

&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2779
&gt; &gt; +                if (isInHTMLNamespace(nodeRecord-&gt;node()))
&gt; &gt; +                    break;
&gt; 
&gt; So we pop all open elements unless we bottom out at some HTML, in which case we just process the token regularly?  I&apos;m confused as to why we break here.

This is also code that existed previously.  The idea is that if you have a mis-matched end tag, then we&apos;ll close up all the foreign content and then ask the rest of the tree builder state machine (which knows about HTML) to figure out what to do with the errant close tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521411</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-14 16:08:54 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=119307&amp;action=review
&gt; 
&gt; FYI, I compared this closely with the spec and it still looks good to me.

Thanks.

&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        Tested by the html5lib LayoutTests.  These tests so the progression in
&gt; 
&gt; I don&apos;t follow this last sentence.

That&apos;s because it&apos;s ungrammatical.  Fixed.

&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2334
&gt; &gt; +        // This check is the negation of what how we would normally write this
&gt; 
&gt; This took a while to parse. It might be better just to do the if/else with the awkward fall through. I suspect it&apos;d be easier to read, though possibly more error prone if someone modifies it. You&apos;re more familiar with WebKit though, so I&apos;ll leave it up to you.

Ok.  Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521414</commentid>
    <comment_count>12</comment_count>
      <attachid>119315</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-14 16:10:53 -0800</bug_when>
    <thetext>Created attachment 119315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521425</commentid>
    <comment_count>13</comment_count>
      <attachid>119315</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-12-14 16:15:25 -0800</bug_when>
    <thetext>Comment on attachment 119315
Patch

Attachment 119315 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10903001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521426</commentid>
    <comment_count>14</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-12-14 16:16:17 -0800</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=119315&amp;action=review

Yeah, I like that better. It lines up perfectly with the spec. Thanks.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2338
&gt; +            ASSERT(m_tree.currentNode()-&gt;isElementNode());

This isn&apos;t needed now.

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2339
&gt; +            ASSERT(insertionMode() == InTableMode || insertionMode() == InTableBodyMode || insertionMode() == InRowMode);

This belongs at the top of the case before the if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521434</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-14 16:21:01 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2338
&gt; &gt; +            ASSERT(m_tree.currentNode()-&gt;isElementNode());
&gt; 
&gt; This isn&apos;t needed now.

Removed.

&gt; &gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2339
&gt; &gt; +            ASSERT(insertionMode() == InTableMode || insertionMode() == InTableBodyMode || insertionMode() == InRowMode);
&gt; 
&gt; This belongs at the top of the case before the if.

Done.  (I moved the other ASSERT too.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521435</commentid>
    <comment_count>16</comment_count>
      <attachid>119320</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-14 16:23:33 -0800</bug_when>
    <thetext>Created attachment 119320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521457</commentid>
    <comment_count>17</comment_count>
      <attachid>119320</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-12-14 16:42:13 -0800</bug_when>
    <thetext>Comment on attachment 119320
Patch

Attachment 119320 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10905022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521736</commentid>
    <comment_count>18</comment_count>
      <attachid>119320</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-15 01:18:12 -0800</bug_when>
    <thetext>Comment on attachment 119320
Patch

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

LGTM.  Please run the benchmark before landing.  Why is Qt geborked?

&gt; Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2784
&gt; +        String characters = String(token.characters().data(), token.characters().size());

Do we just have a copy() call?  Did you test perf of this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521776</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-15 02:51:20 -0800</bug_when>
    <thetext>&gt; Why is Qt geborked?

It looks like Qt has a problem with its incremental build.  It doesn&apos;t seem to be picking up the change to mathattrs.in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521787</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-15 03:09:40 -0800</bug_when>
    <thetext>I&apos;m not even sure how to run the benchmark now that Safari automatically restarts if it thinks the page is hung.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522069</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-15 10:57:36 -0800</bug_when>
    <thetext>I think we should run the benchmark in DRT, but that requires disabling the watchdog.  Which should be an easy patch. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522102</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-15 11:36:57 -0800</bug_when>
    <thetext>I&apos;m going to try using a Chrome build since Chrome doesn&apos;t have the auto-restart timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522169</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-15 13:00:13 -0800</bug_when>
    <thetext>I&apos;m glad I ran the benchmark.  There was a slight slowdown.  Inlining the new processCharacterBufferForInBody fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522210</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-15 13:35:30 -0800</bug_when>
    <thetext>Committed r102981: &lt;http://trac.webkit.org/changeset/102981&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118947</attachid>
            <date>2011-12-12 21:22:04 -0800</date>
            <delta_ts>2011-12-14 15:14:47 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-68106-20111212212203.patch</filename>
            <type>text/plain</type>
            <size>34713</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2su
Y3BwCShyZXZpc2lvbiAxMDI2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
RWxlbWVudFN0YWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDE0ICsxMDcsOCBAQCBpbmxp
bmUgYm9vbCBpc1RhYmxlUm93U2NvcGVNYXJrZXIoQ29udGFpCiAKIGlubGluZSBib29sIGlzRm9y
ZWlnbkNvbnRlbnRTY29wZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQogewotICAgIHJldHVy
biBub2RlLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykKLSAgICAgICAgfHwgbm9kZS0+
aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW9UYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05h
bWUoTWF0aE1MTmFtZXM6Om1uVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjptc1RhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6
bXRleHRUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25P
YmplY3RUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmRlc2NUYWcp
Ci0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFnKQorICAgIHJl
dHVybiBIVE1MRWxlbWVudFN0YWNrOjppc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KG5vZGUp
CisgICAgICAgIHx8IEhUTUxFbGVtZW50U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQobm9k
ZSkKICAgICAgICAgfHwgaXNJbkhUTUxOYW1lc3BhY2Uobm9kZSk7CiB9CiAKQEAgLTI3Niw2ICsy
NzAsMzYgQEAgdm9pZCBIVE1MRWxlbWVudFN0YWNrOjpwb3BVbnRpbFRhYmxlUm93UwogICAgICAg
ICBwb3AoKTsKIH0KIAorLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNtYXRobWwtdGV4dC1p
bnRlZ3JhdGlvbi1wb2ludAorYm9vbCBIVE1MRWxlbWVudFN0YWNrOjppc01hdGhNTFRleHRJbnRl
Z3JhdGlvblBvaW50KENvbnRhaW5lck5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlLT5pc0Vs
ZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBFbGVtZW50KiBlbGVtZW50
ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpOworICAgIHJldHVybiBlbGVtZW50LT5oYXNU
YWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFt
ZShNYXRoTUxOYW1lczo6bW9UYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6Om1uVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5h
bWVzOjptc1RhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6
bXRleHRUYWcpOworfQorCisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrL211bHRpcGFnZS90cmVlLWNvbnN0cnVjdGlvbi5odG1sI2h0bWwtaW50ZWdy
YXRpb24tcG9pbnQKK2Jvb2wgSFRNTEVsZW1lbnRTdGFjazo6aXNIVE1MSW50ZWdyYXRpb25Qb2lu
dChDb250YWluZXJOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19j
YXN0PEVsZW1lbnQqPihub2RlKTsKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxO
YW1lczo6YW5ub3RhdGlvbl94bWxUYWcpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUZWNobmljYWxs
eSB3ZSBzaG91bGRuJ3QgcmVhZCBiYWNrIGZyb20gdGhlIERPTSBoZXJlLgorICAgICAgICBTdHJp
bmcgZW5jb2RpbmcgPSBlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjplbmNv
ZGluZ0F0dHIpOworICAgICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UoZW5jb2RpbmcsICJ0
ZXh0L2h0bWwiKQorICAgICAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoZW5jb2RpbmcsICJh
cHBsaWNhdGlvbi94aHRtbCt4bWwiKTsKKyAgICB9CisgICAgcmV0dXJuIGVsZW1lbnQtPmhhc1Rh
Z05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUoU1ZHTmFtZXM6OmRlc2NUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05h
bWUoU1ZHTmFtZXM6OnRpdGxlVGFnKTsKK30KKwogdm9pZCBIVE1MRWxlbWVudFN0YWNrOjpwb3BV
bnRpbEZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoKQogewogICAgIHdoaWxlICghaXNGb3JlaWdu
Q29udGVudFNjb3BlTWFya2VyKHRvcE5vZGUoKSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCShyZXZpc2lvbiAxMDI2MDQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3BIVE1MQm9keUVsZW1lbnQo
KTsKICAgICB2b2lkIHBvcEFsbCgpOwogCisgICAgc3RhdGljIGJvb2wgaXNNYXRoTUxUZXh0SW50
ZWdyYXRpb25Qb2ludChDb250YWluZXJOb2RlKik7CisgICAgc3RhdGljIGJvb2wgaXNIVE1MSW50
ZWdyYXRpb25Qb2ludChDb250YWluZXJOb2RlKik7CisKICAgICB2b2lkIHJlbW92ZShFbGVtZW50
Kik7CiAgICAgdm9pZCByZW1vdmVIVE1MSGVhZEVsZW1lbnQoRWxlbWVudCopOwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlz
aW9uIDEwMjYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Myw3ICszNTMsNiBAQCBIVE1MVHJlZUJ1aWxkZXI6
OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9z
aXRpb24odW5pbml0aWFsaXplZFBvc2l0aW9uVmFsdWUxKCkpCiAgICAgLCBtX2xhc3RTY3JpcHRF
bGVtZW50U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb246OmJlbG93UmFuZ2VQb3NpdGlvbigpKQog
ICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykK
LSAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiB9
CiAKQEAgLTM3Miw3ICszNzEsNiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihI
VE1MRG9jCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFsaXpl
ZFBvc2l0aW9uVmFsdWUxKCkpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlv
bihUZXh0UG9zaXRpb246OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVuZGlu
Z0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMg
YXNzZXJ0aW9uIHdpbGwgYmVjb21lIGludmFsaWQgaWYgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjAz
MTY+IGlzIGZpeGVkLgogICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CkBAIC00NTksMTMgKzQ1
NywxNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21UCiAKIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKEF0b21pY0hUTUxU
b2tlbiYgdG9rZW4pCiB7Ci0gICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICBpZiAoc2hvdWxk
UHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudCh0b2tlbikpCisgICAgICAgIHByb2Nlc3NUb2tl
bkluRm9yZWlnbkNvbnRlbnQodG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgcHJvY2Vzc1Rva2Vu
KHRva2VuKTsKIAogICAgIC8vIFN3YWxsb3dpbmcgVSswMDAwIGNoYXJhY3RlcnMgaXNuJ3QgaW4g
dGhlIEhUTUw1IHNwZWMsIGJ1dCB0dXJuaW5nIGFsbAogICAgIC8vIHRoZSBVKzAwMDAgY2hhcmFj
dGVycyBpbnRvIHJlcGxhY2VtZW50IGNoYXJhY3RlcnMgaGFzIGNvbXBhdGliaWxpdHkKICAgICAv
LyBwcm9ibGVtcy4KLSAgICBtX3BhcnNlci0+dG9rZW5pemVyKCktPnNldEZvcmNlTnVsbENoYXJh
Y3RlclJlcGxhY2VtZW50KG1faW5zZXJ0aW9uTW9kZSA9PSBUZXh0TW9kZSB8fCBtX2luc2VydGlv
bk1vZGUgPT0gSW5Gb3JlaWduQ29udGVudE1vZGUpOwotICAgIG1fcGFyc2VyLT50b2tlbml6ZXIo
KS0+c2V0U2hvdWxkQWxsb3dDREFUQShtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3JlaWduQ29udGVu
dE1vZGUgJiYgIWlzSW5IVE1MTmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgpKSk7CisgICAg
bV9wYXJzZXItPnRva2VuaXplcigpLT5zZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudCht
X2luc2VydGlvbk1vZGUgPT0gVGV4dE1vZGUpOworICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+
c2V0U2hvdWxkQWxsb3dDREFUQShtX3RyZWUub3BlbkVsZW1lbnRzKCktPnN0YWNrRGVwdGgoKSA+
IDAgJiYgIWlzSW5IVE1MTmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgpKSk7CiB9CiAKIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW4oQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
QEAgLTYzNCwyMiArNjM1LDYgQEAgdm9pZCBtYXBMb3dlcmVkTG9jYWxOYW1lVG9OYW1lKFByZWZp
eGVkTgogICAgIH0KIH0KIAotdm9pZCBhZGp1c3RTVkdUYWdOYW1lQ2FzZShBdG9taWNIVE1MVG9r
ZW4mIHRva2VuKQotewotICAgIHN0YXRpYyBQcmVmaXhlZE5hbWVUb1F1YWxpZmllZE5hbWVNYXAq
IGNhc2VNYXAgPSAwOwotICAgIGlmICghY2FzZU1hcCkgewotICAgICAgICBjYXNlTWFwID0gbmV3
IFByZWZpeGVkTmFtZVRvUXVhbGlmaWVkTmFtZU1hcDsKLSAgICAgICAgc2l6ZV90IGxlbmd0aCA9
IDA7Ci0gICAgICAgIFF1YWxpZmllZE5hbWUqKiBzdmdUYWdzID0gU1ZHTmFtZXM6OmdldFNWR1Rh
Z3MoJmxlbmd0aCk7Ci0gICAgICAgIG1hcExvd2VyZWRMb2NhbE5hbWVUb05hbWUoY2FzZU1hcCwg
c3ZnVGFncywgbGVuZ3RoKTsKLSAgICB9Ci0KLSAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBjYXNl
ZE5hbWUgPSBjYXNlTWFwLT5nZXQodG9rZW4ubmFtZSgpKTsKLSAgICBpZiAoY2FzZWROYW1lLmxv
Y2FsTmFtZSgpLmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0gICAgdG9rZW4uc2V0TmFtZShj
YXNlZE5hbWUubG9jYWxOYW1lKCkpOwotfQotCiB0ZW1wbGF0ZTxRdWFsaWZpZWROYW1lKiogZ2V0
QXR0cnMoc2l6ZV90KiBsZW5ndGgpPgogdm9pZCBhZGp1c3RBdHRyaWJ1dGVzKEF0b21pY0hUTUxU
b2tlbiYgdG9rZW4pCiB7CkBAIC02OTQsNiArNjc5LDIyIEBAIHZvaWQgYWRkTmFtZXNXaXRoUHJl
Zml4KFByZWZpeGVkTmFtZVRvUXUKICAgICB9CiB9CiAKK3ZvaWQgYWRqdXN0U1ZHVGFnTmFtZUNh
c2UoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKK3sKKyAgICBzdGF0aWMgUHJlZml4ZWROYW1lVG9R
dWFsaWZpZWROYW1lTWFwKiBjYXNlTWFwID0gMDsKKyAgICBpZiAoIWNhc2VNYXApIHsKKyAgICAg
ICAgY2FzZU1hcCA9IG5ldyBQcmVmaXhlZE5hbWVUb1F1YWxpZmllZE5hbWVNYXA7CisgICAgICAg
IHNpemVfdCBsZW5ndGggPSAwOworICAgICAgICBRdWFsaWZpZWROYW1lKiogc3ZnVGFncyA9IFNW
R05hbWVzOjpnZXRTVkdUYWdzKCZsZW5ndGgpOworICAgICAgICBtYXBMb3dlcmVkTG9jYWxOYW1l
VG9OYW1lKGNhc2VNYXAsIHN2Z1RhZ3MsIGxlbmd0aCk7CisgICAgfQorCisgICAgY29uc3QgUXVh
bGlmaWVkTmFtZSYgY2FzZWROYW1lID0gY2FzZU1hcC0+Z2V0KHRva2VuLm5hbWUoKSk7CisgICAg
aWYgKGNhc2VkTmFtZS5sb2NhbE5hbWUoKS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAg
IHRva2VuLnNldE5hbWUoY2FzZWROYW1lLmxvY2FsTmFtZSgpKTsKK30KKwogdm9pZCBhZGp1c3RG
b3JlaWduQXR0cmlidXRlcyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewogICAgIHN0YXRpYyBQ
cmVmaXhlZE5hbWVUb1F1YWxpZmllZE5hbWVNYXAqIG1hcCA9IDA7CkBAIC04NDAsNyArODQxLDcg
QEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgICAgICBpZiAo
bV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNjb3BlKGJ1dHRvblRhZykpIHsKICAgICAgICAgICAg
IHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcoYnV0dG9u
VGFnKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsgLy8gRklYTUU6IENv
dWxkIHdlIGp1c3QgZmFsbCB0aHJvdWdoIGhlcmU/CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRU
YWcodG9rZW4pOyAvLyBGSVhNRTogQ291bGQgd2UganVzdCBmYWxsIHRocm91Z2ggaGVyZT8KICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RU
aGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKQEAgLTg5Nyw3ICs4OTgsNiBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAgICAgIHBhcnNlRXJyb3IodG9r
ZW4pOwogICAgICAgICAvLyBBcHBhcmVudGx5IHdlJ3JlIG5vdCBzdXBwb3NlZCB0byBhc2suCiAg
ICAgICAgIHRva2VuLnNldE5hbWUoaW1nVGFnLmxvY2FsTmFtZSgpKTsKLSAgICAgICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gTm90ZSB0aGUgZmFsbCB0aHJvdWdoIHRv
IHRoZSBpbWdUYWcgaGFuZGxpbmcgYmVsb3chCiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkg
PT0gYXJlYVRhZwpAQCAtMTAwNCw4ICsxMDA0LDYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvcgogICAgICAgICBhZGp1c3RNYXRoTUxBdHRyaWJ1dGVzKHRva2VuKTsK
ICAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOwogICAgICAgICBtX3RyZWUu
aW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIE1hdGhNTE5hbWVzOjptYXRobWxOYW1lc3BhY2VV
UkkpOwotICAgICAgICBpZiAobV9pbnNlcnRpb25Nb2RlICE9IEluRm9yZWlnbkNvbnRlbnRNb2Rl
ICYmICF0b2tlbi5zZWxmQ2xvc2luZygpKQotICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJ
bkZvcmVpZ25Db250ZW50TW9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRv
a2VuLm5hbWUoKSA9PSBTVkdOYW1lczo6c3ZnVGFnLmxvY2FsTmFtZSgpKSB7CkBAIC0xMDEzLDgg
KzEwMTEsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAg
ICAgIGFkanVzdFNWR0F0dHJpYnV0ZXModG9rZW4pOwogICAgICAgICBhZGp1c3RGb3JlaWduQXR0
cmlidXRlcyh0b2tlbik7CiAgICAgICAgIG1fdHJlZS5pbnNlcnRGb3JlaWduRWxlbWVudCh0b2tl
biwgU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSk7Ci0gICAgICAgIGlmIChtX2luc2VydGlvbk1v
ZGUgIT0gSW5Gb3JlaWduQ29udGVudE1vZGUgJiYgIXRva2VuLnNlbGZDbG9zaW5nKCkpCi0gICAg
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBpZiAoaXNDYXB0aW9uQ29sT3JDb2xncm91cFRhZyh0b2tlbi5u
YW1lKCkpCkBAIC0xMDc1LDcgKzEwNzEsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnRm9yCiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBjb2xUYWcpIHsKICAgICAgICAg
cHJvY2Vzc0Zha2VTdGFydFRhZyhjb2xncm91cFRhZyk7CiAgICAgICAgIEFTU0VSVChJbkNvbHVt
bkdyb3VwTW9kZSk7Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAg
cHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAo
aXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2VuLm5hbWUoKSkpIHsKQEAgLTEwODgsNyArMTA4NCw3
IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAgICAgfHwg
dG9rZW4ubmFtZSgpID09IHRyVGFnKSB7CiAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcodGJv
ZHlUYWcpOwogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9k
ZSk7Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4ubmFt
ZSgpID09IHRhYmxlVGFnKSB7CkBAIC0xMDk3LDcgKzEwOTMsNyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJh
Z21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgcmVwcm9j
ZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gc3R5bGVUYWcgfHwg
dG9rZW4ubmFtZSgpID09IHNjcmlwdFRhZykgewpAQCAtMTEyNiwzMCArMTEyMiw2IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICBwcm9jZXNzU3RhcnRUYWdG
b3JJbkJvZHkodG9rZW4pOwogfQogCi1uYW1lc3BhY2UgewotCi1ib29sIHNob3VsZFByb2Nlc3NG
b3JlaWduQ29udGVudFVzaW5nSW5Cb2R5SW5zZXJ0aW9uTW9kZShBdG9taWNIVE1MVG9rZW4mIHRv
a2VuLCBDb250YWluZXJOb2RlKiBjdXJyZW50RWxlbWVudCkKLXsKLSAgICBBU1NFUlQodG9rZW4u
dHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZyk7Ci0gICAgaWYgKGN1cnJlbnRFbGVt
ZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykKLSAgICAgICAgfHwgY3VycmVudEVs
ZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKQotICAgICAgICB8fCBjdXJyZW50
RWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW5UYWcpCi0gICAgICAgIHx8IGN1cnJl
bnRFbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykKLSAgICAgICAgfHwgY3Vy
cmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10ZXh0VGFnKSkgewotICAgICAg
ICByZXR1cm4gdG9rZW4ubmFtZSgpICE9IE1hdGhNTE5hbWVzOjptZ2x5cGhUYWcKLSAgICAgICAg
ICAgICYmIHRva2VuLm5hbWUoKSAhPSBNYXRoTUxOYW1lczo6bWFsaWdubWFya1RhZzsKLSAgICB9
Ci0gICAgaWYgKGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjphbm5vdGF0
aW9uX3htbFRhZykpCi0gICAgICAgIHJldHVybiB0b2tlbi5uYW1lKCkgPT0gU1ZHTmFtZXM6OnN2
Z1RhZzsKLSAgICBpZiAoY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVp
Z25PYmplY3RUYWcpCi0gICAgICAgIHx8IGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKFNWR05h
bWVzOjpkZXNjVGFnKQotICAgICAgICB8fCBjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShTVkdO
YW1lczo6dGl0bGVUYWcpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gaXNJbkhU
TUxOYW1lc3BhY2UoY3VycmVudEVsZW1lbnQpOwotfQotCi19Ci0KIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKIHsKICAgICBBU1NF
UlQodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZyk7CkBAIC0xMjQ0LDcg
KzEyMTYsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAg
ICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRv
a2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KHRva2Vu
KTsKQEAgLTEyNjMsNyArMTIzNSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3Rh
cnRUYWcoQXQKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tl
bik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgSW5UYWJsZUJvZHlNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEluVGFibGVCb2R5TW9kZSk7CkBAIC0xMjc3LDcgKzEyNDksNyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
ICAgICAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcodHJUYWcpOwogICAgICAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUpOwotICAgICAgICAgICAgcmVwcm9jZXNz
U3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoaXNDYXB0aW9uQ29sT3JD
b2xncm91cFRhZyh0b2tlbi5uYW1lKCkpIHx8IGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5u
YW1lKCkpKSB7CkBAIC0xMjkwLDcgKzEyNjIsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVu
dGlsVGFibGVCb2R5U2NvcGVNYXJrZXIoKTsKICAgICAgICAgICAgIEFTU0VSVChpc1RhYmxlQm9k
eUNvbnRleHRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmxvY2FsTmFtZSgpKSk7CiAgICAg
ICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyhtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+dGFnUU5h
bWUoKSk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAg
ICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUodG9rZW4pOwpAQCAtMTMxMiw3ICsx
Mjg0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEFTU0VSVChpbnNl
cnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5U
YWJsZSh0b2tlbik7CkBAIC0xMzMwLDcgKzEzMDIsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgY2xvc2VUaGVDZWxsKCk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9k
eSh0b2tlbik7CkBAIC0xMzQzLDcgKzEzMTUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
c2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKLSAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWco
dG9rZW4pOworICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEluSGVhZE5vc2NyaXB0TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1v
ZGUoKSA9PSBJbkhlYWROb3NjcmlwdE1vZGUpOwpAQCAtMTQxMSw3ICsxMzgzLDcgQEAgdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAgICAgICAgcGFyc2VFcnJv
cih0b2tlbik7CiAgICAgICAgICAgICBBdG9taWNIVE1MVG9rZW4gZW5kU2VsZWN0KEhUTUxUb2tl
blR5cGVzOjpFbmRUYWcsIHNlbGVjdFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICBwcm9j
ZXNzRW5kVGFnKGVuZFNlbGVjdCk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tl
bik7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaApAQCAtMTQ1Nyw3ICsxNDI5
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgQXRvbWljSFRNTFRva2VuIGVuZFNlbGVjdChIVE1MVG9rZW5UeXBl
czo6RW5kVGFnLCBzZWxlY3RUYWcubG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgcHJvY2Vzc0Vu
ZFRhZyhlbmRTZWxlY3QpOwotICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwor
ICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IHNjcmlwdFRhZykgewpAQCAt
MTQ3MCw2OCArMTQ0Miw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWco
QXQKICAgICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5Gb3JlaWduQ29udGVudE1v
ZGU6IHsKLSAgICAgICAgaWYgKHNob3VsZFByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5Cb2R5
SW5zZXJ0aW9uTW9kZSh0b2tlbiwgbV90cmVlLmN1cnJlbnROb2RlKCkpKSB7Ci0gICAgICAgICAg
ICBwcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRSZXNldE1vZGUodG9rZW4p
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0b2tlbi5uYW1l
KCkgPT0gYlRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJpZ1RhZwotICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJsb2NrcXVvdGVUYWcKLSAgICAgICAgICAgIHx8IHRv
a2VuLm5hbWUoKSA9PSBib2R5VGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gYnJU
YWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBjZW50ZXJUYWcKLSAgICAgICAgICAg
IHx8IHRva2VuLm5hbWUoKSA9PSBjb2RlVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkg
PT0gZGRUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkaXZUYWcKLSAgICAgICAg
ICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkbFRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgp
ID09IGR0VGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gZW1UYWcKLSAgICAgICAg
ICAgIHx8IHRva2VuLm5hbWUoKSA9PSBlbWJlZFRhZwotICAgICAgICAgICAgfHwgaXNOdW1iZXJl
ZEhlYWRlclRhZyh0b2tlbi5uYW1lKCkpCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
aGVhZFRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGhyVGFnCi0gICAgICAgICAg
ICB8fCB0b2tlbi5uYW1lKCkgPT0gaVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IGltZ1RhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGxpVGFnCi0gICAgICAgICAg
ICB8fCB0b2tlbi5uYW1lKCkgPT0gbGlzdGluZ1RhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFt
ZSgpID09IG1lbnVUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBtZXRhVGFnCi0g
ICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbm9iclRhZwotICAgICAgICAgICAgfHwgdG9r
ZW4ubmFtZSgpID09IG9sVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gcFRhZwot
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHByZVRhZwotICAgICAgICAgICAgfHwgdG9r
ZW4ubmFtZSgpID09IHJ1YnlUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzVGFn
Ci0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc21hbGxUYWcKLSAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBzcGFuVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
c3Ryb25nVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3RyaWtlVGFnCi0gICAg
ICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3ViVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gc3VwVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdGFibGVUYWcK
LSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0dFRhZwotICAgICAgICAgICAgfHwgdG9r
ZW4ubmFtZSgpID09IHVUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB1bFRhZwot
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHZhclRhZwotICAgICAgICAgICAgfHwgKHRv
a2VuLm5hbWUoKSA9PSBmb250VGFnICYmICh0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGNvbG9yQXR0
cikgfHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShmYWNlQXR0cikgfHwgdG9rZW4uZ2V0QXR0cmli
dXRlSXRlbShzaXplQXR0cikpKSkgewotICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0g
ICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsRm9yZWlnbkNvbnRlbnRT
Y29wZU1hcmtlcigpOwotICAgICAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVs
eSgpOwotICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY3VycmVudE5h
bWVzcGFjZSA9IG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5uYW1lc3BhY2VVUkkoKTsKLSAgICAg
ICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0gTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFjZVVS
SSkKLSAgICAgICAgICAgIGFkanVzdE1hdGhNTEF0dHJpYnV0ZXModG9rZW4pOwotICAgICAgICBp
ZiAoY3VycmVudE5hbWVzcGFjZSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKSB7Ci0gICAg
ICAgICAgICBhZGp1c3RTVkdUYWdOYW1lQ2FzZSh0b2tlbik7Ci0gICAgICAgICAgICBhZGp1c3RT
VkdBdHRyaWJ1dGVzKHRva2VuKTsKLSAgICAgICAgfQotICAgICAgICBhZGp1c3RGb3JlaWduQXR0
cmlidXRlcyh0b2tlbik7Ci0gICAgICAgIG1fdHJlZS5pbnNlcnRGb3JlaWduRWxlbWVudCh0b2tl
biwgY3VycmVudE5hbWVzcGFjZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICBjYXNlIFRl
eHRNb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CkBA
IC0xNzU3LDkgKzE2NjcsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25N
b2RlCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAg
ICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShCZWZvcmVIZWFkTW9kZSk7CiAgICAgICAgIH0KLSAg
ICAgICAgaWYgKG5vZGUtPm5hbWVzcGFjZVVSSSgpID09IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VV
UkkKLSAgICAgICAgICAgIHx8IG5vZGUtPm5hbWVzcGFjZVVSSSgpID09IE1hdGhNTE5hbWVzOjpt
YXRobWxOYW1lc3BhY2VVUkkpCi0gICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJ
bkZvcmVpZ25Db250ZW50TW9kZSk7CiAgICAgICAgIGlmIChsYXN0KSB7CiAgICAgICAgICAgICBB
U1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0
aW9uTW9kZShJbkJvZHlNb2RlKTsKQEAgLTE3OTEsNyArMTY5OCw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW4KICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygp
LT5wb3BVbnRpbFRhYmxlQm9keVNjb3BlTWFya2VyKCk7CiAgICAgICAgIEFTU0VSVChpc1RhYmxl
Qm9keUNvbnRleHRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmxvY2FsTmFtZSgpKSk7CiAg
ICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT50YWdRTmFt
ZSgpKTsKLSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0Vu
ZFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUo
KSA9PSBib2R5VGFnCkBAIC0xODE4LDcgKzE3MjUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc0VuZFRhZ0ZvckluCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAg
ICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwotICAgICAgICBy
ZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2Vu
Lm5hbWUoKSkpIHsKQEAgLTE4MjgsNyArMTczNSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW4KICAgICAgICAgfQogICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyh0
clRhZyk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2Rl
KTsKLSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9
PSBib2R5VGFnCkBAIC0xODcyLDcgKzE3NzksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJv
Y2Vzc0VuZFRhZ0ZvckluCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
Y2xvc2VUaGVDZWxsKCk7Ci0gICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAg
IHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHByb2Nl
c3NFbmRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTg4OCw3ICsxNzk1LDcgQEAgdm9pZCBIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0g
aHRtbFRhZykgewogICAgICAgICBBdG9taWNIVE1MVG9rZW4gZW5kQm9keShIVE1MVG9rZW5UeXBl
czo6RW5kVGFnLCBib2R5VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAgaWYgKHByb2Nlc3NCb2R5
RW5kVGFnRm9ySW5Cb2R5KGVuZEJvZHkpKQotICAgICAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRv
a2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYWRkcmVzc1RhZwpAQCAtMTk0MSw3ICsx
ODQ4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAgICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFn
KHBUYWcpOwogICAgICAgICAgICAgQVNTRVJUKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+aW5TY29w
ZSh0b2tlbi5uYW1lKCkpKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7Cisg
ICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICBtX3RyZWUuZ2VuZXJhdGVJbXBsaWVkRW5kVGFnc1dpdGhFeGNsdXNp
b24odG9rZW4ubmFtZSgpKTsKQEAgLTIxMzcsNyArMjA0NCw3IEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKEF0b20KICAgICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5n
RnJhZ21lbnQoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NFbmRU
YWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICh0
b2tlbi5uYW1lKCkgPT0gYm9keVRhZwpAQCAtMjE2Niw3ICsyMDczLDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2lu
Z0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJl
cHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEluUm93TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlv
bk1vZGUoKSA9PSBJblJvd01vZGUpOwpAQCAtMjE5MCwxMyArMjA5NywxMiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9tCiAgICAgICAgICAgICBzZXRJbnNlcnRpb25N
b2RlKEFmdGVyQWZ0ZXJCb2R5TW9kZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJv
dWdoLgogICAgIGNhc2UgQWZ0ZXJBZnRlckJvZHlNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEFmdGVyQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyQWZ0
ZXJCb2R5TW9kZSk7CiAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICBzZXRJbnNl
cnRpb25Nb2RlKEluQm9keU1vZGUpOwotICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOwor
ICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
bkhlYWROb3NjcmlwdE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5I
ZWFkTm9zY3JpcHRNb2RlKTsKQEAgLTIyNzIsNyArMjE3OCw3IEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKEF0b20KICAgICAgICAgICAgIGlmIChtX3RyZWUub3BlbkVsZW1l
bnRzKCktPmluVGFibGVTY29wZSh0b2tlbi5uYW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgQXRv
bWljSFRNTFRva2VuIGVuZFNlbGVjdChIVE1MVG9rZW5UeXBlczo6RW5kVGFnLCBzZWxlY3RUYWcu
bG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsK
LSAgICAgICAgICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgICAg
IHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0yMzEyLDU5ICsyMjE4LDkgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRUYWcoQXRvbQogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKICAg
ICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5G
b3JlaWduQ29udGVudE1vZGU6Ci0gICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+bmFt
ZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkKLSAgICAgICAgICAgIGFk
anVzdFNWR1RhZ05hbWVDYXNlKHRva2VuKTsKLQotICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09
IFNWR05hbWVzOjpzY3JpcHRUYWcgJiYgbV90cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKLSAgICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOwot
ICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsK
LSAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFpc0luSFRNTE5hbWVzcGFjZShtX3RyZWUu
Y3VycmVudE5vZGUoKSkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUganVzdCB3
YW50cyBhbiBFbGVtZW50KiBpdGVyYXRvciwgaW5zdGVhZCBvZiBhbiBFbGVtZW50UmVjb3JkKgot
ICAgICAgICAgICAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbm9kZVJlY29yZCA9
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9wUmVjb3JkKCk7Ci0gICAgICAgICAgICBpZiAoIW5v
ZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCi0gICAgICAgICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7Ci0gICAgICAgICAgICB3aGlsZSAoMSkgewotICAgICAg
ICAgICAgICAgIGlmIChub2RlUmVjb3JkLT5ub2RlKCktPmhhc0xvY2FsTmFtZSh0b2tlbi5uYW1l
KCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50
aWxQb3BwZWQobm9kZVJlY29yZC0+ZWxlbWVudCgpKTsKLSAgICAgICAgICAgICAgICAgICAgcmVz
ZXRGb3JlaWduSW5zZXJ0aW9uTW9kZSgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5vZGVSZWNvcmQgPSBub2RlUmVjb3Jk
LT5uZXh0KCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoaXNJbkhUTUxOYW1lc3BhY2Uobm9kZVJl
Y29yZC0+bm9kZSgpKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgLy8gQW55IG90aGVyIGVuZCB0YWcgKGFsc28gdGhlIGxhc3Qg
dHdvIHN0ZXBzIG9mICJBbiBlbmQgdGFnLCBpZiB0aGUgY3VycmVudCBub2RlIGlzIG5vdCBhbiBl
bGVtZW50IGluIHRoZSBIVE1MIG5hbWVzcGFjZS4iCi0gICAgICAgIHByb2Nlc3NGb3JlaWduQ29u
dGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0TW9kZSh0b2tlbik7Ci0gICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KIAotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCkKLXsKLSAgICBpZiAobV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcykgewot
ICAgICAgICByZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCk7Ci0gICAgICAgIG1faGFzUGVuZGlu
Z0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMgPSBmYWxzZTsKLSAgICB9Ci19Ci0KLXZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpyZXByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQot
ewotICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7Ci0gICAgcHJvY2Vzc1N0YXJ0VGFnKHRv
a2VuKTsKLX0KLQotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlcHJvY2Vzc0VuZFRhZyhBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQotewotICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7Ci0gICAg
cHJvY2Vzc0VuZFRhZyh0b2tlbik7Ci19Ci0KIGNsYXNzIEhUTUxUcmVlQnVpbGRlcjo6RmFrZUlu
c2VydGlvbk1vZGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZha2VJbnNlcnRpb25Nb2Rl
KTsKIHB1YmxpYzoKQEAgLTIzODYsMjMgKzIyNDIsNiBAQCBwcml2YXRlOgogICAgIEluc2VydGlv
bk1vZGUgbV9vcmlnaW5hbE1vZGU7CiB9OwogCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKEF0b21pY0hUTUxUb2tl
biYgdG9rZW4pCi17Ci0gICAgbV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcyA9
IHRydWU7Ci0gICAgewotICAgICAgICBGYWtlSW5zZXJ0aW9uTW9kZSBmYWtlTW9kZSh0aGlzLCBJ
bkJvZHlNb2RlKTsKLSAgICAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKLSAgICB9Ci0gICAgaWYg
KG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMpCi0gICAgICAgIHJlc2V0Rm9y
ZWlnbkluc2VydGlvbk1vZGUoKTsKLX0KLQotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0Rm9y
ZWlnbkluc2VydGlvbk1vZGUoKQotewotICAgIGlmIChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Gb3Jl
aWduQ29udGVudE1vZGUpCi0gICAgICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHko
KTsKLX0KLQogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NDb21tZW50KEF0b21pY0hUTUxU
b2tlbiYgdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBl
czo6Q29tbWVudCk7CkBAIC0yNDk4LDcgKzIzMzcsNiBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAg
ICAgIEFTU0VSVChtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMuaXNFbXB0eSgpKTsKICAgICAgICAg
bV9vcmlnaW5hbEluc2VydGlvbk1vZGUgPSBtX2luc2VydGlvbk1vZGU7CiAgICAgICAgIHNldElu
c2VydGlvbk1vZGUoSW5UYWJsZVRleHRNb2RlKTsKLSAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNz
VG9rZW4oKTsKICAgICAgICAgLy8gRmFsbCB0aHJvdWdoLgogICAgIH0KICAgICBjYXNlIEluVGFi
bGVUZXh0TW9kZTogewpAQCAtMjUxOSw3ICsyMzU3LDYgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAg
ICAgICAgICAgaWYgKGJ1ZmZlci5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9Ci0gICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIGdv
dG8gUmVwcm9jZXNzQnVmZmVyOwogICAgIH0KICAgICBjYXNlIEFmdGVyQm9keU1vZGU6CkBAIC0y
NTI3LDcgKzIzNjQsNiBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIEFTU0VSVChpbnNlcnRp
b25Nb2RlKCkgPT0gQWZ0ZXJCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJBZnRl
ckJvZHlNb2RlKTsKICAgICAgICAgLy8gRklYTUU6IHBhcnNlIGVycm9yCiAgICAgICAgIHNldElu
c2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7Ci0gICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2Vu
KCk7CiAgICAgICAgIGdvdG8gUmVwcm9jZXNzQnVmZmVyOwogICAgICAgICBicmVhazsKICAgICB9
CkBAIC0yNTYzLDE0ICsyMzk5LDYgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAgICAgICBtX3RyZWUu
aW5zZXJ0VGV4dE5vZGUoYnVmZmVyLnRha2VSZW1haW5pbmcoKSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KLSAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOiB7Ci0gICAgICAgIEFTU0VSVChp
bnNlcnRpb25Nb2RlKCkgPT0gSW5Gb3JlaWduQ29udGVudE1vZGUpOwotICAgICAgICBTdHJpbmcg
Y2hhcmFjdGVycyA9IGJ1ZmZlci50YWtlUmVtYWluaW5nKCk7Ci0gICAgICAgIG1fdHJlZS5pbnNl
cnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKLSAgICAgICAgaWYgKG1fZnJhbWVzZXRPayAmJiAhaXNB
bGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMpKQotICAgICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFs
c2U7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICBjYXNlIEFmdGVyQWZ0ZXJGcmFtZXNldE1v
ZGU6IHsKICAgICAgICAgU3RyaW5nIGxlYWRpbmdXaGl0ZXNwYWNlID0gYnVmZmVyLnRha2VSZW1h
aW5pbmdXaGl0ZXNwYWNlKCk7CiAgICAgICAgIGlmICghbGVhZGluZ1doaXRlc3BhY2UuaXNFbXB0
eSgpKSB7CkBAIC0yNjQ2LDExICsyNDc0LDYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NFbmRPZkZpbGUoQQogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwog
ICAgICAgICAgICAgcmV0dXJuOyAvLyBGSVhNRTogU2hvdWxkIHdlIGJyZWFrIGhlcmUgaW5zdGVh
ZCBvZiByZXR1cm5pbmc/CiAgICAgICAgIH0KLSAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKLSAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7Ci0gICAgICAgIHJldHVybjsK
LSAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOgotICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEluQm9keU1vZGUpOwogICAgICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgSW5UYWJsZVRleHRNb2RlOgpAQCAtMjY2NCw3ICsyNDg3LDYgQEAg
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQQogICAgICAgICBtX3RyZWUu
b3BlbkVsZW1lbnRzKCktPnBvcCgpOwogICAgICAgICBBU1NFUlQobV9vcmlnaW5hbEluc2VydGlv
bk1vZGUgIT0gVGV4dE1vZGUpOwogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJ
bnNlcnRpb25Nb2RlKTsKLSAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAg
ICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0y
Njc5LDcgKzI1MDEsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluaXRpYWwo
CiAgICAgICAgIG1fZG9jdW1lbnQtPnNldENvbXBhdGliaWxpdHlNb2RlKERvY3VtZW50OjpRdWly
a3NNb2RlKTsKICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEJlZm9yZUhUTUxNb2RlKTsKLSAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2
b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckJlZm9yZUhUTUwoKQpAQCAtMjY4NywyOCAr
MjUwOCwyNCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckJlZm9yZUhUCiAgICAg
QXRvbWljSFRNTFRva2VuIHN0YXJ0SFRNTChIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcsIGh0bWxU
YWcubG9jYWxOYW1lKCkpOwogICAgIG1fdHJlZS5pbnNlcnRIVE1MSHRtbFN0YXJ0VGFnQmVmb3Jl
SFRNTChzdGFydEhUTUwpOwogICAgIHNldEluc2VydGlvbk1vZGUoQmVmb3JlSGVhZE1vZGUpOwot
ICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9yQmVmb3JlSGVhZCgpCiB7CiAgICAgQXRvbWljSFRNTFRva2VuIHN0YXJ0SGVh
ZChIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcsIGhlYWRUYWcubG9jYWxOYW1lKCkpOwogICAgIHBy
b2Nlc3NTdGFydFRhZyhzdGFydEhlYWQpOwotICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7
CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5IZWFkKCkKIHsKICAgICBB
dG9taWNIVE1MVG9rZW4gZW5kSGVhZChIVE1MVG9rZW5UeXBlczo6RW5kVGFnLCBoZWFkVGFnLmxv
Y2FsTmFtZSgpKTsKICAgICBwcm9jZXNzRW5kVGFnKGVuZEhlYWQpOwotICAgIHByZXBhcmVUb1Jl
cHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5I
ZWFkTm9zY3JpcHQoKQogewogICAgIEF0b21pY0hUTUxUb2tlbiBlbmROb3NjcmlwdChIVE1MVG9r
ZW5UeXBlczo6RW5kVGFnLCBub3NjcmlwdFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgcHJvY2Vzc0Vu
ZFRhZyhlbmROb3NjcmlwdCk7Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAog
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JBZnRlckhlYWQoKQpAQCAtMjcxNiw3ICsy
NTMzLDYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JBZnRlckhlYQogICAgIEF0
b21pY0hUTUxUb2tlbiBzdGFydEJvZHkoSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnLCBib2R5VGFn
LmxvY2FsTmFtZSgpKTsKICAgICBwcm9jZXNzU3RhcnRUYWcoc3RhcnRCb2R5KTsKICAgICBtX2Zy
YW1lc2V0T2sgPSB0cnVlOwotICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKQpAQCAtMjczMCwxMiAr
MjU0NiwxMCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluVGFibGVUCiAgICAg
ICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzLCBOb3RBbGxXaGl0ZXNwYWNlKTsK
ICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUo
bV9vcmlnaW5hbEluc2VydGlvbk1vZGUpOwotICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tl
bigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShj
aGFyYWN0ZXJzKTsKICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJbnNlcnRpb25Nb2Rl
KTsKLSAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiBib29sIEhUTUxUcmVlQnVp
bGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5IZWFkKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCkBA
IC0yODE5LDYgKzI2MzMsMTUxIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU2NyaXB0
U3RhcnQKICAgICBzZXRJbnNlcnRpb25Nb2RlKFRleHRNb2RlKTsKIH0KIAorLy8gaHR0cDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1j
b25zdHJ1Y3Rpb24uaHRtbCN0cmVlLWNvbnN0cnVjdGlvbgorYm9vbCBIVE1MVHJlZUJ1aWxkZXI6
OnNob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKK3sKKyAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5zdGFja0RlcHRoKCkgPT0gMCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIENvbnRhaW5lck5vZGUqIG5vZGUgPSBtX3RyZWUu
Y3VycmVudE5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoaXNJbkhUTUxOYW1lc3BhY2Uobm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoSFRNTEVsZW1lbnRTdGFjazo6aXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChub2Rl
KSkgeworICAgICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpTdGFydFRh
ZworICAgICAgICAgICAgJiYgdG9rZW4ubmFtZSgpICE9IE1hdGhNTE5hbWVzOjptZ2x5cGhUYWcu
bG9jYWxOYW1lKCkKKyAgICAgICAgICAgICYmIHRva2VuLm5hbWUoKSAhPSBNYXRoTUxOYW1lczo6
bWFsaWdubWFya1RhZy5sb2NhbE5hbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6Q2hhcmFjdGVyKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6YW5ub3RhdGlvbl94bWxUYWcpCisgICAgICAgICYmIHRva2VuLnR5cGUoKSA9
PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcKKyAgICAgICAgJiYgdG9rZW4ubmFtZSgpID09IFNW
R05hbWVzOjpzdmdUYWcubG9jYWxOYW1lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoSFRNTEVsZW1lbnRTdGFjazo6aXNIVE1MSW50ZWdyYXRpb25Qb2ludChub2RlKSkgeworICAg
ICAgICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZykKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9r
ZW5UeXBlczo6Q2hhcmFjdGVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
K3sKKyAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6
OlVuaW5pdGlhbGl6ZWQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpET0NUWVBFOgorICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6U3Rh
cnRUYWc6IHsKKyAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBiVGFnCisgICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gYmlnVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
YmxvY2txdW90ZVRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJvZHlUYWcKKyAg
ICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBiclRhZworICAgICAgICAgICAgfHwgdG9rZW4u
bmFtZSgpID09IGNlbnRlclRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGNvZGVU
YWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkZFRhZworICAgICAgICAgICAgfHwg
dG9rZW4ubmFtZSgpID09IGRpdlRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGRs
VGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gZHRUYWcKKyAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBlbVRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGVt
YmVkVGFnCisgICAgICAgICAgICB8fCBpc051bWJlcmVkSGVhZGVyVGFnKHRva2VuLm5hbWUoKSkK
KyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBoZWFkVGFnCisgICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gaHJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBpVGFn
CisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gaW1nVGFnCisgICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gbGlUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBsaXN0
aW5nVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbWVudVRhZworICAgICAgICAg
ICAgfHwgdG9rZW4ubmFtZSgpID09IG1ldGFUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUo
KSA9PSBub2JyVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gb2xUYWcKKyAgICAg
ICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBwVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1l
KCkgPT0gcHJlVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gcnVieVRhZworICAg
ICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHNUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSBzbWFsbFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHNwYW5UYWcK
KyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzdHJvbmdUYWcKKyAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBzdHJpa2VUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBzdWJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzdXBUYWcKKyAgICAgICAg
ICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0YWJsZVRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFt
ZSgpID09IHR0VGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdVRhZworICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHVsVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1l
KCkgPT0gdmFyVGFnCisgICAgICAgICAgICB8fCAodG9rZW4ubmFtZSgpID09IGZvbnRUYWcgJiYg
KHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oY29sb3JBdHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJ
dGVtKGZhY2VBdHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKHNpemVBdHRyKSkpKSB7Cisg
ICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKKyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+cG9wVW50aWxGb3JlaWduQ29udGVudFNjb3BlTWFya2VyKCk7CisgICAgICAgICAg
ICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY3VycmVudE5hbWVzcGFjZSA9IG1fdHJlZS5j
dXJyZW50RWxlbWVudCgpLT5uYW1lc3BhY2VVUkkoKTsKKyAgICAgICAgaWYgKGN1cnJlbnROYW1l
c3BhY2UgPT0gTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGFk
anVzdE1hdGhNTEF0dHJpYnV0ZXModG9rZW4pOworICAgICAgICBpZiAoY3VycmVudE5hbWVzcGFj
ZSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKSB7CisgICAgICAgICAgICBhZGp1c3RTVkdU
YWdOYW1lQ2FzZSh0b2tlbik7CisgICAgICAgICAgICBhZGp1c3RTVkdBdHRyaWJ1dGVzKHRva2Vu
KTsKKyAgICAgICAgfQorICAgICAgICBhZGp1c3RGb3JlaWduQXR0cmlidXRlcyh0b2tlbik7Cisg
ICAgICAgIG1fdHJlZS5pbnNlcnRGb3JlaWduRWxlbWVudCh0b2tlbiwgY3VycmVudE5hbWVzcGFj
ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpFbmRU
YWc6IHsKKyAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpLT5uYW1lc3BhY2VVUkkoKSA9
PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKQorICAgICAgICAgICAgYWRqdXN0U1ZHVGFnTmFt
ZUNhc2UodG9rZW4pOworCisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gU1ZHTmFtZXM6OnNj
cmlwdFRhZyAmJiBtX3RyZWUuY3VycmVudE5vZGUoKS0+aGFzVGFnTmFtZShTVkdOYW1lczo6c2Ny
aXB0VGFnKSkgeworICAgICAgICAgICAgbV9pc1BhdXNlZCA9IHRydWU7CisgICAgICAgICAgICBt
X3NjcmlwdFRvUHJvY2VzcyA9IG1fdHJlZS5jdXJyZW50RWxlbWVudCgpOworICAgICAgICAgICAg
bV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoIWlzSW5IVE1MTmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgp
KSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBqdXN0IHdhbnRzIGFuIEVsZW1l
bnQqIGl0ZXJhdG9yLCBpbnN0ZWFkIG9mIGFuIEVsZW1lbnRSZWNvcmQqCisgICAgICAgICAgICBI
VE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBub2RlUmVjb3JkID0gbV90cmVlLm9wZW5F
bGVtZW50cygpLT50b3BSZWNvcmQoKTsKKyAgICAgICAgICAgIGlmICghbm9kZVJlY29yZC0+bm9k
ZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKKyAgICAgICAgICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKKyAgICAgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICAgICAgaWYg
KG5vZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFBvcHBlZChub2Rl
UmVjb3JkLT5lbGVtZW50KCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5vZGVSZWNvcmQgPSBub2RlUmVjb3JkLT5uZXh0
KCk7CisKKyAgICAgICAgICAgICAgICBpZiAoaXNJbkhUTUxOYW1lc3BhY2Uobm9kZVJlY29yZC0+
bm9kZSgpKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgLy8gT3RoZXJ3aXNlLCBwcm9jZXNzIHRoZSB0b2tlbiBhY2NvcmRpbmcg
dG8gdGhlIHJ1bGVzIGdpdmVuIGluIHRoZSBzZWN0aW9uIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGN1
cnJlbnQgaW5zZXJ0aW9uIG1vZGUgaW4gSFRNTCBjb250ZW50LgorICAgICAgICBwcm9jZXNzRW5k
VGFnKHRva2VuKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgSFRNTFRva2VuVHlw
ZXM6OkNvbW1lbnQ6CisgICAgICAgIG1fdHJlZS5pbnNlcnRDb21tZW50KHRva2VuKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcjogeworICAgICAg
ICBTdHJpbmcgY2hhcmFjdGVycyA9IFN0cmluZyh0b2tlbi5jaGFyYWN0ZXJzKCkuZGF0YSgpLCB0
b2tlbi5jaGFyYWN0ZXJzKCkuc2l6ZSgpKTsKKyAgICAgICAgbV90cmVlLmluc2VydFRleHROb2Rl
KGNoYXJhY3RlcnMpOworICAgICAgICBpZiAobV9mcmFtZXNldE9rICYmICFpc0FsbFdoaXRlc3Bh
Y2UoY2hhcmFjdGVycykpCisgICAgICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OkVuZE9mRmlsZToKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwog
dm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmZpbmlzaGVkKCkKIHsKICAgICBpZiAoaXNQYXJzaW5nRnJh
Z21lbnQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCShyZXZpc2lvbiAxMDI2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw2IEBAIHByaXZh
dGU6CiAgICAgICAgIEluQ2VsbE1vZGUsCiAgICAgICAgIEluU2VsZWN0TW9kZSwKICAgICAgICAg
SW5TZWxlY3RJblRhYmxlTW9kZSwKLSAgICAgICAgSW5Gb3JlaWduQ29udGVudE1vZGUsCiAgICAg
ICAgIEFmdGVyQm9keU1vZGUsCiAgICAgICAgIEluRnJhbWVzZXRNb2RlLAogICAgICAgICBBZnRl
ckZyYW1lc2V0TW9kZSwKQEAgLTE2OCwxMCArMTY3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRl
ZmF1bHRGb3JBZnRlckhlYWQoKTsKICAgICB2b2lkIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwog
Ci0gICAgdm9pZCBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwotCi0gICAgdm9pZCByZXByb2Nl
c3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKLSAgICB2b2lkIHJlcHJvY2Vzc0VuZFRhZyhB
dG9taWNIVE1MVG9rZW4mKTsKKyAgICBib29sIHNob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNv
bnRlbnQoQXRvbWljSFRNTFRva2VuJik7CisgICAgdm9pZCBwcm9jZXNzVG9rZW5JbkZvcmVpZ25D
b250ZW50KEF0b21pY0hUTUxUb2tlbiYpOwogCiAgICAgUGFzc1JlZlB0cjxOYW1lZE5vZGVNYXA+
IGF0dHJpYnV0ZXNGb3JJc2luZGV4SW5wdXQoQXRvbWljSFRNTFRva2VuJik7CiAKQEAgLTIwMyw5
ICsyMDAsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNldEluc2VydGlvbk1vZGVBcHByb3By
aWF0ZWx5KCk7CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5Cb2R5TW9k
ZUFuZFJlc2V0TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKTsKLSAgICB2b2lkIHJlc2V0Rm9y
ZWlnbkluc2VydGlvbk1vZGUoKTsKLQogICAgIGNsYXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQg
ewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsK
ICAgICBwdWJsaWM6CkBAIC0yNTcsOCArMjUxLDYgQEAgcHJpdmF0ZToKICAgICBUZXh0UG9zaXRp
b24gbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb247CiAKICAgICBib29sIG1fdXNlUHJl
SFRNTDVQYXJzZXJRdWlya3M7Ci0KLSAgICBib29sIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRp
b25Nb2RlU3RlcHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aGF0
dHJzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4J
KHJldmlzaW9uIDEwMjYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw3IEBAIGNsb3NlCiBjb2xvcgogZGVmaW5pdGlvblVS
TAogZGVub21hbGlnbgorZW5jb2RpbmcKIGZvbnRmYW1pbHkKIGZvbnRzaXplCiBmb250c3R5bGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119307</attachid>
            <date>2011-12-14 15:14:51 -0800</date>
            <delta_ts>2011-12-14 16:10:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68106-20111214151449.patch</filename>
            <type>text/plain</type>
            <size>64003</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjgyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTEyLTE0ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgPHRhYmxlPjx0cj48dGQ+PHN2Zz48
ZGVzYz48dGQ+IHBhcnNlcyBpbmNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgb3VyIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBIVE1MNSBwYXJzZXIgdG8gYWNjb3VudAorICAgICAgICBmb3IgcmVjZW50IGNoYW5n
ZXMgaW4gdGhlIHNwZWMuICBUaGUgbWFpbiBjaGFuZ2UgaW4gdGhpcyBwYXRjaCBpcyB0bworICAg
ICAgICByZW1vdmUgdGhlICJpbiBmb3JlaWduIGNvbnRlbnQiIHN0YXRlIGZyb20gdGhlIHRyZWUg
YnVpbGRlci4gIFJhdGhlcgorICAgICAgICB0aGFuIG1haW50YWluaW5nIHRoaXMgYXMgYSBzZXBh
cmF0ZSBzdGF0ZSwgdGhlIHBhcnNlciBub3cgaW50cm9zcGVjdHMKKyAgICAgICAgb24gdGhlIHN0
YWNrIG9mIG9wZW4gZWxlbWVudHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHBhcnNlciBpcyBp
bgorICAgICAgICBmb3JpZWduIGNvbnRlbnQuICBJbiB0aGUgcHJvY2VzcywgSSd2ZSBkZWxldGVk
IHNvbWUgbm93LXVudXNlZAorICAgICAgICBtYWNoaW5lcnkgaW4gdGhlIHRyZWUgYnVpbGRlci4K
KworICAgICAgICBUZXN0ZWQgYnkgdGhlIGh0bWw1bGliIExheW91dFRlc3RzLiAgVGhlc2UgdGVz
dHMgc28gdGhlIHByb2dyZXNzaW9uIGluCisgICAgICAgIG91ciB0ZXN0IGNvbXBsaWFuY2UuCisK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcDoKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIu
aDoKKyAgICAgICAgKiBtYXRobWwvbWF0aGF0dHJzLmluOgorCiAyMDExLTEyLTE0ICBKb25hdGhh
biBCYWNrZXIgIDxiYWNrZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUGx1
bWIgdGhyb3VnaCBmbGFnIGZvciBlbmFibGluZyBwYXJ0aWFsIHN3YXAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwCShyZXZpc2lvbiAx
MDI2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDE0ICsxMDcsOCBAQCBpbmxpbmUgYm9vbCBpc1RhYmxl
Um93U2NvcGVNYXJrZXIoQ29udGFpCiAKIGlubGluZSBib29sIGlzRm9yZWlnbkNvbnRlbnRTY29w
ZU1hcmtlcihDb250YWluZXJOb2RlKiBub2RlKQogewotICAgIHJldHVybiBub2RlLT5oYXNUYWdO
YW1lKE1hdGhNTE5hbWVzOjptaVRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRo
TUxOYW1lczo6bW9UYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6
Om1uVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykK
LSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcpCi0gICAg
ICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpCi0gICAg
ICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmRlc2NUYWcpCi0gICAgICAgIHx8IG5v
ZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFnKQorICAgIHJldHVybiBIVE1MRWxlbWVu
dFN0YWNrOjppc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KG5vZGUpCisgICAgICAgIHx8IEhU
TUxFbGVtZW50U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQobm9kZSkKICAgICAgICAgfHwg
aXNJbkhUTUxOYW1lc3BhY2Uobm9kZSk7CiB9CiAKQEAgLTI3Niw2ICsyNzAsMzYgQEAgdm9pZCBI
VE1MRWxlbWVudFN0YWNrOjpwb3BVbnRpbFRhYmxlUm93UwogICAgICAgICBwb3AoKTsKIH0KIAor
Ly8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNtYXRobWwtdGV4dC1pbnRlZ3JhdGlvbi1wb2lu
dAorYm9vbCBIVE1MRWxlbWVudFN0YWNrOjppc01hdGhNTFRleHRJbnRlZ3JhdGlvblBvaW50KENv
bnRhaW5lck5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG5vZGUpOworICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5h
bWVzOjptaVRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6
bW9UYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1uVGFn
KQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykKKyAg
ICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcpOworfQor
CisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90cmVlLWNvbnN0cnVjdGlvbi5odG1sI2h0bWwtaW50ZWdyYXRpb24tcG9pbnQKK2Jv
b2wgSFRNTEVsZW1lbnRTdGFjazo6aXNIVE1MSW50ZWdyYXRpb25Qb2ludChDb250YWluZXJOb2Rl
KiBub2RlKQoreworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihu
b2RlKTsKKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6YW5ub3RhdGlv
bl94bWxUYWcpKSB7CisgICAgICAgIC8vIEZJWE1FOiBUZWNobmljYWxseSB3ZSBzaG91bGRuJ3Qg
cmVhZCBiYWNrIGZyb20gdGhlIERPTSBoZXJlLgorICAgICAgICBTdHJpbmcgZW5jb2RpbmcgPSBl
bGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjplbmNvZGluZ0F0dHIpOworICAg
ICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UoZW5jb2RpbmcsICJ0ZXh0L2h0bWwiKQorICAg
ICAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2UoZW5jb2RpbmcsICJhcHBsaWNhdGlvbi94aHRt
bCt4bWwiKTsKKyAgICB9CisgICAgcmV0dXJuIGVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6
OmZvcmVpZ25PYmplY3RUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFt
ZXM6OmRlc2NUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRp
dGxlVGFnKTsKK30KKwogdm9pZCBIVE1MRWxlbWVudFN0YWNrOjpwb3BVbnRpbEZvcmVpZ25Db250
ZW50U2NvcGVNYXJrZXIoKQogewogICAgIHdoaWxlICghaXNGb3JlaWduQ29udGVudFNjb3BlTWFy
a2VyKHRvcE5vZGUoKSkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxl
bWVudFN0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TEVsZW1lbnRTdGFjay5oCShyZXZpc2lvbiAxMDI2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTks
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3BIVE1MQm9keUVsZW1lbnQoKTsKICAgICB2b2lkIHBv
cEFsbCgpOwogCisgICAgc3RhdGljIGJvb2wgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChD
b250YWluZXJOb2RlKik7CisgICAgc3RhdGljIGJvb2wgaXNIVE1MSW50ZWdyYXRpb25Qb2ludChD
b250YWluZXJOb2RlKik7CisKICAgICB2b2lkIHJlbW92ZShFbGVtZW50Kik7CiAgICAgdm9pZCBy
ZW1vdmVIVE1MSGVhZEVsZW1lbnQoRWxlbWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDEwMjYwNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM1Myw3ICszNTMsNiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRl
cihIVE1MRG9jCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFs
aXplZFBvc2l0aW9uVmFsdWUxKCkpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3Np
dGlvbihUZXh0UG9zaXRpb246OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVI
VE1MNVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVu
ZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiB9CiAKQEAgLTM3Miw3ICsz
NzEsNiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jCiAgICAgLCBt
X3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFsaXplZFBvc2l0aW9uVmFsdWUx
KCkpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb246
OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1
c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRp
b25Nb2RlU3RlcHMoZmFsc2UpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgYXNzZXJ0aW9uIHdpbGwg
YmVjb21lIGludmFsaWQgaWYgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjAzMTY+IGlzIGZpeGVkLgog
ICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7CkBAIC00NTksMTMgKzQ1NywxNiBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21UCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpjb25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB7
Ci0gICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICBpZiAoc2hvdWxkUHJvY2Vzc1Rva2VuSW5G
b3JlaWduQ29udGVudCh0b2tlbikpCisgICAgICAgIHByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRl
bnQodG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKIAogICAg
IC8vIFN3YWxsb3dpbmcgVSswMDAwIGNoYXJhY3RlcnMgaXNuJ3QgaW4gdGhlIEhUTUw1IHNwZWMs
IGJ1dCB0dXJuaW5nIGFsbAogICAgIC8vIHRoZSBVKzAwMDAgY2hhcmFjdGVycyBpbnRvIHJlcGxh
Y2VtZW50IGNoYXJhY3RlcnMgaGFzIGNvbXBhdGliaWxpdHkKICAgICAvLyBwcm9ibGVtcy4KLSAg
ICBtX3BhcnNlci0+dG9rZW5pemVyKCktPnNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50
KG1faW5zZXJ0aW9uTW9kZSA9PSBUZXh0TW9kZSB8fCBtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3Jl
aWduQ29udGVudE1vZGUpOwotICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U2hvdWxkQWxs
b3dDREFUQShtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3JlaWduQ29udGVudE1vZGUgJiYgIWlzSW5I
VE1MTmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgpKSk7CisgICAgbV9wYXJzZXItPnRva2Vu
aXplcigpLT5zZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudChtX2luc2VydGlvbk1vZGUg
PT0gVGV4dE1vZGUpOworICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U2hvdWxkQWxsb3dD
REFUQShtX3RyZWUub3BlbkVsZW1lbnRzKCktPnN0YWNrRGVwdGgoKSA+IDAgJiYgIWlzSW5IVE1M
TmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgpKSk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzVG9rZW4oQXRvbWljSFRNTFRva2VuJiB0b2tlbikKQEAgLTg0MCw3ICs4NDEs
NyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAgICAgIGlm
IChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluU2NvcGUoYnV0dG9uVGFnKSkgewogICAgICAgICAg
ICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBwcm9jZXNzRmFrZUVuZFRhZyhidXR0
b25UYWcpOwotICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOyAvLyBGSVhNRTog
Q291bGQgd2UganVzdCBmYWxsIHRocm91Z2ggaGVyZT8KKyAgICAgICAgICAgIHByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7IC8vIEZJWE1FOiBDb3VsZCB3ZSBqdXN0IGZhbGwgdGhyb3VnaCBoZXJlPwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG1fdHJlZS5yZWNvbnN0cnVj
dFRoZUFjdGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwpAQCAtODk3LDcgKzg5OCw2IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAgICAgcGFyc2VFcnJvcih0
b2tlbik7CiAgICAgICAgIC8vIEFwcGFyZW50bHkgd2UncmUgbm90IHN1cHBvc2VkIHRvIGFzay4K
ICAgICAgICAgdG9rZW4uc2V0TmFtZShpbWdUYWcubG9jYWxOYW1lKCkpOwotICAgICAgICBwcmVw
YXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBOb3RlIHRoZSBmYWxsIHRocm91Z2gg
dG8gdGhlIGltZ1RhZyBoYW5kbGluZyBiZWxvdyEKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUo
KSA9PSBhcmVhVGFnCkBAIC0xMDA0LDggKzEwMDQsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAgICAgIGFkanVzdE1hdGhNTEF0dHJpYnV0ZXModG9rZW4p
OwogICAgICAgICBhZGp1c3RGb3JlaWduQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIG1fdHJl
ZS5pbnNlcnRGb3JlaWduRWxlbWVudCh0b2tlbiwgTWF0aE1MTmFtZXM6Om1hdGhtbE5hbWVzcGFj
ZVVSSSk7Ci0gICAgICAgIGlmIChtX2luc2VydGlvbk1vZGUgIT0gSW5Gb3JlaWduQ29udGVudE1v
ZGUgJiYgIXRva2VuLnNlbGZDbG9zaW5nKCkpCi0gICAgICAgICAgICBzZXRJbnNlcnRpb25Nb2Rl
KEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAo
dG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzdmdUYWcubG9jYWxOYW1lKCkpIHsKQEAgLTEwMTMs
OCArMTAxMSw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAg
ICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIGFkanVzdEZvcmVpZ25B
dHRyaWJ1dGVzKHRva2VuKTsKICAgICAgICAgbV90cmVlLmluc2VydEZvcmVpZ25FbGVtZW50KHRv
a2VuLCBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKTsKLSAgICAgICAgaWYgKG1faW5zZXJ0aW9u
TW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSAmJiAhdG9rZW4uc2VsZkNsb3NpbmcoKSkKLSAg
ICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGlmIChpc0NhcHRpb25Db2xPckNvbGdyb3VwVGFnKHRva2Vu
Lm5hbWUoKSkKQEAgLTEwNzUsNyArMTA3MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzU3RhcnRUYWdGb3IKICAgICBpZiAodG9rZW4ubmFtZSgpID09IGNvbFRhZykgewogICAgICAg
ICBwcm9jZXNzRmFrZVN0YXJ0VGFnKGNvbGdyb3VwVGFnKTsKICAgICAgICAgQVNTRVJUKEluQ29s
dW1uR3JvdXBNb2RlKTsKLSAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAg
ICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlm
IChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4ubmFtZSgpKSkgewpAQCAtMTA4OCw3ICsxMDg0
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gdHJUYWcpIHsKICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyh0
Ym9keVRhZyk7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlN
b2RlKTsKLSAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNz
U3RhcnRUYWcodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5u
YW1lKCkgPT0gdGFibGVUYWcpIHsKQEAgLTEwOTcsNyArMTA5Myw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdG
cmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICByZXBy
b2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBzdHlsZVRhZyB8
fCB0b2tlbi5uYW1lKCkgPT0gc2NyaXB0VGFnKSB7CkBAIC0xMTI2LDMwICsxMTIyLDYgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgIHByb2Nlc3NTdGFydFRh
Z0ZvckluQm9keSh0b2tlbik7CiB9CiAKLW5hbWVzcGFjZSB7Ci0KLWJvb2wgc2hvdWxkUHJvY2Vz
c0ZvcmVpZ25Db250ZW50VXNpbmdJbkJvZHlJbnNlcnRpb25Nb2RlKEF0b21pY0hUTUxUb2tlbiYg
dG9rZW4sIENvbnRhaW5lck5vZGUqIGN1cnJlbnRFbGVtZW50KQotewotICAgIEFTU0VSVCh0b2tl
bi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnKTsKLSAgICBpZiAoY3VycmVudEVs
ZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1pVGFnKQotICAgICAgICB8fCBjdXJyZW50
RWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW9UYWcpCi0gICAgICAgIHx8IGN1cnJl
bnRFbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptblRhZykKLSAgICAgICAgfHwgY3Vy
cmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1zVGFnKQotICAgICAgICB8fCBj
dXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcpKSB7Ci0gICAg
ICAgIHJldHVybiB0b2tlbi5uYW1lKCkgIT0gTWF0aE1MTmFtZXM6Om1nbHlwaFRhZwotICAgICAg
ICAgICAgJiYgdG9rZW4ubmFtZSgpICE9IE1hdGhNTE5hbWVzOjptYWxpZ25tYXJrVGFnOwotICAg
IH0KLSAgICBpZiAoY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90
YXRpb25feG1sVGFnKSkKLSAgICAgICAgcmV0dXJuIHRva2VuLm5hbWUoKSA9PSBTVkdOYW1lczo6
c3ZnVGFnOwotICAgIGlmIChjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6Zm9y
ZWlnbk9iamVjdFRhZykKLSAgICAgICAgfHwgY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZH
TmFtZXM6OmRlc2NUYWcpCi0gICAgICAgIHx8IGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKFNW
R05hbWVzOjp0aXRsZVRhZykpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBpc0lu
SFRNTE5hbWVzcGFjZShjdXJyZW50RWxlbWVudCk7Ci19Ci0KLX0KLQogdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewogICAgIEFT
U0VSVCh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnKTsKQEAgLTEyNDQs
NyArMTIxNiw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXQKICAg
ICAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWco
dG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9r
ZW4pOwpAQCAtMTI2Myw3ICsxMjM1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZyhBdAogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRv
a2VuKTsKKyAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBJblRhYmxlQm9keU1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkg
PT0gSW5UYWJsZUJvZHlNb2RlKTsKQEAgLTEyNzcsNyArMTI0OSw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyh0clRhZyk7CiAgICAgICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluUm93TW9kZSk7Ci0gICAgICAgICAgICByZXByb2Nl
c3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChpc0NhcHRpb25Db2xP
ckNvbGdyb3VwVGFnKHRva2VuLm5hbWUoKSkgfHwgaXNUYWJsZUJvZHlDb250ZXh0VGFnKHRva2Vu
Lm5hbWUoKSkpIHsKQEAgLTEyOTAsNyArMTI2Miw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9w
VW50aWxUYWJsZUJvZHlTY29wZU1hcmtlcigpOwogICAgICAgICAgICAgQVNTRVJUKGlzVGFibGVC
b2R5Q29udGV4dFRhZyhtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+bG9jYWxOYW1lKCkpKTsKICAg
ICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT50YWdR
TmFtZSgpKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAg
ICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5UYWJsZSh0b2tlbik7CkBAIC0xMzEyLDcg
KzEyODQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgQVNTRVJUKGlu
c2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwotICAgICAgICAgICAgcmVwcm9jZXNz
U3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJ
blRhYmxlKHRva2VuKTsKQEAgLTEzMzAsNyArMTMwMiw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBjbG9zZVRoZUNlbGwoKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5C
b2R5KHRva2VuKTsKQEAgLTEzNDMsNyArMTMxNSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwotICAgICAgICByZXByb2Nlc3NTdGFydFRh
Zyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9u
TW9kZSgpID09IEluSGVhZE5vc2NyaXB0TW9kZSk7CkBAIC0xNDExLDcgKzEzODMsNyBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKHRva2VuKTsKICAgICAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRTZWxlY3QoSFRNTFRv
a2VuVHlwZXM6OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAgICAgIHBy
b2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRv
a2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgLy8gRmFsbCB0aHJvdWdoCkBAIC0xNDU3LDcgKzE0
MjksNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBBdG9taWNIVE1MVG9rZW4gZW5kU2VsZWN0KEhUTUxUb2tlblR5
cGVzOjpFbmRUYWcsIHNlbGVjdFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICBwcm9jZXNz
RW5kVGFnKGVuZFNlbGVjdCk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7
CisgICAgICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gc2NyaXB0VGFnKSB7CkBA
IC0xNDcwLDY4ICsxNDQyLDYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRh
ZyhBdAogICAgICAgICBkZWZhdWx0Rm9ySW5UYWJsZVRleHQoKTsKICAgICAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbkZvcmVpZ25Db250ZW50
TW9kZTogewotICAgICAgICBpZiAoc2hvdWxkUHJvY2Vzc0ZvcmVpZ25Db250ZW50VXNpbmdJbkJv
ZHlJbnNlcnRpb25Nb2RlKHRva2VuLCBtX3RyZWUuY3VycmVudE5vZGUoKSkpIHsKLSAgICAgICAg
ICAgIHByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0TW9kZSh0b2tl
bik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHRva2VuLm5h
bWUoKSA9PSBiVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gYmlnVGFnCi0gICAg
ICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gYmxvY2txdW90ZVRhZwotICAgICAgICAgICAgfHwg
dG9rZW4ubmFtZSgpID09IGJvZHlUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBi
clRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGNlbnRlclRhZwotICAgICAgICAg
ICAgfHwgdG9rZW4ubmFtZSgpID09IGNvZGVUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUo
KSA9PSBkZFRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGRpdlRhZwotICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGRsVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1l
KCkgPT0gZHRUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBlbVRhZwotICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGVtYmVkVGFnCi0gICAgICAgICAgICB8fCBpc051bWJl
cmVkSGVhZGVyVGFnKHRva2VuLm5hbWUoKSkKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBoZWFkVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gaHJUYWcKLSAgICAgICAg
ICAgIHx8IHRva2VuLm5hbWUoKSA9PSBpVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkg
PT0gaW1nVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbGlUYWcKLSAgICAgICAg
ICAgIHx8IHRva2VuLm5hbWUoKSA9PSBsaXN0aW5nVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gbWVudVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG1ldGFUYWcK
LSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBub2JyVGFnCi0gICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gb2xUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBwVGFn
Ci0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gcHJlVGFnCi0gICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gcnVieVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHNU
YWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzbWFsbFRhZwotICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IHNwYW5UYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBzdHJvbmdUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzdHJpa2VUYWcKLSAg
ICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzdWJUYWcKLSAgICAgICAgICAgIHx8IHRva2Vu
Lm5hbWUoKSA9PSBzdXBUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0YWJsZVRh
ZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHR0VGFnCi0gICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gdVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHVsVGFn
Ci0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdmFyVGFnCi0gICAgICAgICAgICB8fCAo
dG9rZW4ubmFtZSgpID09IGZvbnRUYWcgJiYgKHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oY29sb3JB
dHRyKSB8fCB0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGZhY2VBdHRyKSB8fCB0b2tlbi5nZXRBdHRy
aWJ1dGVJdGVtKHNpemVBdHRyKSkpKSB7Ci0gICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsK
LSAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxGb3JlaWduQ29udGVu
dFNjb3BlTWFya2VyKCk7Ci0gICAgICAgICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0
ZWx5KCk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjdXJyZW50
TmFtZXNwYWNlID0gbV90cmVlLmN1cnJlbnRFbGVtZW50KCktPm5hbWVzcGFjZVVSSSgpOwotICAg
ICAgICBpZiAoY3VycmVudE5hbWVzcGFjZSA9PSBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNl
VVJJKQotICAgICAgICAgICAgYWRqdXN0TWF0aE1MQXR0cmlidXRlcyh0b2tlbik7Ci0gICAgICAg
IGlmIChjdXJyZW50TmFtZXNwYWNlID09IFNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkpIHsKLSAg
ICAgICAgICAgIGFkanVzdFNWR1RhZ05hbWVDYXNlKHRva2VuKTsKLSAgICAgICAgICAgIGFkanVz
dFNWR0F0dHJpYnV0ZXModG9rZW4pOwotICAgICAgICB9Ci0gICAgICAgIGFkanVzdEZvcmVpZ25B
dHRyaWJ1dGVzKHRva2VuKTsKLSAgICAgICAgbV90cmVlLmluc2VydEZvcmVpZ25FbGVtZW50KHRv
a2VuLCBjdXJyZW50TmFtZXNwYWNlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgIGNhc2Ug
VGV4dE1vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsK
QEAgLTE3NTcsOSArMTY2Nyw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEluc2VydGlv
bk1vZGUKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEJlZm9yZUhlYWRNb2RlKTsKICAgICAgICAgfQot
ICAgICAgICBpZiAobm9kZS0+bmFtZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFj
ZVVSSQotICAgICAgICAgICAgfHwgbm9kZS0+bmFtZXNwYWNlVVJJKCkgPT0gTWF0aE1MTmFtZXM6
Om1hdGhtbE5hbWVzcGFjZVVSSSkKLSAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2Rl
KEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKICAgICAgICAgaWYgKGxhc3QpIHsKICAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluQm9keU1vZGUpOwpAQCAtMTc5MSw3ICsxNjk4LDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRz
KCktPnBvcFVudGlsVGFibGVCb2R5U2NvcGVNYXJrZXIoKTsKICAgICAgICAgQVNTRVJUKGlzVGFi
bGVCb2R5Q29udGV4dFRhZyhtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+bG9jYWxOYW1lKCkpKTsK
ICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPnRhZ1FO
YW1lKCkpOwotICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNz
RW5kVGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4ubmFt
ZSgpID09IGJvZHlUYWcKQEAgLTE4MTgsNyArMTcyNSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzRW5kVGFnRm9ySW4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7Ci0gICAgICAg
IHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChpc1RhYmxlQm9keUNvbnRleHRUYWcodG9r
ZW4ubmFtZSgpKSkgewpAQCAtMTgyOCw3ICsxNzM1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6
OnByb2Nlc3NFbmRUYWdGb3JJbgogICAgICAgICB9CiAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFn
KHRyVGFnKTsKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1v
ZGUpOwotICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzRW5k
VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgp
ID09IGJvZHlUYWcKQEAgLTE4NzIsNyArMTc3OSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpw
cm9jZXNzRW5kVGFnRm9ySW4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICBjbG9zZVRoZUNlbGwoKTsKLSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAg
ICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgcHJv
Y2Vzc0VuZFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xODg4LDcgKzE3OTUsNyBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluCiAgICAgaWYgKHRva2VuLm5hbWUoKSA9
PSBodG1sVGFnKSB7CiAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRCb2R5KEhUTUxUb2tlblR5
cGVzOjpFbmRUYWcsIGJvZHlUYWcubG9jYWxOYW1lKCkpOwogICAgICAgICBpZiAocHJvY2Vzc0Jv
ZHlFbmRUYWdGb3JJbkJvZHkoZW5kQm9keSkpCi0gICAgICAgICAgICByZXByb2Nlc3NFbmRUYWco
dG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBhZGRyZXNzVGFnCkBAIC0xOTQxLDcg
KzE4NDgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluCiAgICAg
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRU
YWcocFRhZyk7CiAgICAgICAgICAgICBBU1NFUlQobV90cmVlLm9wZW5FbGVtZW50cygpLT5pblNj
b3BlKHRva2VuLm5hbWUoKSkpOwotICAgICAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIG1fdHJlZS5nZW5lcmF0ZUltcGxpZWRFbmRUYWdzV2l0aEV4Y2x1
c2lvbih0b2tlbi5uYW1lKCkpOwpAQCAtMjEzNyw3ICsyMDQ0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbQogICAgICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNp
bmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc0Vu
ZFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHRva2VuLm5hbWUoKSA9PSBib2R5VGFnCkBAIC0yMTY2LDcgKzIwNzMsNyBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9tCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
cmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5Sb3dNb2RlOgogICAgICAgICBBU1NFUlQoaW5zZXJ0
aW9uTW9kZSgpID09IEluUm93TW9kZSk7CkBAIC0yMTkwLDEzICsyMDk3LDEyIEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b20KICAgICAgICAgICAgIHNldEluc2VydGlv
bk1vZGUoQWZ0ZXJBZnRlckJvZHlNb2RlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQotICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRo
cm91Z2guCiAgICAgY2FzZSBBZnRlckFmdGVyQm9keU1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNl
cnRpb25Nb2RlKCkgPT0gQWZ0ZXJCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJB
ZnRlckJvZHlNb2RlKTsKICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgIHNldElu
c2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7Ci0gICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7
CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEluSGVhZE5vc2NyaXB0TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJ
bkhlYWROb3NjcmlwdE1vZGUpOwpAQCAtMjI3Miw3ICsyMTc4LDcgQEAgdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NFbmRUYWcoQXRvbQogICAgICAgICAgICAgaWYgKG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+aW5UYWJsZVNjb3BlKHRva2VuLm5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICBB
dG9taWNIVE1MVG9rZW4gZW5kU2VsZWN0KEhUTUxUb2tlblR5cGVzOjpFbmRUYWcsIHNlbGVjdFRh
Zy5sb2NhbE5hbWUoKSk7CiAgICAgICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyhlbmRTZWxlY3Qp
OwotICAgICAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgICAgICAg
ICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KQEAgLTIzMTIsNTkgKzIyMTgsOSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc0VuZFRhZyhBdG9tCiAgICAgICAgIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwog
ICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bkZvcmVpZ25Db250ZW50TW9kZToKLSAgICAgICAgaWYgKG1fdHJlZS5jdXJyZW50Tm9kZSgpLT5u
YW1lc3BhY2VVUkkoKSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJKQotICAgICAgICAgICAg
YWRqdXN0U1ZHVGFnTmFtZUNhc2UodG9rZW4pOwotCi0gICAgICAgIGlmICh0b2tlbi5uYW1lKCkg
PT0gU1ZHTmFtZXM6OnNjcmlwdFRhZyAmJiBtX3RyZWUuY3VycmVudE5vZGUoKS0+aGFzVGFnTmFt
ZShTVkdOYW1lczo6c2NyaXB0VGFnKSkgewotICAgICAgICAgICAgbV9pc1BhdXNlZCA9IHRydWU7
Ci0gICAgICAgICAgICBtX3NjcmlwdFRvUHJvY2VzcyA9IG1fdHJlZS5jdXJyZW50RWxlbWVudCgp
OwotICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWlzSW5IVE1MTmFtZXNwYWNlKG1fdHJl
ZS5jdXJyZW50Tm9kZSgpKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBqdXN0
IHdhbnRzIGFuIEVsZW1lbnQqIGl0ZXJhdG9yLCBpbnN0ZWFkIG9mIGFuIEVsZW1lbnRSZWNvcmQq
Ci0gICAgICAgICAgICBIVE1MRWxlbWVudFN0YWNrOjpFbGVtZW50UmVjb3JkKiBub2RlUmVjb3Jk
ID0gbV90cmVlLm9wZW5FbGVtZW50cygpLT50b3BSZWNvcmQoKTsKLSAgICAgICAgICAgIGlmICgh
bm9kZVJlY29yZC0+bm9kZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkKLSAgICAgICAg
ICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKLSAgICAgICAgICAgIHdoaWxlICgxKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5vZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5h
bWUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BV
bnRpbFBvcHBlZChub2RlUmVjb3JkLT5lbGVtZW50KCkpOwotICAgICAgICAgICAgICAgICAgICBy
ZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbm9kZVJlY29yZCA9IG5vZGVSZWNv
cmQtPm5leHQoKTsKLQotICAgICAgICAgICAgICAgIGlmIChpc0luSFRNTE5hbWVzcGFjZShub2Rl
UmVjb3JkLT5ub2RlKCkpKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICAvLyBBbnkgb3RoZXIgZW5kIHRhZyAoYWxzbyB0aGUgbGFz
dCB0d28gc3RlcHMgb2YgIkFuIGVuZCB0YWcsIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgbm90IGFu
IGVsZW1lbnQgaW4gdGhlIEhUTUwgbmFtZXNwYWNlLiIKLSAgICAgICAgcHJvY2Vzc0ZvcmVpZ25D
b250ZW50VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKHRva2VuKTsKLSAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKQotewotICAgIGlmIChtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0ZXBzKSB7
Ci0gICAgICAgIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKTsKLSAgICAgICAgbV9oYXNQZW5k
aW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcyA9IGZhbHNlOwotICAgIH0KLX0KLQotdm9pZCBI
VE1MVHJlZUJ1aWxkZXI6OnJlcHJvY2Vzc1N0YXJ0VGFnKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4p
Ci17Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKLSAgICBwcm9jZXNzU3RhcnRUYWco
dG9rZW4pOwotfQotCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVwcm9jZXNzRW5kVGFnKEF0b21p
Y0hUTUxUb2tlbiYgdG9rZW4pCi17Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKLSAg
ICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKLX0KLQogY2xhc3MgSFRNTFRyZWVCdWlsZGVyOjpGYWtl
SW5zZXJ0aW9uTW9kZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRmFrZUluc2VydGlvbk1v
ZGUpOwogcHVibGljOgpAQCAtMjM4NiwyMyArMjI0Miw2IEBAIHByaXZhdGU6CiAgICAgSW5zZXJ0
aW9uTW9kZSBtX29yaWdpbmFsTW9kZTsKIH07CiAKLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9j
ZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRSZXNldE1vZGUoQXRvbWljSFRNTFRv
a2VuJiB0b2tlbikKLXsKLSAgICBtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0ZXBz
ID0gdHJ1ZTsKLSAgICB7Ci0gICAgICAgIEZha2VJbnNlcnRpb25Nb2RlIGZha2VNb2RlKHRoaXMs
IEluQm9keU1vZGUpOwotICAgICAgICBwcm9jZXNzVG9rZW4odG9rZW4pOwotICAgIH0KLSAgICBp
ZiAobV9oYXNQZW5kaW5nRm9yZWlnbkluc2VydGlvbk1vZGVTdGVwcykKLSAgICAgICAgcmVzZXRG
b3JlaWduSW5zZXJ0aW9uTW9kZSgpOwotfQotCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRG
b3JlaWduSW5zZXJ0aW9uTW9kZSgpCi17Ci0gICAgaWYgKGluc2VydGlvbk1vZGUoKSA9PSBJbkZv
cmVpZ25Db250ZW50TW9kZSkKLSAgICAgICAgcmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVs
eSgpOwotfQotCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NvbW1lbnQoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKIHsKICAgICBBU1NFUlQodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5
cGVzOjpDb21tZW50KTsKQEAgLTI0ODQsMjEgKzIzMjMsMzIgQEAgUmVwcm9jZXNzQnVmZmVyOgog
ICAgIGNhc2UgSW5DYXB0aW9uTW9kZToKICAgICBjYXNlIEluQ2VsbE1vZGU6IHsKICAgICAgICAg
QVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9
PSBJbkNhcHRpb25Nb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJbkNlbGxNb2RlKTsKLSAgICAg
ICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7Ci0gICAg
ICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gYnVmZmVyLnRha2VSZW1haW5pbmcoKTsKLSAgICAgICAg
bV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwotICAgICAgICBpZiAobV9mcmFtZXNl
dE9rICYmICFpc0FsbFdoaXRlc3BhY2VPclJlcGxhY2VtZW50Q2hhcmFjdGVycyhjaGFyYWN0ZXJz
KSkKLSAgICAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNlOworICAgICAgICBwcm9jZXNzQ2hh
cmFjdGVyQnVmZmVyRm9ySW5Cb2R5KGJ1ZmZlcik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICBjYXNlIEluVGFibGVNb2RlOgogICAgIGNhc2UgSW5UYWJsZUJvZHlNb2RlOgogICAgIGNhc2Ug
SW5Sb3dNb2RlOiB7CisgICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjcGFyc2lu
Zy1tYWluLWludGFibGUKKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGhpcyBjaGVjayBpcyB0aGUg
bmVnYXRpb24gb2Ygd2hhdCBob3cgd2Ugd291bGQgbm9ybWFsbHkgd3JpdGUgdGhpcworICAgICAg
ICAvLyBjb25kaXRpb24gYmVjYXVzZSB3ZSB3YW50IHRoZSAiZWxzZSIgYnJhbmNoIHRvIGZhbGwg
dGhyb3VnaCB0byB0aGUKKyAgICAgICAgLy8gbmV4dCBjYXNlIGluIHRoZSBzd2l0Y2ggc3RhdGVt
ZW50LgorICAgICAgICBpZiAoIShtX3RyZWUuY3VycmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgp
CisgICAgICAgICAgICAgICYmIChtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZShI
VE1MTmFtZXM6OnRhYmxlVGFnKQorICAgICAgICAgICAgICAgICAgfHwgbV90cmVlLmN1cnJlbnRF
bGVtZW50KCktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0Ym9keVRhZykKKyAgICAgICAgICAgICAg
ICAgIHx8IG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGZv
b3RUYWcpCisgICAgICAgICAgICAgICAgICB8fCBtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnRoZWFkVGFnKQorICAgICAgICAgICAgICAgICAgfHwgbV90cmVl
LmN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0clRhZykpKSkgeworICAg
ICAgICAgICAgSFRNTENvbnN0cnVjdGlvblNpdGU6OlJlZGlyZWN0VG9Gb3N0ZXJQYXJlbnRHdWFy
ZCByZWRpcmVjdGVyKG1fdHJlZSk7CisgICAgICAgICAgICBwcm9jZXNzQ2hhcmFjdGVyQnVmZmVy
Rm9ySW5Cb2R5KGJ1ZmZlcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBBU1NFUlQobV90cmVlLmN1cnJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSk7CiAgICAgICAg
IEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEluVGFibGVCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsKICAg
ICAgICAgQVNTRVJUKG1fcGVuZGluZ1RhYmxlQ2hhcmFjdGVycy5pc0VtcHR5KCkpOwogICAgICAg
ICBtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSA9IG1faW5zZXJ0aW9uTW9kZTsKICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShJblRhYmxlVGV4dE1vZGUpOwotICAgICAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwogICAgICAgICAvLyBGYWxsIHRocm91Z2guCiAgICAgfQogICAgIGNhc2UgSW5U
YWJsZVRleHRNb2RlOiB7CkBAIC0yNTE5LDcgKzIzNjksNiBAQCBSZXByb2Nlc3NCdWZmZXI6CiAg
ICAgICAgICAgICBpZiAoYnVmZmVyLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAg
Z290byBSZXByb2Nlc3NCdWZmZXI7CiAgICAgfQogICAgIGNhc2UgQWZ0ZXJCb2R5TW9kZToKQEAg
LTI1MjcsNyArMjM3Niw2IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICAgICAgQVNTRVJUKGluc2Vy
dGlvbk1vZGUoKSA9PSBBZnRlckJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckFm
dGVyQm9keU1vZGUpOwogICAgICAgICAvLyBGSVhNRTogcGFyc2UgZXJyb3IKICAgICAgICAgc2V0
SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKLSAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKICAgICAgICAgZ290byBSZXByb2Nlc3NCdWZmZXI7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTI1NjMsMTQgKzI0MTEsNiBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgICAgIG1fdHJl
ZS5pbnNlcnRUZXh0Tm9kZShidWZmZXIudGFrZVJlbWFpbmluZygpKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGNhc2UgSW5Gb3JlaWduQ29udGVudE1vZGU6IHsKLSAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJbkZvcmVpZ25Db250ZW50TW9kZSk7Ci0gICAgICAgIFN0cmlu
ZyBjaGFyYWN0ZXJzID0gYnVmZmVyLnRha2VSZW1haW5pbmcoKTsKLSAgICAgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwotICAgICAgICBpZiAobV9mcmFtZXNldE9rICYmICFp
c0FsbFdoaXRlc3BhY2UoY2hhcmFjdGVycykpCi0gICAgICAgICAgICBtX2ZyYW1lc2V0T2sgPSBm
YWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgIGNhc2UgQWZ0ZXJBZnRlckZyYW1lc2V0
TW9kZTogewogICAgICAgICBTdHJpbmcgbGVhZGluZ1doaXRlc3BhY2UgPSBidWZmZXIudGFrZVJl
bWFpbmluZ1doaXRlc3BhY2UoKTsKICAgICAgICAgaWYgKCFsZWFkaW5nV2hpdGVzcGFjZS5pc0Vt
cHR5KCkpIHsKQEAgLTI1ODQsNiArMjQyNCwxNSBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgfQog
fQogCit2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9k
eShFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyJiBidWZmZXIpCit7CisgICAgbV90cmVlLnJl
Y29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1lbnRzKCk7CisgICAgU3RyaW5nIGNoYXJh
Y3RlcnMgPSBidWZmZXIudGFrZVJlbWFpbmluZygpOworICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9k
ZShjaGFyYWN0ZXJzKTsKKyAgICBpZiAobV9mcmFtZXNldE9rICYmICFpc0FsbFdoaXRlc3BhY2VP
clJlcGxhY2VtZW50Q2hhcmFjdGVycyhjaGFyYWN0ZXJzKSkKKyAgICAgICAgbV9mcmFtZXNldE9r
ID0gZmFsc2U7Cit9CisKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6RW5kT2ZGaWxlKTsKQEAgLTI2NDYsMTEgKzI0OTUsNiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShBCiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJz
aW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47IC8vIEZJWE1FOiBTaG91bGQgd2Ug
YnJlYWsgaGVyZSBpbnN0ZWFkIG9mIHJldHVybmluZz8KICAgICAgICAgfQotICAgICAgICBwcmVw
YXJlVG9SZXByb2Nlc3NUb2tlbigpOwotICAgICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5Gb3JlaWduQ29udGVudE1vZGU6Ci0gICAgICAg
IHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUo
dG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6CkBAIC0y
NjY0LDcgKzI1MDgsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZShB
CiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CiAgICAgICAgIEFTU0VSVCht
X29yaWdpbmFsSW5zZXJ0aW9uTW9kZSAhPSBUZXh0TW9kZSk7CiAgICAgICAgIHNldEluc2VydGlv
bk1vZGUobV9vcmlnaW5hbEluc2VydGlvbk1vZGUpOwotICAgICAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwogICAgICAgICBwcm9jZXNzRW5kT2ZGaWxlKHRva2VuKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTI2NzksNyArMjUyMiw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpk
ZWZhdWx0Rm9ySW5pdGlhbCgKICAgICAgICAgbV9kb2N1bWVudC0+c2V0Q29tcGF0aWJpbGl0eU1v
ZGUoRG9jdW1lbnQ6OlF1aXJrc01vZGUpOwogICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgogICAg
IHNldEluc2VydGlvbk1vZGUoQmVmb3JlSFRNTE1vZGUpOwotICAgIHByZXBhcmVUb1JlcHJvY2Vz
c1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0Rm9yQmVmb3JlSFRN
TCgpCkBAIC0yNjg3LDI4ICsyNTI5LDI0IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0
Rm9yQmVmb3JlSFQKICAgICBBdG9taWNIVE1MVG9rZW4gc3RhcnRIVE1MKEhUTUxUb2tlblR5cGVz
OjpTdGFydFRhZywgaHRtbFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgbV90cmVlLmluc2VydEhUTUxI
dG1sU3RhcnRUYWdCZWZvcmVIVE1MKHN0YXJ0SFRNTCk7CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShC
ZWZvcmVIZWFkTW9kZSk7Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JCZWZvcmVIZWFkKCkKIHsKICAgICBBdG9taWNI
VE1MVG9rZW4gc3RhcnRIZWFkKEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZywgaGVhZFRhZy5sb2Nh
bE5hbWUoKSk7CiAgICAgcHJvY2Vzc1N0YXJ0VGFnKHN0YXJ0SGVhZCk7Ci0gICAgcHJlcGFyZVRv
UmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJ
bkhlYWQoKQogewogICAgIEF0b21pY0hUTUxUb2tlbiBlbmRIZWFkKEhUTUxUb2tlblR5cGVzOjpF
bmRUYWcsIGhlYWRUYWcubG9jYWxOYW1lKCkpOwogICAgIHByb2Nlc3NFbmRUYWcoZW5kSGVhZCk7
Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmRlZmF1bHRGb3JJbkhlYWROb3NjcmlwdCgpCiB7CiAgICAgQXRvbWljSFRNTFRva2VuIGVu
ZE5vc2NyaXB0KEhUTUxUb2tlblR5cGVzOjpFbmRUYWcsIG5vc2NyaXB0VGFnLmxvY2FsTmFtZSgp
KTsKICAgICBwcm9jZXNzRW5kVGFnKGVuZE5vc2NyaXB0KTsKLSAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckFmdGVySGVh
ZCgpCkBAIC0yNzE2LDcgKzI1NTQsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZv
ckFmdGVySGVhCiAgICAgQXRvbWljSFRNTFRva2VuIHN0YXJ0Qm9keShIVE1MVG9rZW5UeXBlczo6
U3RhcnRUYWcsIGJvZHlUYWcubG9jYWxOYW1lKCkpOwogICAgIHByb2Nlc3NTdGFydFRhZyhzdGFy
dEJvZHkpOwogICAgIG1fZnJhbWVzZXRPayA9IHRydWU7Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNz
VG9rZW4oKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRGb3JJblRhYmxlVGV4
dCgpCkBAIC0yNzMwLDEyICsyNTY3LDEwIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0
Rm9ySW5UYWJsZVQKICAgICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMsIE5v
dEFsbFdoaXRlc3BhY2UpOwogICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKICAgICAgICAg
c2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7Ci0gICAgICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV90cmVl
Lmluc2VydFRleHROb2RlKGNoYXJhY3RlcnMpOwogICAgIHNldEluc2VydGlvbk1vZGUobV9vcmln
aW5hbEluc2VydGlvbk1vZGUpOwotICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAK
IGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkhlYWQoQXRvbWljSFRN
TFRva2VuJiB0b2tlbikKQEAgLTI4MTksNiArMjY1NCwxNTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OnByb2Nlc3NTY3JpcHRTdGFydAogICAgIHNldEluc2VydGlvbk1vZGUoVGV4dE1vZGUpOwog
fQogCisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3Jr
L211bHRpcGFnZS90cmVlLWNvbnN0cnVjdGlvbi5odG1sI3RyZWUtY29uc3RydWN0aW9uCitib29s
IEhUTUxUcmVlQnVpbGRlcjo6c2hvdWxkUHJvY2Vzc1Rva2VuSW5Gb3JlaWduQ29udGVudChBdG9t
aWNIVE1MVG9rZW4mIHRva2VuKQoreworICAgIGlmICghbV90cmVlLm9wZW5FbGVtZW50cygpLT5z
dGFja0RlcHRoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBDb250YWluZXJOb2RlKiBu
b2RlID0gbV90cmVlLmN1cnJlbnROb2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKEhUTUxFbGVtZW50U3RhY2s6OmlzTWF0aE1MVGV4dEludGVncmF0
aW9uUG9pbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5U
eXBlczo6U3RhcnRUYWcKKyAgICAgICAgICAgICYmIHRva2VuLm5hbWUoKSAhPSBNYXRoTUxOYW1l
czo6bWdseXBoVGFnLmxvY2FsTmFtZSgpCisgICAgICAgICAgICAmJiB0b2tlbi5uYW1lKCkgIT0g
TWF0aE1MTmFtZXM6Om1hbGlnbm1hcmtUYWcubG9jYWxOYW1lKCkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNo
YXJhY3RlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKG5vZGUt
Pmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6OmFubm90YXRpb25feG1sVGFnKQorICAgICAgICAmJiB0
b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnCisgICAgICAgICYmIHRva2Vu
Lm5hbWUoKSA9PSBTVkdOYW1lczo6c3ZnVGFnLmxvY2FsTmFtZSgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKEhUTUxFbGVtZW50U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQo
bm9kZSkpIHsKKyAgICAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3Rh
cnRUYWcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICh0b2tlbi50eXBl
KCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kT2ZG
aWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxU
b2tlbiYgdG9rZW4pCit7CisgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIEhU
TUxUb2tlblR5cGVzOjpVbmluaXRpYWxpemVkOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6RE9DVFlQRToKKyAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTFRv
a2VuVHlwZXM6OlN0YXJ0VGFnOiB7CisgICAgICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYlRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJpZ1RhZworICAgICAgICAgICAgfHwgdG9r
ZW4ubmFtZSgpID09IGJsb2NrcXVvdGVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBib2R5VGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gYnJUYWcKKyAgICAgICAg
ICAgIHx8IHRva2VuLm5hbWUoKSA9PSBjZW50ZXJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSBjb2RlVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gZGRUYWcKKyAg
ICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkaXZUYWcKKyAgICAgICAgICAgIHx8IHRva2Vu
Lm5hbWUoKSA9PSBkbFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGR0VGFnCisg
ICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gZW1UYWcKKyAgICAgICAgICAgIHx8IHRva2Vu
Lm5hbWUoKSA9PSBlbWJlZFRhZworICAgICAgICAgICAgfHwgaXNOdW1iZXJlZEhlYWRlclRhZyh0
b2tlbi5uYW1lKCkpCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gaGVhZFRhZworICAg
ICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGhyVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gaVRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGltZ1RhZworICAg
ICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGxpVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gbGlzdGluZ1RhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG1lbnVU
YWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBtZXRhVGFnCisgICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gbm9iclRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IG9sVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gcFRhZworICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IHByZVRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IHJ1YnlUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzVGFnCisgICAgICAgICAg
ICB8fCB0b2tlbi5uYW1lKCkgPT0gc21hbGxUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUo
KSA9PSBzcGFuVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3Ryb25nVGFnCisg
ICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3RyaWtlVGFnCisgICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gc3ViVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3Vw
VGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdGFibGVUYWcKKyAgICAgICAgICAg
IHx8IHRva2VuLm5hbWUoKSA9PSB0dFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IHVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB1bFRhZworICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IHZhclRhZworICAgICAgICAgICAgfHwgKHRva2VuLm5hbWUoKSA9
PSBmb250VGFnICYmICh0b2tlbi5nZXRBdHRyaWJ1dGVJdGVtKGNvbG9yQXR0cikgfHwgdG9rZW4u
Z2V0QXR0cmlidXRlSXRlbShmYWNlQXR0cikgfHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShzaXpl
QXR0cikpKSkgeworICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgICAgICBt
X3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtlcigp
OworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGN1cnJlbnROYW1lc3Bh
Y2UgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+bmFtZXNwYWNlVVJJKCk7CisgICAgICAgIGlm
IChjdXJyZW50TmFtZXNwYWNlID09IE1hdGhNTE5hbWVzOjptYXRobWxOYW1lc3BhY2VVUkkpCisg
ICAgICAgICAgICBhZGp1c3RNYXRoTUxBdHRyaWJ1dGVzKHRva2VuKTsKKyAgICAgICAgaWYgKGN1
cnJlbnROYW1lc3BhY2UgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkgeworICAgICAgICAg
ICAgYWRqdXN0U1ZHVGFnTmFtZUNhc2UodG9rZW4pOworICAgICAgICAgICAgYWRqdXN0U1ZHQXR0
cmlidXRlcyh0b2tlbik7CisgICAgICAgIH0KKyAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0
ZXModG9rZW4pOworICAgICAgICBtX3RyZWUuaW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIGN1
cnJlbnROYW1lc3BhY2UpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBIVE1MVG9r
ZW5UeXBlczo6RW5kVGFnOiB7CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+bmFt
ZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGFk
anVzdFNWR1RhZ05hbWVDYXNlKHRva2VuKTsKKworICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09
IFNWR05hbWVzOjpzY3JpcHRUYWcgJiYgbV90cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUo
U1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKKyAgICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOwor
ICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nlc3MgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsK
KyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wKCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFpc0luSFRNTE5hbWVzcGFjZShtX3RyZWUu
Y3VycmVudE5vZGUoKSkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUganVzdCB3
YW50cyBhbiBFbGVtZW50KiBpdGVyYXRvciwgaW5zdGVhZCBvZiBhbiBFbGVtZW50UmVjb3JkKgor
ICAgICAgICAgICAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVudFJlY29yZCogbm9kZVJlY29yZCA9
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9wUmVjb3JkKCk7CisgICAgICAgICAgICBpZiAoIW5v
ZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxOYW1lKHRva2VuLm5hbWUoKSkpCisgICAgICAgICAg
ICAgICAgcGFyc2VFcnJvcih0b2tlbik7CisgICAgICAgICAgICB3aGlsZSAoMSkgeworICAgICAg
ICAgICAgICAgIGlmIChub2RlUmVjb3JkLT5ub2RlKCktPmhhc0xvY2FsTmFtZSh0b2tlbi5uYW1l
KCkpKSB7CisgICAgICAgICAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50
aWxQb3BwZWQobm9kZVJlY29yZC0+ZWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBub2RlUmVjb3JkID0gbm9k
ZVJlY29yZC0+bmV4dCgpOworCisgICAgICAgICAgICAgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNl
KG5vZGVSZWNvcmQtPm5vZGUoKSkpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIE90aGVyd2lzZSwgcHJvY2VzcyB0aGUgdG9r
ZW4gYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBnaXZlbiBpbiB0aGUgc2VjdGlvbiBjb3JyZXNwb25k
aW5nIHRvIHRoZSBjdXJyZW50IGluc2VydGlvbiBtb2RlIGluIEhUTUwgY29udGVudC4KKyAgICAg
ICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNl
IEhUTUxUb2tlblR5cGVzOjpDb21tZW50OgorICAgICAgICBtX3RyZWUuaW5zZXJ0Q29tbWVudCh0
b2tlbik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpDaGFyYWN0
ZXI6IHsKKyAgICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBTdHJpbmcodG9rZW4uY2hhcmFjdGVy
cygpLmRhdGEoKSwgdG9rZW4uY2hhcmFjdGVycygpLnNpemUoKSk7CisgICAgICAgIG1fdHJlZS5p
bnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsKKyAgICAgICAgaWYgKG1fZnJhbWVzZXRPayAmJiAh
aXNBbGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMpKQorICAgICAgICAgICAgbV9mcmFtZXNldE9rID0g
ZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpF
bmRPZkZpbGU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpmaW5pc2hlZCgpCiB7CiAgICAgaWYg
KGlzUGFyc2luZ0ZyYWdtZW50KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuaAkocmV2aXNpb24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsx
MDksNiBAQCBwcml2YXRlOgogICAgICAgICBJbkNlbGxNb2RlLAogICAgICAgICBJblNlbGVjdE1v
ZGUsCiAgICAgICAgIEluU2VsZWN0SW5UYWJsZU1vZGUsCi0gICAgICAgIEluRm9yZWlnbkNvbnRl
bnRNb2RlLAogICAgICAgICBBZnRlckJvZHlNb2RlLAogICAgICAgICBJbkZyYW1lc2V0TW9kZSwK
ICAgICAgICAgQWZ0ZXJGcmFtZXNldE1vZGUsCkBAIC0xNDksNiArMTQ4LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHByb2Nlc3NBbnlPdGhlckVuZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4m
KTsKIAogICAgIHZvaWQgcHJvY2Vzc0NoYXJhY3RlckJ1ZmZlcihFeHRlcm5hbENoYXJhY3RlclRv
a2VuQnVmZmVyJik7CisgICAgdm9pZCBwcm9jZXNzQ2hhcmFjdGVyQnVmZmVyRm9ySW5Cb2R5KEV4
dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXImKTsKIAogICAgIHZvaWQgcHJvY2Vzc0Zha2VTdGFy
dFRhZyhjb25zdCBRdWFsaWZpZWROYW1lJiwgUGFzc1JlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJp
YnV0ZXMgPSAwKTsKICAgICB2b2lkIHByb2Nlc3NGYWtlRW5kVGFnKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKQEAgLTE2OCwxMCArMTY4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlZmF1bHRGb3JB
ZnRlckhlYWQoKTsKICAgICB2b2lkIGRlZmF1bHRGb3JJblRhYmxlVGV4dCgpOwogCi0gICAgdm9p
ZCBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwotCi0gICAgdm9pZCByZXByb2Nlc3NTdGFydFRh
ZyhBdG9taWNIVE1MVG9rZW4mKTsKLSAgICB2b2lkIHJlcHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1M
VG9rZW4mKTsKKyAgICBib29sIHNob3VsZFByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRv
bWljSFRNTFRva2VuJik7CisgICAgdm9pZCBwcm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0
b21pY0hUTUxUb2tlbiYpOwogCiAgICAgUGFzc1JlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJpYnV0
ZXNGb3JJc2luZGV4SW5wdXQoQXRvbWljSFRNTFRva2VuJik7CiAKQEAgLTIwMyw5ICsyMDEsNiBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7
CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0
TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKTsKLSAgICB2b2lkIHJlc2V0Rm9yZWlnbkluc2Vy
dGlvbk1vZGUoKTsKLQogICAgIGNsYXNzIEZyYWdtZW50UGFyc2luZ0NvbnRleHQgewogICAgICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFnbWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBwdWJs
aWM6CkBAIC0yNTcsOCArMjUyLDYgQEAgcHJpdmF0ZToKICAgICBUZXh0UG9zaXRpb24gbV9sYXN0
U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb247CiAKICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3M7Ci0KLSAgICBib29sIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3Rl
cHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aGF0dHJzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4JKHJldmlzaW9u
IDEwMjYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRoYXR0cnMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTksNiArOSw3IEBAIGNsb3NlCiBjb2xvcgogZGVmaW5pdGlvblVSTAogZGVub21h
bGlnbgorZW5jb2RpbmcKIGZvbnRmYW1pbHkKIGZvbnRzaXplCiBmb250c3R5bGUKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwMjgyMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTE0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgPHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+IHBhcnNlcyBp
bmNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjgxMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGh0bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMS5kYXQ6CisgICAgICAgICAgICAtIFRoaXMg
dGVzdCBoYWQgYW4gaW5jb3JyZWN0IGV4cGVjdGF0aW9uIHRoYXQgbWF0Y2hlZCBvdXIgcHJldmlv
dXMKKyAgICAgICAgICAgICAgYmVoYXZpb3IuICBUaGUgbmV3IGV4cGVjdGVkIHJlc3VsdCBtYXRj
aGVzIEZpcmVmb3gncworICAgICAgICAgICAgICBpbXBsZW1lbmF0aW9uIGFzIHdlbGwuCisgICAg
ICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAgICAgLSBVcGRh
dGVkIHRvIHNob3cgdGVzdCBwcm9ncmVzc2lvbnMuICBUaGUgb25lIG5vbi1tb25vdG9uaWMKKyAg
ICAgICAgICAgICAgaW1wcm92ZW1lbnQgaXMgc29tZSBjaHVybiBpbiB3aGljaCBvZiB0aGUgdW5z
YWZlLXRleHQgdGVzdHMgd2UKKyAgICAgICAgICAgICAgcGFzcy4gIEknbGwgbG9vayBpbnRvIHRo
aXMgaXNzdWUgaW4gYSBmdXR1cmUgcGF0Y2guCisKIDIwMTEtMTItMTQgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2tpcCBmYXN0L2Zvcm1zL3NlbGVjdC9tZW51
bGlzdC1vbmNoYW5nZS1maXJlZC13aXRoLWtleS11cC1kb3duLmh0bWwgb24gTWFjIHNpbmNlCklu
ZGV4OiBMYXlvdXRUZXN0cy9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEw
MjYyNikKKysrIExheW91dFRlc3RzL2h0bWw1bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTE4LDY5ICsxOCwxNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogUEFT
UwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6IEZPTzxzcGFuPkJBUjwvc3Bhbj5CQVoKIHJlc291
cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy1wbGFpbi10ZXh0LXVuc2FmZS5kYXQ6IFBBU1MKIAot
cmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFuZ2VzLmRhdDoKLTIKLTMKK3Jlc291cmNlcy9wZW5k
aW5nLXNwZWMtY2hhbmdlcy5kYXQ6IFBBU1MKIAotVGVzdCAyIG9mIDMgaW4gcmVzb3VyY2VzL3Bl
bmRpbmctc3BlYy1jaGFuZ2VzLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRh
YmxlPjxjYXB0aW9uPjxzdmc+Zm9vPC90YWJsZT5iYXIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAg
ICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICJmb29iYXIiCi1F
eHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxi
b2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3ZnIHN2
Zz4KLXwgICAgICAgICAgICJmb28iCi18ICAgICAiYmFyIgotCi1UZXN0IDMgb2YgMyBpbiByZXNv
dXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08dGFibGU+PHRy
Pjx0ZD48c3ZnPjxkZXNjPjx0ZD48L2Rlc2M+PGNpcmNsZT4KLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAg
ICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAg
ICAgICAgICAgICAgIDxzdmcgZGVzYz4KLXwgICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4K
LXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAg
ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBkZXNjPgotfCAgICAgICAg
ICAgPHRkPgotfCAgICAgICAgICAgICA8Y2lyY2xlPgogcmVzb3VyY2VzL3BsYWluLXRleHQtdW5z
YWZlLmRhdDoKIDEwCi0xNAotMTkKLTIwCi0yNwotMjgKLTI5Ci0zMAotMzEKLTMyCi0zMworMTUK
KzE2CisxNworMTgKKzIxCiAKIFRlc3QgMTAgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQt
dW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgogPHBsYWludGV4dD4AZmlsbGVyAHRleHQACkBAIC05
NywxOTcgKzQzLDg1IEBAIEV4cGVjdGVkOgogfCAgICAgPHBsYWludGV4dD4KIHwgICAgICAgIu+/
vWZpbGxlcu+/vXRleHTvv70iCiAKLVRlc3QgMTQgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRl
eHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPGJvZHk+PHN2Zz48Zm9yZWlnbk9iamVjdD4A
ZmlsbGVyAHRleHQKK1Rlc3QgMTUgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZl
LmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4AZmlsbGVyAHRleHQKIEdvdDoKIHwgPGh0bWw+CiB8
ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgPHN2ZyBmb3Jl
aWduT2JqZWN0PgotfCAgICAgICAgICLvv71maWxsZXLvv710ZXh0IgorfCAgICAgICAiZmlsbGVy
dGV4dCIKIEV4cGVjdGVkOgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAg
IDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgImZpbGxl
cnRleHQiCit8ICAgICAgICLvv71maWxsZXLvv710ZXh0IgogCi1UZXN0IDE5IG9mIDMzIGluIHJl
c291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTxzdmc+ADwvc3Zn
PjxmcmFtZXNldD4KK1Rlc3QgMTYgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZl
LmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4APGZyYW1lc2V0PgogR290OgogfCA8aHRtbD4KIHwg
ICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAgIDxzdmcgc3ZnPgotfCAgICAgICAi77+9IgorfCAg
ICAgICA8c3ZnIGZyYW1lc2V0PgogRXhwZWN0ZWQ6CiB8IDxodG1sPgogfCAgIDxoZWFkPgotfCAg
IDxmcmFtZXNldD4KLQotVGVzdCAyMCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNh
ZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08c3ZnPgAgPC9zdmc+PGZyYW1lc2V0PgotR290OgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAgIDxzdmcgc3ZnPgotfCAgICAgICAi
77+9ICIKLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci0K
LVRlc3QgMjcgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQu
IElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PG1hdGg+PG10ZXh0PgBhCi1H
b3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4K
LXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAg
ICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0
aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAgICLvv71hIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4K
LXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAg
ICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAg
ICAgICAgICAgICAgICJhIgotCi1UZXN0IDI4IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0
LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRk
Pjxzdmc+PGZvcmVpZ25PYmplY3Q+AGEKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+
Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2
Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgICAgICAg
ICAi77+9YSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAg
ICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAg
ICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAgICAgICAgICJhIgotCi1U
ZXN0IDI5IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJ
bnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtaT5hAGIKLUdvdDoKLXwgPCFET0NUWVBFIGh0
bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4K
LXwgICAgICAgPG1hdGggbWk+Ci18ICAgICAgICAgImHvv71iIgotRXhwZWN0ZWQ6Ci18IDwhRE9D
VFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRo
IG1hdGg+Ci18ICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAgICJhYiIKK3wgICAgICAgIu+/vSIK
K3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIAotVGVzdCAzMCBvZiAzMyBpbiByZXNvdXJjZXMvcGxh
aW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48
bW8+YQBiCitUZXN0IDE3IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQg
ZmFpbGVkLiBJbnB1dDoKKzxzdmc+ACA8ZnJhbWVzZXQ+CiBHb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18
ICAgICAgIDxtYXRoIG1vPgotfCAgICAgICAgICJh77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAg
ICAgICAiICIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIEV4cGVjdGVkOgotfCA8IURPQ1RZUEUg
aHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRo
PgotfCAgICAgICA8bWF0aCBtbz4KLXwgICAgICAgICAiYWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wg
ICAgICAgIu+/vSAiCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiAKLVRlc3QgMzEgb2YgMzMgaW4g
cmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBF
IGh0bWw+PG1hdGg+PG1uPmEAYgorVGVzdCAxOCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4
dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8c3ZnPgBhPGZyYW1lc2V0PgogR290OgotfCA8
IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8
bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtbj4KLXwgICAgICAgICAiYe+/vWIiCi1FeHBlY3Rl
ZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbW4+Ci18ICAgICAgICAgImFiIgotCi1U
ZXN0IDMyIG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJ
bnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtcz5hAGIKLUdvdDoKLXwgPCFET0NUWVBFIGh0
bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4K
LXwgICAgICAgPG1hdGggbXM+Ci18ICAgICAgICAgImHvv71iIgorfCAgICAgPHN2ZyBzdmc+Cit8
ICAgICAgICJhIgorfCAgICAgICA8c3ZnIGZyYW1lc2V0PgogRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgIDxtYXRoIG1zPgotfCAgICAgICAgICJhYiIKK3wgICAgIDxzdmcgc3ZnPgor
fCAgICAgICAi77+9YSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIAotVGVzdCAzMyBvZiAzMyBp
biByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZ
UEUgaHRtbD48bWF0aD48bXRleHQ+YQBiCitUZXN0IDIxIG9mIDMzIGluIHJlc291cmNlcy9wbGFp
bi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+AGE8L3N2Zz48ZnJhbWVzZXQ+
CiBHb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9k
eT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG10ZXh0PgotfCAgICAgICAgICJh
77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiYSIKIEV4cGVjdGVkOgotfCA8IURPQ1RZ
UEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBt
YXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAiYWIiCit8ICAgICA8c3ZnIHN2
Zz4KK3wgICAgICAgIu+/vWEiCiByZXNvdXJjZXMvdGVzdHMxLmRhdDogUEFTUwogCiByZXNvdXJj
ZXMvdGVzdHMyLmRhdDogUEFTUwpAQCAtMzI0LDc2ICsxNTgsMTAgQEAgcmVzb3VyY2VzL3Rlc3Rz
Ny5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzOC5kYXQ6IFBBU1MKIAotcmVzb3VyY2VzL3Rl
c3RzOS5kYXQ6Ci0xNgorcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6IFBBU1MKIAotVGVzdCAxNiBvZiAy
NyBpbiByZXNvdXJjZXMvdGVzdHM5LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+
PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxtYXRoPjxtaT5mb288L21pPjxtaT5iYXI8L21pPmJhejwv
dGFibGU+PHA+cXV1eAotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAg
ICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImZv
byIKLXwgICAgICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAgICAgICAiYmFyIgotfCAgICAgICAg
ICAgImJheiIKLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgICJxdXV4IgotRXhwZWN0ZWQ6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAg
IDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAg
ICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAgICAgICAiZm9vIgotfCAgICAgICAgICAgPG1hdGgg
bWk+Ci18ICAgICAgICAgICAgICJiYXIiCi18ICAgICAgICAgICAiYmF6IgotfCAgICAgPHA+Ci18
ICAgICAgICJxdXV4IgotcmVzb3VyY2VzL3Rlc3RzMTAuZGF0OgotMTUKK3Jlc291cmNlcy90ZXN0
czEwLmRhdDogUEFTUwogCi1UZXN0IDE1IG9mIDU0IGluIHJlc291cmNlcy90ZXN0czEwLmRhdCBm
YWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxzdmc+
PGc+Zm9vPC9nPjxnPmJhcjwvZz5iYXo8L3RhYmxlPjxwPnF1dXgKLUdvdDoKLXwgPCFET0NUWVBF
IGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgot
fCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgIDxzdmcg
Zz4KLXwgICAgICAgICAgICAgImZvbyIKLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAg
ICAgImJhciIKLXwgICAgICAgICAgICJiYXoiCi18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICAi
cXV1eCIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+
Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAg
IDxzdmcgc3ZnPgotfCAgICAgICAgICAgPHN2ZyBnPgotfCAgICAgICAgICAgICAiZm9vIgotfCAg
ICAgICAgICAgPHN2ZyBnPgotfCAgICAgICAgICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIK
LXwgICAgIDxwPgotfCAgICAgICAicXV1eCIKIHJlc291cmNlcy90ZXN0czExLmRhdDogUEFTUwog
CiByZXNvdXJjZXMvdGVzdHMxMi5kYXQ6IFBBU1MKQEAgLTUxNCwxMCArMjgyLDYgQEAgRXhwZWN0
ZWQ6CiB8ICAgICA8ZGl2PgogcmVzb3VyY2VzL3Rlc3RzMjAuZGF0OgogMzEKLTM1Ci0zNgotMzcK
LTM4CiAKIFRlc3QgMzEgb2YgMzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5w
dXQ6CiA8b3B0aW9uPjxzcGFuPjxvcHRpb24+CkBAIC01MzUsODIgKzI5OSw2IEBAIEV4cGVjdGVk
OgogfCAgICAgPG9wdGlvbj4KIHwgICAgICAgPHNwYW4+CiB8ICAgICAgICAgPG9wdGlvbj4KLQot
VGVzdCAzNSBvZiAzOSBpbiByZXNvdXJjZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTxt
YXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGluZz0iYXBwbGljYXRpb24veGh0bWwreG1sIj48ZGl2
PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJh
cHBsaWNhdGlvbi94aHRtbCt4bWwiCi18ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGgg
YW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1sK3ht
bCIKLXwgICAgICAgICA8ZGl2PgotCi1UZXN0IDM2IG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIw
LmRhdCBmYWlsZWQuIElucHV0OgotPG1hdGg+PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJhUFBs
aWNhdGlvbi94aHRtTCt4TWwiPjxkaXY+Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+
Ci18ICAgICAgICAgZW5jb2Rpbmc9ImFQUGxpY2F0aW9uL3hodG1MK3hNbCIKLXwgICAgIDxkaXY+
Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0
aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGlu
Zz0iYVBQbGljYXRpb24veGh0bUwreE1sIgotfCAgICAgICAgIDxkaXY+Ci0KLVRlc3QgMzcgb2Yg
MzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3Rh
dGlvbi14bWwgZW5jb2Rpbmc9InRleHQvaHRtbCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5v
dGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0idGV4dC9odG1sIgotfCAgICAgPGRpdj4K
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRo
IG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5n
PSJ0ZXh0L2h0bWwiCi18ICAgICAgICAgPGRpdj4KLQotVGVzdCAzOCBvZiAzOSBpbiByZXNvdXJj
ZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNv
ZGluZz0iVGV4dC9odG1MIj48ZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgot
fCAgICAgICAgIGVuY29kaW5nPSJUZXh0L2h0bUwiCi18ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18
IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAg
ICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9IlRleHQvaHRtTCIK
LXwgICAgICAgICA8ZGl2PgogcmVzb3VyY2VzL3Rlc3RzMjEuZGF0OiBQQVNTCiAKIHJlc291cmNl
cy90ZXN0czIyLmRhdDoKQEAgLTExMjEsMTIzICs4MDksOCBAQCBFeHBlY3RlZDoKIHwgICAgICLi
ioLig5JBIgogcmVzb3VyY2VzL3Rlc3RzMjUuZGF0OiBQQVNTCiAKLXJlc291cmNlcy90ZXN0czI2
LmRhdDoKLTExCi0xMgotMTMKLTE0CityZXNvdXJjZXMvdGVzdHMyNi5kYXQ6IFBBU1MKIAotVGVz
dCAxMSBvZiAxNSBpbiByZXNvdXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9D
VFlQRSBodG1sPjxzdmc+PGZvcmVpZ25PYmplY3Q+PHA+PGk+PC9wPmEKLUdvdDoKLXwgPCFET0NU
WVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHN2ZyBz
dmc+Ci18ICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICA8cD4KLXwgICAgICAg
ICAgIDxpPgotfCAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxzdmcgc3ZnPgotfCAgICAgICA8
c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAg
ICAgICA8aT4KLXwgICAgICAgICAgICJhIgotCi1UZXN0IDEyIG9mIDE1IGluIHJlc291cmNlcy90
ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+
PHN2Zz48Zm9yZWlnbk9iamVjdD48cD48aT48L3A+YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4K
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAg
IDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAg
IDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAg
ICAgICAgICAgIDxwPgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAg
ICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0
cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAg
ICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgICAgICAgICAgPHA+Ci18ICAgICAg
ICAgICAgICAgICAgIDxpPgotfCAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAg
ICAgICJhIgotCi1UZXN0IDEzIG9mIDE1IGluIHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQu
IElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG10ZXh0PjxwPjxpPjwvcD5hCi1Hb3Q6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAg
IDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG10ZXh0PgotfCAgICAgICAgIDxwPgotfCAgICAg
ICAgICAgPGk+Ci18ICAgICAgICAgImEiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18
IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAg
ICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAg
ICA8aT4KLXwgICAgICAgICAgICJhIgotCi1UZXN0IDE0IG9mIDE1IGluIHJlc291cmNlcy90ZXN0
czI2LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PG1h
dGg+PG10ZXh0PjxwPjxpPjwvcD5hCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5Pgot
fCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0
aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAgIDxwPgot
fCAgICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgICJhIgotRXhwZWN0ZWQ6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwg
ICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAg
IDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBt
dGV4dD4KLXwgICAgICAgICAgICAgICAgIDxwPgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwg
ICAgICAgICAgICAgICAgIDxpPgotfCAgICAgICAgICAgICAgICAgICAiYSIKIHJlc291cmNlcy90
ZXN0c19pbm5lckhUTUxfMS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3dlYmtpdDAxLmRhdDoKQEAg
LTEzMDMsMzIgKzg3Niw4IEBAIHJlc291cmNlcy9pbmJvZHkwMS5kYXQ6IFBBU1MKIAogcmVzb3Vy
Y2VzL2lzaW5kZXguZGF0OiBQQVNTCiAKLXJlc291cmNlcy90YWJsZXMwMS5kYXQ6Ci0xNworcmVz
b3VyY2VzL3RhYmxlczAxLmRhdDogUEFTUwogCi1UZXN0IDE3IG9mIDE3IGluIHJlc291cmNlcy90
YWJsZXMwMS5kYXQgZmFpbGVkLiBJbnB1dDoKLTx0YWJsZT48dHI+PHRkPjxzdmc+PGRlc2M+PHRk
PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4K
LXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAg
ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBkZXNjPgotRXhwZWN0ZWQ6
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAg
ICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAg
ICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGRlc2M+Ci18ICAgICAgICAgICA8dGQ+
CiByZXNvdXJjZXMvdHJpY2t5MDEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9zY3JpcHRlZC9hZG9w
dGlvbjAxLmRhdDoKSW5kZXg6IExheW91dFRlc3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQw
MS5kYXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtp
dDAxLmRhdAkocmV2aXNpb24gMTAyNjI2KQorKysgTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3Vy
Y2VzL3dlYmtpdDAxLmRhdAkod29ya2luZyBjb3B5KQpAQCAtNTYwLDcgKzU2MCw4IEBAIGNvbnNv
bGUubG9nKCJGT088c3Bhbj5CQVI8L3NwYW4+QkFaIik7CiB8ICAgICAgICAgICA8dGQ+CiB8ICAg
ICAgICAgICAgIDxzdmcgc3ZnPgogfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4KLXwgICAgICAg
ICAgICAgICA8c3ZnIGNpcmNsZT4KK3wgICAgICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPGNp
cmNsZT4KIAogI2RhdGEKIDxzdmc+PHRmb290PjwvbWk+PHRkPgpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vaHRtbDVsaWIvcnVubmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxMDI2MjYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOCw2OSAr
MTgsMTUgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6IFBBU1MKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAyOiBGT088c3Bhbj5CQVI8L3NwYW4+QkFaCiByZXNvdXJjZXMvcGVuZGluZy1zcGVjLWNo
YW5nZXMtcGxhaW4tdGV4dC11bnNhZmUuZGF0OiBQQVNTCiAKLXJlc291cmNlcy9wZW5kaW5nLXNw
ZWMtY2hhbmdlcy5kYXQ6Ci0yCi0zCityZXNvdXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMuZGF0
OiBQQVNTCiAKLVRlc3QgMiBvZiAzIGluIHJlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5k
YXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48Y2FwdGlvbj48c3ZnPmZv
bzwvdGFibGU+YmFyCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAg
ICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAiZm9vYmFyIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4K
LXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAiZm9v
IgotfCAgICAgImJhciIKLQotVGVzdCAzIG9mIDMgaW4gcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1j
aGFuZ2VzLmRhdCBmYWlsZWQuIElucHV0OgotPHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+
PC9kZXNjPjxjaXJjbGU+Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAg
ICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGRl
c2M+Ci18ICAgICAgICAgICAgICAgPHN2ZyBjaXJjbGU+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwg
ICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgot
fCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAg
ICAgPGNpcmNsZT4KIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQ6CiAxMAotMTQKLTE5
Ci0yMAotMjcKLTI4Ci0yOQotMzAKLTMxCi0zMgotMzMKKzE1CisxNgorMTcKKzE4CisyMQogCiBU
ZXN0IDEwIG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJ
bnB1dDoKIDxwbGFpbnRleHQ+AGZpbGxlcgB0ZXh0AApAQCAtOTcsMTk3ICs0Myw4NSBAQCBFeHBl
Y3RlZDoKIHwgICAgIDxwbGFpbnRleHQ+CiB8ICAgICAgICLvv71maWxsZXLvv710ZXh077+9Igog
Ci1UZXN0IDE0IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVk
LiBJbnB1dDoKLTxib2R5Pjxzdmc+PGZvcmVpZ25PYmplY3Q+AGZpbGxlcgB0ZXh0CitUZXN0IDE1
IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoK
Kzxzdmc+AGZpbGxlcgB0ZXh0CiBHb3Q6CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5
PgogfCAgICAgPHN2ZyBzdmc+Ci18ICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAg
ICAi77+9ZmlsbGVy77+9dGV4dCIKK3wgICAgICAgImZpbGxlcnRleHQiCiBFeHBlY3RlZDoKIHwg
PGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAg
PHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgICJmaWxsZXJ0ZXh0IgorfCAgICAgICAi77+9
ZmlsbGVy77+9dGV4dCIKIAotVGVzdCAxOSBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11
bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08c3ZnPgA8L3N2Zz48ZnJhbWVzZXQ+CitUZXN0IDE2
IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoK
Kzxzdmc+ADxmcmFtZXNldD4KIEdvdDoKIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+
CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgIu+/vSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4K
IEV4cGVjdGVkOgogfCA8aHRtbD4KIHwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci0KLVRlc3Qg
MjAgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0
OgotPHN2Zz4AIDwvc3ZnPjxmcmFtZXNldD4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+CiB8
ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgIu+/vSAiCi1FeHBlY3RlZDoKLXwg
PGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZyYW1lc2V0PgotCi1UZXN0IDI3IG9mIDMzIGluIHJl
c291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBo
dG1sPjx0YWJsZT48dHI+PHRkPjxtYXRoPjxtdGV4dD4AYQotR290OgotfCA8IURPQ1RZUEUgaHRt
bD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAg
ICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAg
ICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAg
ICAgICAgICAi77+9YSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwg
ICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+
Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAgICAgICAiYSIKLQot
VGVzdCAyOCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4g
SW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48dGFibGU+PHRyPjx0ZD48c3ZnPjxmb3JlaWduT2JqZWN0
PgBhCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8
Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwg
ICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAg
PHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgICAgICAgICAgIu+/vWEiCi1FeHBlY3RlZDoK
LXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAg
PHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZvcmVp
Z25PYmplY3Q+Ci18ICAgICAgICAgICAgICAgICAiYSIKLQotVGVzdCAyOSBvZiAzMyBpbiByZXNv
dXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRt
bD48bWF0aD48bWk+YQBiCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1pPgot
fCAgICAgICAgICJh77+9YiIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0
aCBtaT4KLXwgICAgICAgICAiYWIiCit8ICAgICAgICLvv70iCit8ICAgICAgIDxzdmcgZnJhbWVz
ZXQ+CiAKLVRlc3QgMzAgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBm
YWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG1vPmEAYgorVGVzdCAxNyBvZiAz
MyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8c3Zn
PgAgPGZyYW1lc2V0PgogR290OgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhl
YWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtbz4KLXwg
ICAgICAgICAiYe+/vWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIiAiCit8ICAgICAgIDxz
dmcgZnJhbWVzZXQ+CiBFeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAg
IDxoZWFkPgogfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbW8+
Ci18ICAgICAgICAgImFiIgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICLvv70gIgorfCAgICAg
ICA8c3ZnIGZyYW1lc2V0PgogCi1UZXN0IDMxIG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0
LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtbj5hAGIK
K1Rlc3QgMTggb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQu
IElucHV0OgorPHN2Zz4AYTxmcmFtZXNldD4KIEdvdDoKLXwgPCFET0NUWVBFIGh0bWw+CiB8IDxo
dG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAg
PG1hdGggbW4+Ci18ICAgICAgICAgImHvv71iIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18
ICAgICAgIDxtYXRoIG1uPgotfCAgICAgICAgICJhYiIKLQotVGVzdCAzMiBvZiAzMyBpbiByZXNv
dXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRt
bD48bWF0aD48bXM+YQBiCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1zPgot
fCAgICAgICAgICJh77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiYSIKK3wgICAgICAg
PHN2ZyBmcmFtZXNldD4KIEV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8
ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBt
cz4KLXwgICAgICAgICAiYWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIu+/vWEiCit8ICAg
ICAgIDxzdmcgZnJhbWVzZXQ+CiAKLVRlc3QgMzMgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRl
eHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG10ZXh0
PmEAYgorVGVzdCAyMSBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZh
aWxlZC4gSW5wdXQ6Cis8c3ZnPgBhPC9zdmc+PGZyYW1lc2V0PgogR290OgotfCA8IURPQ1RZUEUg
aHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRo
PgotfCAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAiYe+/vWIiCit8ICAgICA8c3ZnIHN2
Zz4KK3wgICAgICAgImEiCiBFeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgog
fCAgIDxoZWFkPgogfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGgg
bXRleHQ+Ci18ICAgICAgICAgImFiIgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICLvv71hIgog
cmVzb3VyY2VzL3Rlc3RzMS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMi5kYXQ6IFBBU1MK
QEAgLTMyNCw3NiArMTU4LDEwIEBAIHJlc291cmNlcy90ZXN0czcuZGF0OiBQQVNTCiAKIHJlc291
cmNlcy90ZXN0czguZGF0OiBQQVNTCiAKLXJlc291cmNlcy90ZXN0czkuZGF0OgotMTYKK3Jlc291
cmNlcy90ZXN0czkuZGF0OiBQQVNTCiAKLVRlc3QgMTYgb2YgMjcgaW4gcmVzb3VyY2VzL3Rlc3Rz
OS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlv
bj48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFyPC9taT5iYXo8L3RhYmxlPjxwPnF1dXgKLUdvdDoK
LXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAgICA8bWF0aCBtYXRoPgotfCAg
ICAgICAgICAgPG1hdGggbWk+Ci18ICAgICAgICAgICAgICJmb28iCi18ICAgICAgICAgICA8bWF0
aCBtaT4KLXwgICAgICAgICAgICAgImJhciIKLXwgICAgICAgICAgICJiYXoiCi18ICAgICAgICAg
PHA+Ci18ICAgICAgICAgICAicXV1eCIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwg
PGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDxj
YXB0aW9uPgotfCAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICA8bWF0aCBtaT4KLXwg
ICAgICAgICAgICAgImZvbyIKLXwgICAgICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAgICAgICAi
YmFyIgotfCAgICAgICAgICAgImJheiIKLXwgICAgIDxwPgotfCAgICAgICAicXV1eCIKLXJlc291
cmNlcy90ZXN0czEwLmRhdDoKLTE1CityZXNvdXJjZXMvdGVzdHMxMC5kYXQ6IFBBU1MKIAotVGVz
dCAxNSBvZiA1NCBpbiByZXNvdXJjZXMvdGVzdHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9D
VFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+
YmF6PC90YWJsZT48cD5xdXV4Ci1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwg
ICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18
ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICA8c3ZnIGc+Ci18ICAgICAgICAgICAgICJm
b28iCi18ICAgICAgICAgICA8c3ZnIGc+Ci18ICAgICAgICAgICAgICJiYXIiCi18ICAgICAgICAg
ICAiYmF6IgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgInF1dXgiCi1FeHBlY3RlZDoKLXwg
PCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAg
PHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAg
ICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImZvbyIKLXwgICAgICAgICAgIDxzdmcgZz4KLXwg
ICAgICAgICAgICAgImJhciIKLXwgICAgICAgICAgICJiYXoiCi18ICAgICA8cD4KLXwgICAgICAg
InF1dXgiCiByZXNvdXJjZXMvdGVzdHMxMS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMTIu
ZGF0OiBQQVNTCkBAIC01MTQsMTAgKzI4Miw2IEBAIEV4cGVjdGVkOgogfCAgICAgPGRpdj4KIHJl
c291cmNlcy90ZXN0czIwLmRhdDoKIDMxCi0zNQotMzYKLTM3Ci0zOAogCiBUZXN0IDMxIG9mIDM5
IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBmYWlsZWQuIElucHV0OgogPG9wdGlvbj48c3Bhbj48
b3B0aW9uPgpAQCAtNTM1LDgyICsyOTksNiBAQCBFeHBlY3RlZDoKIHwgICAgIDxvcHRpb24+CiB8
ICAgICAgIDxzcGFuPgogfCAgICAgICAgIDxvcHRpb24+Ci0KLVRlc3QgMzUgb2YgMzkgaW4gcmVz
b3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlvbi14bWwg
ZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1sK3htbCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBh
bm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0iYXBwbGljYXRpb24veGh0bWwreG1s
IgotfCAgICAgPGRpdj4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAg
ICAgICAgIGVuY29kaW5nPSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiCi18ICAgICAgICAgPGRpdj4K
LQotVGVzdCAzNiBvZiAzOSBpbiByZXNvdXJjZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoK
LTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGluZz0iYVBQbGljYXRpb24veGh0bUwreE1sIj48
ZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRo
IG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5n
PSJhUFBsaWNhdGlvbi94aHRtTCt4TWwiCi18ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1h
dGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9ImFQUGxpY2F0aW9uL3hodG1M
K3hNbCIKLXwgICAgICAgICA8ZGl2PgotCi1UZXN0IDM3IG9mIDM5IGluIHJlc291cmNlcy90ZXN0
czIwLmRhdCBmYWlsZWQuIElucHV0OgotPG1hdGg+PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJ0
ZXh0L2h0bWwiPjxkaXY+Ci1Hb3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAg
ICAgZW5jb2Rpbmc9InRleHQvaHRtbCIKLXwgICAgIDxkaXY+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+
Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0
aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0idGV4dC9odG1sIgotfCAgICAg
ICAgIDxkaXY+Ci0KLVRlc3QgMzggb2YgMzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxl
ZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9IlRleHQvaHRtTCI+PGRp
dj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBt
YXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0i
VGV4dC9odG1MIgotfCAgICAgPGRpdj4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24t
eG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJUZXh0L2h0bUwiCi18ICAgICAgICAgPGRpdj4KIHJl
c291cmNlcy90ZXN0czIxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMyMi5kYXQ6CkBAIC0x
MTIxLDEyMyArODA5LDggQEAgRXhwZWN0ZWQ6CiB8ICAgICAi4oqC4oOSQSIKIHJlc291cmNlcy90
ZXN0czI1LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGVzdHMyNi5kYXQ6Ci0xMQotMTIKLTEzCi0x
NAorcmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQQVNTCiAKLVRlc3QgMTEgb2YgMTUgaW4gcmVzb3Vy
Y2VzL3Rlc3RzMjYuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48c3ZnPjxmb3Jl
aWduT2JqZWN0PjxwPjxpPjwvcD5hCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZv
cmVpZ25PYmplY3Q+Ci18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICAi
YSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18
ICAgPGJvZHk+Ci18ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0Pgot
fCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGk+Ci18ICAgICAgICAgPGk+Ci18ICAgICAgICAg
ICAiYSIKLQotVGVzdCAxMiBvZiAxNSBpbiByZXNvdXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJ
bnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxzdmc+PGZvcmVpZ25PYmplY3Q+
PHA+PGk+PC9wPmEKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAg
PHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAg
ICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgICAgICAgICA8cD4KLXwgICAg
ICAgICAgICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAgICAiYSIKLUV4cGVjdGVkOgotfCA8
IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8
dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+
Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9i
amVjdD4KLXwgICAgICAgICAgICAgICAgIDxwPgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwg
ICAgICAgICAgICAgICAgIDxpPgotfCAgICAgICAgICAgICAgICAgICAiYSIKLQotVGVzdCAxMyBv
ZiAxNSBpbiByZXNvdXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBo
dG1sPjxtYXRoPjxtdGV4dD48cD48aT48L3A+YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwg
PGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAg
ICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxpPgotfCAgICAgICAg
ICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4K
LXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG10ZXh0PgotfCAg
ICAgICAgIDxwPgotfCAgICAgICAgICAgPGk+Ci18ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAi
YSIKLQotVGVzdCAxNCBvZiAxNSBpbiByZXNvdXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1
dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxtYXRoPjxtdGV4dD48cD48aT48L3A+
YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJv
ZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAg
ICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAg
PG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAgICAgICA8cD4KLXwgICAgICAgICAgICAgICAgICAg
PGk+Ci18ICAgICAgICAgICAgICAgICAiYSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4K
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAg
IDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAg
IDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAg
ICAgICA8cD4KLXwgICAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAgICA8aT4K
LXwgICAgICAgICAgICAgICAgICAgImEiCiByZXNvdXJjZXMvdGVzdHNfaW5uZXJIVE1MXzEuZGF0
OiBQQVNTCiAKIHJlc291cmNlcy93ZWJraXQwMS5kYXQ6CkBAIC0xMzAzLDMyICs4NzYsOCBAQCBy
ZXNvdXJjZXMvaW5ib2R5MDEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy9pc2luZGV4LmRhdDogUEFT
UwogCi1yZXNvdXJjZXMvdGFibGVzMDEuZGF0OgotMTcKK3Jlc291cmNlcy90YWJsZXMwMS5kYXQ6
IFBBU1MKIAotVGVzdCAxNyBvZiAxNyBpbiByZXNvdXJjZXMvdGFibGVzMDEuZGF0IGZhaWxlZC4g
SW5wdXQ6Ci08dGFibGU+PHRyPjx0ZD48c3ZnPjxkZXNjPjx0ZD4KLUdvdDoKLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwg
ICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgot
fCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICAgICAgPHN2ZyBkZXNjPgotfCAgICAgICAgICAgPHRkPgogcmVzb3VyY2VzL3RyaWNreTAx
LmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2NyaXB0ZWQvYWRvcHRpb24wMS5kYXQ6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119315</attachid>
            <date>2011-12-14 16:10:53 -0800</date>
            <delta_ts>2011-12-14 16:23:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68106-20111214161052.patch</filename>
            <type>text/plain</type>
            <size>64945</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjgyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTEyLTE0ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgPHRhYmxlPjx0cj48dGQ+PHN2Zz48
ZGVzYz48dGQ+IHBhcnNlcyBpbmNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgb3VyIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBIVE1MNSBwYXJzZXIgdG8gYWNjb3VudAorICAgICAgICBmb3IgcmVjZW50IGNoYW5n
ZXMgaW4gdGhlIHNwZWMuICBUaGUgbWFpbiBjaGFuZ2UgaW4gdGhpcyBwYXRjaCBpcyB0bworICAg
ICAgICByZW1vdmUgdGhlICJpbiBmb3JlaWduIGNvbnRlbnQiIHN0YXRlIGZyb20gdGhlIHRyZWUg
YnVpbGRlci4gIFJhdGhlcgorICAgICAgICB0aGFuIG1haW50YWluaW5nIHRoaXMgYXMgYSBzZXBh
cmF0ZSBzdGF0ZSwgdGhlIHBhcnNlciBub3cgaW50cm9zcGVjdHMKKyAgICAgICAgb24gdGhlIHN0
YWNrIG9mIG9wZW4gZWxlbWVudHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHBhcnNlciBpcyBp
bgorICAgICAgICBmb3JpZWduIGNvbnRlbnQuICBJbiB0aGUgcHJvY2VzcywgSSd2ZSBkZWxldGVk
IHNvbWUgbm93LXVudXNlZAorICAgICAgICBtYWNoaW5lcnkgaW4gdGhlIHRyZWUgYnVpbGRlci4K
KworICAgICAgICBUZXN0ZWQgYnkgdGhlIGh0bWw1bGliIExheW91dFRlc3RzLiAgVGhlc2UgdGVz
dHMgc2hvdyB0aGUgcHJvZ3Jlc3Npb24KKyAgICAgICAgaW4gb3VyIHNwZWMgY29tcGxpYW5jZS4K
KworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oOgorICAgICAgICAqIG1hdGhtbC9tYXRoYXR0cnMuaW46CisKIDIwMTEtMTItMTQgIEpvbmF0
aGFuIEJhY2tlciAgPGJhY2tlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQ
bHVtYiB0aHJvdWdoIGZsYWcgZm9yIGVuYWJsaW5nIHBhcnRpYWwgc3dhcApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCShyZXZp
c2lvbiAxMDI2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKICAgICB2b2lkIGdlbmVyYXRlSW1wbGllZEVu
ZFRhZ3NXaXRoRXhjbHVzaW9uKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSk7CiAKKyAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9vcGVuRWxlbWVudHMuc3RhY2tEZXB0aCgp
OyB9CiAgICAgRWxlbWVudCogY3VycmVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX29wZW5F
bGVtZW50cy50b3AoKTsgfQogICAgIENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9kZSgpOyB9CiAgICAgRWxlbWVudCogb25lQmVs
b3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy5vbmVCZWxvd1RvcCgpOyB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNw
cAkocmV2aXNpb24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVs
ZW1lbnRTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNywxNCArMTA3LDggQEAgaW5saW5l
IGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKENvbnRhaQogCiBpbmxpbmUgYm9vbCBpc0ZvcmVp
Z25Db250ZW50U2NvcGVNYXJrZXIoQ29udGFpbmVyTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4g
bm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bWlUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptblRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxO
YW1lczo6bXNUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10
ZXh0VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2Jq
ZWN0VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQot
ICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyAgICByZXR1
cm4gSFRNTEVsZW1lbnRTdGFjazo6aXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChub2RlKQor
ICAgICAgICB8fCBIVE1MRWxlbWVudFN0YWNrOjppc0hUTUxJbnRlZ3JhdGlvblBvaW50KG5vZGUp
CiAgICAgICAgIHx8IGlzSW5IVE1MTmFtZXNwYWNlKG5vZGUpOwogfQogCkBAIC0yNzYsNiArMjcw
LDM4IEBAIHZvaWQgSFRNTEVsZW1lbnRTdGFjazo6cG9wVW50aWxUYWJsZVJvd1MKICAgICAgICAg
cG9wKCk7CiB9CiAKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjbWF0aG1sLXRleHQtaW50
ZWdyYXRpb24tcG9pbnQKK2Jvb2wgSFRNTEVsZW1lbnRTdGFjazo6aXNNYXRoTUxUZXh0SW50ZWdy
YXRpb25Qb2ludChDb250YWluZXJOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRWxlbWVudCogZWxlbWVudCA9
IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKTsKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFn
TmFtZShNYXRoTUxOYW1lczo6bWlUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUo
TWF0aE1MTmFtZXM6Om1vVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjptblRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bXNUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10
ZXh0VGFnKTsKK30KKworLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNodG1sLWludGVncmF0
aW9uLXBvaW50Citib29sIEhUTUxFbGVtZW50U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQo
Q29udGFpbmVyTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4obm9kZSk7CisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFt
ZXM6OmFubm90YXRpb25feG1sVGFnKSkgeworICAgICAgICAvLyBGSVhNRTogVGVjaG5pY2FsbHkg
d2Ugc2hvdWxkbid0IHJlYWQgYmFjayBmcm9tIHRoZSBET00gaGVyZS4KKyAgICAgICAgLy8gSW5z
dGVhZCwgd2UncmUgc3VwcG9zZWQgdG8gdHJhY2sgdGhpcyBpbmZvcm1hdGlvbiBpbiB0aGUgZWxl
bWVudAorICAgICAgICAvLyBzdGFjaywgd2hpY2ggbGV0cyB0aGUgcGFyc2VyIHJ1biBvbiBpdHMg
b3duIHRocmVhZC4KKyAgICAgICAgU3RyaW5nIGVuY29kaW5nID0gZWxlbWVudC0+ZmFzdEdldEF0
dHJpYnV0ZShNYXRoTUxOYW1lczo6ZW5jb2RpbmdBdHRyKTsKKyAgICAgICAgcmV0dXJuIGVxdWFs
SWdub3JpbmdDYXNlKGVuY29kaW5nLCAidGV4dC9odG1sIikKKyAgICAgICAgICAgIHx8IGVxdWFs
SWdub3JpbmdDYXNlKGVuY29kaW5nLCAiYXBwbGljYXRpb24veGh0bWwreG1sIik7CisgICAgfQor
ICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFn
KQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQorICAg
ICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZyk7Cit9CisKIHZv
aWQgSFRNTEVsZW1lbnRTdGFjazo6cG9wVW50aWxGb3JlaWduQ29udGVudFNjb3BlTWFya2VyKCkK
IHsKICAgICB3aGlsZSAoIWlzRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtlcih0b3BOb2RlKCkpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAko
cmV2aXNpb24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKG1fdG9wLT5lbGVtZW50KCkpOwogICAgICAgICByZXR1cm4gbV90b3AtPmVsZW1l
bnQoKTsKICAgICB9Ci0gICAgCisKICAgICBDb250YWluZXJOb2RlKiB0b3BOb2RlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RvcC0+bm9kZSgpKTsKQEAgLTExOSw2ICsxMTksOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwb3BIVE1MQm9keUVsZW1lbnQoKTsKICAgICB2b2lkIHBvcEFs
bCgpOwogCisgICAgc3RhdGljIGJvb2wgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChDb250
YWluZXJOb2RlKik7CisgICAgc3RhdGljIGJvb2wgaXNIVE1MSW50ZWdyYXRpb25Qb2ludChDb250
YWluZXJOb2RlKik7CisKICAgICB2b2lkIHJlbW92ZShFbGVtZW50Kik7CiAgICAgdm9pZCByZW1v
dmVIVE1MSGVhZEVsZW1lbnQoRWxlbWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDEwMjYwNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1Myw3ICszNTMsNiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihI
VE1MRG9jCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFsaXpl
ZFBvc2l0aW9uVmFsdWUxKCkpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlv
bihUZXh0UG9zaXRpb246OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVuZGlu
Z0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiB9CiAKQEAgLTM3Miw3ICszNzEs
NiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jCiAgICAgLCBtX3Nj
cmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFsaXplZFBvc2l0aW9uVmFsdWUxKCkp
CiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb246OmJl
bG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25N
b2RlU3RlcHMoZmFsc2UpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgYXNzZXJ0aW9uIHdpbGwgYmVj
b21lIGludmFsaWQgaWYgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjAzMTY+IGlzIGZpeGVkLgogICAg
IEFTU0VSVChjb250ZXh0RWxlbWVudCk7CkBAIC00NTksMTMgKzQ1NywxNiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21UCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpj
b25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB7Ci0g
ICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICBpZiAoc2hvdWxkUHJvY2Vzc1Rva2VuSW5Gb3Jl
aWduQ29udGVudCh0b2tlbikpCisgICAgICAgIHByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQo
dG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKIAogICAgIC8v
IFN3YWxsb3dpbmcgVSswMDAwIGNoYXJhY3RlcnMgaXNuJ3QgaW4gdGhlIEhUTUw1IHNwZWMsIGJ1
dCB0dXJuaW5nIGFsbAogICAgIC8vIHRoZSBVKzAwMDAgY2hhcmFjdGVycyBpbnRvIHJlcGxhY2Vt
ZW50IGNoYXJhY3RlcnMgaGFzIGNvbXBhdGliaWxpdHkKICAgICAvLyBwcm9ibGVtcy4KLSAgICBt
X3BhcnNlci0+dG9rZW5pemVyKCktPnNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50KG1f
aW5zZXJ0aW9uTW9kZSA9PSBUZXh0TW9kZSB8fCBtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3JlaWdu
Q29udGVudE1vZGUpOwotICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U2hvdWxkQWxsb3dD
REFUQShtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3JlaWduQ29udGVudE1vZGUgJiYgIWlzSW5IVE1M
TmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgpKSk7CisgICAgbV9wYXJzZXItPnRva2VuaXpl
cigpLT5zZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudChtX2luc2VydGlvbk1vZGUgPT0g
VGV4dE1vZGUpOworICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U2hvdWxkQWxsb3dDREFU
QSghbV90cmVlLmlzRW1wdHkoKSAmJiAhaXNJbkhUTUxOYW1lc3BhY2UobV90cmVlLmN1cnJlbnRO
b2RlKCkpKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbihBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQpAQCAtODQwLDcgKzg0MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
aW5TY29wZShidXR0b25UYWcpKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKGJ1dHRvblRhZyk7Ci0gICAgICAgICAgICByZXBy
b2Nlc3NTdGFydFRhZyh0b2tlbik7IC8vIEZJWE1FOiBDb3VsZCB3ZSBqdXN0IGZhbGwgdGhyb3Vn
aCBoZXJlPworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsgLy8gRklYTUU6IENv
dWxkIHdlIGp1c3QgZmFsbCB0aHJvdWdoIGhlcmU/CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1l
bnRzKCk7CkBAIC04OTcsNyArODk4LDYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvcgogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgLy8gQXBwYXJl
bnRseSB3ZSdyZSBub3Qgc3VwcG9zZWQgdG8gYXNrLgogICAgICAgICB0b2tlbi5zZXROYW1lKGlt
Z1RhZy5sb2NhbE5hbWUoKSk7Ci0gICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAg
ICAgICAgIC8vIE5vdGUgdGhlIGZhbGwgdGhyb3VnaCB0byB0aGUgaW1nVGFnIGhhbmRsaW5nIGJl
bG93IQogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09IGFyZWFUYWcKQEAgLTEwMDQsOCAr
MTAwNCw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAg
ICAgYWRqdXN0TWF0aE1MQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIGFkanVzdEZvcmVpZ25B
dHRyaWJ1dGVzKHRva2VuKTsKICAgICAgICAgbV90cmVlLmluc2VydEZvcmVpZ25FbGVtZW50KHRv
a2VuLCBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKTsKLSAgICAgICAgaWYgKG1faW5z
ZXJ0aW9uTW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSAmJiAhdG9rZW4uc2VsZkNsb3Npbmco
KSkKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gU1ZHTmFtZXM6
OnN2Z1RhZy5sb2NhbE5hbWUoKSkgewpAQCAtMTAxMyw4ICsxMDExLDYgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgICAgICBhZGp1c3RTVkdBdHRyaWJ1dGVz
KHRva2VuKTsKICAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOwogICAgICAg
ICBtX3RyZWUuaW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIFNWR05hbWVzOjpzdmdOYW1lc3Bh
Y2VVUkkpOwotICAgICAgICBpZiAobV9pbnNlcnRpb25Nb2RlICE9IEluRm9yZWlnbkNvbnRlbnRN
b2RlICYmICF0b2tlbi5zZWxmQ2xvc2luZygpKQotICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShJbkZvcmVpZ25Db250ZW50TW9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYg
KGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4ubmFtZSgpKQpAQCAtMTA3NSw3ICsxMDcx
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgIGlmICh0
b2tlbi5uYW1lKCkgPT0gY29sVGFnKSB7CiAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcoY29s
Z3JvdXBUYWcpOwogICAgICAgICBBU1NFUlQoSW5Db2x1bW5Hcm91cE1vZGUpOwotICAgICAgICBy
ZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0
b2tlbi5uYW1lKCkpKSB7CkBAIC0xMDg4LDcgKzEwODQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0clRhZykg
ewogICAgICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKHRib2R5VGFnKTsKICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwotICAgICAgICByZXByb2Nlc3NT
dGFydFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0YWJsZVRhZykgewpAQCAt
MTA5Nyw3ICsxMDkzLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zv
cgogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAg
ICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAodG9rZW4ubmFtZSgpID09IHN0eWxlVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBzY3JpcHRU
YWcpIHsKQEAgLTExMjYsMzAgKzExMjIsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnRm9yCiAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KHRva2VuKTsKIH0KIAot
bmFtZXNwYWNlIHsKLQotYm9vbCBzaG91bGRQcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9k
eUluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbiwgQ29udGFpbmVyTm9kZSogY3Vy
cmVudEVsZW1lbnQpCi17Ci0gICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBl
czo6U3RhcnRUYWcpOwotICAgIGlmIChjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxO
YW1lczo6bWlUYWcpCi0gICAgICAgIHx8IGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjptb1RhZykKLSAgICAgICAgfHwgY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6Om1uVGFnKQotICAgICAgICB8fCBjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bXNUYWcpCi0gICAgICAgIHx8IGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptdGV4dFRhZykpIHsKLSAgICAgICAgcmV0dXJuIHRva2VuLm5hbWUoKSAh
PSBNYXRoTUxOYW1lczo6bWdseXBoVGFnCi0gICAgICAgICAgICAmJiB0b2tlbi5uYW1lKCkgIT0g
TWF0aE1MTmFtZXM6Om1hbGlnbm1hcmtUYWc7Ci0gICAgfQotICAgIGlmIChjdXJyZW50RWxlbWVu
dC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6YW5ub3RhdGlvbl94bWxUYWcpKQotICAgICAgICBy
ZXR1cm4gdG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzdmdUYWc7Ci0gICAgaWYgKGN1cnJlbnRF
bGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQotICAgICAgICB8
fCBjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKLSAgICAgICAg
fHwgY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFnKSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGlzSW5IVE1MTmFtZXNwYWNlKGN1cnJlbnRFbGVt
ZW50KTsKLX0KLQotfQotCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6U3RhcnRUYWcpOwpAQCAtMTI0NCw3ICsxMjE2LDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICBwcm9j
ZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xMjYzLDcgKzEyMzUsNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICBB
U1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzU3Rh
cnRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVCb2R5TW9kZToK
ICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAt
MTI3Nyw3ICsxMjQ5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhB
dAogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBwcm9jZXNzRmFr
ZVN0YXJ0VGFnKHRyVGFnKTsKICAgICAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5Sb3dNb2RlKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAg
ICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4ubmFtZSgp
KSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4ubmFtZSgpKSkgewpAQCAtMTI5MCw3ICsx
MjYyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFRhYmxlQm9keVNjb3BlTWFya2Vy
KCk7CiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKG1fdHJlZS5jdXJy
ZW50RWxlbWVudCgpLT5sb2NhbE5hbWUoKSkpOwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRU
YWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPnRhZ1FOYW1lKCkpOwotICAgICAgICAgICAgcmVw
cm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2Vu
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRU
YWdGb3JJblRhYmxlKHRva2VuKTsKQEAgLTEzMTIsNyArMTI4NCw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVC
b2R5TW9kZSk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAg
ICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUodG9rZW4pOwpAQCAtMTMzMCw3
ICsxMzAyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNsb3NlVGhl
Q2VsbCgpOwotICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAg
ICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTM0Myw3ICsx
MzE1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5
TW9kZSk7Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vz
c1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkhlYWROb3Njcmlw
dE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTm9zY3JpcHRN
b2RlKTsKQEAgLTE0MTEsNyArMTM4Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWcoQXQKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAg
QXRvbWljSFRNTFRva2VuIGVuZFNlbGVjdChIVE1MVG9rZW5UeXBlczo6RW5kVGFnLCBzZWxlY3RU
YWcubG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyhlbmRTZWxlY3QpOwot
ICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vz
c1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICAvLyBGYWxsIHRocm91Z2gKQEAgLTE0NTcsNyArMTQyOSw3IEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEF0b21p
Y0hUTUxUb2tlbiBlbmRTZWxlY3QoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgc2VsZWN0VGFnLmxv
Y2FsTmFtZSgpKTsKICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKLSAgICAg
ICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHRva2VuLm5hbWUoKSA9PSBzY3JpcHRUYWcpIHsKQEAgLTE0NzAsNjggKzE0NDIsNiBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgIGRlZmF1bHRGb3JJ
blRhYmxlVGV4dCgpOwogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOiB7Ci0gICAgICAgIGlmIChzaG91
bGRQcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keUluc2VydGlvbk1vZGUodG9rZW4sIG1f
dHJlZS5jdXJyZW50Tm9kZSgpKSkgewotICAgICAgICAgICAgcHJvY2Vzc0ZvcmVpZ25Db250ZW50
VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKHRva2VuKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IGJUYWcKLSAgICAgICAgICAg
IHx8IHRva2VuLm5hbWUoKSA9PSBiaWdUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBibG9ja3F1b3RlVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gYm9keVRhZwot
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJyVGFnCi0gICAgICAgICAgICB8fCB0b2tl
bi5uYW1lKCkgPT0gY2VudGVyVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gY29k
ZVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGRkVGFnCi0gICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gZGl2VGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
ZGxUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkdFRhZwotICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IGVtVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
ZW1iZWRUYWcKLSAgICAgICAgICAgIHx8IGlzTnVtYmVyZWRIZWFkZXJUYWcodG9rZW4ubmFtZSgp
KQotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGhlYWRUYWcKLSAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBoclRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGlU
YWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBpbWdUYWcKLSAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBsaVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGxp
c3RpbmdUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBtZW51VGFnCi0gICAgICAg
ICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbWV0YVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFt
ZSgpID09IG5vYnJUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBvbFRhZwotICAg
ICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHBUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSBwcmVUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBydWJ5VGFnCi0g
ICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc1RhZwotICAgICAgICAgICAgfHwgdG9rZW4u
bmFtZSgpID09IHNtYWxsVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3BhblRh
ZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHN0cm9uZ1RhZwotICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IHN0cmlrZVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgp
ID09IHN1YlRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHN1cFRhZwotICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHRhYmxlVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gdHRUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB1VGFnCi0gICAg
ICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdWxUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSB2YXJUYWcKLSAgICAgICAgICAgIHx8ICh0b2tlbi5uYW1lKCkgPT0gZm9udFRhZyAm
JiAodG9rZW4uZ2V0QXR0cmlidXRlSXRlbShjb2xvckF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0
ZUl0ZW0oZmFjZUF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oc2l6ZUF0dHIpKSkpIHsK
LSAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICAgICAgbV90cmVlLm9wZW5F
bGVtZW50cygpLT5wb3BVbnRpbEZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoKTsKLSAgICAgICAg
ICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKLSAgICAgICAgICAgIHJlcHJv
Y2Vzc1N0YXJ0VGFnKHRva2VuKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGN1cnJlbnROYW1lc3BhY2UgPSBtX3RyZWUuY3VycmVu
dEVsZW1lbnQoKS0+bmFtZXNwYWNlVVJJKCk7Ci0gICAgICAgIGlmIChjdXJyZW50TmFtZXNwYWNl
ID09IE1hdGhNTE5hbWVzOjptYXRobWxOYW1lc3BhY2VVUkkpCi0gICAgICAgICAgICBhZGp1c3RN
YXRoTUxBdHRyaWJ1dGVzKHRva2VuKTsKLSAgICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0g
U1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkgewotICAgICAgICAgICAgYWRqdXN0U1ZHVGFnTmFt
ZUNhc2UodG9rZW4pOwotICAgICAgICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7Ci0g
ICAgICAgIH0KLSAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOwotICAgICAg
ICBtX3RyZWUuaW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIGN1cnJlbnROYW1lc3BhY2UpOwot
ICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBUZXh0TW9kZToKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTc1Nyw5ICsxNjY3LDYgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZQogICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1v
ZGUoQmVmb3JlSGVhZE1vZGUpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChub2RlLT5uYW1lc3Bh
Y2VVUkkoKSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJCi0gICAgICAgICAgICB8fCBub2Rl
LT5uYW1lc3BhY2VVUkkoKSA9PSBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKQotICAg
ICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwog
ICAgICAgICBpZiAobGFzdCkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CkBA
IC0xNzkxLDcgKzE2OTgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0Zv
ckluCiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxUYWJsZUJvZHlTY29w
ZU1hcmtlcigpOwogICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKG1fdHJlZS5j
dXJyZW50RWxlbWVudCgpLT5sb2NhbE5hbWUoKSkpOwogICAgICAgICBwcm9jZXNzRmFrZUVuZFRh
ZyhtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+dGFnUU5hbWUoKSk7Ci0gICAgICAgIHJlcHJvY2Vz
c0VuZFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYm9keVRhZwpAQCAtMTgxOCw3
ICsxNzI1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKLSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1lKCkpKSB7CkBAIC0xODI4LDcg
KzE3MzUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluCiAgICAg
ICAgIH0KICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcodHJUYWcpOwogICAgICAgICBBU1NFUlQo
aW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7Ci0gICAgICAgIHJlcHJvY2Vzc0Vu
ZFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYm9keVRhZwpAQCAtMTg3Miw3ICsx
Nzc5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNsb3NlVGhlQ2VsbCgpOwotICAgICAg
ICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KHRva2Vu
KTsKQEAgLTE4ODgsNyArMTc5NSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5k
VGFnRm9ySW4KICAgICBpZiAodG9rZW4ubmFtZSgpID09IGh0bWxUYWcpIHsKICAgICAgICAgQXRv
bWljSFRNTFRva2VuIGVuZEJvZHkoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgYm9keVRhZy5sb2Nh
bE5hbWUoKSk7CiAgICAgICAgIGlmIChwcm9jZXNzQm9keUVuZFRhZ0ZvckluQm9keShlbmRCb2R5
KSkKLSAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4u
bmFtZSgpID09IGFkZHJlc3NUYWcKQEAgLTE5NDEsNyArMTg0OCw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW4KICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhwVGFnKTsKICAgICAgICAgICAgIEFT
U0VSVChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4ubmFtZSgpKSk7Ci0gICAg
ICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV90cmVl
LmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRva2VuLm5hbWUoKSk7CkBAIC0y
MTM3LDcgKzIwNDQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9t
CiAgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CisgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IGJvZHlUYWcK
QEAgLTIxNjYsNyArMjA3Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
KEF0b20KICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOwor
ICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
blJvd01vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsK
QEAgLTIxOTAsMTMgKzIwOTcsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRU
YWcoQXRvbQogICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckFmdGVyQm9keU1vZGUp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEFmdGVyQWZ0
ZXJCb2R5TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckJvZHlN
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckFmdGVyQm9keU1vZGUpOwogICAgICAgICBw
YXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsK
LSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0
b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgogICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE5vc2NyaXB0TW9kZSk7CkBAIC0y
MjcyLDcgKzIxNzgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9t
CiAgICAgICAgICAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9r
ZW4ubmFtZSgpKSkgewogICAgICAgICAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRTZWxlY3Qo
SFRNTFRva2VuVHlwZXM6OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAg
ICAgICAgICBwcm9jZXNzRW5kVGFnKGVuZFNlbGVjdCk7Ci0gICAgICAgICAgICAgICAgcmVwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjMxMiw1
OSArMjIxOCw5IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b20KICAg
ICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9r
ZW4pOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOgotICAg
ICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCktPm5hbWVzcGFjZVVSSSgpID09IFNWR05hbWVz
OjpzdmdOYW1lc3BhY2VVUkkpCi0gICAgICAgICAgICBhZGp1c3RTVkdUYWdOYW1lQ2FzZSh0b2tl
bik7Ci0KLSAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBTVkdOYW1lczo6c2NyaXB0VGFnICYm
IG1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzY3JpcHRUYWcpKSB7
Ci0gICAgICAgICAgICBtX2lzUGF1c2VkID0gdHJ1ZTsKLSAgICAgICAgICAgIG1fc2NyaXB0VG9Q
cm9jZXNzID0gbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7Ci0gICAgICAgICAgICBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnBvcCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICghaXNJbkhUTUxOYW1lc3BhY2UobV90cmVlLmN1cnJlbnROb2RlKCkpKSB7Ci0gICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGp1c3Qgd2FudHMgYW4gRWxlbWVudCogaXRlcmF0
b3IsIGluc3RlYWQgb2YgYW4gRWxlbWVudFJlY29yZCoKLSAgICAgICAgICAgIEhUTUxFbGVtZW50
U3RhY2s6OkVsZW1lbnRSZWNvcmQqIG5vZGVSZWNvcmQgPSBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PnRvcFJlY29yZCgpOwotICAgICAgICAgICAgaWYgKCFub2RlUmVjb3JkLT5ub2RlKCktPmhhc0xv
Y2FsTmFtZSh0b2tlbi5uYW1lKCkpKQotICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwotICAgICAgICAgICAgd2hpbGUgKDEpIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZVJlY29y
ZC0+bm9kZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkgewotICAgICAgICAgICAgICAg
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKG5vZGVSZWNvcmQtPmVs
ZW1lbnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUo
KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBub2RlUmVjb3JkID0gbm9kZVJlY29yZC0+bmV4dCgpOwotCi0gICAgICAgICAg
ICAgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGVSZWNvcmQtPm5vZGUoKSkpCi0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8v
IEFueSBvdGhlciBlbmQgdGFnIChhbHNvIHRoZSBsYXN0IHR3byBzdGVwcyBvZiAiQW4gZW5kIHRh
ZywgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBub3QgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBuYW1l
c3BhY2UuIgotICAgICAgICBwcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRS
ZXNldE1vZGUodG9rZW4pOwotICAgICAgICBicmVhazsKICAgICB9CiB9CiAKLXZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpCi17Ci0gICAgaWYgKG1faGFzUGVu
ZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMpIHsKLSAgICAgICAgcmVzZXRGb3JlaWduSW5z
ZXJ0aW9uTW9kZSgpOwotICAgICAgICBtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0
ZXBzID0gZmFsc2U7Ci0gICAgfQotfQotCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVwcm9jZXNz
U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKLXsKLSAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwotICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7Ci19Ci0KLXZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpyZXByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKLXsKLSAg
ICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwotICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwot
fQotCiBjbGFzcyBIVE1MVHJlZUJ1aWxkZXI6OkZha2VJbnNlcnRpb25Nb2RlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShGYWtlSW5zZXJ0aW9uTW9kZSk7CiBwdWJsaWM6CkBAIC0yMzg2LDIz
ICsyMjQyLDYgQEAgcHJpdmF0ZToKICAgICBJbnNlcnRpb25Nb2RlIG1fb3JpZ2luYWxNb2RlOwog
fTsKIAotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5C
b2R5TW9kZUFuZFJlc2V0TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQotewotICAgIG1faGFz
UGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMgPSB0cnVlOwotICAgIHsKLSAgICAgICAg
RmFrZUluc2VydGlvbk1vZGUgZmFrZU1vZGUodGhpcywgSW5Cb2R5TW9kZSk7Ci0gICAgICAgIHBy
b2Nlc3NUb2tlbih0b2tlbik7Ci0gICAgfQotICAgIGlmIChtX2hhc1BlbmRpbmdGb3JlaWduSW5z
ZXJ0aW9uTW9kZVN0ZXBzKQotICAgICAgICByZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCk7Ci19
Ci0KLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCkKLXsK
LSAgICBpZiAoaW5zZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2RlKQotICAgICAg
ICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Ci19Ci0KIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzQ29tbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewogICAgIEFT
U0VSVCh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwpAQCAtMjQ4NCwy
MSArMjMyMywyOSBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgY2FzZSBJbkNhcHRpb25Nb2RlOgog
ICAgIGNhc2UgSW5DZWxsTW9kZTogewogICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09
IEluQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgpID09IEluQ2FwdGlvbk1vZGUgfHwgaW5zZXJ0
aW9uTW9kZSgpID09IEluQ2VsbE1vZGUpOwotICAgICAgICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVB
Y3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKLSAgICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBi
dWZmZXIudGFrZVJlbWFpbmluZygpOwotICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hh
cmFjdGVycyk7Ci0gICAgICAgIGlmIChtX2ZyYW1lc2V0T2sgJiYgIWlzQWxsV2hpdGVzcGFjZU9y
UmVwbGFjZW1lbnRDaGFyYWN0ZXJzKGNoYXJhY3RlcnMpKQotICAgICAgICAgICAgbV9mcmFtZXNl
dE9rID0gZmFsc2U7CisgICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJGb3JJbkJvZHkoYnVm
ZmVyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgSW5UYWJsZU1vZGU6CiAgICAg
Y2FzZSBJblRhYmxlQm9keU1vZGU6CiAgICAgY2FzZSBJblJvd01vZGU6IHsKLSAgICAgICAgQVNT
RVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlTW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0g
SW5UYWJsZUJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01vZGUpOwotICAgICAg
ICBBU1NFUlQobV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1f
b3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRpb25Nb2RlOwotICAgICAgICBzZXRJbnNl
cnRpb25Nb2RlKEluVGFibGVUZXh0TW9kZSk7Ci0gICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rv
a2VuKCk7CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgp
CisgICAgICAgICAgICAmJiAobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjp0YWJsZVRhZykKKyAgICAgICAgICAgICAgICB8fCBtX3RyZWUuY3VycmVudEVsZW1l
bnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRib2R5VGFnKQorICAgICAgICAgICAgICAgIHx8
IG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dGZvb3RUYWcp
CisgICAgICAgICAgICAgICAgfHwgbV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjp0aGVhZFRhZykKKyAgICAgICAgICAgICAgICB8fCBtX3RyZWUuY3VycmVudEVs
ZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRyVGFnKSkpIHsKKyAgICAgICAgICAgIEFT
U0VSVChtX3RyZWUuY3VycmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpKTsKKyAgICAgICAgICAg
IEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5UYWJsZU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEluVGFibGVCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsKKyAg
ICAgICAgICAgIEFTU0VSVChtX3BlbmRpbmdUYWJsZUNoYXJhY3RlcnMuaXNFbXB0eSgpKTsKKyAg
ICAgICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRpb25Nb2RlOworICAg
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlVGV4dE1vZGUpOworICAgICAgICAgICAg
Ly8gTm90ZSB0aGF0IHdlIGZhbGwgdGhyb3VnaCB0byB0aGUgSW5UYWJsZVRleHRNb2RlIGNhc2Ug
YmVsb3cuCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKKyAgICAg
ICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJGb3JJbkJvZHkoYnVmZmVyKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICB9CiAg
ICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6IHsKQEAgLTI1MTksNyArMjM2Niw2IEBAIFJlcHJvY2Vz
c0J1ZmZlcjoKICAgICAgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwogICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsKICAgICB9CiAgICAgY2FzZSBBZnRlckJv
ZHlNb2RlOgpAQCAtMjUyNyw3ICsyMzczLDYgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEFmdGVyQWZ0ZXJCb2R5TW9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgog
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwotICAgICAgICBwcmVwYXJlVG9S
ZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsKICAgICAgICAg
YnJlYWs7CiAgICAgfQpAQCAtMjU2MywxNCArMjQwOCw2IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAg
ICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGJ1ZmZlci50YWtlUmVtYWluaW5nKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBJbkZvcmVpZ25Db250ZW50TW9kZTogewotICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKLSAg
ICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBidWZmZXIudGFrZVJlbWFpbmluZygpOwotICAgICAg
ICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7Ci0gICAgICAgIGlmIChtX2ZyYW1l
c2V0T2sgJiYgIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkKLSAgICAgICAgICAgIG1fZnJh
bWVzZXRPayA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBBZnRlckFm
dGVyRnJhbWVzZXRNb2RlOiB7CiAgICAgICAgIFN0cmluZyBsZWFkaW5nV2hpdGVzcGFjZSA9IGJ1
ZmZlci50YWtlUmVtYWluaW5nV2hpdGVzcGFjZSgpOwogICAgICAgICBpZiAoIWxlYWRpbmdXaGl0
ZXNwYWNlLmlzRW1wdHkoKSkgewpAQCAtMjU4NCw2ICsyNDIxLDE1IEBAIFJlcHJvY2Vzc0J1ZmZl
cjoKICAgICB9CiB9CiAKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyQnVm
ZmVyRm9ySW5Cb2R5KEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXImIGJ1ZmZlcikKK3sKKyAg
ICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBT
dHJpbmcgY2hhcmFjdGVycyA9IGJ1ZmZlci50YWtlUmVtYWluaW5nKCk7CisgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGNoYXJhY3RlcnMpOworICAgIGlmIChtX2ZyYW1lc2V0T2sgJiYgIWlzQWxs
V2hpdGVzcGFjZU9yUmVwbGFjZW1lbnRDaGFyYWN0ZXJzKGNoYXJhY3RlcnMpKQorICAgICAgICBt
X2ZyYW1lc2V0T2sgPSBmYWxzZTsKK30KKwogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NF
bmRPZkZpbGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKIHsKICAgICBBU1NFUlQodG9rZW4udHlw
ZSgpID09IEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGUpOwpAQCAtMjY0NiwxMSArMjQ5Miw2IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEEKICAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsgLy8gRklYTUU6
IFNob3VsZCB3ZSBicmVhayBoZXJlIGluc3RlYWQgb2YgcmV0dXJuaW5nPwogICAgICAgICB9Ci0g
ICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7Ci0gICAgICAgIHByb2Nlc3NFbmRPZkZp
bGUodG9rZW4pOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJbkZvcmVpZ25Db250ZW50TW9k
ZToKLSAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgcHJvY2Vz
c0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluVGFibGVUZXh0
TW9kZToKQEAgLTI2NjQsNyArMjUwNSw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
RW5kT2ZGaWxlKEEKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAg
ICAgQVNTRVJUKG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlICE9IFRleHRNb2RlKTsKICAgICAgICAg
c2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7Ci0gICAgICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjY3OSw3ICsyNTE5LDYgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OmRlZmF1bHRGb3JJbml0aWFsKAogICAgICAgICBtX2RvY3VtZW50LT5zZXRDb21w
YXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7CiAgICAgLy8gRklYTUU6IHBhcnNl
IGVycm9yCiAgICAgc2V0SW5zZXJ0aW9uTW9kZShCZWZvcmVIVE1MTW9kZSk7Ci0gICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRG
b3JCZWZvcmVIVE1MKCkKQEAgLTI2ODcsMjggKzI1MjYsMjQgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmRlZmF1bHRGb3JCZWZvcmVIVAogICAgIEF0b21pY0hUTUxUb2tlbiBzdGFydEhUTUwoSFRN
TFRva2VuVHlwZXM6OlN0YXJ0VGFnLCBodG1sVGFnLmxvY2FsTmFtZSgpKTsKICAgICBtX3RyZWUu
aW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0JlZm9yZUhUTUwoc3RhcnRIVE1MKTsKICAgICBzZXRJbnNl
cnRpb25Nb2RlKEJlZm9yZUhlYWRNb2RlKTsKLSAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckJlZm9yZUhlYWQoKQogewog
ICAgIEF0b21pY0hUTUxUb2tlbiBzdGFydEhlYWQoSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnLCBo
ZWFkVGFnLmxvY2FsTmFtZSgpKTsKICAgICBwcm9jZXNzU3RhcnRUYWcoc3RhcnRIZWFkKTsKLSAg
ICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
ZGVmYXVsdEZvckluSGVhZCgpCiB7CiAgICAgQXRvbWljSFRNTFRva2VuIGVuZEhlYWQoSFRNTFRv
a2VuVHlwZXM6OkVuZFRhZywgaGVhZFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgcHJvY2Vzc0VuZFRh
ZyhlbmRIZWFkKTsKLSAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluSGVhZE5vc2NyaXB0KCkKIHsKICAgICBBdG9taWNI
VE1MVG9rZW4gZW5kTm9zY3JpcHQoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgbm9zY3JpcHRUYWcu
bG9jYWxOYW1lKCkpOwogICAgIHByb2Nlc3NFbmRUYWcoZW5kTm9zY3JpcHQpOwotICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0
Rm9yQWZ0ZXJIZWFkKCkKQEAgLTI3MTYsNyArMjU1MSw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9yQWZ0ZXJIZWEKICAgICBBdG9taWNIVE1MVG9rZW4gc3RhcnRCb2R5KEhUTUxU
b2tlblR5cGVzOjpTdGFydFRhZywgYm9keVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHN0YXJ0Qm9keSk7CiAgICAgbV9mcmFtZXNldE9rID0gdHJ1ZTsKLSAgICBwcmVwYXJl
VG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZv
ckluVGFibGVUZXh0KCkKQEAgLTI3MzAsMTIgKzI1NjQsMTAgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmRlZmF1bHRGb3JJblRhYmxlVAogICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hh
cmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNl
OwogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlKTsKLSAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7CiAgICAgc2V0SW5zZXJ0aW9u
TW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVh
ZChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpAQCAtMjgxOSw2ICsyNjUxLDE0OSBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1NjcmlwdFN0YXJ0CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShU
ZXh0TW9kZSk7CiB9CiAKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjdHJlZS1jb25zdHJ1
Y3Rpb24KK2Jvb2wgSFRNTFRyZWVCdWlsZGVyOjpzaG91bGRQcm9jZXNzVG9rZW5JbkZvcmVpZ25D
b250ZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CisgICAgaWYgKG1fdHJlZS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBDb250YWluZXJOb2RlKiBub2RlID0gbV90
cmVlLmN1cnJlbnROb2RlKCk7CisgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEhUTUxFbGVtZW50U3RhY2s6OmlzTWF0aE1MVGV4
dEludGVncmF0aW9uUG9pbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBI
VE1MVG9rZW5UeXBlczo6U3RhcnRUYWcKKyAgICAgICAgICAgICYmIHRva2VuLm5hbWUoKSAhPSBN
YXRoTUxOYW1lczo6bWdseXBoVGFnCisgICAgICAgICAgICAmJiB0b2tlbi5uYW1lKCkgIT0gTWF0
aE1MTmFtZXM6Om1hbGlnbm1hcmtUYWcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcikKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6OmFubm90YXRpb25feG1sVGFnKQorICAgICAgICAmJiB0b2tlbi50eXBlKCkgPT0g
SFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnCisgICAgICAgICYmIHRva2VuLm5hbWUoKSA9PSBTVkdO
YW1lczo6c3ZnVGFnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEhUTUxFbGVtZW50
U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKHRva2Vu
LnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJh
Y3RlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKHRva2VuLnR5
cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kT2ZGaWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9r
ZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CisgICAgc3dpdGNo
ICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpVbmluaXRpYWxpemVk
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBIVE1MVG9rZW5UeXBlczo6RE9DVFlQRToKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnOiB7CisgICAg
ICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYlRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgp
ID09IGJpZ1RhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJsb2NrcXVvdGVUYWcK
KyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBib2R5VGFnCisgICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gYnJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBjZW50
ZXJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBjb2RlVGFnCisgICAgICAgICAg
ICB8fCB0b2tlbi5uYW1lKCkgPT0gZGRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBkaXZUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkbFRhZworICAgICAgICAg
ICAgfHwgdG9rZW4ubmFtZSgpID09IGR0VGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkg
PT0gZW1UYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBlbWJlZFRhZworICAgICAg
ICAgICAgfHwgaXNOdW1iZXJlZEhlYWRlclRhZyh0b2tlbi5uYW1lKCkpCisgICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gaGVhZFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IGhyVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gaVRhZworICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IGltZ1RhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IGxpVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbGlzdGluZ1RhZworICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG1lbnVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSBtZXRhVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbm9iclRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG9sVGFnCisgICAgICAgICAgICB8fCB0b2tl
bi5uYW1lKCkgPT0gcFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHByZVRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHJ1YnlUYWcKKyAgICAgICAgICAgIHx8IHRv
a2VuLm5hbWUoKSA9PSBzVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc21hbGxU
YWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzcGFuVGFnCisgICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gc3Ryb25nVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkg
PT0gc3RyaWtlVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3ViVGFnCisgICAg
ICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3VwVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gdGFibGVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0dFRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHVUYWcKKyAgICAgICAgICAgIHx8IHRva2Vu
Lm5hbWUoKSA9PSB1bFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHZhclRhZwor
ICAgICAgICAgICAgfHwgKHRva2VuLm5hbWUoKSA9PSBmb250VGFnICYmICh0b2tlbi5nZXRBdHRy
aWJ1dGVJdGVtKGNvbG9yQXR0cikgfHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShmYWNlQXR0cikg
fHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShzaXplQXR0cikpKSkgeworICAgICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CisgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVu
dGlsRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtlcigpOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0
VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGN1cnJlbnROYW1lc3BhY2UgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQo
KS0+bmFtZXNwYWNlVVJJKCk7CisgICAgICAgIGlmIChjdXJyZW50TmFtZXNwYWNlID09IE1hdGhN
TE5hbWVzOjptYXRobWxOYW1lc3BhY2VVUkkpCisgICAgICAgICAgICBhZGp1c3RNYXRoTUxBdHRy
aWJ1dGVzKHRva2VuKTsKKyAgICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0gU1ZHTmFtZXM6
OnN2Z05hbWVzcGFjZVVSSSkgeworICAgICAgICAgICAgYWRqdXN0U1ZHVGFnTmFtZUNhc2UodG9r
ZW4pOworICAgICAgICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7CisgICAgICAgIH0K
KyAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOworICAgICAgICBtX3RyZWUu
aW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIGN1cnJlbnROYW1lc3BhY2UpOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6RW5kVGFnOiB7CisgICAgICAg
IGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+bmFtZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2
Z05hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGFkanVzdFNWR1RhZ05hbWVDYXNlKHRva2VuKTsK
KworICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzY3JpcHRUYWcgJiYgbV90
cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKKyAg
ICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOworICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nl
c3MgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+cG9wKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
aWYgKCFpc0luSFRNTE5hbWVzcGFjZShtX3RyZWUuY3VycmVudE5vZGUoKSkpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUganVzdCB3YW50cyBhbiBFbGVtZW50KiBpdGVyYXRvciwg
aW5zdGVhZCBvZiBhbiBFbGVtZW50UmVjb3JkKgorICAgICAgICAgICAgSFRNTEVsZW1lbnRTdGFj
azo6RWxlbWVudFJlY29yZCogbm9kZVJlY29yZCA9IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9w
UmVjb3JkKCk7CisgICAgICAgICAgICBpZiAoIW5vZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxO
YW1lKHRva2VuLm5hbWUoKSkpCisgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlUmVjb3JkLT5u
b2RlKCktPmhhc0xvY2FsTmFtZSh0b2tlbi5uYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgICAg
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQobm9kZVJlY29yZC0+ZWxlbWVu
dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBub2RlUmVjb3JkID0gbm9kZVJlY29yZC0+bmV4dCgpOworCisgICAgICAg
ICAgICAgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGVSZWNvcmQtPm5vZGUoKSkpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IC8vIE90aGVyd2lzZSwgcHJvY2VzcyB0aGUgdG9rZW4gYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBn
aXZlbiBpbiB0aGUgc2VjdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGluc2VydGlv
biBtb2RlIGluIEhUTUwgY29udGVudC4KKyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpDb21tZW50Ogor
ICAgICAgICBtX3RyZWUuaW5zZXJ0Q29tbWVudCh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEhUTUxUb2tlblR5cGVzOjpDaGFyYWN0ZXI6IHsKKyAgICAgICAgU3RyaW5nIGNoYXJh
Y3RlcnMgPSBTdHJpbmcodG9rZW4uY2hhcmFjdGVycygpLmRhdGEoKSwgdG9rZW4uY2hhcmFjdGVy
cygpLnNpemUoKSk7CisgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsK
KyAgICAgICAgaWYgKG1fZnJhbWVzZXRPayAmJiAhaXNBbGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMp
KQorICAgICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGU6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpmaW5pc2hlZCgpCiB7CiAgICAgaWYgKGlzUGFyc2luZ0ZyYWdtZW50KCkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkocmV2aXNp
b24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsxMDksNiBAQCBwcml2YXRlOgogICAgICAgICBJ
bkNlbGxNb2RlLAogICAgICAgICBJblNlbGVjdE1vZGUsCiAgICAgICAgIEluU2VsZWN0SW5UYWJs
ZU1vZGUsCi0gICAgICAgIEluRm9yZWlnbkNvbnRlbnRNb2RlLAogICAgICAgICBBZnRlckJvZHlN
b2RlLAogICAgICAgICBJbkZyYW1lc2V0TW9kZSwKICAgICAgICAgQWZ0ZXJGcmFtZXNldE1vZGUs
CkBAIC0xNDksNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3NBbnlPdGhlckVu
ZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mKTsKIAogICAgIHZvaWQgcHJvY2Vzc0NoYXJh
Y3RlckJ1ZmZlcihFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyJik7CisgICAgdm9pZCBwcm9j
ZXNzQ2hhcmFjdGVyQnVmZmVyRm9ySW5Cb2R5KEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIm
KTsKIAogICAgIHZvaWQgcHJvY2Vzc0Zha2VTdGFydFRhZyhjb25zdCBRdWFsaWZpZWROYW1lJiwg
UGFzc1JlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJpYnV0ZXMgPSAwKTsKICAgICB2b2lkIHByb2Nl
c3NGYWtlRW5kVGFnKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTE2OCwxMCArMTY4LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRlZmF1bHRGb3JBZnRlckhlYWQoKTsKICAgICB2b2lkIGRlZmF1
bHRGb3JJblRhYmxlVGV4dCgpOwogCi0gICAgdm9pZCBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwotCi0gICAgdm9pZCByZXByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKLSAgICB2
b2lkIHJlcHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKKyAgICBib29sIHNob3VsZFBy
b2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJik7CisgICAgdm9pZCBw
cm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYpOwogCiAgICAgUGFz
c1JlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJpYnV0ZXNGb3JJc2luZGV4SW5wdXQoQXRvbWljSFRN
TFRva2VuJik7CiAKQEAgLTIwMyw5ICsyMDEsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNl
dEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JlaWdu
Q29udGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KTsKLSAgICB2b2lkIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKTsKLQogICAgIGNsYXNzIEZy
YWdtZW50UGFyc2luZ0NvbnRleHQgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFn
bWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBwdWJsaWM6CkBAIC0yNTcsOCArMjUyLDYgQEAgcHJp
dmF0ZToKICAgICBUZXh0UG9zaXRpb24gbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb247
CiAKICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M7Ci0KLSAgICBib29sIG1faGFz
UGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9tYXRobWwvbWF0aGF0dHJzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L21hdGhtbC9tYXRoYXR0cnMuaW4JKHJldmlzaW9uIDEwMjYwNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L21hdGhtbC9tYXRoYXR0cnMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw3IEBAIGNsb3Nl
CiBjb2xvcgogZGVmaW5pdGlvblVSTAogZGVub21hbGlnbgorZW5jb2RpbmcKIGZvbnRmYW1pbHkK
IGZvbnRzaXplCiBmb250c3R5bGUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjgyMSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTEy
LTE0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgPHRhYmxlPjx0
cj48dGQ+PHN2Zz48ZGVzYz48dGQ+IHBhcnNlcyBpbmNvcnJlY3RseQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy93ZWJr
aXQwMS5kYXQ6CisgICAgICAgICAgICAtIFRoaXMgdGVzdCBoYWQgYW4gaW5jb3JyZWN0IGV4cGVj
dGF0aW9uIHRoYXQgbWF0Y2hlZCBvdXIgcHJldmlvdXMKKyAgICAgICAgICAgICAgYmVoYXZpb3Iu
ICBUaGUgbmV3IGV4cGVjdGVkIHJlc3VsdCBtYXRjaGVzIEZpcmVmb3gncworICAgICAgICAgICAg
ICBpbXBsZW1lbmF0aW9uIGFzIHdlbGwuCisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAgICAgLSBVcGRhdGVkIHRvIHNob3cgdGVzdCBwcm9ncmVzc2lv
bnMuICBUaGUgb25lIG5vbi1tb25vdG9uaWMKKyAgICAgICAgICAgICAgaW1wcm92ZW1lbnQgaXMg
c29tZSBjaHVybiBpbiB3aGljaCBvZiB0aGUgdW5zYWZlLXRleHQgdGVzdHMgd2UKKyAgICAgICAg
ICAgICAgcGFzcy4gIEknbGwgbG9vayBpbnRvIHRoaXMgaXNzdWUgaW4gYSBmdXR1cmUgcGF0Y2gu
CisKIDIwMTEtMTItMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgU2tpcCBmYXN0L2Zvcm1zL3NlbGVjdC9tZW51bGlzdC1vbmNoYW5nZS1maXJlZC13aXRoLWtl
eS11cC1kb3duLmh0bWwgb24gTWFjIHNpbmNlCkluZGV4OiBMYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0bWw1bGliL3J1
bm5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMjYyNikKKysrIExheW91dFRlc3RzL2h0bWw1
bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4LDY5ICsxOCwxNSBA
QCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogUEFTUwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6
IEZPTzxzcGFuPkJBUjwvc3Bhbj5CQVoKIHJlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy1w
bGFpbi10ZXh0LXVuc2FmZS5kYXQ6IFBBU1MKIAotcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFu
Z2VzLmRhdDoKLTIKLTMKK3Jlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQ6IFBBU1MK
IAotVGVzdCAyIG9mIDMgaW4gcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFuZ2VzLmRhdCBmYWls
ZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRhYmxlPjxjYXB0aW9uPjxzdmc+Zm9vPC90YWJs
ZT5iYXIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3Zn
IHN2Zz4KLXwgICAgICAgICAgICJmb29iYXIiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAg
ICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICJmb28iCi18ICAg
ICAiYmFyIgotCi1UZXN0IDMgb2YgMyBpbiByZXNvdXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMu
ZGF0IGZhaWxlZC4gSW5wdXQ6Ci08dGFibGU+PHRyPjx0ZD48c3ZnPjxkZXNjPjx0ZD48L2Rlc2M+
PGNpcmNsZT4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8
dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+
Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4KLXwg
ICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICAgICAgPHN2ZyBkZXNjPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8Y2ly
Y2xlPgogcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdDoKIDEwCi0xNAotMTkKLTIwCi0y
NwotMjgKLTI5Ci0zMAotMzEKLTMyCi0zMworMTUKKzE2CisxNworMTgKKzIxCiAKIFRlc3QgMTAg
b2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0Ogog
PHBsYWludGV4dD4AZmlsbGVyAHRleHQACkBAIC05NywxOTcgKzQzLDg1IEBAIEV4cGVjdGVkOgog
fCAgICAgPHBsYWludGV4dD4KIHwgICAgICAgIu+/vWZpbGxlcu+/vXRleHTvv70iCiAKLVRlc3Qg
MTQgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0
OgotPGJvZHk+PHN2Zz48Zm9yZWlnbk9iamVjdD4AZmlsbGVyAHRleHQKK1Rlc3QgMTUgb2YgMzMg
aW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4A
ZmlsbGVyAHRleHQKIEdvdDoKIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAg
ICA8c3ZnIHN2Zz4KLXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgICLvv71m
aWxsZXLvv710ZXh0IgorfCAgICAgICAiZmlsbGVydGV4dCIKIEV4cGVjdGVkOgogfCA8aHRtbD4K
IHwgICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZv
cmVpZ25PYmplY3Q+Ci18ICAgICAgICAgImZpbGxlcnRleHQiCit8ICAgICAgICLvv71maWxsZXLv
v710ZXh0IgogCi1UZXN0IDE5IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5k
YXQgZmFpbGVkLiBJbnB1dDoKLTxzdmc+ADwvc3ZnPjxmcmFtZXNldD4KK1Rlc3QgMTYgb2YgMzMg
aW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4A
PGZyYW1lc2V0PgogR290OgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAg
IDxzdmcgc3ZnPgotfCAgICAgICAi77+9IgorfCAgICAgICA8c3ZnIGZyYW1lc2V0PgogRXhwZWN0
ZWQ6CiB8IDxodG1sPgogfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNldD4KLQotVGVzdCAyMCBvZiAz
MyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08c3Zn
PgAgPC9zdmc+PGZyYW1lc2V0PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KIHwgICA8Ym9k
eT4KIHwgICAgIDxzdmcgc3ZnPgotfCAgICAgICAi77+9ICIKLUV4cGVjdGVkOgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci0KLVRlc3QgMjcgb2YgMzMgaW4gcmVzb3VyY2Vz
L3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRh
YmxlPjx0cj48dGQ+PG1hdGg+PG10ZXh0PgBhCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRi
b2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1h
dGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAg
ICLvv71hIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAg
ICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAgICJhIgotCi1UZXN0IDI4
IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoK
LTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxzdmc+PGZvcmVpZ25PYmplY3Q+AGEKLUdv
dDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAg
ICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZv
cmVpZ25PYmplY3Q+Ci18ICAgICAgICAgICAgICAgICAi77+9YSIKLUV4cGVjdGVkOgotfCA8IURP
Q1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFi
bGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18
ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVj
dD4KLXwgICAgICAgICAgICAgICAgICJhIgotCi1UZXN0IDI5IG9mIDMzIGluIHJlc291cmNlcy9w
bGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRo
PjxtaT5hAGIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgot
fCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbWk+Ci18ICAgICAg
ICAgImHvv71iIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1pPgot
fCAgICAgICAgICJhYiIKK3wgICAgICAgIu+/vSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIAot
VGVzdCAzMCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4g
SW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bW8+YQBiCitUZXN0IDE3IG9mIDMzIGluIHJl
c291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+ACA8ZnJh
bWVzZXQ+CiBHb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwg
ICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1vPgotfCAgICAgICAg
ICJh77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiICIKK3wgICAgICAgPHN2ZyBmcmFt
ZXNldD4KIEV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+
CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtbz4KLXwgICAg
ICAgICAiYWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIu+/vSAiCit8ICAgICAgIDxzdmcg
ZnJhbWVzZXQ+CiAKLVRlc3QgMzEgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZl
LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG1uPmEAYgorVGVzdCAx
OCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6
Cis8c3ZnPgBhPGZyYW1lc2V0PgogR290OgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8
ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBt
bj4KLXwgICAgICAgICAiYe+/vWIiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAg
PG1hdGggbW4+Ci18ICAgICAgICAgImFiIgotCi1UZXN0IDMyIG9mIDMzIGluIHJlc291cmNlcy9w
bGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRo
Pjxtcz5hAGIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgot
fCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbXM+Ci18ICAgICAg
ICAgImHvv71iIgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJhIgorfCAgICAgICA8c3ZnIGZy
YW1lc2V0PgogRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgogfCA8aHRtbD4KIHwgICA8aGVh
ZD4KIHwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1zPgotfCAg
ICAgICAgICJhYiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAi77+9YSIKK3wgICAgICAgPHN2
ZyBmcmFtZXNldD4KIAotVGVzdCAzMyBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNh
ZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bXRleHQ+YQBiCitU
ZXN0IDIxIG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJ
bnB1dDoKKzxzdmc+AGE8L3N2Zz48ZnJhbWVzZXQ+CiBHb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgog
fCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAg
ICAgIDxtYXRoIG10ZXh0PgotfCAgICAgICAgICJh77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAg
ICAgICAiYSIKIEV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhl
YWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4K
LXwgICAgICAgICAiYWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIu+/vWEiCiByZXNvdXJj
ZXMvdGVzdHMxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMyLmRhdDogUEFTUwpAQCAtMzI0
LDc2ICsxNTgsMTAgQEAgcmVzb3VyY2VzL3Rlc3RzNy5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rl
c3RzOC5kYXQ6IFBBU1MKIAotcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6Ci0xNgorcmVzb3VyY2VzL3Rl
c3RzOS5kYXQ6IFBBU1MKIAotVGVzdCAxNiBvZiAyNyBpbiByZXNvdXJjZXMvdGVzdHM5LmRhdCBm
YWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxtYXRo
PjxtaT5mb288L21pPjxtaT5iYXI8L21pPmJhejwvdGFibGU+PHA+cXV1eAotR290OgotfCA8IURP
Q1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFi
bGU+Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAg
ICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImZvbyIKLXwgICAgICAgICAgIDxtYXRoIG1pPgot
fCAgICAgICAgICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIKLXwgICAgICAgICA8cD4KLXwg
ICAgICAgICAgICJxdXV4IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+
Ci18ICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAg
ICAgICAiZm9vIgotfCAgICAgICAgICAgPG1hdGggbWk+Ci18ICAgICAgICAgICAgICJiYXIiCi18
ICAgICAgICAgICAiYmF6IgotfCAgICAgPHA+Ci18ICAgICAgICJxdXV4IgotcmVzb3VyY2VzL3Rl
c3RzMTAuZGF0OgotMTUKK3Jlc291cmNlcy90ZXN0czEwLmRhdDogUEFTUwogCi1UZXN0IDE1IG9m
IDU0IGluIHJlc291cmNlcy90ZXN0czEwLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0
bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz5iYXo8L3Rh
YmxlPjxwPnF1dXgKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAg
ICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImZvbyIKLXwg
ICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImJhciIKLXwgICAgICAgICAgICJiYXoi
Ci18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICAicXV1eCIKLUV4cGVjdGVkOgotfCA8IURPQ1RZ
UEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+
Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgPHN2
ZyBnPgotfCAgICAgICAgICAgICAiZm9vIgotfCAgICAgICAgICAgPHN2ZyBnPgotfCAgICAgICAg
ICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIKLXwgICAgIDxwPgotfCAgICAgICAicXV1eCIK
IHJlc291cmNlcy90ZXN0czExLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMxMi5kYXQ6IFBB
U1MKQEAgLTUxNCwxMCArMjgyLDYgQEAgRXhwZWN0ZWQ6CiB8ICAgICA8ZGl2PgogcmVzb3VyY2Vz
L3Rlc3RzMjAuZGF0OgogMzEKLTM1Ci0zNgotMzcKLTM4CiAKIFRlc3QgMzEgb2YgMzkgaW4gcmVz
b3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8b3B0aW9uPjxzcGFuPjxvcHRpb24+
CkBAIC01MzUsODIgKzI5OSw2IEBAIEV4cGVjdGVkOgogfCAgICAgPG9wdGlvbj4KIHwgICAgICAg
PHNwYW4+CiB8ICAgICAgICAgPG9wdGlvbj4KLQotVGVzdCAzNSBvZiAzOSBpbiByZXNvdXJjZXMv
dGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGlu
Zz0iYXBwbGljYXRpb24veGh0bWwreG1sIj48ZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRp
b24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiCi18ICAg
ICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAg
ZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1sK3htbCIKLXwgICAgICAgICA8ZGl2PgotCi1UZXN0
IDM2IG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBmYWlsZWQuIElucHV0OgotPG1hdGg+
PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJhUFBsaWNhdGlvbi94aHRtTCt4TWwiPjxkaXY+Ci1H
b3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4K
LXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9ImFQUGxp
Y2F0aW9uL3hodG1MK3hNbCIKLXwgICAgIDxkaXY+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5v
dGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0iYVBQbGljYXRpb24veGh0bUwreE1sIgot
fCAgICAgICAgIDxkaXY+Ci0KLVRlc3QgMzcgb2YgMzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9InRleHQvaHRt
bCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8
bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNv
ZGluZz0idGV4dC9odG1sIgotfCAgICAgPGRpdj4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90
YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJ0ZXh0L2h0bWwiCi18ICAgICAgICAgPGRp
dj4KLQotVGVzdCAzOCBvZiAzOSBpbiByZXNvdXJjZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1
dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGluZz0iVGV4dC9odG1MIj48ZGl2PgotR290
OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18
ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJUZXh0L2h0
bUwiCi18ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxi
b2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18
ICAgICAgICAgZW5jb2Rpbmc9IlRleHQvaHRtTCIKLXwgICAgICAgICA8ZGl2PgogcmVzb3VyY2Vz
L3Rlc3RzMjEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0czIyLmRhdDoKQEAgLTExMjEsMTIz
ICs4MDksOCBAQCBFeHBlY3RlZDoKIHwgICAgICLiioLig5JBIgogcmVzb3VyY2VzL3Rlc3RzMjUu
ZGF0OiBQQVNTCiAKLXJlc291cmNlcy90ZXN0czI2LmRhdDoKLTExCi0xMgotMTMKLTE0CityZXNv
dXJjZXMvdGVzdHMyNi5kYXQ6IFBBU1MKIAotVGVzdCAxMSBvZiAxNSBpbiByZXNvdXJjZXMvdGVz
dHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxzdmc+PGZvcmVpZ25PYmpl
Y3Q+PHA+PGk+PC9wPmEKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxo
ZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHN2ZyBzdmc+Ci18ICAgICAgIDxzdmcgZm9yZWlnbk9i
amVjdD4KLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxpPgotfCAgICAgICAgICJhIgotRXhw
ZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAg
ICAgPHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICA8aT4KLXwgICAgICAgICAgICJhIgot
Ci1UZXN0IDEyIG9mIDE1IGluIHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0Ogot
PCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PHN2Zz48Zm9yZWlnbk9iamVjdD48cD48aT48
L3A+YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18
ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAg
IDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAgICAgICAgIDxwPgotfCAgICAgICAgICAg
ICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4K
LXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAg
ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0Pgot
fCAgICAgICAgICAgICAgICAgPHA+Ci18ICAgICAgICAgICAgICAgICAgIDxpPgotfCAgICAgICAg
ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAgICAgICJhIgotCi1UZXN0IDEzIG9mIDE1IGlu
IHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1h
dGg+PG10ZXh0PjxwPjxpPjwvcD5hCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRo
IG10ZXh0PgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGk+Ci18ICAgICAgICAgImEiCi1F
eHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxi
b2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAg
PHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICA8aT4KLXwgICAgICAgICAgICJhIgotCi1U
ZXN0IDE0IG9mIDE1IGluIHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0OgotPCFE
T0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PG1hdGg+PG10ZXh0PjxwPjxpPjwvcD5hCi1Hb3Q6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwg
ICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAg
IDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBt
dGV4dD4KLXwgICAgICAgICAgICAgICAgIDxwPgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwg
ICAgICAgICAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRt
bD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5
PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGgg
bWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAgIDxw
PgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgIDxpPgotfCAgICAg
ICAgICAgICAgICAgICAiYSIKIHJlc291cmNlcy90ZXN0c19pbm5lckhUTUxfMS5kYXQ6IFBBU1MK
IAogcmVzb3VyY2VzL3dlYmtpdDAxLmRhdDoKQEAgLTEzMDMsMzIgKzg3Niw4IEBAIHJlc291cmNl
cy9pbmJvZHkwMS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL2lzaW5kZXguZGF0OiBQQVNTCiAKLXJl
c291cmNlcy90YWJsZXMwMS5kYXQ6Ci0xNworcmVzb3VyY2VzL3RhYmxlczAxLmRhdDogUEFTUwog
Ci1UZXN0IDE3IG9mIDE3IGluIHJlc291cmNlcy90YWJsZXMwMS5kYXQgZmFpbGVkLiBJbnB1dDoK
LTx0YWJsZT48dHI+PHRkPjxzdmc+PGRlc2M+PHRkPgotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICAgICAgPHN2ZyBkZXNjPgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgot
fCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAg
ICA8c3ZnIGRlc2M+Ci18ICAgICAgICAgICA8dGQ+CiByZXNvdXJjZXMvdHJpY2t5MDEuZGF0OiBQ
QVNTCiAKIHJlc291cmNlcy9zY3JpcHRlZC9hZG9wdGlvbjAxLmRhdDoKSW5kZXg6IExheW91dFRl
c3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMS5kYXQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAkocmV2aXNpb24gMTAyNjI2KQor
KysgTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAkod29ya2luZyBj
b3B5KQpAQCAtNTYwLDcgKzU2MCw4IEBAIGNvbnNvbGUubG9nKCJGT088c3Bhbj5CQVI8L3NwYW4+
QkFaIik7CiB8ICAgICAgICAgICA8dGQ+CiB8ICAgICAgICAgICAgIDxzdmcgc3ZnPgogfCAgICAg
ICAgICAgICAgIDxzdmcgZGVzYz4KLXwgICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KK3wgICAg
ICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPGNpcmNsZT4KIAogI2RhdGEKIDxzdmc+PHRmb290
PjwvbWk+PHRkPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHRtbDVsaWIv
cnVubmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDI2MjYpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOCw2OSArMTgsMTUgQEAgQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDI6IFBBU1MKIENPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBGT088c3Bhbj5CQVI8L3NwYW4+
QkFaCiByZXNvdXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMtcGxhaW4tdGV4dC11bnNhZmUuZGF0
OiBQQVNTCiAKLXJlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQ6Ci0yCi0zCityZXNv
dXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMuZGF0OiBQQVNTCiAKLVRlc3QgMiBvZiAzIGluIHJl
c291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQ
RSBodG1sPjx0YWJsZT48Y2FwdGlvbj48c3ZnPmZvbzwvdGFibGU+YmFyCi1Hb3Q6Ci18IDwhRE9D
VFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJs
ZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAi
Zm9vYmFyIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAg
ICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAiZm9vIgotfCAgICAgImJhciIKLQotVGVzdCAzIG9m
IDMgaW4gcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFuZ2VzLmRhdCBmYWlsZWQuIElucHV0Ogot
PHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+PC9kZXNjPjxjaXJjbGU+Ci1Hb3Q6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJv
ZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3Zn
IHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGRlc2M+Ci18ICAgICAgICAgICAgICAgPHN2ZyBj
aXJjbGU+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8
dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4K
LXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPGNpcmNsZT4KIHJlc291cmNlcy9wbGFp
bi10ZXh0LXVuc2FmZS5kYXQ6CiAxMAotMTQKLTE5Ci0yMAotMjcKLTI4Ci0yOQotMzAKLTMxCi0z
MgotMzMKKzE1CisxNgorMTcKKzE4CisyMQogCiBUZXN0IDEwIG9mIDMzIGluIHJlc291cmNlcy9w
bGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKIDxwbGFpbnRleHQ+AGZpbGxlcgB0
ZXh0AApAQCAtOTcsMTk3ICs0Myw4NSBAQCBFeHBlY3RlZDoKIHwgICAgIDxwbGFpbnRleHQ+CiB8
ICAgICAgICLvv71maWxsZXLvv710ZXh077+9IgogCi1UZXN0IDE0IG9mIDMzIGluIHJlc291cmNl
cy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTxib2R5Pjxzdmc+PGZvcmVp
Z25PYmplY3Q+AGZpbGxlcgB0ZXh0CitUZXN0IDE1IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10
ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+AGZpbGxlcgB0ZXh0CiBHb3Q6CiB8
IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgogfCAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
IDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAi77+9ZmlsbGVy77+9dGV4dCIKK3wgICAg
ICAgImZpbGxlcnRleHQiCiBFeHBlY3RlZDoKIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJv
ZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAg
ICAgICJmaWxsZXJ0ZXh0IgorfCAgICAgICAi77+9ZmlsbGVy77+9dGV4dCIKIAotVGVzdCAxOSBv
ZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08
c3ZnPgA8L3N2Zz48ZnJhbWVzZXQ+CitUZXN0IDE2IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10
ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+ADxmcmFtZXNldD4KIEdvdDoKIHwg
PGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAg
Iu+/vSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIEV4cGVjdGVkOgogfCA8aHRtbD4KIHwgICA8
aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci0KLVRlc3QgMjAgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWlu
LXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPHN2Zz4AIDwvc3ZnPjxmcmFtZXNldD4K
LUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4K
LXwgICAgICAgIu+/vSAiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZy
YW1lc2V0PgotCi1UZXN0IDI3IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5k
YXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxtYXRoPjxt
dGV4dD4AYQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18
ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+
Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAg
ICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAgICAgICAi77+9YSIKLUV4cGVjdGVkOgot
fCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8
dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRl
eHQ+Ci18ICAgICAgICAgICAgICAgICAiYSIKLQotVGVzdCAyOCBvZiAzMyBpbiByZXNvdXJjZXMv
cGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48dGFi
bGU+PHRyPjx0ZD48c3ZnPjxmb3JlaWduT2JqZWN0PgBhCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAg
ICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAg
ICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAg
ICAgICAgICAgICAgIu+/vWEiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+
Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2
Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgICAgICAg
ICAiYSIKLQotVGVzdCAyOSBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bWk+YQBiCi1Hb3Q6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxt
YXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAgICJh77+9YiIKLUV4cGVjdGVk
OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18
ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAiYWIiCit8ICAg
ICAgICLvv70iCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiAKLVRlc3QgMzAgb2YgMzMgaW4gcmVz
b3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0
bWw+PG1hdGg+PG1vPmEAYgorVGVzdCAxNyBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11
bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8c3ZnPgAgPGZyYW1lc2V0PgogR290OgotfCA8IURP
Q1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0
aCBtYXRoPgotfCAgICAgICA8bWF0aCBtbz4KLXwgICAgICAgICAiYe+/vWIiCit8ICAgICA8c3Zn
IHN2Zz4KK3wgICAgICAgIiAiCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiBFeHBlY3RlZDoKLXwg
PCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgotfCAgICAg
PG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbW8+Ci18ICAgICAgICAgImFiIgorfCAgICAgPHN2
ZyBzdmc+Cit8ICAgICAgICLvv70gIgorfCAgICAgICA8c3ZnIGZyYW1lc2V0PgogCi1UZXN0IDMx
IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoK
LTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtbj5hAGIKK1Rlc3QgMTggb2YgMzMgaW4gcmVzb3VyY2Vz
L3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4AYTxmcmFtZXNldD4K
IEdvdDoKLXwgPCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5
PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbW4+Ci18ICAgICAgICAgImHvv71i
IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1uPgotfCAgICAgICAg
ICJhYiIKLQotVGVzdCAzMiBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bXM+YQBiCi1Hb3Q6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxt
YXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1zPgotfCAgICAgICAgICJh77+9YiIKK3wgICAgIDxz
dmcgc3ZnPgorfCAgICAgICAiYSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIEV4cGVjdGVkOgot
fCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAg
ICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtcz4KLXwgICAgICAgICAiYWIiCit8ICAgICA8
c3ZnIHN2Zz4KK3wgICAgICAgIu+/vWEiCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiAKLVRlc3Qg
MzMgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0
OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG10ZXh0PmEAYgorVGVzdCAyMSBvZiAzMyBpbiByZXNv
dXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8c3ZnPgBhPC9zdmc+
PGZyYW1lc2V0PgogR290OgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+
CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4KLXwg
ICAgICAgICAiYe+/vWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgImEiCiBFeHBlY3RlZDoK
LXwgPCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgotfCAg
ICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgImFiIgorfCAg
ICAgPHN2ZyBzdmc+Cit8ICAgICAgICLvv71hIgogcmVzb3VyY2VzL3Rlc3RzMS5kYXQ6IFBBU1MK
IAogcmVzb3VyY2VzL3Rlc3RzMi5kYXQ6IFBBU1MKQEAgLTMyNCw3NiArMTU4LDEwIEBAIHJlc291
cmNlcy90ZXN0czcuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0czguZGF0OiBQQVNTCiAKLXJl
c291cmNlcy90ZXN0czkuZGF0OgotMTYKK3Jlc291cmNlcy90ZXN0czkuZGF0OiBQQVNTCiAKLVRl
c3QgMTYgb2YgMjcgaW4gcmVzb3VyY2VzL3Rlc3RzOS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9D
VFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFy
PC9taT5iYXo8L3RhYmxlPjxwPnF1dXgKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlv
bj4KLXwgICAgICAgICA8bWF0aCBtYXRoPgotfCAgICAgICAgICAgPG1hdGggbWk+Ci18ICAgICAg
ICAgICAgICJmb28iCi18ICAgICAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImJhciIK
LXwgICAgICAgICAgICJiYXoiCi18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICAicXV1eCIKLUV4
cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJv
ZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImZvbyIKLXwgICAgICAg
ICAgIDxtYXRoIG1pPgotfCAgICAgICAgICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIKLXwg
ICAgIDxwPgotfCAgICAgICAicXV1eCIKLXJlc291cmNlcy90ZXN0czEwLmRhdDoKLTE1CityZXNv
dXJjZXMvdGVzdHMxMC5kYXQ6IFBBU1MKIAotVGVzdCAxNSBvZiA1NCBpbiByZXNvdXJjZXMvdGVz
dHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2Fw
dGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+YmF6PC90YWJsZT48cD5xdXV4Ci1Hb3Q6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAg
IDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICA8c3ZnIGc+Ci18ICAgICAgICAgICAgICJmb28iCi18ICAgICAgICAgICA8c3ZnIGc+Ci18
ICAgICAgICAgICAgICJiYXIiCi18ICAgICAgICAgICAiYmF6IgotfCAgICAgICAgIDxwPgotfCAg
ICAgICAgICAgInF1dXgiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4K
LXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAg
ImZvbyIKLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImJhciIKLXwgICAgICAg
ICAgICJiYXoiCi18ICAgICA8cD4KLXwgICAgICAgInF1dXgiCiByZXNvdXJjZXMvdGVzdHMxMS5k
YXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMTIuZGF0OiBQQVNTCkBAIC01MTQsMTAgKzI4Miw2
IEBAIEV4cGVjdGVkOgogfCAgICAgPGRpdj4KIHJlc291cmNlcy90ZXN0czIwLmRhdDoKIDMxCi0z
NQotMzYKLTM3Ci0zOAogCiBUZXN0IDMxIG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBm
YWlsZWQuIElucHV0OgogPG9wdGlvbj48c3Bhbj48b3B0aW9uPgpAQCAtNTM1LDgyICsyOTksNiBA
QCBFeHBlY3RlZDoKIHwgICAgIDxvcHRpb24+CiB8ICAgICAgIDxzcGFuPgogfCAgICAgICAgIDxv
cHRpb24+Ci0KLVRlc3QgMzUgb2YgMzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4g
SW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1s
K3htbCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBl
bmNvZGluZz0iYXBwbGljYXRpb24veGh0bWwreG1sIgotfCAgICAgPGRpdj4KLUV4cGVjdGVkOgot
fCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAg
ICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJhcHBsaWNhdGlv
bi94aHRtbCt4bWwiCi18ICAgICAgICAgPGRpdj4KLQotVGVzdCAzNiBvZiAzOSBpbiByZXNvdXJj
ZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNv
ZGluZz0iYVBQbGljYXRpb24veGh0bUwreE1sIj48ZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90
YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJhUFBsaWNhdGlvbi94aHRtTCt4TWwiCi18
ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAg
ICAgZW5jb2Rpbmc9ImFQUGxpY2F0aW9uL3hodG1MK3hNbCIKLXwgICAgICAgICA8ZGl2PgotCi1U
ZXN0IDM3IG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBmYWlsZWQuIElucHV0OgotPG1h
dGg+PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJ0ZXh0L2h0bWwiPjxkaXY+Ci1Hb3Q6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAg
PG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9InRleHQvaHRtbCIKLXwg
ICAgIDxkaXY+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18
ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAg
ICBlbmNvZGluZz0idGV4dC9odG1sIgotfCAgICAgICAgIDxkaXY+Ci0KLVRlc3QgMzggb2YgMzkg
aW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlv
bi14bWwgZW5jb2Rpbmc9IlRleHQvaHRtTCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0
aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0iVGV4dC9odG1MIgotfCAgICAgPGRpdj4KLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJU
ZXh0L2h0bUwiCi18ICAgICAgICAgPGRpdj4KIHJlc291cmNlcy90ZXN0czIxLmRhdDogUEFTUwog
CiByZXNvdXJjZXMvdGVzdHMyMi5kYXQ6CkBAIC0xMTIxLDEyMyArODA5LDggQEAgRXhwZWN0ZWQ6
CiB8ICAgICAi4oqC4oOSQSIKIHJlc291cmNlcy90ZXN0czI1LmRhdDogUEFTUwogCi1yZXNvdXJj
ZXMvdGVzdHMyNi5kYXQ6Ci0xMQotMTIKLTEzCi0xNAorcmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQ
QVNTCiAKLVRlc3QgMTEgb2YgMTUgaW4gcmVzb3VyY2VzL3Rlc3RzMjYuZGF0IGZhaWxlZC4gSW5w
dXQ6Ci08IURPQ1RZUEUgaHRtbD48c3ZnPjxmb3JlaWduT2JqZWN0PjxwPjxpPjwvcD5hCi1Hb3Q6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwg
ICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgPHA+
Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICAiYSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUg
aHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8c3ZnIHN2Zz4K
LXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAg
PGk+Ci18ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAiYSIKLQotVGVzdCAxMiBvZiAxNSBpbiBy
ZXNvdXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJs
ZT48dHI+PHRkPjxzdmc+PGZvcmVpZ25PYmplY3Q+PHA+PGk+PC9wPmEKLUdvdDoKLXwgPCFET0NU
WVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxl
PgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAg
ICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+
Ci18ICAgICAgICAgICAgICAgICA8cD4KLXwgICAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAg
ICAgICAgICAgICAiYSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwg
ICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgot
fCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAgICAgICAgIDxw
PgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgIDxpPgotfCAgICAg
ICAgICAgICAgICAgICAiYSIKLQotVGVzdCAxMyBvZiAxNSBpbiByZXNvdXJjZXMvdGVzdHMyNi5k
YXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtdGV4dD48cD48aT48L3A+
YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJv
ZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICA8
cD4KLXwgICAgICAgICAgIDxpPgotfCAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgIDxtYXRoIG10ZXh0PgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGk+
Ci18ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAiYSIKLQotVGVzdCAxNCBvZiAxNSBpbiByZXNv
dXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48
dHI+PHRkPjxtYXRoPjxtdGV4dD48cD48aT48L3A+YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4K
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAg
IDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAg
IDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAg
ICAgICA8cD4KLXwgICAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAgICAiYSIK
LUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18
ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAg
ICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAgICAgICA8cD4KLXwgICAgICAgICAgICAgICAg
ICAgPGk+Ci18ICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgICAgImEiCiBy
ZXNvdXJjZXMvdGVzdHNfaW5uZXJIVE1MXzEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy93ZWJraXQw
MS5kYXQ6CkBAIC0xMzAzLDMyICs4NzYsOCBAQCByZXNvdXJjZXMvaW5ib2R5MDEuZGF0OiBQQVNT
CiAKIHJlc291cmNlcy9pc2luZGV4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGFibGVzMDEuZGF0
OgotMTcKK3Jlc291cmNlcy90YWJsZXMwMS5kYXQ6IFBBU1MKIAotVGVzdCAxNyBvZiAxNyBpbiBy
ZXNvdXJjZXMvdGFibGVzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08dGFibGU+PHRyPjx0ZD48c3Zn
PjxkZXNjPjx0ZD4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8
dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4K
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJs
ZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwg
ICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBkZXNjPgotfCAgICAg
ICAgICAgPHRkPgogcmVzb3VyY2VzL3RyaWNreTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2Ny
aXB0ZWQvYWRvcHRpb24wMS5kYXQ6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119320</attachid>
            <date>2011-12-14 16:23:33 -0800</date>
            <delta_ts>2011-12-15 01:18:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68106-20111214162332.patch</filename>
            <type>text/plain</type>
            <size>64717</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjgyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTEyLTE0ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgPHRhYmxlPjx0cj48dGQ+PHN2Zz48
ZGVzYz48dGQ+IHBhcnNlcyBpbmNvcnJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgb3VyIGltcGxlbWVudGF0aW9u
IG9mIHRoZSBIVE1MNSBwYXJzZXIgdG8gYWNjb3VudAorICAgICAgICBmb3IgcmVjZW50IGNoYW5n
ZXMgaW4gdGhlIHNwZWMuICBUaGUgbWFpbiBjaGFuZ2UgaW4gdGhpcyBwYXRjaCBpcyB0bworICAg
ICAgICByZW1vdmUgdGhlICJpbiBmb3JlaWduIGNvbnRlbnQiIHN0YXRlIGZyb20gdGhlIHRyZWUg
YnVpbGRlci4gIFJhdGhlcgorICAgICAgICB0aGFuIG1haW50YWluaW5nIHRoaXMgYXMgYSBzZXBh
cmF0ZSBzdGF0ZSwgdGhlIHBhcnNlciBub3cgaW50cm9zcGVjdHMKKyAgICAgICAgb24gdGhlIHN0
YWNrIG9mIG9wZW4gZWxlbWVudHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHBhcnNlciBpcyBp
bgorICAgICAgICBmb3JpZWduIGNvbnRlbnQuICBJbiB0aGUgcHJvY2VzcywgSSd2ZSBkZWxldGVk
IHNvbWUgbm93LXVudXNlZAorICAgICAgICBtYWNoaW5lcnkgaW4gdGhlIHRyZWUgYnVpbGRlci4K
KworICAgICAgICBUZXN0ZWQgYnkgdGhlIGh0bWw1bGliIExheW91dFRlc3RzLiAgVGhlc2UgdGVz
dHMgc2hvdyB0aGUgcHJvZ3Jlc3Npb24KKyAgICAgICAgaW4gb3VyIHNwZWMgY29tcGxpYW5jZS4K
KworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suY3BwOgorICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oOgorICAgICAgICAqIG1hdGhtbC9tYXRoYXR0cnMuaW46CisKIDIwMTEtMTItMTQgIEpvbmF0
aGFuIEJhY2tlciAgPGJhY2tlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQ
bHVtYiB0aHJvdWdoIGZsYWcgZm9yIGVuYWJsaW5nIHBhcnRpYWwgc3dhcApJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5oCShyZXZp
c2lvbiAxMDI2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0
aW9uU2l0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGdlbmVyYXRlSW1wbGllZEVuZFRhZ3MoKTsKICAgICB2b2lkIGdlbmVyYXRlSW1wbGllZEVu
ZFRhZ3NXaXRoRXhjbHVzaW9uKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSk7CiAKKyAgICBi
b29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiAhbV9vcGVuRWxlbWVudHMuc3RhY2tEZXB0aCgp
OyB9CiAgICAgRWxlbWVudCogY3VycmVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX29wZW5F
bGVtZW50cy50b3AoKTsgfQogICAgIENvbnRhaW5lck5vZGUqIGN1cnJlbnROb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9vcGVuRWxlbWVudHMudG9wTm9kZSgpOyB9CiAgICAgRWxlbWVudCogb25lQmVs
b3dUb3AoKSBjb25zdCB7IHJldHVybiBtX29wZW5FbGVtZW50cy5vbmVCZWxvd1RvcCgpOyB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRWxlbWVudFN0YWNrLmNw
cAkocmV2aXNpb24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVs
ZW1lbnRTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNywxNCArMTA3LDggQEAgaW5saW5l
IGJvb2wgaXNUYWJsZVJvd1Njb3BlTWFya2VyKENvbnRhaQogCiBpbmxpbmUgYm9vbCBpc0ZvcmVp
Z25Db250ZW50U2NvcGVNYXJrZXIoQ29udGFpbmVyTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4g
bm9kZS0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bWlUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhh
c1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1vVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptblRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShNYXRoTUxO
YW1lczo6bXNUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10
ZXh0VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2Jq
ZWN0VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQot
ICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZykKKyAgICByZXR1
cm4gSFRNTEVsZW1lbnRTdGFjazo6aXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChub2RlKQor
ICAgICAgICB8fCBIVE1MRWxlbWVudFN0YWNrOjppc0hUTUxJbnRlZ3JhdGlvblBvaW50KG5vZGUp
CiAgICAgICAgIHx8IGlzSW5IVE1MTmFtZXNwYWNlKG5vZGUpOwogfQogCkBAIC0yNzYsNiArMjcw
LDM4IEBAIHZvaWQgSFRNTEVsZW1lbnRTdGFjazo6cG9wVW50aWxUYWJsZVJvd1MKICAgICAgICAg
cG9wKCk7CiB9CiAKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjbWF0aG1sLXRleHQtaW50
ZWdyYXRpb24tcG9pbnQKK2Jvb2wgSFRNTEVsZW1lbnRTdGFjazo6aXNNYXRoTUxUZXh0SW50ZWdy
YXRpb25Qb2ludChDb250YWluZXJOb2RlKiBub2RlKQoreworICAgIGlmICghbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRWxlbWVudCogZWxlbWVudCA9
IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKTsKKyAgICByZXR1cm4gZWxlbWVudC0+aGFzVGFn
TmFtZShNYXRoTUxOYW1lczo6bWlUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUo
TWF0aE1MTmFtZXM6Om1vVGFnKQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjptblRhZykKKyAgICAgICAgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bXNUYWcpCisgICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10
ZXh0VGFnKTsKK30KKworLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1
cnJlbnQtd29yay9tdWx0aXBhZ2UvdHJlZS1jb25zdHJ1Y3Rpb24uaHRtbCNodG1sLWludGVncmF0
aW9uLXBvaW50Citib29sIEhUTUxFbGVtZW50U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQo
Q29udGFpbmVyTm9kZSogbm9kZSkKK3sKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4obm9kZSk7CisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0aE1MTmFt
ZXM6OmFubm90YXRpb25feG1sVGFnKSkgeworICAgICAgICAvLyBGSVhNRTogVGVjaG5pY2FsbHkg
d2Ugc2hvdWxkbid0IHJlYWQgYmFjayBmcm9tIHRoZSBET00gaGVyZS4KKyAgICAgICAgLy8gSW5z
dGVhZCwgd2UncmUgc3VwcG9zZWQgdG8gdHJhY2sgdGhpcyBpbmZvcm1hdGlvbiBpbiB0aGUgZWxl
bWVudAorICAgICAgICAvLyBzdGFjaywgd2hpY2ggbGV0cyB0aGUgcGFyc2VyIHJ1biBvbiBpdHMg
b3duIHRocmVhZC4KKyAgICAgICAgU3RyaW5nIGVuY29kaW5nID0gZWxlbWVudC0+ZmFzdEdldEF0
dHJpYnV0ZShNYXRoTUxOYW1lczo6ZW5jb2RpbmdBdHRyKTsKKyAgICAgICAgcmV0dXJuIGVxdWFs
SWdub3JpbmdDYXNlKGVuY29kaW5nLCAidGV4dC9odG1sIikKKyAgICAgICAgICAgIHx8IGVxdWFs
SWdub3JpbmdDYXNlKGVuY29kaW5nLCAiYXBwbGljYXRpb24veGh0bWwreG1sIik7CisgICAgfQor
ICAgIHJldHVybiBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFn
KQorICAgICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpkZXNjVGFnKQorICAg
ICAgICB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjp0aXRsZVRhZyk7Cit9CisKIHZv
aWQgSFRNTEVsZW1lbnRTdGFjazo6cG9wVW50aWxGb3JlaWduQ29udGVudFNjb3BlTWFya2VyKCkK
IHsKICAgICB3aGlsZSAoIWlzRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtlcih0b3BOb2RlKCkpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1lbnRTdGFjay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxFbGVtZW50U3RhY2suaAko
cmV2aXNpb24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTEVsZW1l
bnRTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgQVNTRVJUKG1fdG9wLT5lbGVtZW50KCkpOwogICAgICAgICByZXR1cm4gbV90b3AtPmVsZW1l
bnQoKTsKICAgICB9Ci0gICAgCisKICAgICBDb250YWluZXJOb2RlKiB0b3BOb2RlKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX3RvcC0+bm9kZSgpKTsKQEAgLTExOSw2ICsxMTksOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwb3BIVE1MQm9keUVsZW1lbnQoKTsKICAgICB2b2lkIHBvcEFs
bCgpOwogCisgICAgc3RhdGljIGJvb2wgaXNNYXRoTUxUZXh0SW50ZWdyYXRpb25Qb2ludChDb250
YWluZXJOb2RlKik7CisgICAgc3RhdGljIGJvb2wgaXNIVE1MSW50ZWdyYXRpb25Qb2ludChDb250
YWluZXJOb2RlKik7CisKICAgICB2b2lkIHJlbW92ZShFbGVtZW50Kik7CiAgICAgdm9pZCByZW1v
dmVIVE1MSGVhZEVsZW1lbnQoRWxlbWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHJldmlzaW9uIDEwMjYwNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM1Myw3ICszNTMsNiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihI
VE1MRG9jCiAgICAgLCBtX3NjcmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFsaXpl
ZFBvc2l0aW9uVmFsdWUxKCkpCiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlv
bihUZXh0UG9zaXRpb246OmJlbG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1M
NVBhcnNlclF1aXJrcyh1c2VQcmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVuZGlu
Z0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMoZmFsc2UpCiB7CiB9CiAKQEAgLTM3Miw3ICszNzEs
NiBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRlcihIVE1MRG9jCiAgICAgLCBtX3Nj
cmlwdFRvUHJvY2Vzc1N0YXJ0UG9zaXRpb24odW5pbml0aWFsaXplZFBvc2l0aW9uVmFsdWUxKCkp
CiAgICAgLCBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRQb3NpdGlvbihUZXh0UG9zaXRpb246OmJl
bG93UmFuZ2VQb3NpdGlvbigpKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyh1c2VQ
cmVIVE1MNVBhcnNlclF1aXJrcykKLSAgICAsIG1faGFzUGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25N
b2RlU3RlcHMoZmFsc2UpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgYXNzZXJ0aW9uIHdpbGwgYmVj
b21lIGludmFsaWQgaWYgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjAzMTY+IGlzIGZpeGVkLgogICAg
IEFTU0VSVChjb250ZXh0RWxlbWVudCk7CkBAIC00NTksMTMgKzQ1NywxNiBAQCB2b2lkIEhUTUxU
cmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21UCiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpj
b25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB7Ci0g
ICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKKyAgICBpZiAoc2hvdWxkUHJvY2Vzc1Rva2VuSW5Gb3Jl
aWduQ29udGVudCh0b2tlbikpCisgICAgICAgIHByb2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQo
dG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKIAogICAgIC8v
IFN3YWxsb3dpbmcgVSswMDAwIGNoYXJhY3RlcnMgaXNuJ3QgaW4gdGhlIEhUTUw1IHNwZWMsIGJ1
dCB0dXJuaW5nIGFsbAogICAgIC8vIHRoZSBVKzAwMDAgY2hhcmFjdGVycyBpbnRvIHJlcGxhY2Vt
ZW50IGNoYXJhY3RlcnMgaGFzIGNvbXBhdGliaWxpdHkKICAgICAvLyBwcm9ibGVtcy4KLSAgICBt
X3BhcnNlci0+dG9rZW5pemVyKCktPnNldEZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50KG1f
aW5zZXJ0aW9uTW9kZSA9PSBUZXh0TW9kZSB8fCBtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3JlaWdu
Q29udGVudE1vZGUpOwotICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U2hvdWxkQWxsb3dD
REFUQShtX2luc2VydGlvbk1vZGUgPT0gSW5Gb3JlaWduQ29udGVudE1vZGUgJiYgIWlzSW5IVE1M
TmFtZXNwYWNlKG1fdHJlZS5jdXJyZW50Tm9kZSgpKSk7CisgICAgbV9wYXJzZXItPnRva2VuaXpl
cigpLT5zZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudChtX2luc2VydGlvbk1vZGUgPT0g
VGV4dE1vZGUpOworICAgIG1fcGFyc2VyLT50b2tlbml6ZXIoKS0+c2V0U2hvdWxkQWxsb3dDREFU
QSghbV90cmVlLmlzRW1wdHkoKSAmJiAhaXNJbkhUTUxOYW1lc3BhY2UobV90cmVlLmN1cnJlbnRO
b2RlKCkpKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbihBdG9taWNI
VE1MVG9rZW4mIHRva2VuKQpAQCAtODQwLDcgKzg0MSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
Ojpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAgICAgaWYgKG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+
aW5TY29wZShidXR0b25UYWcpKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAg
ICAgICAgICAgIHByb2Nlc3NGYWtlRW5kVGFnKGJ1dHRvblRhZyk7Ci0gICAgICAgICAgICByZXBy
b2Nlc3NTdGFydFRhZyh0b2tlbik7IC8vIEZJWE1FOiBDb3VsZCB3ZSBqdXN0IGZhbGwgdGhyb3Vn
aCBoZXJlPworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsgLy8gRklYTUU6IENv
dWxkIHdlIGp1c3QgZmFsbCB0aHJvdWdoIGhlcmU/CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgbV90cmVlLnJlY29uc3RydWN0VGhlQWN0aXZlRm9ybWF0dGluZ0VsZW1l
bnRzKCk7CkBAIC04OTcsNyArODk4LDYgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NT
dGFydFRhZ0ZvcgogICAgICAgICBwYXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgLy8gQXBwYXJl
bnRseSB3ZSdyZSBub3Qgc3VwcG9zZWQgdG8gYXNrLgogICAgICAgICB0b2tlbi5zZXROYW1lKGlt
Z1RhZy5sb2NhbE5hbWUoKSk7Ci0gICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAg
ICAgICAgIC8vIE5vdGUgdGhlIGZhbGwgdGhyb3VnaCB0byB0aGUgaW1nVGFnIGhhbmRsaW5nIGJl
bG93IQogICAgIH0KICAgICBpZiAodG9rZW4ubmFtZSgpID09IGFyZWFUYWcKQEAgLTEwMDQsOCAr
MTAwNCw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3IKICAgICAg
ICAgYWRqdXN0TWF0aE1MQXR0cmlidXRlcyh0b2tlbik7CiAgICAgICAgIGFkanVzdEZvcmVpZ25B
dHRyaWJ1dGVzKHRva2VuKTsKICAgICAgICAgbV90cmVlLmluc2VydEZvcmVpZ25FbGVtZW50KHRv
a2VuLCBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKTsKLSAgICAgICAgaWYgKG1faW5z
ZXJ0aW9uTW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSAmJiAhdG9rZW4uc2VsZkNsb3Npbmco
KSkKLSAgICAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gU1ZHTmFtZXM6
OnN2Z1RhZy5sb2NhbE5hbWUoKSkgewpAQCAtMTAxMyw4ICsxMDExLDYgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgICAgICBhZGp1c3RTVkdBdHRyaWJ1dGVz
KHRva2VuKTsKICAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOwogICAgICAg
ICBtX3RyZWUuaW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIFNWR05hbWVzOjpzdmdOYW1lc3Bh
Y2VVUkkpOwotICAgICAgICBpZiAobV9pbnNlcnRpb25Nb2RlICE9IEluRm9yZWlnbkNvbnRlbnRN
b2RlICYmICF0b2tlbi5zZWxmQ2xvc2luZygpKQotICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9k
ZShJbkZvcmVpZ25Db250ZW50TW9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYg
KGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4ubmFtZSgpKQpAQCAtMTA3NSw3ICsxMDcx
LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvcgogICAgIGlmICh0
b2tlbi5uYW1lKCkgPT0gY29sVGFnKSB7CiAgICAgICAgIHByb2Nlc3NGYWtlU3RhcnRUYWcoY29s
Z3JvdXBUYWcpOwogICAgICAgICBBU1NFUlQoSW5Db2x1bW5Hcm91cE1vZGUpOwotICAgICAgICBy
ZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0
b2tlbi5uYW1lKCkpKSB7CkBAIC0xMDg4LDcgKzEwODQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRl
cjo6cHJvY2Vzc1N0YXJ0VGFnRm9yCiAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0clRhZykg
ewogICAgICAgICBwcm9jZXNzRmFrZVN0YXJ0VGFnKHRib2R5VGFnKTsKICAgICAgICAgQVNTRVJU
KGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwotICAgICAgICByZXByb2Nlc3NT
dGFydFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSB0YWJsZVRhZykgewpAQCAt
MTA5Nyw3ICsxMDkzLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0Zv
cgogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAg
ICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBpZiAodG9rZW4ubmFtZSgpID09IHN0eWxlVGFnIHx8IHRva2VuLm5hbWUoKSA9PSBzY3JpcHRU
YWcpIHsKQEAgLTExMjYsMzAgKzExMjIsNiBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vz
c1N0YXJ0VGFnRm9yCiAgICAgcHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5KHRva2VuKTsKIH0KIAot
bmFtZXNwYWNlIHsKLQotYm9vbCBzaG91bGRQcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9k
eUluc2VydGlvbk1vZGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbiwgQ29udGFpbmVyTm9kZSogY3Vy
cmVudEVsZW1lbnQpCi17Ci0gICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBl
czo6U3RhcnRUYWcpOwotICAgIGlmIChjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShNYXRoTUxO
YW1lczo6bWlUYWcpCi0gICAgICAgIHx8IGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1lKE1hdGhN
TE5hbWVzOjptb1RhZykKLSAgICAgICAgfHwgY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6Om1uVGFnKQotICAgICAgICB8fCBjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bXNUYWcpCi0gICAgICAgIHx8IGN1cnJlbnRFbGVtZW50LT5oYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptdGV4dFRhZykpIHsKLSAgICAgICAgcmV0dXJuIHRva2VuLm5hbWUoKSAh
PSBNYXRoTUxOYW1lczo6bWdseXBoVGFnCi0gICAgICAgICAgICAmJiB0b2tlbi5uYW1lKCkgIT0g
TWF0aE1MTmFtZXM6Om1hbGlnbm1hcmtUYWc7Ci0gICAgfQotICAgIGlmIChjdXJyZW50RWxlbWVu
dC0+aGFzVGFnTmFtZShNYXRoTUxOYW1lczo6YW5ub3RhdGlvbl94bWxUYWcpKQotICAgICAgICBy
ZXR1cm4gdG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzdmdUYWc7Ci0gICAgaWYgKGN1cnJlbnRF
bGVtZW50LT5oYXNUYWdOYW1lKFNWR05hbWVzOjpmb3JlaWduT2JqZWN0VGFnKQotICAgICAgICB8
fCBjdXJyZW50RWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6ZGVzY1RhZykKLSAgICAgICAg
fHwgY3VycmVudEVsZW1lbnQtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnRpdGxlVGFnKSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGlzSW5IVE1MTmFtZXNwYWNlKGN1cnJlbnRFbGVt
ZW50KTsKLX0KLQotfQotCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgQVNTRVJUKHRva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6U3RhcnRUYWcpOwpAQCAtMTI0NCw3ICsxMjE2LDcgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAgICAgICAgICAgIEFTU0VSVChpc1Bh
cnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAgICAgICBwcm9j
ZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSh0b2tlbik7CkBAIC0xMjYzLDcgKzEyMzUsNyBA
QCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgICAgICBB
U1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzU3Rh
cnRUYWcodG9rZW4pOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEluVGFibGVCb2R5TW9kZToK
ICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlQm9keU1vZGUpOwpAQCAt
MTI3Nyw3ICsxMjQ5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhB
dAogICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7CiAgICAgICAgICAgICBwcm9jZXNzRmFr
ZVN0YXJ0VGFnKHRyVGFnKTsKICAgICAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5Sb3dNb2RlKTsKLSAgICAgICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAg
ICAgICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGlzQ2FwdGlvbkNvbE9yQ29sZ3JvdXBUYWcodG9rZW4ubmFtZSgp
KSB8fCBpc1RhYmxlQm9keUNvbnRleHRUYWcodG9rZW4ubmFtZSgpKSkgewpAQCAtMTI5MCw3ICsx
MjYyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3BVbnRpbFRhYmxlQm9keVNjb3BlTWFya2Vy
KCk7CiAgICAgICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKG1fdHJlZS5jdXJy
ZW50RWxlbWVudCgpLT5sb2NhbE5hbWUoKSkpOwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VFbmRU
YWcobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPnRhZ1FOYW1lKCkpOwotICAgICAgICAgICAgcmVw
cm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2Vu
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBwcm9jZXNzU3RhcnRU
YWdGb3JJblRhYmxlKHRva2VuKTsKQEAgLTEzMTIsNyArMTI4NCw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVC
b2R5TW9kZSk7Ci0gICAgICAgICAgICByZXByb2Nlc3NTdGFydFRhZyh0b2tlbik7CisgICAgICAg
ICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIHByb2Nlc3NTdGFydFRhZ0ZvckluVGFibGUodG9rZW4pOwpAQCAtMTMzMCw3
ICsxMzAyLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNsb3NlVGhl
Q2VsbCgpOwotICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAg
ICAgcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkodG9rZW4pOwpAQCAtMTM0Myw3ICsx
MzE1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZyhBdAogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5
TW9kZSk7Ci0gICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vz
c1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJbkhlYWROb3Njcmlw
dE1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5IZWFkTm9zY3JpcHRN
b2RlKTsKQEAgLTE0MTEsNyArMTM4Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
U3RhcnRUYWcoQXQKICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwogICAgICAgICAgICAg
QXRvbWljSFRNTFRva2VuIGVuZFNlbGVjdChIVE1MVG9rZW5UeXBlczo6RW5kVGFnLCBzZWxlY3RU
YWcubG9jYWxOYW1lKCkpOwogICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyhlbmRTZWxlY3QpOwot
ICAgICAgICAgICAgcmVwcm9jZXNzU3RhcnRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vz
c1N0YXJ0VGFnKHRva2VuKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAg
ICAvLyBGYWxsIHRocm91Z2gKQEAgLTE0NTcsNyArMTQyOSw3IEBAIHZvaWQgSFRNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzU3RhcnRUYWcoQXQKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIEF0b21p
Y0hUTUxUb2tlbiBlbmRTZWxlY3QoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgc2VsZWN0VGFnLmxv
Y2FsTmFtZSgpKTsKICAgICAgICAgICAgIHByb2Nlc3NFbmRUYWcoZW5kU2VsZWN0KTsKLSAgICAg
ICAgICAgIHJlcHJvY2Vzc1N0YXJ0VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHByb2Nlc3NTdGFy
dFRhZyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHRva2VuLm5hbWUoKSA9PSBzY3JpcHRUYWcpIHsKQEAgLTE0NzAsNjggKzE0NDIsNiBAQCB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKEF0CiAgICAgICAgIGRlZmF1bHRGb3JJ
blRhYmxlVGV4dCgpOwogICAgICAgICBwcm9jZXNzU3RhcnRUYWcodG9rZW4pOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOiB7Ci0gICAgICAgIGlmIChzaG91
bGRQcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keUluc2VydGlvbk1vZGUodG9rZW4sIG1f
dHJlZS5jdXJyZW50Tm9kZSgpKSkgewotICAgICAgICAgICAgcHJvY2Vzc0ZvcmVpZ25Db250ZW50
VXNpbmdJbkJvZHlNb2RlQW5kUmVzZXRNb2RlKHRva2VuKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IGJUYWcKLSAgICAgICAgICAg
IHx8IHRva2VuLm5hbWUoKSA9PSBiaWdUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBibG9ja3F1b3RlVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gYm9keVRhZwot
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJyVGFnCi0gICAgICAgICAgICB8fCB0b2tl
bi5uYW1lKCkgPT0gY2VudGVyVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gY29k
ZVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGRkVGFnCi0gICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gZGl2VGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
ZGxUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkdFRhZwotICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IGVtVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0g
ZW1iZWRUYWcKLSAgICAgICAgICAgIHx8IGlzTnVtYmVyZWRIZWFkZXJUYWcodG9rZW4ubmFtZSgp
KQotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGhlYWRUYWcKLSAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBoclRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGlU
YWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBpbWdUYWcKLSAgICAgICAgICAgIHx8
IHRva2VuLm5hbWUoKSA9PSBsaVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGxp
c3RpbmdUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBtZW51VGFnCi0gICAgICAg
ICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbWV0YVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFt
ZSgpID09IG5vYnJUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBvbFRhZwotICAg
ICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHBUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSBwcmVUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBydWJ5VGFnCi0g
ICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc1RhZwotICAgICAgICAgICAgfHwgdG9rZW4u
bmFtZSgpID09IHNtYWxsVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3BhblRh
ZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHN0cm9uZ1RhZwotICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IHN0cmlrZVRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgp
ID09IHN1YlRhZwotICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHN1cFRhZwotICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHRhYmxlVGFnCi0gICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gdHRUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB1VGFnCi0gICAg
ICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gdWxUYWcKLSAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSB2YXJUYWcKLSAgICAgICAgICAgIHx8ICh0b2tlbi5uYW1lKCkgPT0gZm9udFRhZyAm
JiAodG9rZW4uZ2V0QXR0cmlidXRlSXRlbShjb2xvckF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0
ZUl0ZW0oZmFjZUF0dHIpIHx8IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oc2l6ZUF0dHIpKSkpIHsK
LSAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4pOwotICAgICAgICAgICAgbV90cmVlLm9wZW5F
bGVtZW50cygpLT5wb3BVbnRpbEZvcmVpZ25Db250ZW50U2NvcGVNYXJrZXIoKTsKLSAgICAgICAg
ICAgIHJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKLSAgICAgICAgICAgIHJlcHJv
Y2Vzc1N0YXJ0VGFnKHRva2VuKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGN1cnJlbnROYW1lc3BhY2UgPSBtX3RyZWUuY3VycmVu
dEVsZW1lbnQoKS0+bmFtZXNwYWNlVVJJKCk7Ci0gICAgICAgIGlmIChjdXJyZW50TmFtZXNwYWNl
ID09IE1hdGhNTE5hbWVzOjptYXRobWxOYW1lc3BhY2VVUkkpCi0gICAgICAgICAgICBhZGp1c3RN
YXRoTUxBdHRyaWJ1dGVzKHRva2VuKTsKLSAgICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0g
U1ZHTmFtZXM6OnN2Z05hbWVzcGFjZVVSSSkgewotICAgICAgICAgICAgYWRqdXN0U1ZHVGFnTmFt
ZUNhc2UodG9rZW4pOwotICAgICAgICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7Ci0g
ICAgICAgIH0KLSAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOwotICAgICAg
ICBtX3RyZWUuaW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIGN1cnJlbnROYW1lc3BhY2UpOwot
ICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBUZXh0TW9kZToKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTc1Nyw5ICsxNjY3LDYgQEAgdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZQogICAgICAgICAgICAgQVNTRVJU
KGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1v
ZGUoQmVmb3JlSGVhZE1vZGUpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChub2RlLT5uYW1lc3Bh
Y2VVUkkoKSA9PSBTVkdOYW1lczo6c3ZnTmFtZXNwYWNlVVJJCi0gICAgICAgICAgICB8fCBub2Rl
LT5uYW1lc3BhY2VVUkkoKSA9PSBNYXRoTUxOYW1lczo6bWF0aG1sTmFtZXNwYWNlVVJJKQotICAg
ICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Gb3JlaWduQ29udGVudE1vZGUpOwog
ICAgICAgICBpZiAobGFzdCkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50
KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Cb2R5TW9kZSk7CkBA
IC0xNzkxLDcgKzE2OTgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0Zv
ckluCiAgICAgICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxUYWJsZUJvZHlTY29w
ZU1hcmtlcigpOwogICAgICAgICBBU1NFUlQoaXNUYWJsZUJvZHlDb250ZXh0VGFnKG1fdHJlZS5j
dXJyZW50RWxlbWVudCgpLT5sb2NhbE5hbWUoKSkpOwogICAgICAgICBwcm9jZXNzRmFrZUVuZFRh
ZyhtX3RyZWUuY3VycmVudEVsZW1lbnQoKS0+dGFnUU5hbWUoKSk7Ci0gICAgICAgIHJlcHJvY2Vz
c0VuZFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYm9keVRhZwpAQCAtMTgxOCw3
ICsxNzI1LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gSW5UYWJsZUJvZHlNb2RlKTsKLSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsK
KyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgaWYgKGlzVGFibGVCb2R5Q29udGV4dFRhZyh0b2tlbi5uYW1lKCkpKSB7CkBAIC0xODI4LDcg
KzE3MzUsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZ0ZvckluCiAgICAg
ICAgIH0KICAgICAgICAgcHJvY2Vzc0Zha2VFbmRUYWcodHJUYWcpOwogICAgICAgICBBU1NFUlQo
aW5zZXJ0aW9uTW9kZSgpID09IEluVGFibGVCb2R5TW9kZSk7Ci0gICAgICAgIHJlcHJvY2Vzc0Vu
ZFRhZyh0b2tlbik7CisgICAgICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYm9keVRhZwpAQCAtMTg3Miw3ICsx
Nzc5LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWdGb3JJbgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGNsb3NlVGhlQ2VsbCgpOwotICAgICAg
ICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBwcm9jZXNzRW5kVGFnRm9ySW5Cb2R5KHRva2Vu
KTsKQEAgLTE4ODgsNyArMTc5NSw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5k
VGFnRm9ySW4KICAgICBpZiAodG9rZW4ubmFtZSgpID09IGh0bWxUYWcpIHsKICAgICAgICAgQXRv
bWljSFRNTFRva2VuIGVuZEJvZHkoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgYm9keVRhZy5sb2Nh
bE5hbWUoKSk7CiAgICAgICAgIGlmIChwcm9jZXNzQm9keUVuZFRhZ0ZvckluQm9keShlbmRCb2R5
KSkKLSAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRhZyh0b2tlbik7CisgICAgICAgICAgICBwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAodG9rZW4u
bmFtZSgpID09IGFkZHJlc3NUYWcKQEAgLTE5NDEsNyArMTg0OCw3IEBAIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzRW5kVGFnRm9ySW4KICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwogICAgICAgICAgICAgcHJvY2Vzc0Zha2VTdGFydFRhZyhwVGFnKTsKICAgICAgICAgICAgIEFT
U0VSVChtX3RyZWUub3BlbkVsZW1lbnRzKCktPmluU2NvcGUodG9rZW4ubmFtZSgpKSk7Ci0gICAg
ICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOworICAgICAgICAgICAgcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbV90cmVl
LmdlbmVyYXRlSW1wbGllZEVuZFRhZ3NXaXRoRXhjbHVzaW9uKHRva2VuLm5hbWUoKSk7CkBAIC0y
MTM3LDcgKzIwNDQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9t
CiAgICAgICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJlcHJvY2Vzc0VuZFRh
Zyh0b2tlbik7CisgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IGJvZHlUYWcK
QEAgLTIxNjYsNyArMjA3Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFn
KEF0b20KICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICByZXByb2Nlc3NFbmRUYWcodG9rZW4pOwor
ICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJ
blJvd01vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0gSW5Sb3dNb2RlKTsK
QEAgLTIxOTAsMTMgKzIwOTcsMTIgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRU
YWcoQXRvbQogICAgICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShBZnRlckFmdGVyQm9keU1vZGUp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHByZXBhcmVUb1JlcHJv
Y2Vzc1Rva2VuKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICBjYXNlIEFmdGVyQWZ0
ZXJCb2R5TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckJvZHlN
b2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBBZnRlckFmdGVyQm9keU1vZGUpOwogICAgICAgICBw
YXJzZUVycm9yKHRva2VuKTsKICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsK
LSAgICAgICAgcmVwcm9jZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0
b2tlbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5IZWFkTm9zY3JpcHRNb2RlOgogICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluSGVhZE5vc2NyaXB0TW9kZSk7CkBAIC0y
MjcyLDcgKzIxNzgsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZFRhZyhBdG9t
CiAgICAgICAgICAgICBpZiAobV90cmVlLm9wZW5FbGVtZW50cygpLT5pblRhYmxlU2NvcGUodG9r
ZW4ubmFtZSgpKSkgewogICAgICAgICAgICAgICAgIEF0b21pY0hUTUxUb2tlbiBlbmRTZWxlY3Qo
SFRNTFRva2VuVHlwZXM6OkVuZFRhZywgc2VsZWN0VGFnLmxvY2FsTmFtZSgpKTsKICAgICAgICAg
ICAgICAgICBwcm9jZXNzRW5kVGFnKGVuZFNlbGVjdCk7Ci0gICAgICAgICAgICAgICAgcmVwcm9j
ZXNzRW5kVGFnKHRva2VuKTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRW5kVGFnKHRva2VuKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjMxMiw1
OSArMjIxOCw5IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kVGFnKEF0b20KICAg
ICAgICAgZGVmYXVsdEZvckluVGFibGVUZXh0KCk7CiAgICAgICAgIHByb2Nlc3NFbmRUYWcodG9r
ZW4pOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEluRm9yZWlnbkNvbnRlbnRNb2RlOgotICAg
ICAgICBpZiAobV90cmVlLmN1cnJlbnROb2RlKCktPm5hbWVzcGFjZVVSSSgpID09IFNWR05hbWVz
OjpzdmdOYW1lc3BhY2VVUkkpCi0gICAgICAgICAgICBhZGp1c3RTVkdUYWdOYW1lQ2FzZSh0b2tl
bik7Ci0KLSAgICAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBTVkdOYW1lczo6c2NyaXB0VGFnICYm
IG1fdHJlZS5jdXJyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKFNWR05hbWVzOjpzY3JpcHRUYWcpKSB7
Ci0gICAgICAgICAgICBtX2lzUGF1c2VkID0gdHJ1ZTsKLSAgICAgICAgICAgIG1fc2NyaXB0VG9Q
cm9jZXNzID0gbV90cmVlLmN1cnJlbnRFbGVtZW50KCk7Ci0gICAgICAgICAgICBtX3RyZWUub3Bl
bkVsZW1lbnRzKCktPnBvcCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAg
ICAgIGlmICghaXNJbkhUTUxOYW1lc3BhY2UobV90cmVlLmN1cnJlbnROb2RlKCkpKSB7Ci0gICAg
ICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIGp1c3Qgd2FudHMgYW4gRWxlbWVudCogaXRlcmF0
b3IsIGluc3RlYWQgb2YgYW4gRWxlbWVudFJlY29yZCoKLSAgICAgICAgICAgIEhUTUxFbGVtZW50
U3RhY2s6OkVsZW1lbnRSZWNvcmQqIG5vZGVSZWNvcmQgPSBtX3RyZWUub3BlbkVsZW1lbnRzKCkt
PnRvcFJlY29yZCgpOwotICAgICAgICAgICAgaWYgKCFub2RlUmVjb3JkLT5ub2RlKCktPmhhc0xv
Y2FsTmFtZSh0b2tlbi5uYW1lKCkpKQotICAgICAgICAgICAgICAgIHBhcnNlRXJyb3IodG9rZW4p
OwotICAgICAgICAgICAgd2hpbGUgKDEpIHsKLSAgICAgICAgICAgICAgICBpZiAobm9kZVJlY29y
ZC0+bm9kZSgpLT5oYXNMb2NhbE5hbWUodG9rZW4ubmFtZSgpKSkgewotICAgICAgICAgICAgICAg
ICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVudGlsUG9wcGVkKG5vZGVSZWNvcmQtPmVs
ZW1lbnQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUo
KTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICBub2RlUmVjb3JkID0gbm9kZVJlY29yZC0+bmV4dCgpOwotCi0gICAgICAgICAg
ICAgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGVSZWNvcmQtPm5vZGUoKSkpCi0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIC8v
IEFueSBvdGhlciBlbmQgdGFnIChhbHNvIHRoZSBsYXN0IHR3byBzdGVwcyBvZiAiQW4gZW5kIHRh
ZywgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBub3QgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBuYW1l
c3BhY2UuIgotICAgICAgICBwcm9jZXNzRm9yZWlnbkNvbnRlbnRVc2luZ0luQm9keU1vZGVBbmRS
ZXNldE1vZGUodG9rZW4pOwotICAgICAgICBicmVhazsKICAgICB9CiB9CiAKLXZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpCi17Ci0gICAgaWYgKG1faGFzUGVu
ZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMpIHsKLSAgICAgICAgcmVzZXRGb3JlaWduSW5z
ZXJ0aW9uTW9kZSgpOwotICAgICAgICBtX2hhc1BlbmRpbmdGb3JlaWduSW5zZXJ0aW9uTW9kZVN0
ZXBzID0gZmFsc2U7Ci0gICAgfQotfQotCi12b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVwcm9jZXNz
U3RhcnRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKLXsKLSAgICBwcmVwYXJlVG9SZXByb2Nl
c3NUb2tlbigpOwotICAgIHByb2Nlc3NTdGFydFRhZyh0b2tlbik7Ci19Ci0KLXZvaWQgSFRNTFRy
ZWVCdWlsZGVyOjpyZXByb2Nlc3NFbmRUYWcoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKLXsKLSAg
ICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwotICAgIHByb2Nlc3NFbmRUYWcodG9rZW4pOwot
fQotCiBjbGFzcyBIVE1MVHJlZUJ1aWxkZXI6OkZha2VJbnNlcnRpb25Nb2RlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShGYWtlSW5zZXJ0aW9uTW9kZSk7CiBwdWJsaWM6CkBAIC0yMzg2LDIz
ICsyMjQyLDYgQEAgcHJpdmF0ZToKICAgICBJbnNlcnRpb25Nb2RlIG1fb3JpZ2luYWxNb2RlOwog
fTsKIAotdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NGb3JlaWduQ29udGVudFVzaW5nSW5C
b2R5TW9kZUFuZFJlc2V0TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQotewotICAgIG1faGFz
UGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHMgPSB0cnVlOwotICAgIHsKLSAgICAgICAg
RmFrZUluc2VydGlvbk1vZGUgZmFrZU1vZGUodGhpcywgSW5Cb2R5TW9kZSk7Ci0gICAgICAgIHBy
b2Nlc3NUb2tlbih0b2tlbik7Ci0gICAgfQotICAgIGlmIChtX2hhc1BlbmRpbmdGb3JlaWduSW5z
ZXJ0aW9uTW9kZVN0ZXBzKQotICAgICAgICByZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCk7Ci19
Ci0KLXZvaWQgSFRNTFRyZWVCdWlsZGVyOjpyZXNldEZvcmVpZ25JbnNlcnRpb25Nb2RlKCkKLXsK
LSAgICBpZiAoaW5zZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2RlKQotICAgICAg
ICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7Ci19Ci0KIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpwcm9jZXNzQ29tbWVudChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogewogICAgIEFT
U0VSVCh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNvbW1lbnQpOwpAQCAtMjQ4NCwx
MSArMjMyMyw3IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAgICBjYXNlIEluQ2FwdGlvbk1vZGU6CiAg
ICAgY2FzZSBJbkNlbGxNb2RlOiB7CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2RlKCkgPT0g
SW5Cb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gSW5DYXB0aW9uTW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gSW5DZWxsTW9kZSk7Ci0gICAgICAgIG1fdHJlZS5yZWNvbnN0cnVjdFRoZUFj
dGl2ZUZvcm1hdHRpbmdFbGVtZW50cygpOwotICAgICAgICBTdHJpbmcgY2hhcmFjdGVycyA9IGJ1
ZmZlci50YWtlUmVtYWluaW5nKCk7Ci0gICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFy
YWN0ZXJzKTsKLSAgICAgICAgaWYgKG1fZnJhbWVzZXRPayAmJiAhaXNBbGxXaGl0ZXNwYWNlT3JS
ZXBsYWNlbWVudENoYXJhY3RlcnMoY2hhcmFjdGVycykpCi0gICAgICAgICAgICBtX2ZyYW1lc2V0
T2sgPSBmYWxzZTsKKyAgICAgICAgcHJvY2Vzc0NoYXJhY3RlckJ1ZmZlckZvckluQm9keShidWZm
ZXIpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBJblRhYmxlTW9kZToKQEAgLTI0
OTYsOSArMjMzMSwyMCBAQCBSZXByb2Nlc3NCdWZmZXI6CiAgICAgY2FzZSBJblJvd01vZGU6IHsK
ICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJblRhYmxlTW9kZSB8fCBpbnNlcnRp
b25Nb2RlKCkgPT0gSW5UYWJsZUJvZHlNb2RlIHx8IGluc2VydGlvbk1vZGUoKSA9PSBJblJvd01v
ZGUpOwogICAgICAgICBBU1NFUlQobV9wZW5kaW5nVGFibGVDaGFyYWN0ZXJzLmlzRW1wdHkoKSk7
Ci0gICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRpb25Nb2RlOwotICAg
ICAgICBzZXRJbnNlcnRpb25Nb2RlKEluVGFibGVUZXh0TW9kZSk7Ci0gICAgICAgIHByZXBhcmVU
b1JlcHJvY2Vzc1Rva2VuKCk7CisgICAgICAgIGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+aXNF
bGVtZW50Tm9kZSgpCisgICAgICAgICAgICAmJiAobV90cmVlLmN1cnJlbnRFbGVtZW50KCktPmhh
c1RhZ05hbWUoSFRNTE5hbWVzOjp0YWJsZVRhZykKKyAgICAgICAgICAgICAgICB8fCBtX3RyZWUu
Y3VycmVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRib2R5VGFnKQorICAgICAg
ICAgICAgICAgIHx8IG1fdHJlZS5jdXJyZW50RWxlbWVudCgpLT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6dGZvb3RUYWcpCisgICAgICAgICAgICAgICAgfHwgbV90cmVlLmN1cnJlbnRFbGVtZW50KCkt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp0aGVhZFRhZykKKyAgICAgICAgICAgICAgICB8fCBtX3Ry
ZWUuY3VycmVudEVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnRyVGFnKSkpIHsKKyAg
ICAgICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRpb25Nb2RlOworICAg
ICAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlVGV4dE1vZGUpOworICAgICAgICAgICAg
Ly8gTm90ZSB0aGF0IHdlIGZhbGwgdGhyb3VnaCB0byB0aGUgSW5UYWJsZVRleHRNb2RlIGNhc2Ug
YmVsb3cuCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBIVE1MQ29uc3RydWN0aW9uU2l0
ZTo6UmVkaXJlY3RUb0Zvc3RlclBhcmVudEd1YXJkIHJlZGlyZWN0ZXIobV90cmVlKTsKKyAgICAg
ICAgICAgIHByb2Nlc3NDaGFyYWN0ZXJCdWZmZXJGb3JJbkJvZHkoYnVmZmVyKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaC4KICAgICB9CiAg
ICAgY2FzZSBJblRhYmxlVGV4dE1vZGU6IHsKQEAgLTI1MTksNyArMjM2NSw2IEBAIFJlcHJvY2Vz
c0J1ZmZlcjoKICAgICAgICAgICAgIGlmIChidWZmZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwogICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsKICAgICB9CiAgICAgY2FzZSBBZnRlckJv
ZHlNb2RlOgpAQCAtMjUyNyw3ICsyMzcyLDYgQEAgUmVwcm9jZXNzQnVmZmVyOgogICAgICAgICBB
U1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEFmdGVyQm9keU1vZGUgfHwgaW5zZXJ0aW9uTW9kZSgp
ID09IEFmdGVyQWZ0ZXJCb2R5TW9kZSk7CiAgICAgICAgIC8vIEZJWE1FOiBwYXJzZSBlcnJvcgog
ICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwotICAgICAgICBwcmVwYXJlVG9S
ZXByb2Nlc3NUb2tlbigpOwogICAgICAgICBnb3RvIFJlcHJvY2Vzc0J1ZmZlcjsKICAgICAgICAg
YnJlYWs7CiAgICAgfQpAQCAtMjU2MywxNCArMjQwNyw2IEBAIFJlcHJvY2Vzc0J1ZmZlcjoKICAg
ICAgICAgbV90cmVlLmluc2VydFRleHROb2RlKGJ1ZmZlci50YWtlUmVtYWluaW5nKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBJbkZvcmVpZ25Db250ZW50TW9kZTogewotICAg
ICAgICBBU1NFUlQoaW5zZXJ0aW9uTW9kZSgpID09IEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKLSAg
ICAgICAgU3RyaW5nIGNoYXJhY3RlcnMgPSBidWZmZXIudGFrZVJlbWFpbmluZygpOwotICAgICAg
ICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7Ci0gICAgICAgIGlmIChtX2ZyYW1l
c2V0T2sgJiYgIWlzQWxsV2hpdGVzcGFjZShjaGFyYWN0ZXJzKSkKLSAgICAgICAgICAgIG1fZnJh
bWVzZXRPayA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBBZnRlckFm
dGVyRnJhbWVzZXRNb2RlOiB7CiAgICAgICAgIFN0cmluZyBsZWFkaW5nV2hpdGVzcGFjZSA9IGJ1
ZmZlci50YWtlUmVtYWluaW5nV2hpdGVzcGFjZSgpOwogICAgICAgICBpZiAoIWxlYWRpbmdXaGl0
ZXNwYWNlLmlzRW1wdHkoKSkgewpAQCAtMjU4NCw2ICsyNDIwLDE1IEBAIFJlcHJvY2Vzc0J1ZmZl
cjoKICAgICB9CiB9CiAKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyQnVm
ZmVyRm9ySW5Cb2R5KEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXImIGJ1ZmZlcikKK3sKKyAg
ICBtX3RyZWUucmVjb25zdHJ1Y3RUaGVBY3RpdmVGb3JtYXR0aW5nRWxlbWVudHMoKTsKKyAgICBT
dHJpbmcgY2hhcmFjdGVycyA9IGJ1ZmZlci50YWtlUmVtYWluaW5nKCk7CisgICAgbV90cmVlLmlu
c2VydFRleHROb2RlKGNoYXJhY3RlcnMpOworICAgIGlmIChtX2ZyYW1lc2V0T2sgJiYgIWlzQWxs
V2hpdGVzcGFjZU9yUmVwbGFjZW1lbnRDaGFyYWN0ZXJzKGNoYXJhY3RlcnMpKQorICAgICAgICBt
X2ZyYW1lc2V0T2sgPSBmYWxzZTsKK30KKwogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NF
bmRPZkZpbGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKIHsKICAgICBBU1NFUlQodG9rZW4udHlw
ZSgpID09IEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGUpOwpAQCAtMjY0NiwxMSArMjQ5MSw2IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzRW5kT2ZGaWxlKEEKICAgICAgICAgICAgIEFT
U0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybjsgLy8gRklYTUU6
IFNob3VsZCB3ZSBicmVhayBoZXJlIGluc3RlYWQgb2YgcmV0dXJuaW5nPwogICAgICAgICB9Ci0g
ICAgICAgIHByZXBhcmVUb1JlcHJvY2Vzc1Rva2VuKCk7Ci0gICAgICAgIHByb2Nlc3NFbmRPZkZp
bGUodG9rZW4pOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJbkZvcmVpZ25Db250ZW50TW9k
ZToKLSAgICAgICAgc2V0SW5zZXJ0aW9uTW9kZShJbkJvZHlNb2RlKTsKICAgICAgICAgcHJvY2Vz
c0VuZE9mRmlsZSh0b2tlbik7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluVGFibGVUZXh0
TW9kZToKQEAgLTI2NjQsNyArMjUwNCw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNz
RW5kT2ZGaWxlKEEKICAgICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wb3AoKTsKICAgICAg
ICAgQVNTRVJUKG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlICE9IFRleHRNb2RlKTsKICAgICAgICAg
c2V0SW5zZXJ0aW9uTW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7Ci0gICAgICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiAgICAgICAgIHByb2Nlc3NFbmRPZkZpbGUodG9rZW4pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjY3OSw3ICsyNTE4LDYgQEAgdm9pZCBIVE1MVHJl
ZUJ1aWxkZXI6OmRlZmF1bHRGb3JJbml0aWFsKAogICAgICAgICBtX2RvY3VtZW50LT5zZXRDb21w
YXRpYmlsaXR5TW9kZShEb2N1bWVudDo6UXVpcmtzTW9kZSk7CiAgICAgLy8gRklYTUU6IHBhcnNl
IGVycm9yCiAgICAgc2V0SW5zZXJ0aW9uTW9kZShCZWZvcmVIVE1MTW9kZSk7Ci0gICAgcHJlcGFy
ZVRvUmVwcm9jZXNzVG9rZW4oKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmRlZmF1bHRG
b3JCZWZvcmVIVE1MKCkKQEAgLTI2ODcsMjggKzI1MjUsMjQgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmRlZmF1bHRGb3JCZWZvcmVIVAogICAgIEF0b21pY0hUTUxUb2tlbiBzdGFydEhUTUwoSFRN
TFRva2VuVHlwZXM6OlN0YXJ0VGFnLCBodG1sVGFnLmxvY2FsTmFtZSgpKTsKICAgICBtX3RyZWUu
aW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0JlZm9yZUhUTUwoc3RhcnRIVE1MKTsKICAgICBzZXRJbnNl
cnRpb25Nb2RlKEJlZm9yZUhlYWRNb2RlKTsKLSAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckJlZm9yZUhlYWQoKQogewog
ICAgIEF0b21pY0hUTUxUb2tlbiBzdGFydEhlYWQoSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnLCBo
ZWFkVGFnLmxvY2FsTmFtZSgpKTsKICAgICBwcm9jZXNzU3RhcnRUYWcoc3RhcnRIZWFkKTsKLSAg
ICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6
ZGVmYXVsdEZvckluSGVhZCgpCiB7CiAgICAgQXRvbWljSFRNTFRva2VuIGVuZEhlYWQoSFRNTFRv
a2VuVHlwZXM6OkVuZFRhZywgaGVhZFRhZy5sb2NhbE5hbWUoKSk7CiAgICAgcHJvY2Vzc0VuZFRh
ZyhlbmRIZWFkKTsKLSAgICBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZvckluSGVhZE5vc2NyaXB0KCkKIHsKICAgICBBdG9taWNI
VE1MVG9rZW4gZW5kTm9zY3JpcHQoSFRNTFRva2VuVHlwZXM6OkVuZFRhZywgbm9zY3JpcHRUYWcu
bG9jYWxOYW1lKCkpOwogICAgIHByb2Nlc3NFbmRUYWcoZW5kTm9zY3JpcHQpOwotICAgIHByZXBh
cmVUb1JlcHJvY2Vzc1Rva2VuKCk7CiB9CiAKIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpkZWZhdWx0
Rm9yQWZ0ZXJIZWFkKCkKQEAgLTI3MTYsNyArMjU1MCw2IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVy
OjpkZWZhdWx0Rm9yQWZ0ZXJIZWEKICAgICBBdG9taWNIVE1MVG9rZW4gc3RhcnRCb2R5KEhUTUxU
b2tlblR5cGVzOjpTdGFydFRhZywgYm9keVRhZy5sb2NhbE5hbWUoKSk7CiAgICAgcHJvY2Vzc1N0
YXJ0VGFnKHN0YXJ0Qm9keSk7CiAgICAgbV9mcmFtZXNldE9rID0gdHJ1ZTsKLSAgICBwcmVwYXJl
VG9SZXByb2Nlc3NUb2tlbigpOwogfQogCiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6ZGVmYXVsdEZv
ckluVGFibGVUZXh0KCkKQEAgLTI3MzAsMTIgKzI1NjMsMTAgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmRlZmF1bHRGb3JJblRhYmxlVAogICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hh
cmFjdGVycywgTm90QWxsV2hpdGVzcGFjZSk7CiAgICAgICAgIG1fZnJhbWVzZXRPayA9IGZhbHNl
OwogICAgICAgICBzZXRJbnNlcnRpb25Nb2RlKG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlKTsKLSAg
ICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9rZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUoY2hhcmFjdGVycyk7CiAgICAgc2V0SW5zZXJ0aW9u
TW9kZShtX29yaWdpbmFsSW5zZXJ0aW9uTW9kZSk7Ci0gICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKIH0KIAogYm9vbCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluSGVh
ZChBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpAQCAtMjgxOSw2ICsyNjUwLDE0OSBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1NjcmlwdFN0YXJ0CiAgICAgc2V0SW5zZXJ0aW9uTW9kZShU
ZXh0TW9kZSk7CiB9CiAKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL3RyZWUtY29uc3RydWN0aW9uLmh0bWwjdHJlZS1jb25zdHJ1
Y3Rpb24KK2Jvb2wgSFRNTFRyZWVCdWlsZGVyOjpzaG91bGRQcm9jZXNzVG9rZW5JbkZvcmVpZ25D
b250ZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CisgICAgaWYgKG1fdHJlZS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBDb250YWluZXJOb2RlKiBub2RlID0gbV90
cmVlLmN1cnJlbnROb2RlKCk7CisgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEhUTUxFbGVtZW50U3RhY2s6OmlzTWF0aE1MVGV4
dEludGVncmF0aW9uUG9pbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBI
VE1MVG9rZW5UeXBlczo6U3RhcnRUYWcKKyAgICAgICAgICAgICYmIHRva2VuLm5hbWUoKSAhPSBN
YXRoTUxOYW1lczo6bWdseXBoVGFnCisgICAgICAgICAgICAmJiB0b2tlbi5uYW1lKCkgIT0gTWF0
aE1MTmFtZXM6Om1hbGlnbm1hcmtUYWcpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJhY3RlcikKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoTWF0
aE1MTmFtZXM6OmFubm90YXRpb25feG1sVGFnKQorICAgICAgICAmJiB0b2tlbi50eXBlKCkgPT0g
SFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnCisgICAgICAgICYmIHRva2VuLm5hbWUoKSA9PSBTVkdO
YW1lczo6c3ZnVGFnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEhUTUxFbGVtZW50
U3RhY2s6OmlzSFRNTEludGVncmF0aW9uUG9pbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKHRva2Vu
LnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6U3RhcnRUYWcpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuVHlwZXM6OkNoYXJh
Y3RlcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKHRva2VuLnR5
cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kT2ZGaWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9r
ZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CisgICAgc3dpdGNo
ICh0b2tlbi50eXBlKCkpIHsKKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpVbmluaXRpYWxpemVk
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBIVE1MVG9rZW5UeXBlczo6RE9DVFlQRToKKyAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnOiB7CisgICAg
ICAgIGlmICh0b2tlbi5uYW1lKCkgPT0gYlRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgp
ID09IGJpZ1RhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IGJsb2NrcXVvdGVUYWcK
KyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBib2R5VGFnCisgICAgICAgICAgICB8fCB0
b2tlbi5uYW1lKCkgPT0gYnJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBjZW50
ZXJUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBjb2RlVGFnCisgICAgICAgICAg
ICB8fCB0b2tlbi5uYW1lKCkgPT0gZGRUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9
PSBkaXZUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBkbFRhZworICAgICAgICAg
ICAgfHwgdG9rZW4ubmFtZSgpID09IGR0VGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkg
PT0gZW1UYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBlbWJlZFRhZworICAgICAg
ICAgICAgfHwgaXNOdW1iZXJlZEhlYWRlclRhZyh0b2tlbi5uYW1lKCkpCisgICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gaGVhZFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IGhyVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gaVRhZworICAgICAgICAgICAg
fHwgdG9rZW4ubmFtZSgpID09IGltZ1RhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09
IGxpVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbGlzdGluZ1RhZworICAgICAg
ICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG1lbnVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5h
bWUoKSA9PSBtZXRhVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gbm9iclRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IG9sVGFnCisgICAgICAgICAgICB8fCB0b2tl
bi5uYW1lKCkgPT0gcFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHByZVRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHJ1YnlUYWcKKyAgICAgICAgICAgIHx8IHRv
a2VuLm5hbWUoKSA9PSBzVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc21hbGxU
YWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSBzcGFuVGFnCisgICAgICAgICAgICB8
fCB0b2tlbi5uYW1lKCkgPT0gc3Ryb25nVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkg
PT0gc3RyaWtlVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3ViVGFnCisgICAg
ICAgICAgICB8fCB0b2tlbi5uYW1lKCkgPT0gc3VwVGFnCisgICAgICAgICAgICB8fCB0b2tlbi5u
YW1lKCkgPT0gdGFibGVUYWcKKyAgICAgICAgICAgIHx8IHRva2VuLm5hbWUoKSA9PSB0dFRhZwor
ICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHVUYWcKKyAgICAgICAgICAgIHx8IHRva2Vu
Lm5hbWUoKSA9PSB1bFRhZworICAgICAgICAgICAgfHwgdG9rZW4ubmFtZSgpID09IHZhclRhZwor
ICAgICAgICAgICAgfHwgKHRva2VuLm5hbWUoKSA9PSBmb250VGFnICYmICh0b2tlbi5nZXRBdHRy
aWJ1dGVJdGVtKGNvbG9yQXR0cikgfHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShmYWNlQXR0cikg
fHwgdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShzaXplQXR0cikpKSkgeworICAgICAgICAgICAgcGFy
c2VFcnJvcih0b2tlbik7CisgICAgICAgICAgICBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnBvcFVu
dGlsRm9yZWlnbkNvbnRlbnRTY29wZU1hcmtlcigpOworICAgICAgICAgICAgcHJvY2Vzc1N0YXJ0
VGFnKHRva2VuKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGN1cnJlbnROYW1lc3BhY2UgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQo
KS0+bmFtZXNwYWNlVVJJKCk7CisgICAgICAgIGlmIChjdXJyZW50TmFtZXNwYWNlID09IE1hdGhN
TE5hbWVzOjptYXRobWxOYW1lc3BhY2VVUkkpCisgICAgICAgICAgICBhZGp1c3RNYXRoTUxBdHRy
aWJ1dGVzKHRva2VuKTsKKyAgICAgICAgaWYgKGN1cnJlbnROYW1lc3BhY2UgPT0gU1ZHTmFtZXM6
OnN2Z05hbWVzcGFjZVVSSSkgeworICAgICAgICAgICAgYWRqdXN0U1ZHVGFnTmFtZUNhc2UodG9r
ZW4pOworICAgICAgICAgICAgYWRqdXN0U1ZHQXR0cmlidXRlcyh0b2tlbik7CisgICAgICAgIH0K
KyAgICAgICAgYWRqdXN0Rm9yZWlnbkF0dHJpYnV0ZXModG9rZW4pOworICAgICAgICBtX3RyZWUu
aW5zZXJ0Rm9yZWlnbkVsZW1lbnQodG9rZW4sIGN1cnJlbnROYW1lc3BhY2UpOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBIVE1MVG9rZW5UeXBlczo6RW5kVGFnOiB7CisgICAgICAg
IGlmIChtX3RyZWUuY3VycmVudE5vZGUoKS0+bmFtZXNwYWNlVVJJKCkgPT0gU1ZHTmFtZXM6OnN2
Z05hbWVzcGFjZVVSSSkKKyAgICAgICAgICAgIGFkanVzdFNWR1RhZ05hbWVDYXNlKHRva2VuKTsK
KworICAgICAgICBpZiAodG9rZW4ubmFtZSgpID09IFNWR05hbWVzOjpzY3JpcHRUYWcgJiYgbV90
cmVlLmN1cnJlbnROb2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OnNjcmlwdFRhZykpIHsKKyAg
ICAgICAgICAgIG1faXNQYXVzZWQgPSB0cnVlOworICAgICAgICAgICAgbV9zY3JpcHRUb1Byb2Nl
c3MgPSBtX3RyZWUuY3VycmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIG1fdHJlZS5vcGVuRWxl
bWVudHMoKS0+cG9wKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
aWYgKCFpc0luSFRNTE5hbWVzcGFjZShtX3RyZWUuY3VycmVudE5vZGUoKSkpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUganVzdCB3YW50cyBhbiBFbGVtZW50KiBpdGVyYXRvciwg
aW5zdGVhZCBvZiBhbiBFbGVtZW50UmVjb3JkKgorICAgICAgICAgICAgSFRNTEVsZW1lbnRTdGFj
azo6RWxlbWVudFJlY29yZCogbm9kZVJlY29yZCA9IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9w
UmVjb3JkKCk7CisgICAgICAgICAgICBpZiAoIW5vZGVSZWNvcmQtPm5vZGUoKS0+aGFzTG9jYWxO
YW1lKHRva2VuLm5hbWUoKSkpCisgICAgICAgICAgICAgICAgcGFyc2VFcnJvcih0b2tlbik7Cisg
ICAgICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlUmVjb3JkLT5u
b2RlKCktPmhhc0xvY2FsTmFtZSh0b2tlbi5uYW1lKCkpKSB7CisgICAgICAgICAgICAgICAgICAg
IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cG9wVW50aWxQb3BwZWQobm9kZVJlY29yZC0+ZWxlbWVu
dCgpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBub2RlUmVjb3JkID0gbm9kZVJlY29yZC0+bmV4dCgpOworCisgICAgICAg
ICAgICAgICAgaWYgKGlzSW5IVE1MTmFtZXNwYWNlKG5vZGVSZWNvcmQtPm5vZGUoKSkpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IC8vIE90aGVyd2lzZSwgcHJvY2VzcyB0aGUgdG9rZW4gYWNjb3JkaW5nIHRvIHRoZSBydWxlcyBn
aXZlbiBpbiB0aGUgc2VjdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGluc2VydGlv
biBtb2RlIGluIEhUTUwgY29udGVudC4KKyAgICAgICAgcHJvY2Vzc0VuZFRhZyh0b2tlbik7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpDb21tZW50Ogor
ICAgICAgICBtX3RyZWUuaW5zZXJ0Q29tbWVudCh0b2tlbik7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEhUTUxUb2tlblR5cGVzOjpDaGFyYWN0ZXI6IHsKKyAgICAgICAgU3RyaW5nIGNoYXJh
Y3RlcnMgPSBTdHJpbmcodG9rZW4uY2hhcmFjdGVycygpLmRhdGEoKSwgdG9rZW4uY2hhcmFjdGVy
cygpLnNpemUoKSk7CisgICAgICAgIG1fdHJlZS5pbnNlcnRUZXh0Tm9kZShjaGFyYWN0ZXJzKTsK
KyAgICAgICAgaWYgKG1fZnJhbWVzZXRPayAmJiAhaXNBbGxXaGl0ZXNwYWNlKGNoYXJhY3RlcnMp
KQorICAgICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIEhUTUxUb2tlblR5cGVzOjpFbmRPZkZpbGU6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgSFRNTFRyZWVC
dWlsZGVyOjpmaW5pc2hlZCgpCiB7CiAgICAgaWYgKGlzUGFyc2luZ0ZyYWdtZW50KCkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkocmV2aXNp
b24gMTAyNjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsxMDksNiBAQCBwcml2YXRlOgogICAgICAgICBJ
bkNlbGxNb2RlLAogICAgICAgICBJblNlbGVjdE1vZGUsCiAgICAgICAgIEluU2VsZWN0SW5UYWJs
ZU1vZGUsCi0gICAgICAgIEluRm9yZWlnbkNvbnRlbnRNb2RlLAogICAgICAgICBBZnRlckJvZHlN
b2RlLAogICAgICAgICBJbkZyYW1lc2V0TW9kZSwKICAgICAgICAgQWZ0ZXJGcmFtZXNldE1vZGUs
CkBAIC0xNDksNiArMTQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3NBbnlPdGhlckVu
ZFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mKTsKIAogICAgIHZvaWQgcHJvY2Vzc0NoYXJh
Y3RlckJ1ZmZlcihFeHRlcm5hbENoYXJhY3RlclRva2VuQnVmZmVyJik7CisgICAgdm9pZCBwcm9j
ZXNzQ2hhcmFjdGVyQnVmZmVyRm9ySW5Cb2R5KEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIm
KTsKIAogICAgIHZvaWQgcHJvY2Vzc0Zha2VTdGFydFRhZyhjb25zdCBRdWFsaWZpZWROYW1lJiwg
UGFzc1JlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJpYnV0ZXMgPSAwKTsKICAgICB2b2lkIHByb2Nl
c3NGYWtlRW5kVGFnKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTE2OCwxMCArMTY4LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRlZmF1bHRGb3JBZnRlckhlYWQoKTsKICAgICB2b2lkIGRlZmF1
bHRGb3JJblRhYmxlVGV4dCgpOwogCi0gICAgdm9pZCBwcmVwYXJlVG9SZXByb2Nlc3NUb2tlbigp
OwotCi0gICAgdm9pZCByZXByb2Nlc3NTdGFydFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKLSAgICB2
b2lkIHJlcHJvY2Vzc0VuZFRhZyhBdG9taWNIVE1MVG9rZW4mKTsKKyAgICBib29sIHNob3VsZFBy
b2Nlc3NUb2tlbkluRm9yZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJik7CisgICAgdm9pZCBw
cm9jZXNzVG9rZW5JbkZvcmVpZ25Db250ZW50KEF0b21pY0hUTUxUb2tlbiYpOwogCiAgICAgUGFz
c1JlZlB0cjxOYW1lZE5vZGVNYXA+IGF0dHJpYnV0ZXNGb3JJc2luZGV4SW5wdXQoQXRvbWljSFRN
TFRva2VuJik7CiAKQEAgLTIwMyw5ICsyMDEsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNl
dEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CiAKLSAgICB2b2lkIHByb2Nlc3NGb3JlaWdu
Q29udGVudFVzaW5nSW5Cb2R5TW9kZUFuZFJlc2V0TW9kZShBdG9taWNIVE1MVG9rZW4mIHRva2Vu
KTsKLSAgICB2b2lkIHJlc2V0Rm9yZWlnbkluc2VydGlvbk1vZGUoKTsKLQogICAgIGNsYXNzIEZy
YWdtZW50UGFyc2luZ0NvbnRleHQgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFn
bWVudFBhcnNpbmdDb250ZXh0KTsKICAgICBwdWJsaWM6CkBAIC0yNTcsOCArMjUyLDYgQEAgcHJp
dmF0ZToKICAgICBUZXh0UG9zaXRpb24gbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb247
CiAKICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M7Ci0KLSAgICBib29sIG1faGFz
UGVuZGluZ0ZvcmVpZ25JbnNlcnRpb25Nb2RlU3RlcHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9tYXRobWwvbWF0aGF0dHJzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L21hdGhtbC9tYXRoYXR0cnMuaW4JKHJldmlzaW9uIDEwMjYwNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L21hdGhtbC9tYXRoYXR0cnMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw3IEBAIGNsb3Nl
CiBjb2xvcgogZGVmaW5pdGlvblVSTAogZGVub21hbGlnbgorZW5jb2RpbmcKIGZvbnRmYW1pbHkK
IGZvbnRzaXplCiBmb250c3R5bGUKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjgyMSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTEy
LTE0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgPHRhYmxlPjx0
cj48dGQ+PHN2Zz48ZGVzYz48dGQ+IHBhcnNlcyBpbmNvcnJlY3RseQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0bWw1bGliL3Jlc291cmNlcy93ZWJr
aXQwMS5kYXQ6CisgICAgICAgICAgICAtIFRoaXMgdGVzdCBoYWQgYW4gaW5jb3JyZWN0IGV4cGVj
dGF0aW9uIHRoYXQgbWF0Y2hlZCBvdXIgcHJldmlvdXMKKyAgICAgICAgICAgICAgYmVoYXZpb3Iu
ICBUaGUgbmV3IGV4cGVjdGVkIHJlc3VsdCBtYXRjaGVzIEZpcmVmb3gncworICAgICAgICAgICAg
ICBpbXBsZW1lbmF0aW9uIGFzIHdlbGwuCisgICAgICAgICogaHRtbDVsaWIvcnVubmVyLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAgICAgLSBVcGRhdGVkIHRvIHNob3cgdGVzdCBwcm9ncmVzc2lv
bnMuICBUaGUgb25lIG5vbi1tb25vdG9uaWMKKyAgICAgICAgICAgICAgaW1wcm92ZW1lbnQgaXMg
c29tZSBjaHVybiBpbiB3aGljaCBvZiB0aGUgdW5zYWZlLXRleHQgdGVzdHMgd2UKKyAgICAgICAg
ICAgICAgcGFzcy4gIEknbGwgbG9vayBpbnRvIHRoaXMgaXNzdWUgaW4gYSBmdXR1cmUgcGF0Y2gu
CisKIDIwMTEtMTItMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgU2tpcCBmYXN0L2Zvcm1zL3NlbGVjdC9tZW51bGlzdC1vbmNoYW5nZS1maXJlZC13aXRoLWtl
eS11cC1kb3duLmh0bWwgb24gTWFjIHNpbmNlCkluZGV4OiBMYXlvdXRUZXN0cy9odG1sNWxpYi9y
dW5uZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0bWw1bGliL3J1
bm5lci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMjYyNikKKysrIExheW91dFRlc3RzL2h0bWw1
bGliL3J1bm5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4LDY5ICsxOCwxNSBA
QCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjogUEFTUwogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI6
IEZPTzxzcGFuPkJBUjwvc3Bhbj5CQVoKIHJlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy1w
bGFpbi10ZXh0LXVuc2FmZS5kYXQ6IFBBU1MKIAotcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFu
Z2VzLmRhdDoKLTIKLTMKK3Jlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQ6IFBBU1MK
IAotVGVzdCAyIG9mIDMgaW4gcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFuZ2VzLmRhdCBmYWls
ZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRhYmxlPjxjYXB0aW9uPjxzdmc+Zm9vPC90YWJs
ZT5iYXIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3Zn
IHN2Zz4KLXwgICAgICAgICAgICJmb29iYXIiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+
Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAg
ICA8Y2FwdGlvbj4KLXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICJmb28iCi18ICAg
ICAiYmFyIgotCi1UZXN0IDMgb2YgMyBpbiByZXNvdXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMu
ZGF0IGZhaWxlZC4gSW5wdXQ6Ci08dGFibGU+PHRyPjx0ZD48c3ZnPjxkZXNjPjx0ZD48L2Rlc2M+
PGNpcmNsZT4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8
dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+
Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4KLXwg
ICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICAgICAgPHN2ZyBkZXNjPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8Y2ly
Y2xlPgogcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdDoKIDEwCi0xNAotMTkKLTIwCi0y
NwotMjgKLTI5Ci0zMAotMzEKLTMyCi0zMworMTUKKzE2CisxNworMTgKKzIxCiAKIFRlc3QgMTAg
b2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0Ogog
PHBsYWludGV4dD4AZmlsbGVyAHRleHQACkBAIC05NywxOTcgKzQzLDg1IEBAIEV4cGVjdGVkOgog
fCAgICAgPHBsYWludGV4dD4KIHwgICAgICAgIu+/vWZpbGxlcu+/vXRleHTvv70iCiAKLVRlc3Qg
MTQgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0
OgotPGJvZHk+PHN2Zz48Zm9yZWlnbk9iamVjdD4AZmlsbGVyAHRleHQKK1Rlc3QgMTUgb2YgMzMg
aW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4A
ZmlsbGVyAHRleHQKIEdvdDoKIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAg
ICA8c3ZnIHN2Zz4KLXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgICLvv71m
aWxsZXLvv710ZXh0IgorfCAgICAgICAiZmlsbGVydGV4dCIKIEV4cGVjdGVkOgogfCA8aHRtbD4K
IHwgICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZv
cmVpZ25PYmplY3Q+Ci18ICAgICAgICAgImZpbGxlcnRleHQiCit8ICAgICAgICLvv71maWxsZXLv
v710ZXh0IgogCi1UZXN0IDE5IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5k
YXQgZmFpbGVkLiBJbnB1dDoKLTxzdmc+ADwvc3ZnPjxmcmFtZXNldD4KK1Rlc3QgMTYgb2YgMzMg
aW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4A
PGZyYW1lc2V0PgogR290OgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KIHwgICAg
IDxzdmcgc3ZnPgotfCAgICAgICAi77+9IgorfCAgICAgICA8c3ZnIGZyYW1lc2V0PgogRXhwZWN0
ZWQ6CiB8IDxodG1sPgogfCAgIDxoZWFkPgotfCAgIDxmcmFtZXNldD4KLQotVGVzdCAyMCBvZiAz
MyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08c3Zn
PgAgPC9zdmc+PGZyYW1lc2V0PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KIHwgICA8Ym9k
eT4KIHwgICAgIDxzdmcgc3ZnPgotfCAgICAgICAi77+9ICIKLUV4cGVjdGVkOgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci0KLVRlc3QgMjcgb2YgMzMgaW4gcmVzb3VyY2Vz
L3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PHRh
YmxlPjx0cj48dGQ+PG1hdGg+PG10ZXh0PgBhCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8
aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRi
b2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1h
dGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAg
ICLvv71hIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAg
ICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAgICJhIgotCi1UZXN0IDI4
IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoK
LTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxzdmc+PGZvcmVpZ25PYmplY3Q+AGEKLUdv
dDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAg
ICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZv
cmVpZ25PYmplY3Q+Ci18ICAgICAgICAgICAgICAgICAi77+9YSIKLUV4cGVjdGVkOgotfCA8IURP
Q1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFi
bGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18
ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVj
dD4KLXwgICAgICAgICAgICAgICAgICJhIgotCi1UZXN0IDI5IG9mIDMzIGluIHJlc291cmNlcy9w
bGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRo
PjxtaT5hAGIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgot
fCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbWk+Ci18ICAgICAg
ICAgImHvv71iIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1pPgot
fCAgICAgICAgICJhYiIKK3wgICAgICAgIu+/vSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIAot
VGVzdCAzMCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4g
SW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bW8+YQBiCitUZXN0IDE3IG9mIDMzIGluIHJl
c291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+ACA8ZnJh
bWVzZXQ+CiBHb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgogfCA8aHRtbD4KIHwgICA8aGVhZD4KIHwg
ICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1vPgotfCAgICAgICAg
ICJh77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAiICIKK3wgICAgICAgPHN2ZyBmcmFt
ZXNldD4KIEV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+
CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtbz4KLXwgICAg
ICAgICAiYWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIu+/vSAiCit8ICAgICAgIDxzdmcg
ZnJhbWVzZXQ+CiAKLVRlc3QgMzEgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZl
LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG1uPmEAYgorVGVzdCAx
OCBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6
Cis8c3ZnPgBhPGZyYW1lc2V0PgogR290OgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8
ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBt
bj4KLXwgICAgICAgICAiYe+/vWIiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAg
PG1hdGggbW4+Ci18ICAgICAgICAgImFiIgotCi1UZXN0IDMyIG9mIDMzIGluIHJlc291cmNlcy9w
bGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRo
Pjxtcz5hAGIKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgot
fCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbXM+Ci18ICAgICAg
ICAgImHvv71iIgorfCAgICAgPHN2ZyBzdmc+Cit8ICAgICAgICJhIgorfCAgICAgICA8c3ZnIGZy
YW1lc2V0PgogRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgogfCA8aHRtbD4KIHwgICA8aGVh
ZD4KIHwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1zPgotfCAg
ICAgICAgICJhYiIKK3wgICAgIDxzdmcgc3ZnPgorfCAgICAgICAi77+9YSIKK3wgICAgICAgPHN2
ZyBmcmFtZXNldD4KIAotVGVzdCAzMyBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNh
ZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bXRleHQ+YQBiCitU
ZXN0IDIxIG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJ
bnB1dDoKKzxzdmc+AGE8L3N2Zz48ZnJhbWVzZXQ+CiBHb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgog
fCA8aHRtbD4KIHwgICA8aGVhZD4KIHwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAg
ICAgIDxtYXRoIG10ZXh0PgotfCAgICAgICAgICJh77+9YiIKK3wgICAgIDxzdmcgc3ZnPgorfCAg
ICAgICAiYSIKIEV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhl
YWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4K
LXwgICAgICAgICAiYWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgIu+/vWEiCiByZXNvdXJj
ZXMvdGVzdHMxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMyLmRhdDogUEFTUwpAQCAtMzI0
LDc2ICsxNTgsMTAgQEAgcmVzb3VyY2VzL3Rlc3RzNy5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rl
c3RzOC5kYXQ6IFBBU1MKIAotcmVzb3VyY2VzL3Rlc3RzOS5kYXQ6Ci0xNgorcmVzb3VyY2VzL3Rl
c3RzOS5kYXQ6IFBBU1MKIAotVGVzdCAxNiBvZiAyNyBpbiByZXNvdXJjZXMvdGVzdHM5LmRhdCBm
YWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxtYXRo
PjxtaT5mb288L21pPjxtaT5iYXI8L21pPmJhejwvdGFibGU+PHA+cXV1eAotR290OgotfCA8IURP
Q1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFi
bGU+Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAg
ICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImZvbyIKLXwgICAgICAgICAgIDxtYXRoIG1pPgot
fCAgICAgICAgICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIKLXwgICAgICAgICA8cD4KLXwg
ICAgICAgICAgICJxdXV4IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+
Ci18ICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAg
ICAgICAiZm9vIgotfCAgICAgICAgICAgPG1hdGggbWk+Ci18ICAgICAgICAgICAgICJiYXIiCi18
ICAgICAgICAgICAiYmF6IgotfCAgICAgPHA+Ci18ICAgICAgICJxdXV4IgotcmVzb3VyY2VzL3Rl
c3RzMTAuZGF0OgotMTUKK3Jlc291cmNlcy90ZXN0czEwLmRhdDogUEFTUwogCi1UZXN0IDE1IG9m
IDU0IGluIHJlc291cmNlcy90ZXN0czEwLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0
bWw+PGJvZHk+PHRhYmxlPjxjYXB0aW9uPjxzdmc+PGc+Zm9vPC9nPjxnPmJhcjwvZz5iYXo8L3Rh
YmxlPjxwPnF1dXgKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFk
PgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4KLXwgICAgICAg
ICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImZvbyIKLXwg
ICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImJhciIKLXwgICAgICAgICAgICJiYXoi
Ci18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICAicXV1eCIKLUV4cGVjdGVkOgotfCA8IURPQ1RZ
UEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+
Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgPHN2
ZyBnPgotfCAgICAgICAgICAgICAiZm9vIgotfCAgICAgICAgICAgPHN2ZyBnPgotfCAgICAgICAg
ICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIKLXwgICAgIDxwPgotfCAgICAgICAicXV1eCIK
IHJlc291cmNlcy90ZXN0czExLmRhdDogUEFTUwogCiByZXNvdXJjZXMvdGVzdHMxMi5kYXQ6IFBB
U1MKQEAgLTUxNCwxMCArMjgyLDYgQEAgRXhwZWN0ZWQ6CiB8ICAgICA8ZGl2PgogcmVzb3VyY2Vz
L3Rlc3RzMjAuZGF0OgogMzEKLTM1Ci0zNgotMzcKLTM4CiAKIFRlc3QgMzEgb2YgMzkgaW4gcmVz
b3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5wdXQ6CiA8b3B0aW9uPjxzcGFuPjxvcHRpb24+
CkBAIC01MzUsODIgKzI5OSw2IEBAIEV4cGVjdGVkOgogfCAgICAgPG9wdGlvbj4KIHwgICAgICAg
PHNwYW4+CiB8ICAgICAgICAgPG9wdGlvbj4KLQotVGVzdCAzNSBvZiAzOSBpbiByZXNvdXJjZXMv
dGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGlu
Zz0iYXBwbGljYXRpb24veGh0bWwreG1sIj48ZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRp
b24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiCi18ICAg
ICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAg
ICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAg
ZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1sK3htbCIKLXwgICAgICAgICA8ZGl2PgotCi1UZXN0
IDM2IG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBmYWlsZWQuIElucHV0OgotPG1hdGg+
PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJhUFBsaWNhdGlvbi94aHRtTCt4TWwiPjxkaXY+Ci1H
b3Q6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4K
LXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9ImFQUGxp
Y2F0aW9uL3hodG1MK3hNbCIKLXwgICAgIDxkaXY+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAg
PGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5v
dGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0iYVBQbGljYXRpb24veGh0bUwreE1sIgot
fCAgICAgICAgIDxkaXY+Ci0KLVRlc3QgMzcgb2YgMzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9InRleHQvaHRt
bCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8
bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBlbmNv
ZGluZz0idGV4dC9odG1sIgotfCAgICAgPGRpdj4KLUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90
YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJ0ZXh0L2h0bWwiCi18ICAgICAgICAgPGRp
dj4KLQotVGVzdCAzOCBvZiAzOSBpbiByZXNvdXJjZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1
dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNvZGluZz0iVGV4dC9odG1MIj48ZGl2PgotR290
OgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18
ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJUZXh0L2h0
bUwiCi18ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxi
b2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18
ICAgICAgICAgZW5jb2Rpbmc9IlRleHQvaHRtTCIKLXwgICAgICAgICA8ZGl2PgogcmVzb3VyY2Vz
L3Rlc3RzMjEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0czIyLmRhdDoKQEAgLTExMjEsMTIz
ICs4MDksOCBAQCBFeHBlY3RlZDoKIHwgICAgICLiioLig5JBIgogcmVzb3VyY2VzL3Rlc3RzMjUu
ZGF0OiBQQVNTCiAKLXJlc291cmNlcy90ZXN0czI2LmRhdDoKLTExCi0xMgotMTMKLTE0CityZXNv
dXJjZXMvdGVzdHMyNi5kYXQ6IFBBU1MKIAotVGVzdCAxMSBvZiAxNSBpbiByZXNvdXJjZXMvdGVz
dHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxzdmc+PGZvcmVpZ25PYmpl
Y3Q+PHA+PGk+PC9wPmEKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxo
ZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHN2ZyBzdmc+Ci18ICAgICAgIDxzdmcgZm9yZWlnbk9i
amVjdD4KLXwgICAgICAgICA8cD4KLXwgICAgICAgICAgIDxpPgotfCAgICAgICAgICJhIgotRXhw
ZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9k
eT4KLXwgICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAg
ICAgPHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICA8aT4KLXwgICAgICAgICAgICJhIgot
Ci1UZXN0IDEyIG9mIDE1IGluIHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0Ogot
PCFET0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PHN2Zz48Zm9yZWlnbk9iamVjdD48cD48aT48
L3A+YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18
ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAg
IDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAgICAgICAgIDxwPgotfCAgICAgICAgICAg
ICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4K
LXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAg
ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0Pgot
fCAgICAgICAgICAgICAgICAgPHA+Ci18ICAgICAgICAgICAgICAgICAgIDxpPgotfCAgICAgICAg
ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAgICAgICJhIgotCi1UZXN0IDEzIG9mIDE1IGlu
IHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0bWw+PG1h
dGg+PG10ZXh0PjxwPjxpPjwvcD5hCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4K
LXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRo
IG10ZXh0PgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGk+Ci18ICAgICAgICAgImEiCi1F
eHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxi
b2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAg
PHA+Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICA8aT4KLXwgICAgICAgICAgICJhIgotCi1U
ZXN0IDE0IG9mIDE1IGluIHJlc291cmNlcy90ZXN0czI2LmRhdCBmYWlsZWQuIElucHV0OgotPCFE
T0NUWVBFIGh0bWw+PHRhYmxlPjx0cj48dGQ+PG1hdGg+PG10ZXh0PjxwPjxpPjwvcD5hCi1Hb3Q6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwg
ICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAg
IDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBt
dGV4dD4KLXwgICAgICAgICAgICAgICAgIDxwPgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwg
ICAgICAgICAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRt
bD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5
PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPG1hdGgg
bWF0aD4KLXwgICAgICAgICAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICAgICAgICAgIDxw
PgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgIDxpPgotfCAgICAg
ICAgICAgICAgICAgICAiYSIKIHJlc291cmNlcy90ZXN0c19pbm5lckhUTUxfMS5kYXQ6IFBBU1MK
IAogcmVzb3VyY2VzL3dlYmtpdDAxLmRhdDoKQEAgLTEzMDMsMzIgKzg3Niw4IEBAIHJlc291cmNl
cy9pbmJvZHkwMS5kYXQ6IFBBU1MKIAogcmVzb3VyY2VzL2lzaW5kZXguZGF0OiBQQVNTCiAKLXJl
c291cmNlcy90YWJsZXMwMS5kYXQ6Ci0xNworcmVzb3VyY2VzL3RhYmxlczAxLmRhdDogUEFTUwog
Ci1UZXN0IDE3IG9mIDE3IGluIHJlc291cmNlcy90YWJsZXMwMS5kYXQgZmFpbGVkLiBJbnB1dDoK
LTx0YWJsZT48dHI+PHRkPjxzdmc+PGRlc2M+PHRkPgotR290OgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAg
IDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICAgICAgPHN2ZyBkZXNjPgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAg
IDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgot
fCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAg
ICA8c3ZnIGRlc2M+Ci18ICAgICAgICAgICA8dGQ+CiByZXNvdXJjZXMvdHJpY2t5MDEuZGF0OiBQ
QVNTCiAKIHJlc291cmNlcy9zY3JpcHRlZC9hZG9wdGlvbjAxLmRhdDoKSW5kZXg6IExheW91dFRl
c3RzL2h0bWw1bGliL3Jlc291cmNlcy93ZWJraXQwMS5kYXQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAkocmV2aXNpb24gMTAyNjI2KQor
KysgTGF5b3V0VGVzdHMvaHRtbDVsaWIvcmVzb3VyY2VzL3dlYmtpdDAxLmRhdAkod29ya2luZyBj
b3B5KQpAQCAtNTYwLDcgKzU2MCw4IEBAIGNvbnNvbGUubG9nKCJGT088c3Bhbj5CQVI8L3NwYW4+
QkFaIik7CiB8ICAgICAgICAgICA8dGQ+CiB8ICAgICAgICAgICAgIDxzdmcgc3ZnPgogfCAgICAg
ICAgICAgICAgIDxzdmcgZGVzYz4KLXwgICAgICAgICAgICAgICA8c3ZnIGNpcmNsZT4KK3wgICAg
ICAgICAgIDx0ZD4KK3wgICAgICAgICAgICAgPGNpcmNsZT4KIAogI2RhdGEKIDxzdmc+PHRmb290
PjwvbWk+PHRkPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHRtbDVsaWIv
cnVubmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDI2MjYpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odG1sNWxpYi9ydW5uZXItZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xOCw2OSArMTgsMTUgQEAgQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDI6IFBBU1MKIENPTlNPTEUgTUVTU0FHRTogbGluZSAyOiBGT088c3Bhbj5CQVI8L3NwYW4+
QkFaCiByZXNvdXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMtcGxhaW4tdGV4dC11bnNhZmUuZGF0
OiBQQVNTCiAKLXJlc291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQ6Ci0yCi0zCityZXNv
dXJjZXMvcGVuZGluZy1zcGVjLWNoYW5nZXMuZGF0OiBQQVNTCiAKLVRlc3QgMiBvZiAzIGluIHJl
c291cmNlcy9wZW5kaW5nLXNwZWMtY2hhbmdlcy5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQ
RSBodG1sPjx0YWJsZT48Y2FwdGlvbj48c3ZnPmZvbzwvdGFibGU+YmFyCi1Hb3Q6Ci18IDwhRE9D
VFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJs
ZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAi
Zm9vYmFyIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVh
ZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAg
ICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAiZm9vIgotfCAgICAgImJhciIKLQotVGVzdCAzIG9m
IDMgaW4gcmVzb3VyY2VzL3BlbmRpbmctc3BlYy1jaGFuZ2VzLmRhdCBmYWlsZWQuIElucHV0Ogot
PHRhYmxlPjx0cj48dGQ+PHN2Zz48ZGVzYz48dGQ+PC9kZXNjPjxjaXJjbGU+Ci1Hb3Q6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJv
ZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3Zn
IHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGRlc2M+Ci18ICAgICAgICAgICAgICAgPHN2ZyBj
aXJjbGU+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8
dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4K
LXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAgICAgPGNpcmNsZT4KIHJlc291cmNlcy9wbGFp
bi10ZXh0LXVuc2FmZS5kYXQ6CiAxMAotMTQKLTE5Ci0yMAotMjcKLTI4Ci0yOQotMzAKLTMxCi0z
MgotMzMKKzE1CisxNgorMTcKKzE4CisyMQogCiBUZXN0IDEwIG9mIDMzIGluIHJlc291cmNlcy9w
bGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKIDxwbGFpbnRleHQ+AGZpbGxlcgB0
ZXh0AApAQCAtOTcsMTk3ICs0Myw4NSBAQCBFeHBlY3RlZDoKIHwgICAgIDxwbGFpbnRleHQ+CiB8
ICAgICAgICLvv71maWxsZXLvv710ZXh077+9IgogCi1UZXN0IDE0IG9mIDMzIGluIHJlc291cmNl
cy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKLTxib2R5Pjxzdmc+PGZvcmVp
Z25PYmplY3Q+AGZpbGxlcgB0ZXh0CitUZXN0IDE1IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10
ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+AGZpbGxlcgB0ZXh0CiBHb3Q6CiB8
IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgogfCAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
IDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAi77+9ZmlsbGVy77+9dGV4dCIKK3wgICAg
ICAgImZpbGxlcnRleHQiCiBFeHBlY3RlZDoKIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJv
ZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAg
ICAgICJmaWxsZXJ0ZXh0IgorfCAgICAgICAi77+9ZmlsbGVy77+9dGV4dCIKIAotVGVzdCAxOSBv
ZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08
c3ZnPgA8L3N2Zz48ZnJhbWVzZXQ+CitUZXN0IDE2IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10
ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoKKzxzdmc+ADxmcmFtZXNldD4KIEdvdDoKIHwg
PGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4KLXwgICAgICAg
Iu+/vSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIEV4cGVjdGVkOgogfCA8aHRtbD4KIHwgICA8
aGVhZD4KLXwgICA8ZnJhbWVzZXQ+Ci0KLVRlc3QgMjAgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWlu
LXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPHN2Zz4AIDwvc3ZnPjxmcmFtZXNldD4K
LUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+CiB8ICAgPGJvZHk+CiB8ICAgICA8c3ZnIHN2Zz4K
LXwgICAgICAgIu+/vSAiCi1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGZy
YW1lc2V0PgotCi1UZXN0IDI3IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5k
YXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48dHI+PHRkPjxtYXRoPjxt
dGV4dD4AYQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18
ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+
Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAg
ICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAgICAgICAi77+9YSIKLUV4cGVjdGVkOgot
fCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8
dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRl
eHQ+Ci18ICAgICAgICAgICAgICAgICAiYSIKLQotVGVzdCAyOCBvZiAzMyBpbiByZXNvdXJjZXMv
cGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48dGFi
bGU+PHRyPjx0ZD48c3ZnPjxmb3JlaWduT2JqZWN0PgBhCi1Hb3Q6Ci18IDwhRE9DVFlQRSBodG1s
PgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJsZT4KLXwgICAg
ICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwgICAgICAgICAg
ICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAg
ICAgICAgICAgICAgIu+/vWEiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8dGJvZHk+
Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAgICAgICAgICAgICA8c3ZnIHN2
Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgICAgICAg
ICAiYSIKLQotVGVzdCAyOSBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bWk+YQBiCi1Hb3Q6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxt
YXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1pPgotfCAgICAgICAgICJh77+9YiIKLUV4cGVjdGVk
OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18
ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAiYWIiCit8ICAg
ICAgICLvv70iCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiAKLVRlc3QgMzAgb2YgMzMgaW4gcmVz
b3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgotPCFET0NUWVBFIGh0
bWw+PG1hdGg+PG1vPmEAYgorVGVzdCAxNyBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11
bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8c3ZnPgAgPGZyYW1lc2V0PgogR290OgotfCA8IURP
Q1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0
aCBtYXRoPgotfCAgICAgICA8bWF0aCBtbz4KLXwgICAgICAgICAiYe+/vWIiCit8ICAgICA8c3Zn
IHN2Zz4KK3wgICAgICAgIiAiCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiBFeHBlY3RlZDoKLXwg
PCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgotfCAgICAg
PG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbW8+Ci18ICAgICAgICAgImFiIgorfCAgICAgPHN2
ZyBzdmc+Cit8ICAgICAgICLvv70gIgorfCAgICAgICA8c3ZnIGZyYW1lc2V0PgogCi1UZXN0IDMx
IG9mIDMzIGluIHJlc291cmNlcy9wbGFpbi10ZXh0LXVuc2FmZS5kYXQgZmFpbGVkLiBJbnB1dDoK
LTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtbj5hAGIKK1Rlc3QgMTggb2YgMzMgaW4gcmVzb3VyY2Vz
L3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0OgorPHN2Zz4AYTxmcmFtZXNldD4K
IEdvdDoKLXwgPCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5
PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbW4+Ci18ICAgICAgICAgImHvv71i
IgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwg
ICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1uPgotfCAgICAgICAg
ICJhYiIKLQotVGVzdCAzMiBvZiAzMyBpbiByZXNvdXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0
IGZhaWxlZC4gSW5wdXQ6Ci08IURPQ1RZUEUgaHRtbD48bWF0aD48bXM+YQBiCi1Hb3Q6Ci18IDwh
RE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxt
YXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIG1zPgotfCAgICAgICAgICJh77+9YiIKK3wgICAgIDxz
dmcgc3ZnPgorfCAgICAgICAiYSIKK3wgICAgICAgPHN2ZyBmcmFtZXNldD4KIEV4cGVjdGVkOgot
fCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+CiB8ICAgPGJvZHk+Ci18ICAg
ICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtcz4KLXwgICAgICAgICAiYWIiCit8ICAgICA8
c3ZnIHN2Zz4KK3wgICAgICAgIu+/vWEiCit8ICAgICAgIDxzdmcgZnJhbWVzZXQ+CiAKLVRlc3Qg
MzMgb2YgMzMgaW4gcmVzb3VyY2VzL3BsYWluLXRleHQtdW5zYWZlLmRhdCBmYWlsZWQuIElucHV0
OgotPCFET0NUWVBFIGh0bWw+PG1hdGg+PG10ZXh0PmEAYgorVGVzdCAyMSBvZiAzMyBpbiByZXNv
dXJjZXMvcGxhaW4tdGV4dC11bnNhZmUuZGF0IGZhaWxlZC4gSW5wdXQ6Cis8c3ZnPgBhPC9zdmc+
PGZyYW1lc2V0PgogR290OgotfCA8IURPQ1RZUEUgaHRtbD4KIHwgPGh0bWw+CiB8ICAgPGhlYWQ+
CiB8ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4KLXwg
ICAgICAgICAiYe+/vWIiCit8ICAgICA8c3ZnIHN2Zz4KK3wgICAgICAgImEiCiBFeHBlY3RlZDoK
LXwgPCFET0NUWVBFIGh0bWw+CiB8IDxodG1sPgogfCAgIDxoZWFkPgogfCAgIDxib2R5PgotfCAg
ICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgImFiIgorfCAg
ICAgPHN2ZyBzdmc+Cit8ICAgICAgICLvv71hIgogcmVzb3VyY2VzL3Rlc3RzMS5kYXQ6IFBBU1MK
IAogcmVzb3VyY2VzL3Rlc3RzMi5kYXQ6IFBBU1MKQEAgLTMyNCw3NiArMTU4LDEwIEBAIHJlc291
cmNlcy90ZXN0czcuZGF0OiBQQVNTCiAKIHJlc291cmNlcy90ZXN0czguZGF0OiBQQVNTCiAKLXJl
c291cmNlcy90ZXN0czkuZGF0OgotMTYKK3Jlc291cmNlcy90ZXN0czkuZGF0OiBQQVNTCiAKLVRl
c3QgMTYgb2YgMjcgaW4gcmVzb3VyY2VzL3Rlc3RzOS5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9D
VFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2FwdGlvbj48bWF0aD48bWk+Zm9vPC9taT48bWk+YmFy
PC9taT5iYXo8L3RhYmxlPjxwPnF1dXgKLUdvdDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1s
PgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlv
bj4KLXwgICAgICAgICA8bWF0aCBtYXRoPgotfCAgICAgICAgICAgPG1hdGggbWk+Ci18ICAgICAg
ICAgICAgICJmb28iCi18ICAgICAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImJhciIK
LXwgICAgICAgICAgICJiYXoiCi18ICAgICAgICAgPHA+Ci18ICAgICAgICAgICAicXV1eCIKLUV4
cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJv
ZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDxjYXB0aW9uPgotfCAgICAgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgICAgICA8bWF0aCBtaT4KLXwgICAgICAgICAgICAgImZvbyIKLXwgICAgICAg
ICAgIDxtYXRoIG1pPgotfCAgICAgICAgICAgICAiYmFyIgotfCAgICAgICAgICAgImJheiIKLXwg
ICAgIDxwPgotfCAgICAgICAicXV1eCIKLXJlc291cmNlcy90ZXN0czEwLmRhdDoKLTE1CityZXNv
dXJjZXMvdGVzdHMxMC5kYXQ6IFBBU1MKIAotVGVzdCAxNSBvZiA1NCBpbiByZXNvdXJjZXMvdGVz
dHMxMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxib2R5Pjx0YWJsZT48Y2Fw
dGlvbj48c3ZnPjxnPmZvbzwvZz48Zz5iYXI8L2c+YmF6PC90YWJsZT48cD5xdXV4Ci1Hb3Q6Ci18
IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAg
IDx0YWJsZT4KLXwgICAgICAgPGNhcHRpb24+Ci18ICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAg
ICAgICA8c3ZnIGc+Ci18ICAgICAgICAgICAgICJmb28iCi18ICAgICAgICAgICA8c3ZnIGc+Ci18
ICAgICAgICAgICAgICJiYXIiCi18ICAgICAgICAgICAiYmF6IgotfCAgICAgICAgIDxwPgotfCAg
ICAgICAgICAgInF1dXgiCi1FeHBlY3RlZDoKLXwgPCFET0NUWVBFIGh0bWw+Ci18IDxodG1sPgot
fCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxlPgotfCAgICAgICA8Y2FwdGlvbj4K
LXwgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAg
ImZvbyIKLXwgICAgICAgICAgIDxzdmcgZz4KLXwgICAgICAgICAgICAgImJhciIKLXwgICAgICAg
ICAgICJiYXoiCi18ICAgICA8cD4KLXwgICAgICAgInF1dXgiCiByZXNvdXJjZXMvdGVzdHMxMS5k
YXQ6IFBBU1MKIAogcmVzb3VyY2VzL3Rlc3RzMTIuZGF0OiBQQVNTCkBAIC01MTQsMTAgKzI4Miw2
IEBAIEV4cGVjdGVkOgogfCAgICAgPGRpdj4KIHJlc291cmNlcy90ZXN0czIwLmRhdDoKIDMxCi0z
NQotMzYKLTM3Ci0zOAogCiBUZXN0IDMxIG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBm
YWlsZWQuIElucHV0OgogPG9wdGlvbj48c3Bhbj48b3B0aW9uPgpAQCAtNTM1LDgyICsyOTksNiBA
QCBFeHBlY3RlZDoKIHwgICAgIDxvcHRpb24+CiB8ICAgICAgIDxzcGFuPgogfCAgICAgICAgIDxv
cHRpb24+Ci0KLVRlc3QgMzUgb2YgMzkgaW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4g
SW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlvbi14bWwgZW5jb2Rpbmc9ImFwcGxpY2F0aW9uL3hodG1s
K3htbCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAgICBl
bmNvZGluZz0iYXBwbGljYXRpb24veGh0bWwreG1sIgotfCAgICAgPGRpdj4KLUV4cGVjdGVkOgot
fCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAg
ICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJhcHBsaWNhdGlv
bi94aHRtbCt4bWwiCi18ICAgICAgICAgPGRpdj4KLQotVGVzdCAzNiBvZiAzOSBpbiByZXNvdXJj
ZXMvdGVzdHMyMC5kYXQgZmFpbGVkLiBJbnB1dDoKLTxtYXRoPjxhbm5vdGF0aW9uLXhtbCBlbmNv
ZGluZz0iYVBQbGljYXRpb24veGh0bUwreE1sIj48ZGl2PgotR290OgotfCA8aHRtbD4KLXwgICA8
aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgIDxtYXRoIGFubm90
YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJhUFBsaWNhdGlvbi94aHRtTCt4TWwiCi18
ICAgICA8ZGl2PgotRXhwZWN0ZWQ6Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5Pgot
fCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAgPG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAg
ICAgZW5jb2Rpbmc9ImFQUGxpY2F0aW9uL3hodG1MK3hNbCIKLXwgICAgICAgICA8ZGl2PgotCi1U
ZXN0IDM3IG9mIDM5IGluIHJlc291cmNlcy90ZXN0czIwLmRhdCBmYWlsZWQuIElucHV0OgotPG1h
dGg+PGFubm90YXRpb24teG1sIGVuY29kaW5nPSJ0ZXh0L2h0bWwiPjxkaXY+Ci1Hb3Q6Ci18IDxo
dG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPG1hdGggbWF0aD4KLXwgICAgICAg
PG1hdGggYW5ub3RhdGlvbi14bWw+Ci18ICAgICAgICAgZW5jb2Rpbmc9InRleHQvaHRtbCIKLXwg
ICAgIDxkaXY+Ci1FeHBlY3RlZDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18
ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0aW9uLXhtbD4KLXwgICAgICAg
ICBlbmNvZGluZz0idGV4dC9odG1sIgotfCAgICAgICAgIDxkaXY+Ci0KLVRlc3QgMzggb2YgMzkg
aW4gcmVzb3VyY2VzL3Rlc3RzMjAuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08bWF0aD48YW5ub3RhdGlv
bi14bWwgZW5jb2Rpbmc9IlRleHQvaHRtTCI+PGRpdj4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhl
YWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBhbm5vdGF0
aW9uLXhtbD4KLXwgICAgICAgICBlbmNvZGluZz0iVGV4dC9odG1MIgotfCAgICAgPGRpdj4KLUV4
cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgIDxtYXRoIGFubm90YXRpb24teG1sPgotfCAgICAgICAgIGVuY29kaW5nPSJU
ZXh0L2h0bUwiCi18ICAgICAgICAgPGRpdj4KIHJlc291cmNlcy90ZXN0czIxLmRhdDogUEFTUwog
CiByZXNvdXJjZXMvdGVzdHMyMi5kYXQ6CkBAIC0xMTIxLDEyMyArODA5LDggQEAgRXhwZWN0ZWQ6
CiB8ICAgICAi4oqC4oOSQSIKIHJlc291cmNlcy90ZXN0czI1LmRhdDogUEFTUwogCi1yZXNvdXJj
ZXMvdGVzdHMyNi5kYXQ6Ci0xMQotMTIKLTEzCi0xNAorcmVzb3VyY2VzL3Rlc3RzMjYuZGF0OiBQ
QVNTCiAKLVRlc3QgMTEgb2YgMTUgaW4gcmVzb3VyY2VzL3Rlc3RzMjYuZGF0IGZhaWxlZC4gSW5w
dXQ6Ci08IURPQ1RZUEUgaHRtbD48c3ZnPjxmb3JlaWduT2JqZWN0PjxwPjxpPjwvcD5hCi1Hb3Q6
Ci18IDwhRE9DVFlQRSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwg
ICAgIDxzdmcgc3ZnPgotfCAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+Ci18ICAgICAgICAgPHA+
Ci18ICAgICAgICAgICA8aT4KLXwgICAgICAgICAiYSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUg
aHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8c3ZnIHN2Zz4K
LXwgICAgICAgPHN2ZyBmb3JlaWduT2JqZWN0PgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAg
PGk+Ci18ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAiYSIKLQotVGVzdCAxMiBvZiAxNSBpbiBy
ZXNvdXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJs
ZT48dHI+PHRkPjxzdmc+PGZvcmVpZ25PYmplY3Q+PHA+PGk+PC9wPmEKLUdvdDoKLXwgPCFET0NU
WVBFIGh0bWw+Ci18IDxodG1sPgotfCAgIDxoZWFkPgotfCAgIDxib2R5PgotfCAgICAgPHRhYmxl
PgotfCAgICAgICA8dGJvZHk+Ci18ICAgICAgICAgPHRyPgotfCAgICAgICAgICAgPHRkPgotfCAg
ICAgICAgICAgICA8c3ZnIHN2Zz4KLXwgICAgICAgICAgICAgICA8c3ZnIGZvcmVpZ25PYmplY3Q+
Ci18ICAgICAgICAgICAgICAgICA8cD4KLXwgICAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAg
ICAgICAgICAgICAiYSIKLUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18
ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwg
ICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgot
fCAgICAgICAgICAgICAgIDxzdmcgZm9yZWlnbk9iamVjdD4KLXwgICAgICAgICAgICAgICAgIDxw
PgotfCAgICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgIDxpPgotfCAgICAg
ICAgICAgICAgICAgICAiYSIKLQotVGVzdCAxMyBvZiAxNSBpbiByZXNvdXJjZXMvdGVzdHMyNi5k
YXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjxtYXRoPjxtdGV4dD48cD48aT48L3A+
YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJv
ZHk+Ci18ICAgICA8bWF0aCBtYXRoPgotfCAgICAgICA8bWF0aCBtdGV4dD4KLXwgICAgICAgICA8
cD4KLXwgICAgICAgICAgIDxpPgotfCAgICAgICAgICJhIgotRXhwZWN0ZWQ6Ci18IDwhRE9DVFlQ
RSBodG1sPgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDxtYXRoIG1h
dGg+Ci18ICAgICAgIDxtYXRoIG10ZXh0PgotfCAgICAgICAgIDxwPgotfCAgICAgICAgICAgPGk+
Ci18ICAgICAgICAgPGk+Ci18ICAgICAgICAgICAiYSIKLQotVGVzdCAxNCBvZiAxNSBpbiByZXNv
dXJjZXMvdGVzdHMyNi5kYXQgZmFpbGVkLiBJbnB1dDoKLTwhRE9DVFlQRSBodG1sPjx0YWJsZT48
dHI+PHRkPjxtYXRoPjxtdGV4dD48cD48aT48L3A+YQotR290OgotfCA8IURPQ1RZUEUgaHRtbD4K
LXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAg
IDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAg
IDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAgICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAg
ICAgICA8cD4KLXwgICAgICAgICAgICAgICAgICAgPGk+Ci18ICAgICAgICAgICAgICAgICAiYSIK
LUV4cGVjdGVkOgotfCA8IURPQ1RZUEUgaHRtbD4KLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAg
PGJvZHk+Ci18ICAgICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18
ICAgICAgICAgICA8dGQ+Ci18ICAgICAgICAgICAgIDxtYXRoIG1hdGg+Ci18ICAgICAgICAgICAg
ICAgPG1hdGggbXRleHQ+Ci18ICAgICAgICAgICAgICAgICA8cD4KLXwgICAgICAgICAgICAgICAg
ICAgPGk+Ci18ICAgICAgICAgICAgICAgICA8aT4KLXwgICAgICAgICAgICAgICAgICAgImEiCiBy
ZXNvdXJjZXMvdGVzdHNfaW5uZXJIVE1MXzEuZGF0OiBQQVNTCiAKIHJlc291cmNlcy93ZWJraXQw
MS5kYXQ6CkBAIC0xMzAzLDMyICs4NzYsOCBAQCByZXNvdXJjZXMvaW5ib2R5MDEuZGF0OiBQQVNT
CiAKIHJlc291cmNlcy9pc2luZGV4LmRhdDogUEFTUwogCi1yZXNvdXJjZXMvdGFibGVzMDEuZGF0
OgotMTcKK3Jlc291cmNlcy90YWJsZXMwMS5kYXQ6IFBBU1MKIAotVGVzdCAxNyBvZiAxNyBpbiBy
ZXNvdXJjZXMvdGFibGVzMDEuZGF0IGZhaWxlZC4gSW5wdXQ6Ci08dGFibGU+PHRyPjx0ZD48c3Zn
PjxkZXNjPjx0ZD4KLUdvdDoKLXwgPGh0bWw+Ci18ICAgPGhlYWQ+Ci18ICAgPGJvZHk+Ci18ICAg
ICA8dGFibGU+Ci18ICAgICAgIDx0Ym9keT4KLXwgICAgICAgICA8dHI+Ci18ICAgICAgICAgICA8
dGQ+Ci18ICAgICAgICAgICAgIDxzdmcgc3ZnPgotfCAgICAgICAgICAgICAgIDxzdmcgZGVzYz4K
LUV4cGVjdGVkOgotfCA8aHRtbD4KLXwgICA8aGVhZD4KLXwgICA8Ym9keT4KLXwgICAgIDx0YWJs
ZT4KLXwgICAgICAgPHRib2R5PgotfCAgICAgICAgIDx0cj4KLXwgICAgICAgICAgIDx0ZD4KLXwg
ICAgICAgICAgICAgPHN2ZyBzdmc+Ci18ICAgICAgICAgICAgICAgPHN2ZyBkZXNjPgotfCAgICAg
ICAgICAgPHRkPgogcmVzb3VyY2VzL3RyaWNreTAxLmRhdDogUEFTUwogCiByZXNvdXJjZXMvc2Ny
aXB0ZWQvYWRvcHRpb24wMS5kYXQ6Cg==
</data>
<flag name="review"
          id="119297"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="119298"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>