<?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>76701</bug_id>
          
          <creation_ts>2012-01-20 05:14:41 -0800</creation_ts>
          <short_desc>Use content-language from http-equiv to set document locale and font</short_desc>
          <delta_ts>2013-07-24 12:24:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>10874</blocked>
    
    <blocked>119055</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Falkenhagen">falken</reporter>
          <assigned_to name="Matt Falkenhagen">falken</assigned_to>
          <cc>ap</cc>
    
    <cc>bashi</cc>
    
    <cc>darin</cc>
    
    <cc>ian</cc>
    
    <cc>jshin</cc>
    
    <cc>macpherson</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>539431</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-20 05:14:41 -0800</bug_when>
    <thetext>We should map the HTTP content-language header to -webkit-locale for use in font selection, similar what bug 67586 did for HTML lang/xml:lang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539439</commentid>
    <comment_count>1</comment_count>
      <attachid>123296</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-20 05:41:01 -0800</bug_when>
    <thetext>Created attachment 123296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539441</commentid>
    <comment_count>2</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-20 05:47:50 -0800</bug_when>
    <thetext>I still need to add the pixel layout test to most platforms&apos; Skipped file, but I was wondering how this approach looks. It seems inefficient to call recalcStyle in Document::setContentLanguage, but it&apos;s needed because styleForDocument is called before the content language is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539567</commentid>
    <comment_count>3</comment_count>
      <attachid>123296</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-20 09:13:03 -0800</bug_when>
    <thetext>Comment on attachment 123296
Patch

Could you add an actual http test with Content-Language header?

Also, would be nice to test subtags, as these use different formats in different specs (en_US, en-US etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540345</commentid>
    <comment_count>4</comment_count>
      <attachid>123296</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-01-22 18:21:14 -0800</bug_when>
    <thetext>Comment on attachment 123296
Patch

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

&gt; LayoutTests/fast/text/content-language-mapped-to-webkit-locale.html:6
&gt; +&lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

IIRC, js-test-*.js is deprecated so it might be better not to use.

&gt; LayoutTests/fast/text/international/content-language-font-selection.html:14
&gt; +This is in Ahem font.

Is it possible to use reftest-style expectation here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540347</commentid>
    <comment_count>5</comment_count>
      <attachid>123296</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-01-22 18:31:24 -0800</bug_when>
    <thetext>Comment on attachment 123296
Patch

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

&gt;&gt; LayoutTests/fast/text/content-language-mapped-to-webkit-locale.html:6
&gt;&gt; +&lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; IIRC, js-test-*.js is deprecated so it might be better not to use.

@bashi, you seem confused with script-tests deprecation outside of fast/js/.  Using js-test-*.js is nice.

&gt; LayoutTests/fast/text/content-language-mapped-to-webkit-locale.html:15
&gt; +function getLangOfNode(n) {
&gt; +    e = document.getElementById(n);

We had better follow C++ style rule for naming.  The function name should be languageOfNode().
http://www.webkit.org/coding/coding-style.html#names-setter-getter

The argument name &apos;n&apos; is not appropriate.  It should be &apos;id&apos;.

&apos;e&apos; should be a local variable;  &apos;var element&apos;.
Or you can just remove the local variable and fold this expression in the next expression; getComputedStyle(document.getElementById(...

&gt; LayoutTests/fast/text/content-language-mapped-to-webkit-locale.html:19
&gt; +shouldBeEqualToString(&quot;getLangOfNode(&apos;x1&apos;)&quot;, &quot;zh&quot;);
&gt; +shouldBeEqualToString(&quot;getLangOfNode(&apos;m1&apos;)&quot;, &quot;ar&quot;);

You should add more test cases as Alexey wrote.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540349</commentid>
    <comment_count>6</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-01-22 18:37:43 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; @bashi, you seem confused with script-tests deprecation outside of fast/js/.  Using js-test-*.js is nice.

Thank you for a correction. @falken, please ignore my previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541227</commentid>
    <comment_count>7</comment_count>
      <attachid>123711</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-24 03:53:38 -0800</bug_when>
    <thetext>Created attachment 123711
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541231</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-24 03:56:26 -0800</bug_when>
    <thetext>Thanks for the review comments! I&apos;ve added a new patch.

Regarding the HTTP Content-Language header, it looks like WebKit doesn&apos;t parse it at all. So I would like to tackle that in a separate patch if possible (bug 76892), and just use the content-language set by http-equiv for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541240</commentid>
    <comment_count>9</comment_count>
      <attachid>123711</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-01-24 04:21:10 -0800</bug_when>
    <thetext>Comment on attachment 123711
Patch

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

Does this patch add port specific behavior? If not, you need not update Skipped files.

&gt; LayoutTests/fast/text/international/content-language-font-selection.html:6
&gt; +if (window.layoutTestController) {

nit: braces are not needed here (same as above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541391</commentid>
    <comment_count>10</comment_count>
      <attachid>123711</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-24 09:33:51 -0800</bug_when>
    <thetext>Comment on attachment 123711
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Use content-language to set document locale and font

Does this work in Firefox and/or IE?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1238
&gt; +    if (!document-&gt;contentLanguage().isEmpty())
&gt; +        documentStyle-&gt;setLocale(document-&gt;contentLanguage());

What guarantees correct precedence of these hints? In tests, I see that a lang attribute on a node takes precedence. Are there any locale hints already implemented in WebKit for which precedence needs to be tested?

&gt; Source/WebCore/css/CSSStyleSelector.cpp:1272
&gt; -        const AtomicString&amp; stdfont = settings-&gt;standardFontFamily();
&gt; +        const AtomicString&amp; stdfont = settings-&gt;standardFontFamily(fontDescription.script());

It&apos;s not a new name, but &quot;stdfont&quot; is of course not in accordance to WebKit coding style.

&gt; Source/WebCore/dom/Document.cpp:1096
&gt; +void Document::setContentLanguage(const String&amp; language)

I think that this name should make it clear that we&apos;re parsing it in accordance to pragma rules. &quot;This pragma is not exactly equivalent to the HTTP Content-Language header. [HTTP]&quot;

HTML5 itself calls this &quot;pragma set default language&quot;.

&gt; Source/WebCore/dom/Document.cpp:1102
&gt; +    size_t pos = strippedLanguage.find(&apos; &apos;);

Please check for all HTML whitespace characters, not just U+0020. I don&apos;t think that simplifyWhiteSpace() gets you exactly that, not to mention that it&apos;s unnecessarily slow to modify the string.

&gt; Source/WebCore/dom/Document.cpp:1107
&gt; +        recalcStyle(Force);

I don&apos;t know if it&apos;s OK to make this call here. We don&apos;t do that often in Document.cpp.

Could you please check with a layout&amp;rendering expert?

&gt; Source/WebCore/dom/Document.cpp:2715
&gt; +        if (contentLanguage().isEmpty())
&gt; +            setContentLanguage(content);

It may be a mistake in the spec that an empty or invalid Content-Language can be overwritten with a later pragma. Why the special case?

&gt; Source/WebCore/dom/Document.cpp:2716
&gt; +    } else if (equalIgnoringCase(equiv, &quot;x-dns-prefetch-control&quot;))

Unrelated to this patch, but I wonder if any other pragmas need to be respected only once. It can be important to not let attacker controlled content override these values.

&gt; LayoutTests/fast/text/content-language-multiple-tags.html:4
&gt; +&lt;meta http-equiv=&quot;content-language&quot; content=&quot;zh-CN&quot;/&gt;

These are all HTML files - why do you put the slash in the end? It&apos;s just ignored by the parser.

&gt; LayoutTests/fast/text/content-language-multiple-tags.html:7
&gt; +&lt;link rel=&quot;stylesheet&quot; href=&quot;../js/resources/js-test-style.css&quot; /&gt;

Ditto.

&gt; LayoutTests/fast/text/international/content-language-font-selection.html:4
&gt; +&lt;meta http-equiv=&quot;content-language&quot; content=&quot;zh-tw&quot;/&gt;

It looks like all tests have a lower case &quot;content-language&quot; string. Please test that it&apos;s case insensitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542879</commentid>
    <comment_count>11</comment_count>
      <attachid>123711</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-25 22:08:58 -0800</bug_when>
    <thetext>Comment on attachment 123711
Patch

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

Thanks for the review, ap and bashi. I&apos;ll upload a new patch.

@bashi Some of the tests use overridePreference to set a per-script font setting, but this is supported by Chromium&apos;s DumpRenderTree only (bug 71110). So I added those tests to the Skipped files of the other platforms.

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        Use content-language to set document locale and font
&gt; 
&gt; Does this work in Firefox and/or IE?

I don&apos;t know if Firefox and IE have something analogous to -webkit-locale, but they do use http-equiv content-language for matching the CSS :lang selector. (WebKit does also.) Firefox uses it for font selection, but surprisingly IE doesn&apos;t seem to.

&gt;&gt; Source/WebCore/css/CSSStyleSelector.cpp:1238
&gt;&gt; +        documentStyle-&gt;setLocale(document-&gt;contentLanguage());
&gt; 
&gt; What guarantees correct precedence of these hints? In tests, I see that a lang attribute on a node takes precedence. Are there any locale hints already implemented in WebKit for which precedence needs to be tested?

As far as I can tell, the only other hint used for setting locale is the -webkit-locale case in CSSStyleSelector::applyProperty. In the future we might use character encoding and application locale as locale hints, so we&apos;d need those precedence tests then.

&gt;&gt; Source/WebCore/dom/Document.cpp:2715
&gt;&gt; +            setContentLanguage(content);
&gt; 
&gt; It may be a mistake in the spec that an empty or invalid Content-Language can be overwritten with a later pragma. Why the special case?

Hm, I don&apos;t know. I do notice that http-equiv Refresh also has the special case.

&gt;&gt; LayoutTests/fast/text/international/content-language-font-selection.html:4
&gt;&gt; +&lt;meta http-equiv=&quot;content-language&quot; content=&quot;zh-tw&quot;/&gt;
&gt; 
&gt; It looks like all tests have a lower case &quot;content-language&quot; string. Please test that it&apos;s case insensitive.

I&apos;ll add a layout test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542885</commentid>
    <comment_count>12</comment_count>
      <attachid>124065</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-25 22:27:30 -0800</bug_when>
    <thetext>Created attachment 124065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542886</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-25 22:31:12 -0800</bug_when>
    <thetext>&gt; I don&apos;t know if Firefox and IE have something analogous to -webkit-locale, but they do use http-equiv content-language for matching the CSS :lang selector. (WebKit does also.) 

OK. I suppose tests for that were added with an earlier patch?

This patch does two things - it fixes Content-Language parsing, and actually does what its title says.

Perhaps it would be better to test subtle aspects of Content-Language parsing with a test that actually works in other browsers. That way, we could confirm that HTML5 actually matches their behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542889</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-25 22:50:26 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; I don&apos;t know if Firefox and IE have something analogous to -webkit-locale, but they do use http-equiv content-language for matching the CSS :lang selector. (WebKit does also.) 
&gt; 
&gt; OK. I suppose tests for that were added with an earlier patch?

Yes, that functionality actually wasn&apos;t added recently but a few years ago: bug 9454 and http://trac.webkit.org/changeset/29336

&gt; 
&gt; This patch does two things - it fixes Content-Language parsing, and actually does what its title says.
&gt; 
&gt; Perhaps it would be better to test subtle aspects of Content-Language parsing with a test that actually works in other browsers. That way, we could confirm that HTML5 actually matches their behavior.

That&apos;s true. I&apos;ll test the other browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542943</commentid>
    <comment_count>15</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-26 01:07:07 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Perhaps it would be better to test subtle aspects of Content-Language parsing with a test that actually works in other browsers. That way, we could confirm that HTML5 actually matches their behavior.
&gt; 
&gt; That&apos;s true. I&apos;ll test the other browsers.

I tested Firefox and IE. Basically, they don&apos;t follow the HTML5 spec:
- In case of multiple Content-Language pragmas, the final one wins, not the first.
- Firefox ignores leading and trailing whitespace but it&apos;s not the spec&apos;s algorithm of taking the first sequence of non-whitespace characters. It&apos;s unclear what IE does but it&apos;s not as per the spec and doesn&apos;t appear to be a verbatim match either.
- Firefox handles a comma-separated list of languages, so a :lang selector for any language in the list is matched.

Given that, perhaps it&apos;s not obvious what behavior we want for WebKit. So, I propose for this patch to keep the parsing as it is and just do what it says in the bug title. I&apos;ll upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542997</commentid>
    <comment_count>16</comment_count>
      <attachid>124085</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-26 02:49:02 -0800</bug_when>
    <thetext>Created attachment 124085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543006</commentid>
    <comment_count>17</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-26 02:55:30 -0800</bug_when>
    <thetext>Darin, can you please review this patch and particularly the call to recalcStyle in Document::setContentLanguage? It&apos;s needed because styleForDocument is called before the content language is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543188</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 09:08:22 -0800</bug_when>
    <thetext>&gt; Given that, perhaps it&apos;s not obvious what behavior we want for WebKit. So, I propose for this patch to keep the parsing as it is and just do what it says in the bug title. I&apos;ll upload a new patch.

Makes sense to me. Would you be willing to e-mail WHATWG or W3C HTML list for clarification, and for possible spec changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543200</commentid>
    <comment_count>19</comment_count>
      <attachid>124085</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-26 09:24:31 -0800</bug_when>
    <thetext>Comment on attachment 124085
Patch

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

&gt; Source/WebCore/dom/Document.cpp:1099
&gt; +    m_contentLanguage = language;
&gt; +    recalcStyle(Force);

Since recalcStyle is a heavyweight operation, there are a few things I suggest doing:

1) If m_contentLanguage is already equal to the new value for language, return without doing any further .

2) Your comment in the bug explained why this call to recalcStyle is needed. The code needs a similar comment.

3) Investigate the idiom further. This is almost certainly wrong. Synchronously calculating style happens in a few places, but none of them make clear why the normal model does not apply. The normal model is that style is calculated as part of the painting or hit testing process or as part of an operation that asks about style. Changes invalidate style, but don’t synchronously recalculate it. For example, Document::setVisuallyOrdered does not call recalcStyle(Force). Document::setDesignMode calls scheduleForcedStyleRecalc rather than actually calling recalcStyle. Changing preferences that affect default fonts calls styleSelectorChanged(DeferRecalcStyle).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544968</commentid>
    <comment_count>20</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-30 02:36:18 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; Given that, perhaps it&apos;s not obvious what behavior we want for WebKit. So, I propose for this patch to keep the parsing as it is and just do what it says in the bug title. I&apos;ll upload a new patch.
&gt; 
&gt; Makes sense to me. Would you be willing to e-mail WHATWG or W3C HTML list for clarification, and for possible spec changes?

Sure, I can look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544991</commentid>
    <comment_count>21</comment_count>
      <attachid>124085</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-30 03:50:52 -0800</bug_when>
    <thetext>Comment on attachment 124085
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:1099
&gt;&gt; +    recalcStyle(Force);
&gt; 
&gt; Since recalcStyle is a heavyweight operation, there are a few things I suggest doing:
&gt; 
&gt; 1) If m_contentLanguage is already equal to the new value for language, return without doing any further .
&gt; 
&gt; 2) Your comment in the bug explained why this call to recalcStyle is needed. The code needs a similar comment.
&gt; 
&gt; 3) Investigate the idiom further. This is almost certainly wrong. Synchronously calculating style happens in a few places, but none of them make clear why the normal model does not apply. The normal model is that style is calculated as part of the painting or hit testing process or as part of an operation that asks about style. Changes invalidate style, but don’t synchronously recalculate it. For example, Document::setVisuallyOrdered does not call recalcStyle(Force). Document::setDesignMode calls scheduleForcedStyleRecalc rather than actually calling recalcStyle. Changing preferences that affect default fonts calls styleSelectorChanged(DeferRecalcStyle).

Thanks for the suggestions. I investigated further and I think calling styleSelectorChanged is the best way. Oddly, not changing setContentLanguage at all works when testing manually; styleSelectorChanged is called sometime after content language is set, resulting in a call to styleForDocument, but when running the layout tests, one test (content-language-with-subtags.html) kept failing as flaky. Calling styleSelectorChanged(DeferRecalcStyle) seems to stop the flakiness and also doesn&apos;t result in an extra call to styleForDocument when testing manually, as recalcStyle(Force) does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544993</commentid>
    <comment_count>22</comment_count>
      <attachid>124519</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-01-30 03:55:50 -0800</bug_when>
    <thetext>Created attachment 124519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547605</commentid>
    <comment_count>23</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-02-01 20:46:48 -0800</bug_when>
    <thetext>Darin, could you please review the latest patch? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548054</commentid>
    <comment_count>24</comment_count>
      <attachid>124519</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-02-02 12:21:52 -0800</bug_when>
    <thetext>Comment on attachment 124519
Patch

I don’t see any test cases for setting the language to something bad, like the empty string, or a string with just whitespace in it. I think we need to cover that.

Also, I don’t see anything here about handling dynamic changes to meta elements. Is that allowed? What is it supposed to do? Also, what about when it’s later in the document, not right at the start?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548329</commentid>
    <comment_count>25</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-02-02 18:31:36 -0800</bug_when>
    <thetext>Thanks!

&gt; I don’t see any test cases for setting the language to something bad, like the empty string, or a string with just whitespace in it. I think we need to cover that.

True, I had those test cases but removed them after realizing it wasn&apos;t clear how we wanted to parse them (comment #15). I&apos;ll see if I can add test cases to show it at least does something sane for now.

&gt; 
&gt; Also, I don’t see anything here about handling dynamic changes to meta elements. Is that allowed? What is it supposed to do? Also, what about when it’s later in the document, not right at the start?

Thanks for the ideas, I&apos;ll look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548465</commentid>
    <comment_count>26</comment_count>
      <attachid>124519</attachid>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-02-02 22:40:04 -0800</bug_when>
    <thetext>Comment on attachment 124519
Patch

I started looking into it, but now think I&apos;d like to commit the patch as is and work on improving the parsing and handling dynamic changes in a subsequent patch. This patch doesn&apos;t change the parsing we already had for content-language and is just using it to set -webkit-locale and the font (comment #15).

I&apos;ll open a new bug for that work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548493</commentid>
    <comment_count>27</comment_count>
      <attachid>124519</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 23:30:36 -0800</bug_when>
    <thetext>Comment on attachment 124519
Patch

Clearing flags on attachment: 124519

Committed r106632: &lt;http://trac.webkit.org/changeset/106632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548494</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 23:30:43 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548579</commentid>
    <comment_count>29</comment_count>
    <who name="Matt Falkenhagen">falken</who>
    <bug_when>2012-02-03 01:45:21 -0800</bug_when>
    <thetext>Created bug 77724 for subtle content-language parsing behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705527</commentid>
    <comment_count>30</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2012-08-27 12:37:07 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; - In case of multiple Content-Language pragmas, the final one wins, not the first.

I&apos;ve updated the spec to match this.


&gt; - Firefox ignores leading and trailing whitespace but it&apos;s not the spec&apos;s algorithm of taking the first sequence of non-whitespace characters. It&apos;s unclear what IE does but it&apos;s not as per the spec and doesn&apos;t appear to be a verbatim match either.

IE and WebKit both just treat the value verbatim.


&gt; - Firefox handles a comma-separated list of languages, so a :lang selector for any language in the list is matched.

Haven&apos;t changed the spec for this as Firefox is the only one who supports multiple languages and it doesn&apos;t really make any sense or match any specs (not even the HTTP analogue).


Please feel free to file bugs on the spec if you want further changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123296</attachid>
            <date>2012-01-20 05:41:01 -0800</date>
            <delta_ts>2012-01-24 03:53:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76701-20120120224100.patch</filename>
            <type>text/plain</type>
            <size>8099</size>
            <attacher name="Matt Falkenhagen">falken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzFhNDY1NDI4MjZlMTU2
ZWM3ZTAxOWExZDYyYTdmNGM5M2U4ZjRhNS4uOGU0YjRlOWNjYTc1YjRjNjRlY2IwMDYzZGU2NThl
NTI1ZmFiNjJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTIwICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSB0byBzZXQgZG9jdW1lbnQgbG9jYWxlIGFuZCBmb250CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3RleHQvY29udGVu
dC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0
bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQpOiB1c2UgY29udGVudCBsYW5n
dWFnZSB3aGVuIHNlbGVjdGluZyBpbml0aWFsIGZvbnQKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldENvbnRlbnRMYW5ndWFnZSk6IHJl
Y2FsYyBzdHlsZSBzbyBsYW5ndWFnZSBpcyB0YWtlbiBpbnRvIGFjY291bnQKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDoKKwogMjAxMi0wMS0xOCAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSByZWdpb24gcmVwb3J0ZWQgcGFpbnRl
ZCBvcGFxdWUgZm9yIGRyYXcgY3VsbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCmluZGV4IDQwYTVmNjVlYzZmYmViZTQ3YWM0OGRlYjkyN2ZlNmJhZTA0NWZmYTkuLjUx
MmVhMGNkMmE2NDhhYjliZDc5ZDk0MzA4YWE4ZTM1OTI5NzRjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTEyMzQsNiArMTIzNCw4IEBAIFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBDCiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0Wm9vbShmcmFtZSA/IGZyYW1lLT5w
YWdlWm9vbUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0UGFnZVNjYWxlVHJh
bnNmb3JtKGZyYW1lID8gZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSA6IDEpOwogICAgIGRvY3Vt
ZW50U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmluRGVzaWduTW9kZSgpID8gUkVBRF9X
UklURSA6IFJFQURfT05MWSk7CisgICAgaWYgKCFkb2N1bWVudC0+Y29udGVudExhbmd1YWdlKCku
aXNFbXB0eSgpKQorICAgICAgICBkb2N1bWVudFN0eWxlLT5zZXRMb2NhbGUoZG9jdW1lbnQtPmNv
bnRlbnRMYW5ndWFnZSgpKTsKIAogICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVudC0+
ZG9jdW1lbnRFbGVtZW50KCk7CiAgICAgUmVuZGVyT2JqZWN0KiBkb2NFbGVtZW50UmVuZGVyZXIg
PSBkb2NFbGVtZW50ID8gZG9jRWxlbWVudC0+cmVuZGVyZXIoKSA6IDA7CkBAIC0xMjY0LDkgKzEy
NjYsMTAgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVG
b3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEMKIAogICAgIEZvbnREZXNjcmlwdGlvbiBm
b250RGVzY3JpcHRpb247CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFVzZVByaW50ZXJGb250KGRv
Y3VtZW50LT5wcmludGluZygpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0U2NyaXB0KGxvY2Fs
ZVRvU2NyaXB0Q29kZUZvckZvbnRTZWxlY3Rpb24oZG9jdW1lbnRTdHlsZS0+bG9jYWxlKCkpKTsK
ICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQtPnNldHRpbmdzKCkpIHsKICAg
ICAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5k
ZXJpbmdNb2RlKCkpOwotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0ZGZvbnQgPSBzZXR0
aW5ncy0+c3RhbmRhcmRGb250RmFtaWx5KCk7CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
c3RkZm9udCA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoZm9udERlc2NyaXB0aW9uLnNj
cmlwdCgpKTsKICAgICAgICAgaWYgKCFzdGRmb250LmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
Zm9udERlc2NyaXB0aW9uLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpTdGFuZGFy
ZEZhbWlseSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKS5zZXRG
YW1pbHkoc3RkZm9udCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhYTJmNDQ5Y2NmODgw
NTdkNWFhODY0NTgyYTViMDE0OWIyZWNkMWU3Li4zNjZlMzhhMTU2MWFmNDIzYzBlMWM1OTVhMzY2
ZWYzYjQxOTUyNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEwODIsNiArMTA4Miwx
MiBAQCB2b2lkIERvY3VtZW50OjpzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkKICAg
ICBkZWNvZGVyKCktPnNldEVuY29kaW5nKGNoYXJzZXQsIFRleHRSZXNvdXJjZURlY29kZXI6OlVz
ZXJDaG9zZW5FbmNvZGluZyk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNldENvbnRlbnRMYW5ndWFn
ZShjb25zdCBTdHJpbmcmIGxhbmcpCit7CisgICAgbV9jb250ZW50TGFuZ3VhZ2UgPSBsYW5nOwor
ICAgIHJlY2FsY1N0eWxlKEZvcmNlKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0WE1MVmVyc2lv
bihjb25zdCBTdHJpbmcmIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
aW1wbGVtZW50YXRpb24oKS0+aGFzRmVhdHVyZSgiWE1MIiwgU3RyaW5nKCkpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDkxMGY3MTBmMWQ1ZmMyMWNhZjUzNTgyODZiNDE5OTQ3MWFiNDZhM2Yu
LmQ5MjdjZmRiMzY0NDEwYWIwOTM2ZTBjYWNiMjIzYzRkZTFjMGFjMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBzdWdnZXN0ZWRN
SU1FVHlwZSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIGNvbnRlbnRMYW5ndWFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY29udGVudExhbmd1YWdlOyB9Ci0gICAgdm9pZCBzZXRDb250ZW50TGFuZ3VhZ2Uo
Y29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fY29udGVudExhbmd1YWdlID0gbGFuZzsgfQorICAgIHZv
aWQgc2V0Q29udGVudExhbmd1YWdlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgU3RyaW5nIHhtbEVu
Y29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV94bWxFbmNvZGluZzsgfQogICAgIFN0cmluZyB4bWxW
ZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV94bWxWZXJzaW9uOyB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTM4NTE3NGRi
M2JhMjhhZjlkYjUxMDZjNTc5MDgzMjA3NDM5OTc2Zi4uZjAxZDI2MTYxM2RkNWIxODE0MjJiMmMz
MjViOTEzMDRjNjVkYTNlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAxLTIwICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSB0byBzZXQgZG9jdW1lbnQgbG9jYWxlIGFuZCBmb250CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFu
Z3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxh
bmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC94
bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwuaHRtbDogUmVtb3ZlIGFuIGV4dHJhIDwvZGl2PgorCiAy
MDEyLTAxLTE4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAg
IE5lZWQgaW5mcmFzdHJ1Y3R1cmUgdG8gdGVzdCBDb250ZW50LURpc3Bvc2l0aW9uIGZpbGVuYW1l
IGVuY29kaW5nIHN1cHBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250
ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzA5MmRhM2JjMGU2ZjU0YzY0ODRlZGJmY2NkYTMz
Mjk1MGI2YjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRl
bnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOCBAQAorVGhpcyB0ZXN0cyB0aGF0IGNvbnRlbnQtbGFuZ3VhZ2UgaXMgbWFwcGVkIHRvIC13
ZWJraXQtbG9jYWxlLgorCitQQVNTIGdldExhbmdPZk5vZGUoJ3gxJykgaXMgInpoIgorUEFTUyBn
ZXRMYW5nT2ZOb2RlKCdtMScpIGlzICJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
Y29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZTIyYzdiYmE4NGQ5MDczZjAyOTNmZmZmZWM2MGVlOGE1MjkxODY3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Ut
bWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFk
PgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC1sYW5ndWFnZSIgY29udGVudD0iemgiLz4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIiAvPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCBjb250ZW50LWxhbmd1
YWdlIGlzIG1hcHBlZCB0byAtd2Via2l0LWxvY2FsZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxkaXYgaWQ9IngxIi8+Cis8ZGl2IGxhbmc9ImFyIiBpZD0ibTEiLz4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBnZXRMYW5nT2ZOb2RlKG4pIHsKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQobik7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLndlYmtpdExv
Y2FsZTsKK30KK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgneDEnKSIsICJ6
aCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdtMScpIiwgImFyIik7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9j
b250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2M3ZDMwYzUwY2JmOWYyODMxNWZkZTViMTQ4OWE2OTU3MTZjNDhmYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQt
bGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdl
IiBjb250ZW50PSJ6aCIvPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dFN0YW5kYXJkRm9udE1hcCIsIFsgIkhhbnMiLCAiQWhlbSIgXSk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPCEtLSBUaGlzIHRlc3RzIGZvbnQgc2VsZWN0aW9uIGJhc2VkIG9uIGNv
bnRlbnQtbGFuZ3VhZ2UuICBUaGUgdGV4dAorc2hvdWxkIGJlIGluIEFoZW0gZm9udC4gLS0+CitU
aGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwuaHRtbAppbmRleCBlZDhhM2M0
NDQ4NzIyMDM3M2Q4MGQ0ZTE5YTc4YjUyMWM1N2VkM2QzLi41NjdhMzMwM2VkYTQzNWY4NDE4MjQ1
NzI1MzE4NWI1OGQ3NzdmOTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1s
LWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3ht
bC1sYW5nLWlnbm9yZWQtaW4taHRtbC5odG1sCkBAIC03LDcgKzcsNyBAQAogPHA+VGhpcyB0ZXN0
cyB0aGF0IHRoZSBhdHRyaWJ1dGUgaW4gbm8gbmFtZXNwYWNlIHdpdGggbm8gcHJlZml4IGFuZCB3
aXRoIHRoZSBsaXRlcmFsIGxvY2FsbmFtZSAieG1sOmxhbmciIGlzIGlnbm9yZWQgaW4gSFRNTC4g
U2VlCiA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzY3NTg2Ij5idWcgNjc1ODY8L2E+Ljwv
cD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPGRpdiB4bWw6bGFuZz0iYXIiIGlkPSJtMSI+
PC9kaXY+PC9kaXY+Cis8ZGl2IHhtbDpsYW5nPSJhciIgaWQ9Im0xIj48L2Rpdj4KIDxkaXYgbGFu
Zz0ia28iPjxkaXYgeG1sOmxhbmc9ImFyIiBpZD0ibjEiPjwvZGl2PjwvZGl2PgogPGRpdiBsYW5n
PSJhciIgaWQ9Im8xIj48ZGl2IHhtbDpsYW5nPSIiIGlkPSJvMiI+PC9kaXY+PC9kaXY+CiA8c2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123711</attachid>
            <date>2012-01-24 03:53:38 -0800</date>
            <delta_ts>2012-01-25 22:27:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76701-20120124205336.patch</filename>
            <type>text/plain</type>
            <size>33007</size>
            <attacher name="Matt Falkenhagen">falken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRiOTY3M2IyOTRmMTg1
YzFlZWQwOTgyZTgzNWJiMTdjNzNhYzNhOS4uNjZlZDYwZTZmZWQ0NTViMzJjOWFjMmJkM2M4MzBk
NjIzMjRhZTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTI0ICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSB0byBzZXQgZG9jdW1lbnQgbG9jYWxlIGFuZCBmb250CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvIGZhciwgb25seSBjb250ZW50LWxh
bmd1YWdlIHNldCB0aHJvdWdoIGh0dHAtZXF1aXYgaXMgdXNlZDsgdGhlIEhUVFAgQ29udGVudC1M
YW5ndWFnZQorICAgICAgICBoZWFkZXIgaXMgbm90IHlldCBzdXBwb3J0ZWQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxl
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW11bHRpcGxl
LXRhZ3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2hp
dGVzcGFjZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13
aXRoLW11bHRpcGxlLWxhbmd1YWdlcy1pcy1pZ25vcmVkLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24tZXhw
ZWN0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVu
dC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQv
aW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQtd2hpdGVzcGFj
ZS1leHBlY3RlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9j
b250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQtd2hpdGVzcGFjZS5odG1sCisKKyAgICAg
ICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudCk6IHVzZSBjb250ZW50IGxhbmd1YWdlIHdoZW4g
c2VsZWN0aW5nIGluaXRpYWwgZm9udAorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGVudExhbmd1YWdlKTogcmVjYWxjIHN0eWxl
IHNvIGxhbmd1YWdlIGlzIHRha2VuIGludG8gYWNjb3VudCBhbmQgcGFyc2UgY29udGVudC1sYW5n
dWFnZSBhcyBwZXIgSFRNTDUgc3BlYworICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByb2Nl
c3NIdHRwRXF1aXYpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAyMDEyLTAxLTIzICBQ
cmlpdCBMYWVzICA8cGxhZXNAcGxhZXMub3JnPgogCiAgICAgICAgIFtHVEtdW1BBVENIXSBNb3Jl
IGJ1aWxkIHNpbGVuY2luZyB3aXRoIChBTV9WXy4uLikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAppbmRleCA2ZTc1YzFjZjdmMjY3YzFkNDNmNGY0YzJiODBhNjNhNTQ4MGFj
MjdhLi4xMGY1YzNhM2ZmZmYwMDllMjAzMTlkODhmYjExNWE0YjU3MTE0MWRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMjM0LDYgKzEyMzQsOCBAQCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERv
Y3VtZW50KiBkb2N1bWVudCwgQwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUgPyBm
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFBhZ2VT
Y2FsZVRyYW5zZm9ybShmcmFtZSA/IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAg
ICBkb2N1bWVudFN0eWxlLT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/
IFJFQURfV1JJVEUgOiBSRUFEX09OTFkpOworICAgIGlmICghZG9jdW1lbnQtPmNvbnRlbnRMYW5n
dWFnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgZG9jdW1lbnRTdHlsZS0+c2V0TG9jYWxlKGRvY3Vt
ZW50LT5jb250ZW50TGFuZ3VhZ2UoKSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9j
dW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwogICAgIFJlbmRlck9iamVjdCogZG9jRWxlbWVudFJl
bmRlcmVyID0gZG9jRWxlbWVudCA/IGRvY0VsZW1lbnQtPnJlbmRlcmVyKCkgOiAwOwpAQCAtMTI2
NCw5ICsxMjY2LDEwIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6
OnN0eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBDCiAKICAgICBGb250RGVzY3Jp
cHRpb24gZm9udERlc2NyaXB0aW9uOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVy
Rm9udChkb2N1bWVudC0+cHJpbnRpbmcoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNjcmlw
dChsb2NhbGVUb1NjcmlwdENvZGVGb3JGb250U2VsZWN0aW9uKGRvY3VtZW50U3R5bGUtPmxvY2Fs
ZSgpKSk7CiAgICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50LT5zZXR0aW5ncygp
KSB7CiAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5m
b250UmVuZGVyaW5nTW9kZSgpKTsKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzdGRmb250
ID0gc2V0dGluZ3MtPnN0YW5kYXJkRm9udEZhbWlseSgpOworICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHN0ZGZvbnQgPSBzZXR0aW5ncy0+c3RhbmRhcmRGb250RmFtaWx5KGZvbnREZXNjcmlw
dGlvbi5zY3JpcHQoKSk7CiAgICAgICAgIGlmICghc3RkZm9udC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6
U3RhbmRhcmRGYW1pbHkpOwogICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5
KCkuc2V0RmFtaWx5KHN0ZGZvbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2FiYjNh
ZGE5YmNiNTFmMDFmMDI0NzVhODE5MTY3M2JkZWE4YTFhMS4uYTkxMWU0NTI3NTc5MGQxNjEyZjNk
ZjdjNTBiYTZlYTk4ZTgzNGM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDkzLDYg
KzEwOTMsMjEgQEAgdm9pZCBEb2N1bWVudDo6c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJz
ZXQpCiAgICAgZGVjb2RlcigpLT5zZXRFbmNvZGluZyhjaGFyc2V0LCBUZXh0UmVzb3VyY2VEZWNv
ZGVyOjpVc2VyQ2hvc2VuRW5jb2RpbmcpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXRDb250ZW50
TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKK3sKKyAgICAvLyBQZXIgSFRNTDUgc3Bl
Y2lmaWNhdGlvbiwgY29udGVudC1sYW5ndWFnZSBpcyBpZ25vcmVkIGlmIGl0IGNvbnRhaW5zIGEg
Y29tbWEuCisgICAgaWYgKGxhbmd1YWdlLmNvbnRhaW5zKCcsJykpCisgICAgICAgIHJldHVybjsK
KyAgICBTdHJpbmcgc3RyaXBwZWRMYW5ndWFnZSA9IGxhbmd1YWdlLnN0cmlwV2hpdGVTcGFjZSgp
LnNpbXBsaWZ5V2hpdGVTcGFjZSgpOworICAgIHNpemVfdCBwb3MgPSBzdHJpcHBlZExhbmd1YWdl
LmZpbmQoJyAnKTsKKyAgICBpZiAocG9zICE9IG5vdEZvdW5kKQorICAgICAgICBzdHJpcHBlZExh
bmd1YWdlID0gc3RyaXBwZWRMYW5ndWFnZS5sZWZ0KHBvcyk7CisgICAgaWYgKCFzdHJpcHBlZExh
bmd1YWdlLmlzRW1wdHkoKSkgeworICAgICAgICBtX2NvbnRlbnRMYW5ndWFnZSA9IHN0cmlwcGVk
TGFuZ3VhZ2U7CisgICAgICAgIHJlY2FsY1N0eWxlKEZvcmNlKTsKKyAgICB9Cit9CisKIHZvaWQg
RG9jdW1lbnQ6OnNldFhNTFZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBpZiAoIWltcGxlbWVudGF0aW9uKCktPmhhc0ZlYXR1cmUoIlhNTCIs
IFN0cmluZygpKSkgewpAQCAtMjY5NCw5ICsyNzA5LDExIEBAIHZvaWQgRG9jdW1lbnQ6OnByb2Nl
c3NIdHRwRXF1aXYoY29uc3QgU3RyaW5nJiBlcXVpdiwgY29uc3QgU3RyaW5nJiBjb250ZW50KQog
ICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsgLy8gRXhjZXB0aW9uIChmb3Igc2FuZGJveGVk
IGRvY3VtZW50cykgaWdub3JlZC4KICAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxEb2N1bWVu
dCo+KHRoaXMpLT5zZXRDb29raWUoY29udGVudCwgZWMpOwogICAgICAgICB9Ci0gICAgfSBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShlcXVpdiwgImNvbnRlbnQtbGFuZ3VhZ2UiKSkKLSAgICAg
ICAgc2V0Q29udGVudExhbmd1YWdlKGNvbnRlbnQpOwotICAgIGVsc2UgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKGVxdWl2LCAieC1kbnMtcHJlZmV0Y2gtY29udHJvbCIpKQorICAgIH0gZWxzZSBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UoZXF1aXYsICJjb250ZW50LWxhbmd1YWdlIikpIHsKKyAgICAgICAg
Ly8gUGVyIEhUTUw1IHNwZWNpZmljYXRpb24sIGNvbnRlbnQtbGFuZ3VhZ2Ugc2hvdWxkIGJlIHBy
b2Nlc3NlZCBvbmx5IG9uY2UuCisgICAgICAgIGlmIChjb250ZW50TGFuZ3VhZ2UoKS5pc0VtcHR5
KCkpCisgICAgICAgICAgICBzZXRDb250ZW50TGFuZ3VhZ2UoY29udGVudCk7CisgICAgfSBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShlcXVpdiwgIngtZG5zLXByZWZldGNoLWNvbnRyb2wiKSkK
ICAgICAgICAgcGFyc2VETlNQcmVmZXRjaENvbnRyb2xIZWFkZXIoY29udGVudCk7CiAgICAgZWxz
ZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZXF1aXYsICJ4LWZyYW1lLW9wdGlvbnMiKSkgewogICAg
ICAgICBpZiAoZnJhbWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZmRiMzk4ODc1ZjUxNGRm
ZmM0YzcwMzk3MjFiMWE3NTc0N2NiYjk3Yi4uNTVkZGM2OWNjYThlZjUzYjEzY2FjMzZjNDg5NDFj
YmViNGMxOGY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM4Niw3ICszODYsNyBAQCBwdWJs
aWM6CiAgICAgU3RyaW5nIHN1Z2dlc3RlZE1JTUVUeXBlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcg
Y29udGVudExhbmd1YWdlKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TGFuZ3VhZ2U7IH0KLSAg
ICB2b2lkIHNldENvbnRlbnRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmcpIHsgbV9jb250ZW50
TGFuZ3VhZ2UgPSBsYW5nOyB9CisgICAgdm9pZCBzZXRDb250ZW50TGFuZ3VhZ2UoY29uc3QgU3Ry
aW5nJik7CiAKICAgICBTdHJpbmcgeG1sRW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBtX3htbEVu
Y29kaW5nOyB9CiAgICAgU3RyaW5nIHhtbFZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX3htbFZl
cnNpb247IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA1MWM4ZWE0YjM2MTEwMWUwN2M1MTE5NzY0YmJkMGVjMDRhOTY0NDNm
Li4yNjEzNWI1MmU3MDQwNGM1YjE3NGI1YjhjMWIyYTYyOTk4M2MzZDMzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTItMDEtMjQgIE1hdHQgRmFsa2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFVzZSBjb250ZW50LWxhbmd1YWdlIHRvIHNldCBkb2N1bWVudCBsb2Nh
bGUgYW5kIGZvbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHRlc3RzIHRoYXQgY29udGVudC1sYW5ndWFnZSBzZXRzIGRvY3VtZW50IGxvY2FsZSBh
bmQgaXMgdXNlZCBpbiBmb250IHNlbGVjdGlvbi4KKworICAgICAgICAqIGZhc3QvdGV4dC9jb250
ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1s
b2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Ut
bXVsdGlwbGUtdGFncy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9j
b250ZW50LWxhbmd1YWdlLW11bHRpcGxlLXRhZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2hpdGVzcGFjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLXdoaXRlc3BhY2UuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1tdWx0aXBsZS1s
YW5ndWFnZXMtaXMtaWdub3JlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
dGV4dC9jb250ZW50LWxhbmd1YWdlLXdpdGgtbXVsdGlwbGUtbGFuZ3VhZ2VzLWlzLWlnbm9yZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1s
YW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFu
Z3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1z
dWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9s
YW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS54aHRtbDogRml4IHNvbWUgc3R5bGUg
aXNzdWVzLgorICAgICAgICAqIGZhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwu
aHRtbDogRml4IHNvbWUgc3R5bGUgaXNzdWVzLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9Ta2lw
cGVkOiBBZGQgc2tpcCBmb3Igbm9uLUNocm9taXVtIHBvcnRzIGZvciB0ZXN0cyB1c2luZyBvdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdCpGb250TWFwIi4uLikKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGstd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5j
YWlyby9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOgorCiAyMDEyLTAx
LTIzICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkIHRlc3QgZXhwZWN0YXRpb25zIGZpeGVzIGZvciBhIGNvdXBsZSBvZiB3aW5kb3cvZnJhbWUg
dGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFn
ZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2M3OTA3ODA4NDAyMDA1OGMyNDQxNzZmYzllNDZkNDc4ZjhhOGExYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdl
LW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rl
c3QgZm9yIGJ1ZyA3NjcwMTogbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2NhbGUu
CisKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3gxJykgaXMgInpoLUNOIgorUEFTUyBsYW5ndWFnZU9m
Tm9kZSgnbTEnKSBpcyAiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQt
bGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzNmMWRhZDlmNzU5NDdjZDA3NTRlOGQwNDMzNGU4NjMzMGYzYjg4YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBlZC10
by13ZWJraXQtbG9jYWxlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRh
IGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9InpoLUNOIi8+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIg
Lz4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3NjcwMTwvYT46CittYXAgY29udGVu
dC1sYW5ndWFnZSB0byAtd2Via2l0LWxvY2FsZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxkaXYgaWQ9IngxIi8+Cis8ZGl2IGxhbmc9ImFyIiBpZD0ibTEiLz4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBsYW5ndWFnZU9mTm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpOworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50KS53ZWJraXRMb2NhbGU7Cit9CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdl
T2ZOb2RlKCd4MScpIiwgInpoLUNOIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdl
T2ZOb2RlKCdtMScpIiwgImFyIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS10YWdzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLXRhZ3MtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjYjExZTY4NjkzOWY1ZjJhNDRmNzRjNWQ4MzUwMzM2MjZkNTNiNjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFn
ZS1tdWx0aXBsZS10YWdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgZm9yIGJ1
ZyA3NjcwMTogbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2NhbGUuIEluIHRoZSBj
YXNlIG9mIG11bHRpcGxlIGNvbnRlbnQtbGFuZ3VhZ2UgTUVUQSB0YWdzLCBvbmNlIG9uZSBpcyBz
dWNjZXNzZnVsbHkgcHJvY2Vzc2VkLCB0aGUgb3RoZXJzIHNob3VsZCBiZSBpZ25vcmVkLgorCitQ
QVNTIGxhbmd1YWdlT2ZOb2RlKCd4MScpIGlzICJ6aC1DTiIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUo
J20xJykgaXMgImFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1
YWdlLW11bHRpcGxlLXRhZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxh
bmd1YWdlLW11bHRpcGxlLXRhZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTk2ZTRmN2I2YzBlYzlhZjg2
ZGFjYWU5ZmFmMDg2ZGVmNjgyYzkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUtdGFncy5odG1sCkBAIC0wLDAgKzEsMzAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdlIiBjb250
ZW50PSJ6aC1DTiIvPgorPCEtLSBBY2NvcmRpbmcgdG8gdGhlIEhUTUw1IHNwZWMsIG9ubHkgdGhl
IGZpcnN0IGNvbnRlbnQtbGFuZ3VhZ2Ugc2hvdWxkIGJlIHByb2Nlc3NlZC4gLS0+Cis8bWV0YSBo
dHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdlIiBjb250ZW50PSJlbi1VUyIvPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiIC8+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc2NzAxIj5idWcgNzY3MDE8L2E+OgorbWFwIGNvbnRlbnQt
bGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2NhbGUuIEluIHRoZSBjYXNlIG9mIG11bHRpcGxlCitjb250
ZW50LWxhbmd1YWdlIE1FVEEgdGFncywgb25jZSBvbmUgaXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3Nl
ZCwgdGhlIG90aGVycworc2hvdWxkIGJlIGlnbm9yZWQuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8ZGl2IGlkPSJ4MSIvPgorPGRpdiBsYW5nPSJhciIgaWQ9Im0xIi8+Cis8c2NyaXB0
PgorZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworfQorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5n
dWFnZU9mTm9kZSgneDEnKSIsICJ6aC1DTiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5n
dWFnZU9mTm9kZSgnbTEnKSIsICJhciIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2hpdGVzcGFjZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZjZiNzYyZDVmYjY0ZGJiMWIzY2Q3ZWUzMGE4NWYzZDA5MDFkMmIwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Ut
d2hpdGVzcGFjZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IGZvciBidWcgNzY3
MDE6IG1hcCBjb250ZW50LWxhbmd1YWdlIHRvIC13ZWJraXQtbG9jYWxlLiBUaGlzIHBhcnRpY3Vs
YXIgdGVzdCB0ZXN0cyB0aGF0IHdoaXRlc3BhY2UgaW4gY29udGVudC1sYW5ndWFnZSBpcyBoYW5k
bGVkIGFzIHBlciB0aGUgSFRNTDUgc3BlY2lmaWNhdGlvbi4KKworUEFTUyBsYW5ndWFnZU9mTm9k
ZSgneDEnKSBpcyAiemhfdHdfZm9vYmFyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbTEnKSBpcyAi
YXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2hpdGVz
cGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2hpdGVz
cGFjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMmYxNTVmZDk1MGM4YzIwYjAzNGEzZWJiZjJiZmRlYjg2
OTY2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1s
YW5ndWFnZS13aGl0ZXNwYWNlLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzwh
LS0gQWNjb3JkaW5nIHRvIHRoZSBIVE1MIDUgc3BlYywgZW1wdHkgY29udGVudC1sYW5ndWFnZSBz
aG91bGQgYmUgaWdub3JlZC4gLS0+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdl
Ii8+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdlIiBjb250ZW50PSIiLz4KKzwh
LS0gVGhlIHNwZWMgaXNuJ3QgZXhwbGljaXQsIGJ1dCB3aGl0ZXNwYWNlIG9ubHkgY29udGVudCBw
cm9iYWJseSBzaG91bGQgYWxzbyBiZSBpZ25vcmVkLiAtLT4KKzxtZXRhIGh0dHAtZXF1aXY9ImNv
bnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9IiAgICIvPgorCis8bWV0YSBodHRwLWVxdWl2PSJjb250
ZW50LWxhbmd1YWdlIiBjb250ZW50PSIgIHpoX3R3X2Zvb2JhciAKKyAgICAJIAorICAgZW5fdXNf
dXNfdXNfICAgIi8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBo
cmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3
NjcwMTwvYT46CittYXAgY29udGVudC1sYW5ndWFnZSB0byAtd2Via2l0LWxvY2FsZS4gVGhpcyBw
YXJ0aWN1bGFyIHRlc3QgdGVzdHMgdGhhdAord2hpdGVzcGFjZSBpbiBjb250ZW50LWxhbmd1YWdl
IGlzIGhhbmRsZWQgYXMgcGVyIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLgorPC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4MSIvPgorPGRpdiBsYW5nPSJhciIgaWQ9Im0x
Ii8+Cis8c2NyaXB0PgorZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworfQorc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJ6aF90d19mb29iYXIiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20xJykiLCAiYXIiKTsKKwordmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLXdpdGgtbXVsdGlw
bGUtbGFuZ3VhZ2VzLWlzLWlnbm9yZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1tdWx0aXBsZS1sYW5ndWFnZXMtaXMtaWdub3JlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc5YjY1YmQyNjEyMTYwNzg0ZDBlNTk4YjQ3MzZkOTQ0
ZTQyMmIxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50
LWxhbmd1YWdlLXdpdGgtbXVsdGlwbGUtbGFuZ3VhZ2VzLWlzLWlnbm9yZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgYnVnIDc2NzAxOiBtYXAgY29udGVudC1sYW5ndWFn
ZSB0byAtd2Via2l0LWxvY2FsZS4gVGhpcyB0ZXN0cyB0aGF0IGEgY29udGVudC1sYW5ndWFnZSB3
aXRoIG11bHRpcGxlIGxhbmd1YWdlcyBpcyBpZ25vcmVkLCBwZXIgdGhlIEhUTUw1IHNwZWNpZmlj
YXRpb24uCisKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3gxJykgaXMgImF1dG8iCitQQVNTIGxhbmd1
YWdlT2ZOb2RlKCdtMScpIGlzICJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29u
dGVudC1sYW5ndWFnZS13aXRoLW11bHRpcGxlLWxhbmd1YWdlcy1pcy1pZ25vcmVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13aXRoLW11bHRpcGxlLWxhbmd1
YWdlcy1pcy1pZ25vcmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNiYTgyNDhmMzZkZjBjMTFhZWRmYWMw
MDRmZWFhNjdhMmJhMWQ5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9jb250ZW50LWxhbmd1YWdlLXdpdGgtbXVsdGlwbGUtbGFuZ3VhZ2VzLWlzLWlnbm9yZWQuaHRt
bApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVu
dC1sYW5ndWFnZSIgY29udGVudD0iemgsIGVuLVVTIi8+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3NjcwMTwvYT46CittYXAgY29udGVudC1sYW5ndWFnZSB0byAt
d2Via2l0LWxvY2FsZS4gVGhpcyB0ZXN0cyB0aGF0IGEgY29udGVudC1sYW5ndWFnZSB3aXRoCitt
dWx0aXBsZSBsYW5ndWFnZXMgaXMgaWdub3JlZCwgcGVyIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9u
LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieDEiLz4KKzxkaXYgbGFu
Zz0iYXIiIGlkPSJtMSIvPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxhbmd1YWdlT2ZOb2RlKGlkKSB7
CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0
dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdExvY2FsZTsKK30KK3No
b3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3gxJykiLCAiYXV0byIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTEnKSIsICJhciIpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1s
YW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3Rl
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhmNmRiNzVjNGZmOTA1NzNlYjAyMzUyMDg0NjVmN2UzNmIxNDNm
NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25h
bC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQg
b24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iZm9udC1m
YW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQt
bGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMDNmYTNjYWYzMDYyZTQ4ZDIyNDkyMGM1ZjEzMGYyYjE4ZThiMTQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFn
ZS1mb250LXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRl
bnQ9InpoLXR3Ii8+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0U3Rh
bmRhcmRGb250TWFwIiwgWyAiSGFudCIsICJBaGVtIiBdKTsKK30KKzwvc2NyaXB0PgorPHRpdGxl
PlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzwhLS0gVGhpcyB0ZXN0cyBmb250IHNlbGVjdGlvbiBiYXNlZCBvbiBj
b250ZW50LWxhbmd1YWdlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzY3MDE+LiBUaGUgdGV4dCBzaG91bGQgYmUgaW4gQWhlbSBmb250LiAtLT4KK1RoaXMgaXMgaW4g
QWhlbSBmb250LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3MtYW5kLXdo
aXRlc3BhY2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGY2ZGI3NWM0ZmY5MDU3M2ViMDIzNTIwODQ2NWY3ZTM2YjE0M2Y0
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9udCBzZWxl
Y3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBz
dHlsZT0iZm9udC1mYW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgt
c3VidGFncy1hbmQtd2hpdGVzcGFjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2MzkyZWY1NjYwZThlYTIz
ZTlkMGQ5MTkxMzQzMWNlNmEzOGFhODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQt
d2hpdGVzcGFjZS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9IiAg
emhfdHdfZm9vYmFyIAorICAgIAkgCisgICBlbl91c191c191c18gICAiLz4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRTdGFuZGFyZEZvbnRNYXAiLCBbICJIYW50Iiwg
IkFoZW0iIF0pOworfQorPC9zY3JpcHQ+Cis8dGl0bGU+VGVzdCBmb250IHNlbGVjdGlvbiBiYXNl
ZCBvbiBjb250ZW50LWxhbmd1YWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPCEtLSBUaGlz
IHRlc3RzIGZvbnQgc2VsZWN0aW9uIGJhc2VkIG9uIGNvbnRlbnQtbGFuZ3VhZ2UKKzxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDE+LCB3aGVuIGNvbnRlbnQtbGFu
Z3VhZ2UgaGFzCit3aGl0ZXNwYWNlIGFuZCBzdWJ0YWdzLiBUaGUgbGFuZ3VhZ2Ugc2hvdWxkIGJl
IHBhcnNlZCBhcyAiemhfdHdfZm9vYmFyIiwgd2hpY2gKK21hdGNoZXMgSGFuIFRyYWRpdGlvbmFs
IHNjcmlwdCwgc28gdGhlIHRleHQgc2hvdWxkIGJlIGluIEFoZW0gZm9udC4gLS0+CitUaGlzIGlz
IGluIEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVk
LnR4dAppbmRleCBmYTkxYjE5NjQxOGQ0Y2EzODFjMmI5NjYzNDdhNWRlZTQ2MzU2ZmJmLi45Y2Nm
YzNjNTI2MTY1ZjY1YjQ4NTQxYWU5NmVmNWU4M2M0ZWY2NDU1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUt
ZXhwZWN0ZWQudHh0CkBAIC0xLDI4ICsxLDI4IEBACiBUaGlzIGlzIGEgdGVzdCBmb3IgYnVnIDY3
NTg2LiBIVE1MIGF0dHJpYnV0ZXMgbGFuZyBhbmQgeG1sOmxhbmcgYXJlIG1hcHBlZCB0byAnLXdl
YmtpdC1sb2NhbGUnIHRvIHVzZSB0aGVpciB2YWx1ZSBpbiBmb250IGZhbGxiYWNrLgogCi1QQVNT
IGdldExhbmdPZk5vZGUoJ3gxJykgaXMgImphIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCd4MicpIGlz
ICJqYSIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgneDMnKSBpcyAiamEiCi1QQVNTIGdldExhbmdPZk5v
ZGUoJ2wxJykgaXMgInpoIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdsMicpIGlzICJ6aCIKLVBBU1Mg
Z2V0TGFuZ09mTm9kZSgnbDMnKSBpcyAiemgiCi1QQVNTIGdldExhbmdPZk5vZGUoJ20xJykgaXMg
ImtvIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdtMicpIGlzICJmciIKLVBBU1MgZ2V0TGFuZ09mTm9k
ZSgnbTMnKSBpcyAiZnIiCi1QQVNTIGdldExhbmdPZk5vZGUoJ24xJykgaXMgImZyIgotUEFTUyBn
ZXRMYW5nT2ZOb2RlKCduMicpIGlzICJmciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbjMnKSBpcyAi
c3YiCi1QQVNTIGdldExhbmdPZk5vZGUoJ3AxJykgaXMgImphIgotUEFTUyBnZXRMYW5nT2ZOb2Rl
KCdwMicpIGlzICJhdXRvIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdxMScpIGlzICJqYSIKLVBBU1Mg
Z2V0TGFuZ09mTm9kZSgncTInKSBpcyAiYXV0byIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgncTMnKSBp
cyAiYXV0byIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgncTQnKSBpcyAiYXIiCi1QQVNTIGdldExhbmdP
Zk5vZGUoJ3E1JykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ3E2JykgaXMgIicgICci
Ci1QQVNTIGdldExhbmdPZk5vZGUoJ3E3JykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUo
J3E4JykgaXMgInh5enp5IgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdxOScpIGlzICInXVs7XVtbJyIK
K1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3gxJykgaXMgImphIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgn
eDInKSBpcyAiamEiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCd4MycpIGlzICJqYSIKK1BBU1MgbGFu
Z3VhZ2VPZk5vZGUoJ2wxJykgaXMgInpoIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbDInKSBpcyAi
emgiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdsMycpIGlzICJ6aCIKK1BBU1MgbGFuZ3VhZ2VPZk5v
ZGUoJ20xJykgaXMgImtvIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbTInKSBpcyAiZnIiCitQQVNT
IGxhbmd1YWdlT2ZOb2RlKCdtMycpIGlzICJmciIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ24xJykg
aXMgImZyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbjInKSBpcyAiZnIiCitQQVNTIGxhbmd1YWdl
T2ZOb2RlKCduMycpIGlzICJzdiIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3AxJykgaXMgImphIgor
UEFTUyBsYW5ndWFnZU9mTm9kZSgncDInKSBpcyAiYXV0byIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUo
J3ExJykgaXMgImphIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgncTInKSBpcyAiYXV0byIKK1BBU1Mg
bGFuZ3VhZ2VPZk5vZGUoJ3EzJykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxNCcp
IGlzICJhciIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3E1JykgaXMgImF1dG8iCitQQVNTIGxhbmd1
YWdlT2ZOb2RlKCdxNicpIGlzICInICAnIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgncTcnKSBpcyAi
YXV0byIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3E4JykgaXMgInh5enp5IgorUEFTUyBsYW5ndWFn
ZU9mTm9kZSgncTknKSBpcyAiJ11bO11bWyciCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9s
YW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUueGh0bWwKaW5kZXggNTllMWY2OTk4ODlmYTI3
OTU4NjRjODJjZTQwNzYxMjMxNmU1YjgxYS4uMzRlZTc1YWUxZjg4MDY3ZDg0M2Q2Mzk0Yzc3MjVj
ZWQ3MTRjYWY3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVk
LXRvLXdlYmtpdC1sb2NhbGUueGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmct
bWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUueGh0bWwKQEAgLTI0LDMzICsyNCwzMyBAQAogICAgIDxk
aXYgbGFuZz0iXVs7XVtbIiBpZD0icTkiPjwvZGl2PgogPC9kaXY+CiA8c2NyaXB0PgotZnVuY3Rp
b24gZ2V0TGFuZ09mTm9kZShuKSB7Ci0gICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4p
OwotICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS53ZWJraXRMb2NhbGU7Citm
dW5jdGlvbiBsYW5ndWFnZU9mTm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpOworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50KS53ZWJraXRMb2NhbGU7CiB9Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdP
Zk5vZGUoJ3gxJykiLCAiamEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9k
ZSgneDInKSIsICJqYSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCd4
MycpIiwgImphIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ2wxJyki
LCAiemgiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbDInKSIsICJ6
aCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdsMycpIiwgInpoIik7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ20xJykiLCAia28iKTsKLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTInKSIsICJmciIpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdtMycpIiwgImZyIik7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ24xJykiLCAiZnIiKTsKLXNob3VsZEJlRXF1YWxU
b1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbjInKSIsICJmciIpOwotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJnZXRMYW5nT2ZOb2RlKCduMycpIiwgInN2Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmco
ImdldExhbmdPZk5vZGUoJ3AxJykiLCAiamEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0
TGFuZ09mTm9kZSgncDInKSIsICJhdXRvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ3ExJykiLCAiamEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09m
Tm9kZSgncTInKSIsICJhdXRvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5v
ZGUoJ3EzJykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2Rl
KCdxNCcpIiwgImFyIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3E1
JykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxNicp
IiwgIicgICciKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgncTcnKSIs
ICJhdXRvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3E4JykiLCAi
eHl6enkiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgncTknKSIsICIn
XVs7XVtbJyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIs
ICJqYSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDInKSIsICJq
YSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDMnKSIsICJqYSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbDEnKSIsICJ6aCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbDInKSIsICJ6aCIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbDMnKSIsICJ6aCIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTEnKSIsICJrbyIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTInKSIsICJmciIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTMnKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbjEnKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYW5ndWFnZU9mTm9kZSgnbjInKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJsYW5ndWFnZU9mTm9kZSgnbjMnKSIsICJzdiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJs
YW5ndWFnZU9mTm9kZSgncDEnKSIsICJqYSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5n
dWFnZU9mTm9kZSgncDInKSIsICJhdXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1
YWdlT2ZOb2RlKCdxMScpIiwgImphIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdl
T2ZOb2RlKCdxMicpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VP
Zk5vZGUoJ3EzJykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9m
Tm9kZSgncTQnKSIsICJhciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9k
ZSgncTUnKSIsICJhdXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2Rl
KCdxNicpIiwgIicgICciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUo
J3E3JykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgn
cTgnKSIsICJ4eXp6eSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgn
cTknKSIsICInXVs7XVtbJyIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9y
ZWQtaW4taHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmct
aWdub3JlZC1pbi1odG1sLWV4cGVjdGVkLnR4dAppbmRleCAyYzI4NzM3ZmI5NDRiY2ZlYjllZGQ0
NmU2Y2ZjYmVhMTAzZmY1YmFmLi41OWU2YmRkYzJmNmRiNzYzM2Y3YmI4MjNmMDRiOTdjODdjZDIy
NzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmctaWdub3JlZC1p
bi1odG1sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmct
aWdub3JlZC1pbi1odG1sLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIFRoaXMgdGVzdHMg
dGhhdCB0aGUgYXR0cmlidXRlIGluIG5vIG5hbWVzcGFjZSB3aXRoIG5vIHByZWZpeCBhbmQgd2l0
aCB0aGUgbGl0ZXJhbCBsb2NhbG5hbWUgInhtbDpsYW5nIiBpcyBpZ25vcmVkIGluIEhUTUwuIFNl
ZSBidWcgNjc1ODYuCiAKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbTEnKSBpcyAiYXV0byIKLVBBU1Mg
Z2V0TGFuZ09mTm9kZSgnbjEnKSBpcyAia28iCi1QQVNTIGdldExhbmdPZk5vZGUoJ28xJykgaXMg
ImFyIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdvMicpIGlzICJhciIKK1BBU1MgbGFuZ3VhZ2VPZk5v
ZGUoJ20xJykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCduMScpIGlzICJrbyIKK1BB
U1MgbGFuZ3VhZ2VPZk5vZGUoJ28xJykgaXMgImFyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbzIn
KSBpcyAiYXIiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWlu
LWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0
bWwuaHRtbAppbmRleCBlZDhhM2M0NDQ4NzIyMDM3M2Q4MGQ0ZTE5YTc4YjUyMWM1N2VkM2QzLi4z
YzFlOTE1MGU1MTA3NWJhZjNlY2M2N2ZjZDU1MjZmZjU0ZjBlNTJhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC5odG1sCkBAIC03LDE4
ICs3LDE4IEBACiA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0ZSBpbiBubyBuYW1lc3Bh
Y2Ugd2l0aCBubyBwcmVmaXggYW5kIHdpdGggdGhlIGxpdGVyYWwgbG9jYWxuYW1lICJ4bWw6bGFu
ZyIgaXMgaWdub3JlZCBpbiBIVE1MLiBTZWUKIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2Iv
Njc1ODYiPmJ1ZyA2NzU4NjwvYT4uPC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08ZGl2
IHhtbDpsYW5nPSJhciIgaWQ9Im0xIj48L2Rpdj48L2Rpdj4KKzxkaXYgeG1sOmxhbmc9ImFyIiBp
ZD0ibTEiPjwvZGl2PgogPGRpdiBsYW5nPSJrbyI+PGRpdiB4bWw6bGFuZz0iYXIiIGlkPSJuMSI+
PC9kaXY+PC9kaXY+CiA8ZGl2IGxhbmc9ImFyIiBpZD0ibzEiPjxkaXYgeG1sOmxhbmc9IiIgaWQ9
Im8yIj48L2Rpdj48L2Rpdj4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBnZXRMYW5nT2ZOb2RlKG4pIHsK
LSAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobik7Ci0gICAgcmV0dXJuIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGUpLndlYmtpdExvY2FsZTsKK2Z1bmN0aW9uIGxhbmd1YWdlT2ZOb2Rl
KGlkKSB7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7Cisg
ICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdExvY2FsZTsK
IH0KLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTEnKSIsICJhdXRvIik7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ24xJykiLCAia28iKTsKLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbzEnKSIsICJhciIpOwotc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdvMicpIiwgImFyIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdtMScpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24xJykiLCAia28iKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ28xJykiLCAiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygibGFuZ3VhZ2VPZk5vZGUoJ28yJykiLCAiYXIiKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggZjVl
N2Y2MTU2MzJjMzUwOGE3MWM3YjkzY2JlNjMwZTQ2MDA0ZjgwMC4uMGE1OWY1MmI0OTc3NTdmY2Iy
ZTNmZjYwYmU0MjE0N2U4ZjljNjk5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTcx
Nyw2ICs3MTcsOCBAQCBmYXN0L3BhcnNlci9ub3NjcmlwdC13aXRoLWphdmFzY3JpcHQtZW5hYmxl
ZC5odG1sCiBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1sCiBmYXN0L3Jl
cGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0
bWwKIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250
ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWwKIGZhc3Qv
dGV4dC9pbnRlcm5hdGlvbmFsL2xvY2FsZS1zZW5zaXRpdmUtZm9udHMuaHRtbAogZmFzdC90ZXh0
L3plcm8tZm9udC1zaXplLmh0bWwKIGZhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZAppbmRleCAwOWJjN2VhNjJhYzdjYjBjN2QyZDJh
MDhkZDA5ZjI1ODk0OGU3ZmY2Li5hOWJjZTM5ODY1YjQ1MWYzMTNhOTdkNGQ2MzA5MjU5ODY2ZDll
ZGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCkBAIC0yMDgsNiArMjA4LDgg
QEAgZmFzdC9ldmVudHMvd2hlZWxldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2Uu
aHRtbAogCiAjIFdlYktpdDIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjE5Nwor
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5o
dG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFn
cy1hbmQtd2hpdGVzcGFjZS5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vu
c2l0aXZlLWZvbnRzLmh0bWwKIGZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5vbi1j
b250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtbW9k
ZS1wYXJhZ3JhcGgta2V5cy1uYXZpZ2F0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
aW5kZXggZjIzMDM3YjYzNTJiZmU3OTM3MjFiMzBlMmMxYWFlYTA2YmFkMDU4Mi4uOTU1ZTBkMmFi
YTg4ZTU5ZjU4Yzk5ODhkYThjOTNlMzRkZGUzMjU0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKQEAgLTM3Myw2ICszNzMsOCBAQCBmYXN0L211dGF0aW9uCiAKICMgbGF5b3V0VGVzdENvbnRy
b2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXQqRm9udE1hcCIuLi4pIGlzIG5vdAogIyBz
dXBwb3J0ZWQuCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQt
c2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Ut
d2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2xvY2FsZS1zZW5zaXRpdmUtZm9udHMuaHRtbAogCiAjIE5lZWRzIGxheW91dFRlc3RDb250cm9s
bGVyLmVuYWJsZUF1dG9SZXNpemVNb2RlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXgg
NGM2YzM2OWM0MzAyZDZkMmY5ZGYyYjlmNDczYTY0MGVkZWY1YjRiMy4uMWE5MDU1YzY0ZTYxMjAy
NTNjNTRiNTkyMzk1YWMyYzdmZTgyODU2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAg
LTQ5NCw2ICs0OTQsOCBAQCBmYXN0L2NhbnZhcy93ZWJnbC91bmlmb3JtLWxvY2F0aW9uLWxlbmd0
aC1saW1pdHMuaHRtbAogZmFzdC9yZXBhaW50L3RhYmxlLWV4dHJhLWJvdHRvbS1ncm93Lmh0bWwK
IAogIyBEUlQgZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0KkZvbnRN
YXAiLi4uKQorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNl
bGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdp
dGgtc3VidGFncy1hbmQtd2hpdGVzcGFjZS5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9s
b2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0IGVu
YWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAzYWU0NWM0YmZlMmJjZjNjMWZhNDk2
MDE2Y2NiZTA4NTMyZDAwYjFiLi43MDIxZWQ5YjJlZTBmOGY3ZGI5NDNiY2FjNmNjNTNiZjBjNjQx
MGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTcwOSw2ICs3MDksOCBAQCBqYXZhCiAK
ICMgTWlzc2luZyBEUlQgYWJpbGl0eSB0byBvdmVycmlkZSAnc3RhbmRhcmQnIHByZWZlcmVuY2Vz
LgogZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAor
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5o
dG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFn
cy1hbmQtd2hpdGVzcGFjZS5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vu
c2l0aXZlLWZvbnRzLmh0bWwKIGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6
ZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNjYyMmYyZWQxZGU3YjcxNThh
ZmY4OTIyOTllOWE2ODZhZmI1NGQ5Yy4uMmQxMzU1ODVlMDRmZWI3YmFiMTRhOTdjMzQ4OWI2NTkx
NmQ1ZjVjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTE0OTAsNiArMTQ5MCw4IEBA
IGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQtcGFnaW5nLXktaW4tc2Nyb2xsaW5nLWRp
di5odG1sCiBmYXN0L2V2ZW50cy9wbGF0Zm9ybS13aGVlbGV2ZW50LXBhZ2luZy15LWluLXNjcm9s
bGluZy1wYWdlLmh0bWwKIAogIyBEUlQgZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0KkZvbnRNYXAiLi4uKQorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1s
YW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250
ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQtd2hpdGVzcGFjZS5odG1sCiBmYXN0L3RleHQv
aW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIgSW50ZW50
cyBpcyBub3QgeWV0IGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZApp
bmRleCBjNjA3MjY5ZDJhMDI2Y2IzMjRkYTc0N2IwZjY2YzY0NmZlNWMwMDM0Li5lYzIzOGZlZGQ3
NWE4YjU5YjhmNTgzMTE1NGU1ZmFmNjA0YjAxMzAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1NraXBwZWQKQEAgLTIwMjUsNiArMjAyNSw4IEBAIGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdo
ZWVsZXZlbnQtcGFnaW5nLXktaW4tc2Nyb2xsaW5nLWRpdi5odG1sCiBmYXN0L2V2ZW50cy9wbGF0
Zm9ybS13aGVlbGV2ZW50LXBhZ2luZy15LWluLXNjcm9sbGluZy1wYWdlLmh0bWwKIAogIyBEUlQg
ZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0KkZvbnRNYXAiLi4uKQor
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5o
dG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFn
cy1hbmQtd2hpdGVzcGFjZS5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vu
c2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0IGVuYWJsZWQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4IDVkZjk4OWI2NGEwNzVkMWNkMzE5ZWY1ZjZmOWVm
YzE3NzM1OTc3NzAuLmE3MDVjZGE5ZTZiNDk3OWJiYTU5ZTY2MjlkODVmMGExMDdmN2I0NGUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBAIC0zMDksNiArMzA5LDggQEAgZmFzdC9wYXJzZXIv
bm9zY3JpcHQtd2l0aC1qYXZhc2NyaXB0LWRpc2FibGVkLmh0bWwKIGZhc3QvcGFyc2VyL25vc2Ny
aXB0LXdpdGgtamF2YXNjcmlwdC1lbmFibGVkLmh0bWwKIGZhc3QvcmVwYWludC9uby1jYXJldC1y
ZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbAogZmFzdC90ZXh0L3pl
cm8tZm9udC1zaXplLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3Vh
Z2UtZm9udC1zZWxlY3Rpb24uaHRtbAorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1s
YW5ndWFnZS13aXRoLXN1YnRhZ3MtYW5kLXdoaXRlc3BhY2UuaHRtbAogZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvbG9jYWxlLXNlbnNpdGl2ZS1mb250cy5odG1sCiBodHRwL3Rlc3RzL2FwcGNhY2hl
L2Rpc2FibGVkLmh0bWwKIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXNoYWRlci1jYWNoZS5o
dG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124065</attachid>
            <date>2012-01-25 22:27:30 -0800</date>
            <delta_ts>2012-01-26 02:48:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76701-20120126152728.patch</filename>
            <type>text/plain</type>
            <size>36240</size>
            <attacher name="Matt Falkenhagen">falken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGViOWFjZThjYzM3Yzdm
Yzc4NzJkY2IzYWZjYWM2MGRlNDY4NGFjZC4uMmRmYzcyZmQ3NWI4ZjFhZjY4MzI4MWM2N2JkNmUx
ZDBjMjRiYTdkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTI1ICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSB0byBzZXQgZG9jdW1lbnQgbG9jYWxlIGFuZCBmb250CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvIGZhciwgb25seSBjb250ZW50LWxh
bmd1YWdlIHNldCB0aHJvdWdoIGh0dHAtZXF1aXYgaXMgdXNlZDsgdGhlIEhUVFAgQ29udGVudC1M
YW5ndWFnZQorICAgICAgICBoZWFkZXIgaXMgbm90IHlldCBzdXBwb3J0ZWQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0eS5odG1s
CisgICAgICAgICAgICAgICBmYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Vi
a2l0LWxvY2FsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvY29udGVudC1sYW5ndWFn
ZS1tdWx0aXBsZS10YWdzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC9jb250ZW50LWxh
bmd1YWdlLXdoaXRlc3BhY2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2NvbnRlbnQt
bGFuZ3VhZ2Utd2l0aC1tdWx0aXBsZS1sYW5ndWFnZXMtaXMtaWdub3JlZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2Vs
ZWN0aW9uLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3MtYW5k
LXdoaXRlc3BhY2UtZXhwZWN0ZWQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3MtYW5kLXdoaXRlc3BhY2UuaHRt
bAorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JEb2N1bWVudCk6IFVzZSBjb250ZW50IGxhbmd1
YWdlIHdoZW4gc2VsZWN0aW5nIGluaXRpYWwgZm9udC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldENvbnRlbnRMYW5ndWFnZSk6IFJl
Y2FsYyBzdHlsZSBzbyBsYW5ndWFnZSBpcyB0YWtlbiBpbnRvIGFjY291bnQuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KTog
UGFyc2UgY29udGVudC1sYW5ndWFnZSBhcyBwZXIgSFRNTDUgc3BlYy4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpwYXJzZUh0dHBFcXVpdkNvbnRlbnRMYW5ndWFnZSk6IAorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorCiAyMDEyLTAxLTI1ICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhcHBseSBEYW5pZWwgQmF0ZXMn
cyBidWlsZCBmaXggZnJvbSByMTA1ODQ3IGFmdGVyIHRoZSBleGFjdCBzYW1lIGlzc3VlIHdhcyBy
ZWludHJvZHVjZWQgaW4gcjEwNTkzMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCBmMTQzNDIzZGM5MTI3ZGJjNWUzNzEyYThiY2MzZTkxZDEyZjJkOTcxLi43Yjk1
ZjEwYjVjNmZjMTYwMWNiMzUyYjZlZWUxMDZmYWUzMmYwMWIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMjM0LDYgKzEyMzQsOCBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgQwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJhbWUgPyBmcmFtZS0+cGFn
ZVpvb21GYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFBhZ2VTY2FsZVRyYW5z
Zm9ybShmcmFtZSA/IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkgOiAxKTsKICAgICBkb2N1bWVu
dFN0eWxlLT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1vZGUoKSA/IFJFQURfV1JJ
VEUgOiBSRUFEX09OTFkpOworICAgIGlmICghZG9jdW1lbnQtPmNvbnRlbnRMYW5ndWFnZSgpLmlz
RW1wdHkoKSkKKyAgICAgICAgZG9jdW1lbnRTdHlsZS0+c2V0TG9jYWxlKGRvY3VtZW50LT5jb250
ZW50TGFuZ3VhZ2UoKSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpOwogICAgIFJlbmRlck9iamVjdCogZG9jRWxlbWVudFJlbmRlcmVyID0g
ZG9jRWxlbWVudCA/IGRvY0VsZW1lbnQtPnJlbmRlcmVyKCkgOiAwOwpAQCAtMTI2NCwxMiArMTI2
NiwxMyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZv
ckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQwogCiAgICAgRm9udERlc2NyaXB0aW9uIGZv
bnREZXNjcmlwdGlvbjsKICAgICBmb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQoZG9j
dW1lbnQtPnByaW50aW5nKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTY3JpcHQobG9jYWxl
VG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihkb2N1bWVudFN0eWxlLT5sb2NhbGUoKSkpOwog
ICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC0+c2V0dGluZ3MoKSkgewogICAg
ICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRl
cmluZ01vZGUoKSk7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc3RkZm9udCA9IHNldHRp
bmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAgICAgICAgaWYgKCFzdGRmb250LmlzRW1wdHko
KSkgeworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udCA9IHNldHRpbmdz
LT5zdGFuZGFyZEZvbnRGYW1pbHkoZm9udERlc2NyaXB0aW9uLnNjcmlwdCgpKTsKKyAgICAgICAg
aWYgKCFzdGFuZGFyZEZvbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRp
b24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5KTsKLSAg
ICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWlseShzdGRmb250
KTsKKyAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNldEZhbWlseShz
dGFuZGFyZEZvbnQpOwogICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCku
YXBwZW5kRmFtaWx5KDApOwogICAgICAgICB9CiAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRL
ZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFsbCArIDEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggM2FiYjNhZGE5YmNiNTFmMDFmMDI0NzVhODE5MTY3M2JkZWE4
YTFhMS4uYTczYjllODQxNjRmN2IxYTUxYzgzOWQ3OTRmYTNhOTJlYmVlNTJiZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0xMDkzLDYgKzEwOTMsMTIgQEAgdm9pZCBEb2N1bWVudDo6c2V0
Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAgZGVjb2RlcigpLT5zZXRFbmNvZGlu
ZyhjaGFyc2V0LCBUZXh0UmVzb3VyY2VEZWNvZGVyOjpVc2VyQ2hvc2VuRW5jb2RpbmcpOwogfQog
Cit2b2lkIERvY3VtZW50OjpzZXRDb250ZW50TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSkKK3sKKyAgICBtX2NvbnRlbnRMYW5ndWFnZSA9IGxhbmd1YWdlOworICAgIHJlY2FsY1N0eWxl
KEZvcmNlKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0WE1MVmVyc2lvbihjb25zdCBTdHJpbmcm
IHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaW1wbGVtZW50YXRpb24o
KS0+aGFzRmVhdHVyZSgiWE1MIiwgU3RyaW5nKCkpKSB7CkBAIC0yNjk1LDcgKzI3MDEsNyBAQCB2
b2lkIERvY3VtZW50Ojpwcm9jZXNzSHR0cEVxdWl2KGNvbnN0IFN0cmluZyYgZXF1aXYsIGNvbnN0
IFN0cmluZyYgY29udGVudCkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+
KHRoaXMpLT5zZXRDb29raWUoY29udGVudCwgZWMpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShlcXVpdiwgImNvbnRlbnQtbGFuZ3VhZ2UiKSkKLSAgICAgICAg
c2V0Q29udGVudExhbmd1YWdlKGNvbnRlbnQpOworICAgICAgICBwYXJzZUh0dHBFcXVpdkNvbnRl
bnRMYW5ndWFnZShjb250ZW50KTsKICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShlcXVp
diwgIngtZG5zLXByZWZldGNoLWNvbnRyb2wiKSkKICAgICAgICAgcGFyc2VETlNQcmVmZXRjaENv
bnRyb2xIZWFkZXIoY29udGVudCk7CiAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZXF1
aXYsICJ4LWZyYW1lLW9wdGlvbnMiKSkgewpAQCAtNDg0Nyw2ICs0ODUzLDIzIEBAIHZvaWQgRG9j
dW1lbnQ6OnBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGNvbnN0IFN0cmluZyYgZG5zUHJl
ZmV0Y2hDb250cm9sKQogICAgIG1faGF2ZUV4cGxpY2l0bHlEaXNhYmxlZEROU1ByZWZldGNoID0g
dHJ1ZTsKIH0KIAordm9pZCBEb2N1bWVudDo6cGFyc2VIdHRwRXF1aXZDb250ZW50TGFuZ3VhZ2Uo
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKK3sKKyAgICAvLyBQZXIgSFRNTDUgc3BlY2lmaWNhdGlv
biwgY29udGVudC1sYW5ndWFnZSBzaG91bGQgYmUgcHJvY2Vzc2VkIG9ubHkgb25jZSBhbmQgc2tp
cHBlZCBpZiBpdCBjb250YWlucyBhIGNvbW1hLgorICAgIGlmICghY29udGVudExhbmd1YWdlKCku
aXNFbXB0eSgpIHx8IGxhbmd1YWdlLmNvbnRhaW5zKCcsJykpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNpemVfdCBzdGFydFBvcyA9IDA7CisgICAgd2hpbGUgKHN0YXJ0UG9zIDwgbGFuZ3VhZ2Uu
bGVuZ3RoKCkgJiYgaXNTcGFjZU9yTmV3bGluZShsYW5ndWFnZS5jaGFyYWN0ZXJzKClbc3RhcnRQ
b3NdKSkKKyAgICAgICAgKytzdGFydFBvczsKKyAgICBzaXplX3QgZW5kUG9zID0gc3RhcnRQb3M7
CisgICAgd2hpbGUgKGVuZFBvcyA8IGxhbmd1YWdlLmxlbmd0aCgpICYmICFpc1NwYWNlT3JOZXds
aW5lKGxhbmd1YWdlLmNoYXJhY3RlcnMoKVtlbmRQb3NdKSkKKyAgICAgICAgKytlbmRQb3M7CisK
KyAgICBpZiAoc3RhcnRQb3MgPCBlbmRQb3MpCisgICAgICAgIHNldENvbnRlbnRMYW5ndWFnZShs
YW5ndWFnZS5zdWJzdHJpbmcoc3RhcnRQb3MsIGVuZFBvcyAtIHN0YXJ0UG9zKSk7Cit9CisKIHZv
aWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKIHsKICAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IGZkYjM5ODg3NWY1MTRkZmZjNGM3MDM5NzIxYjFhNzU3NDdj
YmI5N2IuLmY4ZjYxZDcxNmI3NWMwYmY4OTJhMWFmZWU0OWQ0Y2U3ZWZhMDY4MmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBzdWdn
ZXN0ZWRNSU1FVHlwZSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIGNvbnRlbnRMYW5ndWFnZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGVudExhbmd1YWdlOyB9Ci0gICAgdm9pZCBzZXRDb250ZW50TGFu
Z3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fY29udGVudExhbmd1YWdlID0gbGFuZzsgfQor
ICAgIHZvaWQgc2V0Q29udGVudExhbmd1YWdlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgU3RyaW5n
IHhtbEVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV94bWxFbmNvZGluZzsgfQogICAgIFN0cmlu
ZyB4bWxWZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV94bWxWZXJzaW9uOyB9CkBAIC05NDYsNiAr
OTQ2LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNETlNQcmVmZXRjaEVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzRE5TUHJlZmV0Y2hFbmFibGVkOyB9CiAgICAgdm9pZCBwYXJzZUROU1ByZWZl
dGNoQ29udHJvbEhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAorICAgIHZvaWQgcGFyc2VIdHRwRXF1
aXZDb250ZW50TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJik7CisKICAgICB2aXJ0dWFsIHZvaWQgcG9z
dFRhc2soUGFzc093blB0cjxUYXNrPik7IC8vIEV4ZWN1dGVzIHRoZSB0YXNrIG9uIGNvbnRleHQn
cyB0aHJlYWQgYXN5bmNocm9ub3VzbHkuCiAKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxiYWNrcygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM4ODdhMWI0MjI4ZWEw
MTM2ZmVlNjg3YzY2MzQyNDU0ZjBkMjI0MmUuLmQ3N2EyNWQyYjBkNjFiYWQwZWVjNmJkNWRhMjkx
NjBmMTE3NGNmMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMi0wMS0yNSAgTWF0dCBGYWxr
ZW5oYWdlbiAgPGZhbGtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXNlIGNvbnRlbnQtbGFu
Z3VhZ2UgdG8gc2V0IGRvY3VtZW50IGxvY2FsZSBhbmQgZm9udAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgdGhhdCBjb250ZW50LWxhbmd1
YWdlIHNldHMgZG9jdW1lbnQgbG9jYWxlIGFuZCBpcyB1c2VkIGluIGZvbnQgc2VsZWN0aW9uLgor
CisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3Vh
Z2UtY2FzZS1pbnNlbnNpdGl2aXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9j
b250ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtp
dC1sb2NhbGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3Vh
Z2UtbXVsdGlwbGUtdGFncy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4
dC9jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLXRhZ3MuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2hpdGVzcGFjZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLXdoaXRlc3BhY2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1tdWx0aXBs
ZS1sYW5ndWFnZXMtaXMtaWdub3JlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLXdpdGgtbXVsdGlwbGUtbGFuZ3VhZ2VzLWlzLWlnbm9y
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVu
dC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQt
bGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0
aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4
dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS54aHRtbDogRml4IHNvbWUgc3R5
bGUgaXNzdWVzLgorICAgICAgICAqIGZhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0
bWwuaHRtbDogRml4IHNvbWUgc3R5bGUgaXNzdWVzLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9T
a2lwcGVkOiBBZGQgc2tpcCBmb3Igbm9uLUNocm9taXVtIHBvcnRzIGZvciB0ZXN0cyB1c2luZyBv
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdCpGb250TWFwIi4uLikKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGstd2syL1NraXBwZWQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVk
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL1Nr
aXBwZWQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBEaXR0by4KKwogMjAxMi0wMS0yNSAg
TGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZC4gTWFya2luZyBzdmcvY3VzdG9tL29iamVjdC1zaXppbmctZXhwbGljaXQtd2lkdGgueGh0bWwg
YW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1j
YXNlLWluc2Vuc2l0aXZpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Nv
bnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZjBiNGRiNjU0OWQwYTI3YjdlN2FlYWYzNGYzOGI0MmJkMjI5MDRjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNp
dGl2aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgZm9yIGJ1ZyA3NjcwMTog
bWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2NhbGUuIFRoaXMgcGFydGljdWxhciB0
ZXN0IHRlc3RzIHRoYXQgdGhlIG1hdGNoaW5nIG9mIHRoZSBodHRwLWVxdWl2IGF0dHJpYnV0ZSB0
byB0aGUgY29udGVudC1sYW5ndWFnZSBzdGF0ZSBpcyBjYXNlIGluc2Vuc2l0aXZlLgorCitQQVNT
IGxhbmd1YWdlT2ZOb2RlKCd4MScpIGlzICJqYS1KUCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY29udGVudC1sYW5ndWFnZS1jYXNlLWluc2Vuc2l0aXZpdHkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0eS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmNWU4NzJmNDIxOGRjY2RlZjM5OTEzNDQ4ZDM4MDRiNDdhNjdiYzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1jYXNl
LWluc2Vuc2l0aXZpdHkuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEg
aHR0cC1lcXVpdj0iY09OdEVOVC1MQW5ndUFHRSIgY29udGVudD0iamEtSlAiLz4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3NjcwMTwvYT46CittYXAgY29udGVudC1s
YW5ndWFnZSB0byAtd2Via2l0LWxvY2FsZS4gVGhpcyBwYXJ0aWN1bGFyIHRlc3QgdGVzdHMgdGhh
dCB0aGUKK21hdGNoaW5nIG9mIHRoZSBodHRwLWVxdWl2IGF0dHJpYnV0ZSB0byB0aGUgY29udGVu
dC1sYW5ndWFnZSBzdGF0ZSBpcyBjYXNlCitpbnNlbnNpdGl2ZS4KKzwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieDEiLz4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsYW5ndWFn
ZU9mTm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpOworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS53ZWJraXRM
b2NhbGU7Cit9CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCd4MScpIiwg
ImphLUpQIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVu
dC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M3OTA3ODA4NDAyMDA1OGMyNDQxNzZmYzllNDZkNDc4
ZjhhOGExYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50
LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK1Rlc3QgZm9yIGJ1ZyA3NjcwMTogbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtp
dC1sb2NhbGUuCisKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3gxJykgaXMgInpoLUNOIgorUEFTUyBs
YW5ndWFnZU9mTm9kZSgnbTEnKSBpcyAiYXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmI2MWVhMTA3NzkwMzBkNGUzZWRlNDU2MTBlZTEwYzllNGY1NDkxYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdl
LW1hcHBlZC10by13ZWJraXQtbG9jYWxlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVh
ZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9InpoLUNOIj4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3NjcwMTwvYT46CittYXAg
Y29udGVudC1sYW5ndWFnZSB0byAtd2Via2l0LWxvY2FsZS48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxkaXYgaWQ9IngxIi8+Cis8ZGl2IGxhbmc9ImFyIiBpZD0ibTEiLz4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBsYW5ndWFnZU9mTm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50KS53ZWJraXRMb2NhbGU7Cit9CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxh
bmd1YWdlT2ZOb2RlKCd4MScpIiwgInpoLUNOIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxh
bmd1YWdlT2ZOb2RlKCdtMScpIiwgImFyIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tdWx0aXBsZS10YWdzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW11bHRpcGxlLXRhZ3MtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjYjExZTY4NjkzOWY1ZjJhNDRmNzRjNWQ4MzUwMzM2MjZk
NTNiNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1s
YW5ndWFnZS1tdWx0aXBsZS10YWdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3Qg
Zm9yIGJ1ZyA3NjcwMTogbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2NhbGUuIElu
IHRoZSBjYXNlIG9mIG11bHRpcGxlIGNvbnRlbnQtbGFuZ3VhZ2UgTUVUQSB0YWdzLCBvbmNlIG9u
ZSBpcyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkLCB0aGUgb3RoZXJzIHNob3VsZCBiZSBpZ25vcmVk
LgorCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCd4MScpIGlzICJ6aC1DTiIKK1BBU1MgbGFuZ3VhZ2VP
Zk5vZGUoJ20xJykgaXMgImFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50
LWxhbmd1YWdlLW11bHRpcGxlLXRhZ3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250
ZW50LWxhbmd1YWdlLW11bHRpcGxlLXRhZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDUwYTE3MDE0MzJj
NTYzYjgwMjI4MmE5YjdmZWUxYjZkYTI3YTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbXVsdGlwbGUtdGFncy5odG1sCkBAIC0wLDAg
KzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LWxhbmd1YWdl
IiBjb250ZW50PSJ6aC1DTiI+Cis8IS0tIEFjY29yZGluZyB0byB0aGUgSFRNTDUgc3BlYywgb25s
eSB0aGUgZmlyc3QgY29udGVudC1sYW5ndWFnZSBzaG91bGQgYmUgcHJvY2Vzc2VkLiAtLT4KKzxt
ZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9ImVuLVVTIj4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3NjcwMTwvYT46CittYXAgY29udGVu
dC1sYW5ndWFnZSB0byAtd2Via2l0LWxvY2FsZS4gSW4gdGhlIGNhc2Ugb2YgbXVsdGlwbGUKK2Nv
bnRlbnQtbGFuZ3VhZ2UgTUVUQSB0YWdzLCBvbmNlIG9uZSBpcyBzdWNjZXNzZnVsbHkgcHJvY2Vz
c2VkLCB0aGUgb3RoZXJzCitzaG91bGQgYmUgaWdub3JlZC48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxkaXYgaWQ9IngxIi8+Cis8ZGl2IGxhbmc9ImFyIiBpZD0ibTEiLz4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBsYW5ndWFnZU9mTm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShlbGVtZW50KS53ZWJraXRMb2NhbGU7Cit9CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxh
bmd1YWdlT2ZOb2RlKCd4MScpIiwgInpoLUNOIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxh
bmd1YWdlT2ZOb2RlKCdtMScpIiwgImFyIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLXdoaXRlc3BhY2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmNmI3NjJkNWZiNjRkYmIxYjNjZDdlZTMwYTg1ZjNkMDkwMWQyYjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFn
ZS13aGl0ZXNwYWNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1Rlc3QgZm9yIGJ1ZyA3
NjcwMTogbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2NhbGUuIFRoaXMgcGFydGlj
dWxhciB0ZXN0IHRlc3RzIHRoYXQgd2hpdGVzcGFjZSBpbiBjb250ZW50LWxhbmd1YWdlIGlzIGhh
bmRsZWQgYXMgcGVyIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLgorCitQQVNTIGxhbmd1YWdlT2ZO
b2RlKCd4MScpIGlzICJ6aF90d19mb29iYXIiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdtMScpIGlz
ICJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13aGl0
ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13aGl0
ZXNwYWNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJjYjI2NjU4ZDRjNDg5M2MxZjllNDI0NTE5MWI4YmU5
MTNkOGQ1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50
LWxhbmd1YWdlLXdoaXRlc3BhY2UuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgor
PCEtLSBBY2NvcmRpbmcgdG8gdGhlIEhUTUwgNSBzcGVjLCBlbXB0eSBjb250ZW50LWxhbmd1YWdl
IHNob3VsZCBiZSBpZ25vcmVkLiAtLT4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3Vh
Z2UiPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC1sYW5ndWFnZSIgY29udGVudD0iIj4KKzwh
LS0gVGhlIHNwZWMgaXNuJ3QgZXhwbGljaXQsIGJ1dCB3aGl0ZXNwYWNlIG9ubHkgY29udGVudCBw
cm9iYWJseSBzaG91bGQgYWxzbyBiZSBpZ25vcmVkLiAtLT4KKzxtZXRhIGh0dHAtZXF1aXY9ImNv
bnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9IiAgICI+CisKKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRl
bnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9IiAgemhfdHdfZm9vYmFyIAorICAgIAkgCisgICBlbl91c191
c191c18gICAiLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0IGZvciA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEiPmJ1ZyA3Njcw
MTwvYT46CittYXAgY29udGVudC1sYW5ndWFnZSB0byAtd2Via2l0LWxvY2FsZS4gVGhpcyBwYXJ0
aWN1bGFyIHRlc3QgdGVzdHMgdGhhdAord2hpdGVzcGFjZSBpbiBjb250ZW50LWxhbmd1YWdlIGlz
IGhhbmRsZWQgYXMgcGVyIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLgorPC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4MSIvPgorPGRpdiBsYW5nPSJhciIgaWQ9Im0xIi8+
Cis8c2NyaXB0PgorZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworfQorc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJ6aF90d19mb29iYXIiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20xJykiLCAiYXIiKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLXdpdGgtbXVsdGlwbGUt
bGFuZ3VhZ2VzLWlzLWlnbm9yZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1tdWx0aXBsZS1sYW5ndWFnZXMtaXMtaWdub3JlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc5YjY1YmQyNjEyMTYwNzg0ZDBlNTk4YjQ3MzZkOTQ0ZTQy
MmIxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxh
bmd1YWdlLXdpdGgtbXVsdGlwbGUtbGFuZ3VhZ2VzLWlzLWlnbm9yZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgYnVnIDc2NzAxOiBtYXAgY29udGVudC1sYW5ndWFnZSB0
byAtd2Via2l0LWxvY2FsZS4gVGhpcyB0ZXN0cyB0aGF0IGEgY29udGVudC1sYW5ndWFnZSB3aXRo
IG11bHRpcGxlIGxhbmd1YWdlcyBpcyBpZ25vcmVkLCBwZXIgdGhlIEhUTUw1IHNwZWNpZmljYXRp
b24uCisKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3gxJykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdl
T2ZOb2RlKCdtMScpIGlzICJhciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVu
dC1sYW5ndWFnZS13aXRoLW11bHRpcGxlLWxhbmd1YWdlcy1pcy1pZ25vcmVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS13aXRoLW11bHRpcGxlLWxhbmd1YWdl
cy1pcy1pZ25vcmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM5OWQ2Y2JhZmQwMjg1MDYzZmY1MzVhN2I3
NDQxMTc4Y2I1OTdlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9j
b250ZW50LWxhbmd1YWdlLXdpdGgtbXVsdGlwbGUtbGFuZ3VhZ2VzLWlzLWlnbm9yZWQuaHRtbApA
QCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC1s
YW5ndWFnZSIgY29udGVudD0iemgsIGVuLVVTIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzY3MDEiPmJ1ZyA3NjcwMTwvYT46CittYXAgY29udGVudC1sYW5ndWFnZSB0byAtd2Via2l0
LWxvY2FsZS4gVGhpcyB0ZXN0cyB0aGF0IGEgY29udGVudC1sYW5ndWFnZSB3aXRoCittdWx0aXBs
ZSBsYW5ndWFnZXMgaXMgaWdub3JlZCwgcGVyIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0ieDEiLz4KKzxkaXYgbGFuZz0iYXIi
IGlkPSJtMSIvPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxhbmd1YWdlT2ZOb2RlKGlkKSB7CisgICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0dXJuIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdExvY2FsZTsKK30KK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3gxJykiLCAiYXV0byIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTEnKSIsICJhciIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFn
ZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmNmRiNzVjNGZmOTA1NzNlYjAyMzUyMDg0NjVmN2UzNmIxNDNmNDgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250
ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29u
dGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6
ICdBaGVtJyI+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3Vh
Z2UtZm9udC1zZWxlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDBm
MTQzNDAwMWEwMmRhMmFiMWRkNmU4ZjdjYmMyODYyODY0MjBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250
LXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9Inpo
LXR3Ij4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0U3RhbmRhcmRGb250
TWFwIiwgWyAiSGFudCIsICJBaGVtIiBdKTsKKzwvc2NyaXB0PgorPHRpdGxlPlRlc3QgZm9udCBz
ZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzwhLS0gVGhpcyB0ZXN0cyBmb250IHNlbGVjdGlvbiBiYXNlZCBvbiBjb250ZW50LWxhbmd1
YWdlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDE+LiBUaGUg
dGV4dCBzaG91bGQgYmUgaW4gQWhlbSBmb250LiAtLT4KK1RoaXMgaXMgaW4gQWhlbSBmb250Lgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3MtYW5kLXdoaXRlc3BhY2UtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQt
bGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGY2ZGI3NWM0ZmY5MDU3M2ViMDIzNTIwODQ2NWY3ZTM2YjE0M2Y0OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFu
Z3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCAr
MSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQg
b24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iZm9udC1m
YW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQt
bGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQt
d2hpdGVzcGFjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMWIwNTg0M2VmYmIzMWMxZjQ4OTk3NDAwYTk3
MzQ0YWM3ZTNmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQtd2hpdGVzcGFjZS5o
dG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9IiAgemhfdHdfZm9vYmFy
IAorICAgIAkgCisgICBlbl91c191c191c18gICAiPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCJXZWJLaXRTdGFuZGFyZEZvbnRNYXAiLCBbICJIYW50IiwgIkFoZW0iIF0pOworPC9z
Y3JpcHQ+Cis8dGl0bGU+VGVzdCBmb250IHNlbGVjdGlvbiBiYXNlZCBvbiBjb250ZW50LWxhbmd1
YWdlPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPCEtLSBUaGlzIHRlc3RzIGZvbnQgc2VsZWN0
aW9uIGJhc2VkIG9uIGNvbnRlbnQtbGFuZ3VhZ2UKKzxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzY3MDE+LCB3aGVuIGNvbnRlbnQtbGFuZ3VhZ2UgaGFzCit3aGl0ZXNw
YWNlIGFuZCBzdWJ0YWdzLiBUaGUgbGFuZ3VhZ2Ugc2hvdWxkIGJlIHBhcnNlZCBhcyAiemhfdHdf
Zm9vYmFyIiwgd2hpY2gKK21hdGNoZXMgSGFuIFRyYWRpdGlvbmFsIHNjcmlwdCwgc28gdGhlIHRl
eHQgc2hvdWxkIGJlIGluIEFoZW0gZm9udC4gLS0+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1h
cHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dAppbmRleCBmYTkxYjE5
NjQxOGQ0Y2EzODFjMmI5NjYzNDdhNWRlZTQ2MzU2ZmJmLi45Y2NmYzNjNTI2MTY1ZjY1YjQ4NTQx
YWU5NmVmNWU4M2M0ZWY2NDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFu
Zy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0CkBAIC0x
LDI4ICsxLDI4IEBACiBUaGlzIGlzIGEgdGVzdCBmb3IgYnVnIDY3NTg2LiBIVE1MIGF0dHJpYnV0
ZXMgbGFuZyBhbmQgeG1sOmxhbmcgYXJlIG1hcHBlZCB0byAnLXdlYmtpdC1sb2NhbGUnIHRvIHVz
ZSB0aGVpciB2YWx1ZSBpbiBmb250IGZhbGxiYWNrLgogCi1QQVNTIGdldExhbmdPZk5vZGUoJ3gx
JykgaXMgImphIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCd4MicpIGlzICJqYSIKLVBBU1MgZ2V0TGFu
Z09mTm9kZSgneDMnKSBpcyAiamEiCi1QQVNTIGdldExhbmdPZk5vZGUoJ2wxJykgaXMgInpoIgot
UEFTUyBnZXRMYW5nT2ZOb2RlKCdsMicpIGlzICJ6aCIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbDMn
KSBpcyAiemgiCi1QQVNTIGdldExhbmdPZk5vZGUoJ20xJykgaXMgImtvIgotUEFTUyBnZXRMYW5n
T2ZOb2RlKCdtMicpIGlzICJmciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbTMnKSBpcyAiZnIiCi1Q
QVNTIGdldExhbmdPZk5vZGUoJ24xJykgaXMgImZyIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCduMicp
IGlzICJmciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbjMnKSBpcyAic3YiCi1QQVNTIGdldExhbmdP
Zk5vZGUoJ3AxJykgaXMgImphIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdwMicpIGlzICJhdXRvIgot
UEFTUyBnZXRMYW5nT2ZOb2RlKCdxMScpIGlzICJqYSIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgncTIn
KSBpcyAiYXV0byIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgncTMnKSBpcyAiYXV0byIKLVBBU1MgZ2V0
TGFuZ09mTm9kZSgncTQnKSBpcyAiYXIiCi1QQVNTIGdldExhbmdPZk5vZGUoJ3E1JykgaXMgImF1
dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ3E2JykgaXMgIicgICciCi1QQVNTIGdldExhbmdPZk5v
ZGUoJ3E3JykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ3E4JykgaXMgInh5enp5Igot
UEFTUyBnZXRMYW5nT2ZOb2RlKCdxOScpIGlzICInXVs7XVtbJyIKK1BBU1MgbGFuZ3VhZ2VPZk5v
ZGUoJ3gxJykgaXMgImphIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgneDInKSBpcyAiamEiCitQQVNT
IGxhbmd1YWdlT2ZOb2RlKCd4MycpIGlzICJqYSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ2wxJykg
aXMgInpoIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbDInKSBpcyAiemgiCitQQVNTIGxhbmd1YWdl
T2ZOb2RlKCdsMycpIGlzICJ6aCIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ20xJykgaXMgImtvIgor
UEFTUyBsYW5ndWFnZU9mTm9kZSgnbTInKSBpcyAiZnIiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdt
MycpIGlzICJmciIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ24xJykgaXMgImZyIgorUEFTUyBsYW5n
dWFnZU9mTm9kZSgnbjInKSBpcyAiZnIiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCduMycpIGlzICJz
diIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3AxJykgaXMgImphIgorUEFTUyBsYW5ndWFnZU9mTm9k
ZSgncDInKSBpcyAiYXV0byIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3ExJykgaXMgImphIgorUEFT
UyBsYW5ndWFnZU9mTm9kZSgncTInKSBpcyAiYXV0byIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3Ez
JykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxNCcpIGlzICJhciIKK1BBU1MgbGFu
Z3VhZ2VPZk5vZGUoJ3E1JykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxNicpIGlz
ICInICAnIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgncTcnKSBpcyAiYXV0byIKK1BBU1MgbGFuZ3Vh
Z2VPZk5vZGUoJ3E4JykgaXMgInh5enp5IgorUEFTUyBsYW5ndWFnZU9mTm9kZSgncTknKSBpcyAi
J11bO11bWyciCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJr
aXQtbG9jYWxlLnhodG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdl
YmtpdC1sb2NhbGUueGh0bWwKaW5kZXggNTllMWY2OTk4ODlmYTI3OTU4NjRjODJjZTQwNzYxMjMx
NmU1YjgxYS4uMzRlZTc1YWUxZjg4MDY3ZDg0M2Q2Mzk0Yzc3MjVjZWQ3MTRjYWY3ZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUu
eGh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1s
b2NhbGUueGh0bWwKQEAgLTI0LDMzICsyNCwzMyBAQAogICAgIDxkaXYgbGFuZz0iXVs7XVtbIiBp
ZD0icTkiPjwvZGl2PgogPC9kaXY+CiA8c2NyaXB0PgotZnVuY3Rpb24gZ2V0TGFuZ09mTm9kZShu
KSB7Ci0gICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pOwotICAgIHJldHVybiB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS53ZWJraXRMb2NhbGU7CitmdW5jdGlvbiBsYW5ndWFnZU9m
Tm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
OworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS53ZWJraXRMb2Nh
bGU7CiB9Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3gxJykiLCAiamEi
KTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgneDInKSIsICJqYSIpOwot
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCd4MycpIiwgImphIik7Ci1zaG91
bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ2wxJykiLCAiemgiKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbDInKSIsICJ6aCIpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdsMycpIiwgInpoIik7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldExhbmdPZk5vZGUoJ20xJykiLCAia28iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0TGFuZ09mTm9kZSgnbTInKSIsICJmciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJn
ZXRMYW5nT2ZOb2RlKCdtMycpIiwgImZyIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ24xJykiLCAiZnIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09m
Tm9kZSgnbjInKSIsICJmciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2Rl
KCduMycpIiwgInN2Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3Ax
JykiLCAiamEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgncDInKSIs
ICJhdXRvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3ExJykiLCAi
amEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgncTInKSIsICJhdXRv
Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3EzJykiLCAiYXV0byIp
Owotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxNCcpIiwgImFyIik7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3E1JykiLCAiYXV0byIpOwotc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxNicpIiwgIicgICciKTsKLXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgncTcnKSIsICJhdXRvIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3E4JykiLCAieHl6enkiKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgncTknKSIsICInXVs7XVtbJyIpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJqYSIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDInKSIsICJqYSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDMnKSIsICJqYSIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbDEnKSIsICJ6aCIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYW5ndWFnZU9mTm9kZSgnbDInKSIsICJ6aCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJsYW5ndWFnZU9mTm9kZSgnbDMnKSIsICJ6aCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJs
YW5ndWFnZU9mTm9kZSgnbTEnKSIsICJrbyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5n
dWFnZU9mTm9kZSgnbTInKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFn
ZU9mTm9kZSgnbTMnKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9m
Tm9kZSgnbjEnKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9k
ZSgnbjInKSIsICJmciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgn
bjMnKSIsICJzdiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncDEn
KSIsICJqYSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncDInKSIs
ICJhdXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdxMScpIiwg
ImphIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdxMicpIiwgImF1
dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3EzJykiLCAiYXV0
byIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTQnKSIsICJhciIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTUnKSIsICJhdXRvIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdxNicpIiwgIicgICciKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3E3JykiLCAiYXV0byIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTgnKSIsICJ4eXp6eSIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTknKSIsICInXVs7XVtbJyIp
OwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmctaWdub3JlZC1pbi1odG1sLWV4
cGVjdGVkLnR4dAppbmRleCAyYzI4NzM3ZmI5NDRiY2ZlYjllZGQ0NmU2Y2ZjYmVhMTAzZmY1YmFm
Li41OWU2YmRkYzJmNmRiNzYzM2Y3YmI4MjNmMDRiOTdjODdjZDIyNzZjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmctaWdub3JlZC1pbi1odG1sLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1sLWxhbmctaWdub3JlZC1pbi1odG1sLWV4
cGVjdGVkLnR4dApAQCAtMSw5ICsxLDkgQEAKIFRoaXMgdGVzdHMgdGhhdCB0aGUgYXR0cmlidXRl
IGluIG5vIG5hbWVzcGFjZSB3aXRoIG5vIHByZWZpeCBhbmQgd2l0aCB0aGUgbGl0ZXJhbCBsb2Nh
bG5hbWUgInhtbDpsYW5nIiBpcyBpZ25vcmVkIGluIEhUTUwuIFNlZSBidWcgNjc1ODYuCiAKLVBB
U1MgZ2V0TGFuZ09mTm9kZSgnbTEnKSBpcyAiYXV0byIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbjEn
KSBpcyAia28iCi1QQVNTIGdldExhbmdPZk5vZGUoJ28xJykgaXMgImFyIgotUEFTUyBnZXRMYW5n
T2ZOb2RlKCdvMicpIGlzICJhciIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ20xJykgaXMgImF1dG8i
CitQQVNTIGxhbmd1YWdlT2ZOb2RlKCduMScpIGlzICJrbyIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUo
J28xJykgaXMgImFyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbzInKSBpcyAiYXIiCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwuaHRtbAppbmRleCBlZDhh
M2M0NDQ4NzIyMDM3M2Q4MGQ0ZTE5YTc4YjUyMWM1N2VkM2QzLi4zYzFlOTE1MGU1MTA3NWJhZjNl
Y2M2N2ZjZDU1MjZmZjU0ZjBlNTJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
eG1sLWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC5odG1sCkBAIC03LDE4ICs3LDE4IEBACiA8cD5UaGlz
IHRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0ZSBpbiBubyBuYW1lc3BhY2Ugd2l0aCBubyBwcmVmaXgg
YW5kIHdpdGggdGhlIGxpdGVyYWwgbG9jYWxuYW1lICJ4bWw6bGFuZyIgaXMgaWdub3JlZCBpbiBI
VE1MLiBTZWUKIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvNjc1ODYiPmJ1ZyA2NzU4Njwv
YT4uPC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08ZGl2IHhtbDpsYW5nPSJhciIgaWQ9
Im0xIj48L2Rpdj48L2Rpdj4KKzxkaXYgeG1sOmxhbmc9ImFyIiBpZD0ibTEiPjwvZGl2PgogPGRp
diBsYW5nPSJrbyI+PGRpdiB4bWw6bGFuZz0iYXIiIGlkPSJuMSI+PC9kaXY+PC9kaXY+CiA8ZGl2
IGxhbmc9ImFyIiBpZD0ibzEiPjxkaXYgeG1sOmxhbmc9IiIgaWQ9Im8yIj48L2Rpdj48L2Rpdj4K
IDxzY3JpcHQ+Ci1mdW5jdGlvbiBnZXRMYW5nT2ZOb2RlKG4pIHsKLSAgICBlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQobik7Ci0gICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUp
LndlYmtpdExvY2FsZTsKK2Z1bmN0aW9uIGxhbmd1YWdlT2ZOb2RlKGlkKSB7CisgICAgdmFyIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0dXJuIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdExvY2FsZTsKIH0KLXNob3VsZEJlRXF1YWxU
b1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTEnKSIsICJhdXRvIik7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldExhbmdPZk5vZGUoJ24xJykiLCAia28iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0TGFuZ09mTm9kZSgnbzEnKSIsICJhciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJn
ZXRMYW5nT2ZOb2RlKCdvMicpIiwgImFyIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1
YWdlT2ZOb2RlKCdtMScpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3Vh
Z2VPZk5vZGUoJ24xJykiLCAia28iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VP
Zk5vZGUoJ28xJykiLCAiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5v
ZGUoJ28yJykiLCAiYXIiKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggMTNmZmNmMmE4Nzc0NjcwODc4NDFh
YWFlZGFiMDgyMDQyOTEzOGJjZC4uYjM1NjFmYjUyNDE3ZWZlODY0OTlmZjA0NWQxZjI4YjU2MDJk
OGQwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTcxOCw2ICs3MTgsOCBAQCBmYXN0
L3BhcnNlci9ub3NjcmlwdC13aXRoLWphdmFzY3JpcHQtZW5hYmxlZC5odG1sCiBmYXN0L3BhcnNl
ci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1sCiBmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVw
YWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKIGZhc3Qvc3BhdGlhbC1u
YXZpZ2F0aW9uCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQt
c2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Ut
d2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2xvY2FsZS1zZW5zaXRpdmUtZm9udHMuaHRtbAogZmFzdC90ZXh0L3plcm8tZm9udC1zaXplLmh0
bWwKIGZhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13
azIvU2tpcHBlZAppbmRleCAwOWJjN2VhNjJhYzdjYjBjN2QyZDJhMDhkZDA5ZjI1ODk0OGU3ZmY2
Li5hOWJjZTM5ODY1YjQ1MWYzMTNhOTdkNGQ2MzA5MjU5ODY2ZDllZGJiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrLXdrMi9Ta2lwcGVkCkBAIC0yMDgsNiArMjA4LDggQEAgZmFzdC9ldmVudHMvd2hl
ZWxldmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2UuaHRtbAogCiAjIFdlYktpdDIg
bmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjE5NworZmFzdC90ZXh0L2ludGVybmF0
aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQtd2hpdGVzcGFjZS5o
dG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwK
IGZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVs
ZW1lbnQuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtbW9kZS1wYXJhZ3JhcGgta2V5cy1u
YXZpZ2F0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggNmVmMzM3MGQ0NWJl
NTIzNzMyNWZhZDQxMTlkMWI1NDY4MDQzZTFkMy4uMjU4NTRmODUzNjMyMGUxY2UxODA2YmY5NWM2
YTg4MDQwZThlZGQ0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTM3Myw2ICszNzMs
OCBAQCBmYXN0L211dGF0aW9uCiAKICMgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCJXZWJLaXQqRm9udE1hcCIuLi4pIGlzIG5vdAogIyBzdXBwb3J0ZWQuCitmYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKK2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13
aGl0ZXNwYWNlLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2xvY2FsZS1zZW5zaXRpdmUt
Zm9udHMuaHRtbAogCiAjIE5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmVuYWJsZUF1dG9SZXNp
emVNb2RlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggNzgzM2VhOTYzMTU4MWE0MGQx
OTFkMWU5MjE1YjFlNTQ5ZTlkZDJlNC4uMGEyZWZkYTNjNGFiNDZiNzdmODg4OGNmY2NiNzY3Mzgw
ODMyYmUxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTQ5MSw2ICs0OTEsOCBAQCBm
YXN0L2NhbnZhcy93ZWJnbC91bmlmb3JtLWxvY2F0aW9uLWxlbmd0aC1saW1pdHMuaHRtbAogZmFz
dC9yZXBhaW50L3RhYmxlLWV4dHJhLWJvdHRvbS1ncm93Lmh0bWwKIAogIyBEUlQgZG9lc24ndCBz
dXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0KkZvbnRNYXAiLi4uKQorZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy1hbmQtd2hp
dGVzcGFjZS5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZv
bnRzLmh0bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0IGVuYWJsZWQuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCBlM2Q2MGZlZWU5NzQxZTFkNWMzZWE4OTVkYTZjMjI3MjBiZTAxY2Jm
Li5kODg0ZGY2NWFiNGFhODk1MmNhYTU1ZDdkNWFjMDU5MjMwMDU5M2UzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTEwMTEsNiArMTAxMSw4IEBAIGphdmEKIAogIyBNaXNzaW5nIERSVCBh
YmlsaXR5IHRvIG92ZXJyaWRlICdzdGFuZGFyZCcgcHJlZmVyZW5jZXMuCiBmYXN0L2RvbS9XaW5k
b3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCitmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9p
bnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNl
Lmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2xvY2FsZS1zZW5zaXRpdmUtZm9udHMuaHRt
bAogbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAppbmRleCA3MzdkYTE0M2EyZWFjMDQ0MTQyZTM3Y2I4MTgxOTkwYTk5
OTUxNGU1Li43ZDMwNjA2N2UwOWE5NzI0Y2Y0MDI0ZmJhNzU1ZWJmNWRiYzcwMTIxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTQ5MSw2ICsxNDkxLDggQEAgZmFzdC9ldmVudHMvcGxh
dGZvcm0td2hlZWxldmVudC1wYWdpbmcteS1pbi1zY3JvbGxpbmctZGl2Lmh0bWwKIGZhc3QvZXZl
bnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQtcGFnaW5nLXktaW4tc2Nyb2xsaW5nLXBhZ2UuaHRtbAog
CiAjIERSVCBkb2Vzbid0IHN1cHBvcnQgb3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXQqRm9udE1h
cCIuLi4pCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2Vs
ZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0
aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNlLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2xv
Y2FsZS1zZW5zaXRpdmUtZm9udHMuaHRtbAogCiAjIFdlYiBJbnRlbnRzIGlzIG5vdCB5ZXQgZW5h
YmxlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCmluZGV4IGM2MDcyNjlkMmEw
MjZjYjMyNGRhNzQ3YjBmNjZjNjQ2ZmU1YzAwMzQuLmVjMjM4ZmVkZDc1YThiNTliOGY1ODMxMTU0
ZTVmYWY2MDRiMDEzMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJv
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZApAQCAt
MjAyNSw2ICsyMDI1LDggQEAgZmFzdC9ldmVudHMvcGxhdGZvcm0td2hlZWxldmVudC1wYWdpbmct
eS1pbi1zY3JvbGxpbmctZGl2Lmh0bWwKIGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQt
cGFnaW5nLXktaW4tc2Nyb2xsaW5nLXBhZ2UuaHRtbAogCiAjIERSVCBkb2Vzbid0IHN1cHBvcnQg
b3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXQqRm9udE1hcCIuLi4pCitmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9p
bnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWFuZC13aGl0ZXNwYWNl
Lmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2xvY2FsZS1zZW5zaXRpdmUtZm9udHMuaHRt
bAogCiAjIFdlYiBJbnRlbnRzIGlzIG5vdCB5ZXQgZW5hYmxlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQKaW5kZXggMmMyZDczNTBjZGI4MDMxN2U4ZTIzZmFkMGI3NDdlMWNiNWY4MjEyOC4uNjcy
ZDhmNTE5ZjZjZTkxOGY5NDA4ODQyMjcyMDRmYWE0NzhjYTllOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1NraXBwZWQKQEAgLTMwOSw2ICszMDksOCBAQCBmYXN0L3BhcnNlci9ub3NjcmlwdC13aXRoLWph
dmFzY3JpcHQtZGlzYWJsZWQuaHRtbAogZmFzdC9wYXJzZXIvbm9zY3JpcHQtd2l0aC1qYXZhc2Ny
aXB0LWVuYWJsZWQuaHRtbAogZmFzdC9yZXBhaW50L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNv
bnRlbnQtZWRpdGFibGUtZWxlbWVudC5odG1sCiBmYXN0L3RleHQvemVyby1mb250LXNpemUuaHRt
bAorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlv
bi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3Vi
dGFncy1hbmQtd2hpdGVzcGFjZS5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUt
c2Vuc2l0aXZlLWZvbnRzLmh0bWwKIGh0dHAvdGVzdHMvYXBwY2FjaGUvZGlzYWJsZWQuaHRtbAog
Y3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124085</attachid>
            <date>2012-01-26 02:49:02 -0800</date>
            <delta_ts>2012-01-30 03:55:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76701-20120126194900.patch</filename>
            <type>text/plain</type>
            <size>26695</size>
            <attacher name="Matt Falkenhagen">falken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzMyOTNhOTFjMDhkNTVi
NTg2MzFiOWQzOTRkOGI5NWI1ODI1OGY3Yi4uMjBjZDc3ZGJjODkxYjY0NjdlNzBlOWY2YTgzZTJi
MDRmZTEzYWEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTI2ICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSBmcm9tIGh0dHAtZXF1aXYgdG8gc2V0IGRvY3VtZW50IGxvY2FsZSBhbmQgZm9u
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbyBmYXIs
IG9ubHkgY29udGVudC1sYW5ndWFnZSBzZXQgdGhyb3VnaCBodHRwLWVxdWl2IGlzIHVzZWQ7IHRo
ZSBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UKKyAgICAgICAgaGVhZGVyIGlzIG5vdCB5ZXQgc3VwcG9y
dGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1jYXNlLWlu
c2Vuc2l0aXZpdHkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3Vh
Z2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1
YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC9pbnRlcm5h
dGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWV4cGVjdGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1z
dWJ0YWdzLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQpOiBVc2UgY29u
dGVudCBsYW5ndWFnZSB3aGVuIHNlbGVjdGluZyBpbml0aWFsIGZvbnQuCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRDb250ZW50TGFu
Z3VhZ2UpOiBSZWNhbGN1bGF0ZSBzdHlsZSBzbyBsYW5ndWFnZSBpcyB0YWtlbiBpbnRvIGFjY291
bnQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAg
ICAgKERvY3VtZW50KToKKwogMjAxMi0wMS0yNCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXByb3ZlIHVzZXIgZXhwZXJp
ZW5jZSBvZiBhZHZhbmNlZCBzZWFyY2ggcGFuZWwgY2xvc2luZy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBmMTQzNDIzZGM5MTI3ZGJjNWUzNzEyYThiY2MzZTkx
ZDEyZjJkOTcxLi43Yjk1ZjEwYjVjNmZjMTYwMWNiMzUyYjZlZWUxMDZmYWUzMmYwMWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0xMjM0LDYgKzEyMzQsOCBA
QCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3Vt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgQwogICAgIGRvY3VtZW50U3R5bGUtPnNldFpvb20oZnJh
bWUgPyBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSA6IDEpOwogICAgIGRvY3VtZW50U3R5bGUtPnNl
dFBhZ2VTY2FsZVRyYW5zZm9ybShmcmFtZSA/IGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkgOiAx
KTsKICAgICBkb2N1bWVudFN0eWxlLT5zZXRVc2VyTW9kaWZ5KGRvY3VtZW50LT5pbkRlc2lnbk1v
ZGUoKSA/IFJFQURfV1JJVEUgOiBSRUFEX09OTFkpOworICAgIGlmICghZG9jdW1lbnQtPmNvbnRl
bnRMYW5ndWFnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgZG9jdW1lbnRTdHlsZS0+c2V0TG9jYWxl
KGRvY3VtZW50LT5jb250ZW50TGFuZ3VhZ2UoKSk7CiAKICAgICBFbGVtZW50KiBkb2NFbGVtZW50
ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwogICAgIFJlbmRlck9iamVjdCogZG9jRWxl
bWVudFJlbmRlcmVyID0gZG9jRWxlbWVudCA/IGRvY0VsZW1lbnQtPnJlbmRlcmVyKCkgOiAwOwpA
QCAtMTI2NCwxMiArMTI2NiwxMyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNl
bGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQwogCiAgICAgRm9u
dERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKICAgICBmb250RGVzY3JpcHRpb24uc2V0VXNl
UHJpbnRlckZvbnQoZG9jdW1lbnQtPnByaW50aW5nKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRTY3JpcHQobG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihkb2N1bWVudFN0eWxl
LT5sb2NhbGUoKSkpOwogICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC0+c2V0
dGluZ3MoKSkgewogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0
aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7Ci0gICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
c3RkZm9udCA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAgICAgICAgaWYgKCFz
dGRmb250LmlzRW1wdHkoKSkgeworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJk
Rm9udCA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoZm9udERlc2NyaXB0aW9uLnNjcmlw
dCgpKTsKKyAgICAgICAgaWYgKCFzdGFuZGFyZEZvbnQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5k
YXJkRmFtaWx5KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpLnNl
dEZhbWlseShzdGRmb250KTsKKyAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWls
eSgpLnNldEZhbWlseShzdGFuZGFyZEZvbnQpOwogICAgICAgICAgICAgZm9udERlc2NyaXB0aW9u
LmZpcnN0RmFtaWx5KCkuYXBwZW5kRmFtaWx5KDApOwogICAgICAgICB9CiAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENTU1ZhbHVlWHhTbWFs
bCArIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2FiYjNhZGE5YmNiNTFmMDFmMDI0
NzVhODE5MTY3M2JkZWE4YTFhMS4uYzM1MTQ5MTUwYmVhNWU5YmVjMWMwZDcwODM5MjgwNjQxYmY2
YTBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDkzLDYgKzEwOTMsMTIgQEAgdm9p
ZCBEb2N1bWVudDo6c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiAgICAgZGVjb2Rl
cigpLT5zZXRFbmNvZGluZyhjaGFyc2V0LCBUZXh0UmVzb3VyY2VEZWNvZGVyOjpVc2VyQ2hvc2Vu
RW5jb2RpbmcpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXRDb250ZW50TGFuZ3VhZ2UoY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSkKK3sKKyAgICBtX2NvbnRlbnRMYW5ndWFnZSA9IGxhbmd1YWdlOwor
ICAgIHJlY2FsY1N0eWxlKEZvcmNlKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0WE1MVmVyc2lv
bihjb25zdCBTdHJpbmcmIHZlcnNpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
aW1wbGVtZW50YXRpb24oKS0+aGFzRmVhdHVyZSgiWE1MIiwgU3RyaW5nKCkpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGZkYjM5ODg3NWY1MTRkZmZjNGM3MDM5NzIxYjFhNzU3NDdjYmI5N2Iu
LjU1ZGRjNjljY2E4ZWY1M2IxM2NhYzM2YzQ4OTQxY2JlYjRjMThmODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBzdWdnZXN0ZWRN
SU1FVHlwZSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIGNvbnRlbnRMYW5ndWFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY29udGVudExhbmd1YWdlOyB9Ci0gICAgdm9pZCBzZXRDb250ZW50TGFuZ3VhZ2Uo
Y29uc3QgU3RyaW5nJiBsYW5nKSB7IG1fY29udGVudExhbmd1YWdlID0gbGFuZzsgfQorICAgIHZv
aWQgc2V0Q29udGVudExhbmd1YWdlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgU3RyaW5nIHhtbEVu
Y29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV94bWxFbmNvZGluZzsgfQogICAgIFN0cmluZyB4bWxW
ZXJzaW9uKCkgY29uc3QgeyByZXR1cm4gbV94bWxWZXJzaW9uOyB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjk0MTc2ZjY4
ZmZhYmFiMjI2ZmJmYTg5MDE3NTI1OWNmNjgzOTQ2Ni4uNWRjZjlhNTU4YTc5NDkwZWJhZjBkODE2
N2QzNmJjMzY3MGVmZmM3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAxLTI2ICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSBmcm9tIGh0dHAtZXF1aXYgdG8gc2V0IGRvY3VtZW50IGxvY2FsZSBhbmQgZm9u
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVz
dHMgdGhhdCBjb250ZW50LWxhbmd1YWdlIGZyb20gaHR0cC1lcXVpdiBzZXRzIGRvY3VtZW50IGxv
Y2FsZSBhbmQgaXMgdXNlZCBpbiBmb250IHNlbGVjdGlvbi4KKworICAgICAgICAqIGZhc3QvdGV4
dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0eS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBw
ZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
dGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9u
dC1zZWxlY3Rpb24tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgt
c3VidGFncy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUueGh0bWw6
IEZpeCBzb21lIHN0eWxlIGlzc3Vlcy4KKyAgICAgICAgKiBmYXN0L3RleHQveG1sLWxhbmctaWdu
b3JlZC1pbi1odG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3RleHQveG1sLWxhbmct
aWdub3JlZC1pbi1odG1sLmh0bWw6IEZpeCBzb21lIHN0eWxlIGlzc3Vlcy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9lZmwvU2tpcHBlZDogU2tpcCB0ZXN0cyB1c2luZyBvdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdCpGb250TWFwIi4uLikgb24gbm9uLUNocm9taXVtIHBvcnRzLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay13azIvU2tpcHBlZDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vU2tpcHBlZDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZDog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBwZWQ6IERpdHRvLgorCiAyMDEyLTAx
LTI2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0
XSBVbnJldmlld2VkIGdhcmRlbmluZyBhZnRlciByMTA1OTE3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5z
ZW5zaXRpdml0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWYwYjRkYjY1NDlkMGEyN2I3ZTdh
ZWFmMzRmMzhiNDJiZDIyOTA0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0eS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitUZXN0IGZvciBidWcgNzY3MDE6IG1hcCBjb250ZW50LWxhbmd1YWdlIHRv
IC13ZWJraXQtbG9jYWxlLiBUaGlzIHBhcnRpY3VsYXIgdGVzdCB0ZXN0cyB0aGF0IHRoZSBtYXRj
aGluZyBvZiB0aGUgaHR0cC1lcXVpdiBhdHRyaWJ1dGUgdG8gdGhlIGNvbnRlbnQtbGFuZ3VhZ2Ug
c3RhdGUgaXMgY2FzZSBpbnNlbnNpdGl2ZS4KKworUEFTUyBsYW5ndWFnZU9mTm9kZSgneDEnKSBp
cyAiamEtSlAiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2Ut
Y2FzZS1pbnNlbnNpdGl2aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1s
YW5ndWFnZS1jYXNlLWluc2Vuc2l0aXZpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjVlODcyZjQyMThk
Y2NkZWYzOTkxMzQ0OGQzODA0YjQ3YTY3YmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5Lmh0bWwKQEAg
LTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNPTnRFTlQtTEFu
Z3VBR0UiIGNvbnRlbnQ9ImphLUpQIi8+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVz
dCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NzAxIj5idWcgNzY3MDE8L2E+OgorbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2Nh
bGUuIFRoaXMgcGFydGljdWxhciB0ZXN0IHRlc3RzIHRoYXQgdGhlCittYXRjaGluZyBvZiB0aGUg
aHR0cC1lcXVpdiBhdHRyaWJ1dGUgdG8gdGhlIGNvbnRlbnQtbGFuZ3VhZ2Ugc3RhdGUgaXMgY2Fz
ZQoraW5zZW5zaXRpdmUuCis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9
IngxIi8+Cis8c2NyaXB0PgorZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworfQorc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJqYS1KUCIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdl
YmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQt
bGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdjNzkwNzgwODQwMjAwNThjMjQ0MTc2ZmM5ZTQ2ZDQ3OGY4YThhMWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Vi
a2l0LWxvY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IGZvciBidWcgNzY3
MDE6IG1hcCBjb250ZW50LWxhbmd1YWdlIHRvIC13ZWJraXQtbG9jYWxlLgorCitQQVNTIGxhbmd1
YWdlT2ZOb2RlKCd4MScpIGlzICJ6aC1DTiIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ20xJykgaXMg
ImFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBl
ZC10by13ZWJraXQtbG9jYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1s
YW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNjFlYTEw
Nzc5MDMwZDRlM2VkZTQ1NjEwZWUxMGM5ZTRmNTQ5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2Fs
ZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJj
b250ZW50LWxhbmd1YWdlIiBjb250ZW50PSJ6aC1DTiI+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc2NzAxIj5idWcgNzY3MDE8L2E+OgorbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdl
YmtpdC1sb2NhbGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4MSIv
PgorPGRpdiBsYW5nPSJhciIgaWQ9Im0xIi8+Cis8c2NyaXB0PgorZnVuY3Rpb24gbGFuZ3VhZ2VP
Zk5vZGUoaWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk
KTsKKyAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9j
YWxlOworfQorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJ6
aC1DTiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTEnKSIsICJh
ciIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9u
YWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVj
dGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNmRiNzVjNGZmOTA1NzNlYjAyMzUyMDg0
NjVmN2UzNmIxNDNmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
aW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9udCBzZWxl
Y3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBz
dHlsZT0iZm9udC1mYW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDY3MjE2NDUzNDkxMDkyOGZmOGJjOTMyMzdjMTQwOWY2MTViNDI3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29u
dGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFu
Z3VhZ2UiIGNvbnRlbnQ9InpoLVRXIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0U3RhbmRhcmRGb250TWFwIiwgWyAiSGFudCIsICJBaGVtIiBdKTsKKzwvc2NyaXB0Pgor
PHRpdGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzwhLS0gVGhpcyB0ZXN0cyBmb250IHNlbGVjdGlvbiBiYXNl
ZCBvbiBjb250ZW50LWxhbmd1YWdlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzY3MDE+LiBUaGUgdGV4dCBzaG91bGQgYmUgaW4gQWhlbSBmb250LiAtLT4KK1RoaXMg
aXMgaW4gQWhlbSBmb250LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3Mt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRl
bnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY2ZGI3
NWM0ZmY5MDU3M2ViMDIzNTIwODQ2NWY3ZTM2YjE0M2Y0OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1z
dWJ0YWdzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRp
dGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGlu
IEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdp
dGgtc3VidGFncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YmU2YTZmNjRmYWExMTgyNzY2NzI0YmE1MzYw
YjMwNzYxNjYwOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9
ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9InpoX3R3X2Zvb2JhciI+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFN0YW5kYXJkRm9udE1hcCIsIFsgIkhhbnQiLCAiQWhl
bSIgXSk7Cis8L3NjcmlwdD4KKzx0aXRsZT5UZXN0IGZvbnQgc2VsZWN0aW9uIGJhc2VkIG9uIGNv
bnRlbnQtbGFuZ3VhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8IS0tIFRoaXMgdGVzdHMg
Zm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZQorPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMT4sIHdoZW4gY29udGVudC1sYW5ndWFnZSBo
YXMKK2V4dHJhIHN1YnRhZ3MuIFRoZSBsYW5ndWFnZSAiemhfdHdfZm9vYmFyIiBzaG91bGQgbWF0
Y2ggSGFuIFRyYWRpdGlvbmFsIHNjcmlwdCwKK3NvIHRoZSB0ZXh0IHNob3VsZCBiZSBpbiBBaGVt
IGZvbnQuIC0tPgorVGhpcyBpcyBpbiBBaGVtIGZvbnQuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2Fs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Vi
a2l0LWxvY2FsZS1leHBlY3RlZC50eHQKaW5kZXggZmE5MWIxOTY0MThkNGNhMzgxYzJiOTY2MzQ3
YTVkZWU0NjM1NmZiZi4uOWNjZmMzYzUyNjE2NWY2NWI0ODU0MWFlOTZlZjVlODNjNGVmNjQ1NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1s
b2NhbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBl
ZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSwyOCBAQAogVGhpcyBp
cyBhIHRlc3QgZm9yIGJ1ZyA2NzU4Ni4gSFRNTCBhdHRyaWJ1dGVzIGxhbmcgYW5kIHhtbDpsYW5n
IGFyZSBtYXBwZWQgdG8gJy13ZWJraXQtbG9jYWxlJyB0byB1c2UgdGhlaXIgdmFsdWUgaW4gZm9u
dCBmYWxsYmFjay4KIAotUEFTUyBnZXRMYW5nT2ZOb2RlKCd4MScpIGlzICJqYSIKLVBBU1MgZ2V0
TGFuZ09mTm9kZSgneDInKSBpcyAiamEiCi1QQVNTIGdldExhbmdPZk5vZGUoJ3gzJykgaXMgImph
IgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdsMScpIGlzICJ6aCIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgn
bDInKSBpcyAiemgiCi1QQVNTIGdldExhbmdPZk5vZGUoJ2wzJykgaXMgInpoIgotUEFTUyBnZXRM
YW5nT2ZOb2RlKCdtMScpIGlzICJrbyIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbTInKSBpcyAiZnIi
Ci1QQVNTIGdldExhbmdPZk5vZGUoJ20zJykgaXMgImZyIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdu
MScpIGlzICJmciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbjInKSBpcyAiZnIiCi1QQVNTIGdldExh
bmdPZk5vZGUoJ24zJykgaXMgInN2IgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdwMScpIGlzICJqYSIK
LVBBU1MgZ2V0TGFuZ09mTm9kZSgncDInKSBpcyAiYXV0byIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgn
cTEnKSBpcyAiamEiCi1QQVNTIGdldExhbmdPZk5vZGUoJ3EyJykgaXMgImF1dG8iCi1QQVNTIGdl
dExhbmdPZk5vZGUoJ3EzJykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ3E0JykgaXMg
ImFyIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdxNScpIGlzICJhdXRvIgotUEFTUyBnZXRMYW5nT2ZO
b2RlKCdxNicpIGlzICInICAnIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdxNycpIGlzICJhdXRvIgot
UEFTUyBnZXRMYW5nT2ZOb2RlKCdxOCcpIGlzICJ4eXp6eSIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgn
cTknKSBpcyAiJ11bO11bWyciCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCd4MScpIGlzICJqYSIKK1BB
U1MgbGFuZ3VhZ2VPZk5vZGUoJ3gyJykgaXMgImphIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgneDMn
KSBpcyAiamEiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdsMScpIGlzICJ6aCIKK1BBU1MgbGFuZ3Vh
Z2VPZk5vZGUoJ2wyJykgaXMgInpoIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbDMnKSBpcyAiemgi
CitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdtMScpIGlzICJrbyIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUo
J20yJykgaXMgImZyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbTMnKSBpcyAiZnIiCitQQVNTIGxh
bmd1YWdlT2ZOb2RlKCduMScpIGlzICJmciIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ24yJykgaXMg
ImZyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbjMnKSBpcyAic3YiCitQQVNTIGxhbmd1YWdlT2ZO
b2RlKCdwMScpIGlzICJqYSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3AyJykgaXMgImF1dG8iCitQ
QVNTIGxhbmd1YWdlT2ZOb2RlKCdxMScpIGlzICJqYSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3Ey
JykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxMycpIGlzICJhdXRvIgorUEFTUyBs
YW5ndWFnZU9mTm9kZSgncTQnKSBpcyAiYXIiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxNScpIGlz
ICJhdXRvIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgncTYnKSBpcyAiJyAgJyIKK1BBU1MgbGFuZ3Vh
Z2VPZk5vZGUoJ3E3JykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxOCcpIGlzICJ4
eXp6eSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3E5JykgaXMgIiddWztdW1snIgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS54aHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCmlu
ZGV4IDU5ZTFmNjk5ODg5ZmEyNzk1ODY0YzgyY2U0MDc2MTIzMTZlNWI4MWEuLjM0ZWU3NWFlMWY4
ODA2N2Q4NDNkNjM5NGM3NzI1Y2VkNzE0Y2FmN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCkBAIC0yNCwz
MyArMjQsMzMgQEAKICAgICA8ZGl2IGxhbmc9Il1bO11bWyIgaWQ9InE5Ij48L2Rpdj4KIDwvZGl2
PgogPHNjcmlwdD4KLWZ1bmN0aW9uIGdldExhbmdPZk5vZGUobikgewotICAgIGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChuKTsKLSAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZSkud2Via2l0TG9jYWxlOworZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOwogfQotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCd4MScpIiwgImphIik7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldExhbmdPZk5vZGUoJ3gyJykiLCAiamEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0TGFuZ09mTm9kZSgneDMnKSIsICJqYSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJn
ZXRMYW5nT2ZOb2RlKCdsMScpIiwgInpoIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ2wyJykiLCAiemgiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09m
Tm9kZSgnbDMnKSIsICJ6aCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2Rl
KCdtMScpIiwgImtvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ20y
JykiLCAiZnIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTMnKSIs
ICJmciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCduMScpIiwgImZy
Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ24yJykiLCAiZnIiKTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbjMnKSIsICJzdiIpOwotc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdwMScpIiwgImphIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3AyJykiLCAiYXV0byIpOwotc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxMScpIiwgImphIik7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3EyJykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxMycpIiwgImF1dG8iKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygiZ2V0TGFuZ09mTm9kZSgncTQnKSIsICJhciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJnZXRMYW5nT2ZOb2RlKCdxNScpIiwgImF1dG8iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygi
Z2V0TGFuZ09mTm9kZSgncTYnKSIsICInICAnIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdl
dExhbmdPZk5vZGUoJ3E3JykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRM
YW5nT2ZOb2RlKCdxOCcpIiwgInh5enp5Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ3E5JykiLCAiJ11bO11bWyciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFu
Z3VhZ2VPZk5vZGUoJ3gxJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3Vh
Z2VPZk5vZGUoJ3gyJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VP
Zk5vZGUoJ3gzJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5v
ZGUoJ2wxJykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUo
J2wyJykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ2wz
JykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20xJyki
LCAia28iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20yJykiLCAi
ZnIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20zJykiLCAiZnIi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24xJykiLCAiZnIiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24yJykiLCAiZnIiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24zJykiLCAic3YiKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3AxJykiLCAiamEiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3AyJykiLCAiYXV0byIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTEnKSIsICJqYSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTInKSIsICJhdXRvIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdxMycpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3E0JykiLCAiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3E1JykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYW5ndWFnZU9mTm9kZSgncTYnKSIsICInICAnIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImxhbmd1YWdlT2ZOb2RlKCdxNycpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFuZ3VhZ2VPZk5vZGUoJ3E4JykiLCAieHl6enkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFuZ3VhZ2VPZk5vZGUoJ3E5JykiLCAiJ11bO11bWyciKTsKIAogdmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3RlZC50eHQKaW5kZXggMmMy
ODczN2ZiOTQ0YmNmZWI5ZWRkNDZlNmNmY2JlYTEwM2ZmNWJhZi4uNTllNmJkZGMyZjZkYjc2MzNm
N2JiODIzZjA0Yjk3Yzg3Y2QyMjc2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3RlZC50eHQKQEAgLTEsOSAr
MSw5IEBACiBUaGlzIHRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0ZSBpbiBubyBuYW1lc3BhY2Ugd2l0
aCBubyBwcmVmaXggYW5kIHdpdGggdGhlIGxpdGVyYWwgbG9jYWxuYW1lICJ4bWw6bGFuZyIgaXMg
aWdub3JlZCBpbiBIVE1MLiBTZWUgYnVnIDY3NTg2LgogCi1QQVNTIGdldExhbmdPZk5vZGUoJ20x
JykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ24xJykgaXMgImtvIgotUEFTUyBnZXRM
YW5nT2ZOb2RlKCdvMScpIGlzICJhciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbzInKSBpcyAiYXIi
CitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdtMScpIGlzICJhdXRvIgorUEFTUyBsYW5ndWFnZU9mTm9k
ZSgnbjEnKSBpcyAia28iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdvMScpIGlzICJhciIKK1BBU1Mg
bGFuZ3VhZ2VPZk5vZGUoJ28yJykgaXMgImFyIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
eG1sLWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1s
LWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwKaW5kZXggZWQ4YTNjNDQ0ODcyMjAzNzNkODBkNGUx
OWE3OGI1MjFjNTdlZDNkMy4uM2MxZTkxNTBlNTEwNzViYWYzZWNjNjdmY2Q1NTI2ZmY1NGYwZTUy
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4t
aHRtbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWlu
LWh0bWwuaHRtbApAQCAtNywxOCArNywxOCBAQAogPHA+VGhpcyB0ZXN0cyB0aGF0IHRoZSBhdHRy
aWJ1dGUgaW4gbm8gbmFtZXNwYWNlIHdpdGggbm8gcHJlZml4IGFuZCB3aXRoIHRoZSBsaXRlcmFs
IGxvY2FsbmFtZSAieG1sOmxhbmciIGlzIGlnbm9yZWQgaW4gSFRNTC4gU2VlCiA8YSBocmVmPSJo
dHRwOi8vd2Via2l0Lm9yZy9iLzY3NTg2Ij5idWcgNjc1ODY8L2E+LjwvcD4KIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotPGRpdiB4bWw6bGFuZz0iYXIiIGlkPSJtMSI+PC9kaXY+PC9kaXY+Cis8
ZGl2IHhtbDpsYW5nPSJhciIgaWQ9Im0xIj48L2Rpdj4KIDxkaXYgbGFuZz0ia28iPjxkaXYgeG1s
Omxhbmc9ImFyIiBpZD0ibjEiPjwvZGl2PjwvZGl2PgogPGRpdiBsYW5nPSJhciIgaWQ9Im8xIj48
ZGl2IHhtbDpsYW5nPSIiIGlkPSJvMiI+PC9kaXY+PC9kaXY+CiA8c2NyaXB0PgotZnVuY3Rpb24g
Z2V0TGFuZ09mTm9kZShuKSB7Ci0gICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pOwot
ICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKS53ZWJraXRMb2NhbGU7CitmdW5j
dGlvbiBsYW5ndWFnZU9mTm9kZShpZCkgeworICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWQpOworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50KS53ZWJraXRMb2NhbGU7CiB9Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5v
ZGUoJ20xJykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2Rl
KCduMScpIiwgImtvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ28x
JykiLCAiYXIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbzInKSIs
ICJhciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTEnKSIsICJh
dXRvIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCduMScpIiwgImtv
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdvMScpIiwgImFyIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdvMicpIiwgImFyIik7CiAK
IHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9Ta2lwcGVkCmluZGV4IDEzZmZjZjJhODc3NDY3MDg3ODQxYWFhZWRhYjA4MjA0MjkxMzhiY2Qu
LmQ5YTY2MWM0MWE1ZWZiNmNhM2Y5Y2JmNjMwZDcyY2I3ZGZkODYxMzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9Ta2lwcGVkCkBAIC03MTgsNiArNzE4LDggQEAgZmFzdC9wYXJzZXIvbm9zY3JpcHQtd2l0
aC1qYXZhc2NyaXB0LWVuYWJsZWQuaHRtbAogZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBhcnNlci1x
dWlya3MuaHRtbAogZmFzdC9yZXBhaW50L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNvbnRlbnQt
ZWRpdGFibGUtZWxlbWVudC5odG1sCiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbgorZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBm
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIGZhc3Qv
dGV4dC96ZXJvLWZvbnQtc2l6ZS5odG1sCiBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyOC5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKaW5kZXggMDliYzdlYTYyYWM3Y2IwYzdk
MmQyYTA4ZGQwOWYyNTg5NDhlN2ZmNi4uYjUxZTY5ZWM5Y2NlYWRhMzhjMjkxMjdmNzQzZWE2OGJk
ZWIyMmI1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZApAQCAtMjA4LDYgKzIw
OCw4IEBAIGZhc3QvZXZlbnRzL3doZWVsZXZlbnQtZGlyZWN0aW9uLWludmVydGVkLWZyb20tZGV2
aWNlLmh0bWwKIAogIyBXZWJLaXQyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIx
OTcKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rp
b24uaHRtbAorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1
YnRhZ3MuaHRtbAogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvbG9jYWxlLXNlbnNpdGl2ZS1mb250
cy5odG1sCiBmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1lZGl0
YWJsZS1lbGVtZW50Lmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0LW1vZGUtcGFyYWdyYXBo
LWtleXMtbmF2aWdhdGlvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDZlZjMz
NzBkNDViZTUyMzczMjVmYWQ0MTE5ZDFiNTQ2ODA0M2UxZDMuLmUyM2NkOTc5OTI4NzJlZTNkMTEw
NDk5MjliNTVjMGIxNDI3MTkxYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0zNzMs
NiArMzczLDggQEAgZmFzdC9tdXRhdGlvbgogCiAjIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0KkZvbnRNYXAiLi4uKSBpcyBub3QKICMgc3VwcG9ydGVkLgor
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5o
dG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFn
cy5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0
bWwKIAogIyBOZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5lbmFibGVBdXRvUmVzaXplTW9kZSgp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDc4MzNlYTk2MzE1ODFhNDBkMTkxZDFlOTIx
NWIxZTU0OWU5ZGQyZTQuLjI2OGIwNTYzNWUwYjcxMjMyY2FiMTNlNTBhMTA1NTZlNmQ1ZTRjYWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC00OTEsNiArNDkxLDggQEAgZmFzdC9jYW52
YXMvd2ViZ2wvdW5pZm9ybS1sb2NhdGlvbi1sZW5ndGgtbGltaXRzLmh0bWwKIGZhc3QvcmVwYWlu
dC90YWJsZS1leHRyYS1ib3R0b20tZ3Jvdy5odG1sCiAKICMgRFJUIGRvZXNuJ3Qgc3VwcG9ydCBv
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdCpGb250TWFwIi4uLikKK2Zhc3QvdGV4dC9pbnRlcm5h
dGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbAorZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3MuaHRtbAogZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvbG9jYWxlLXNlbnNpdGl2ZS1mb250cy5odG1sCiAKICMgV2ViIEludGVu
dHMgaXMgbm90IHlldCBlbmFibGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggMzQ2OWU3
MTUyYTFmMTA1Njk0NTAxNjUzOGY3N2NmMjI4M2VjZjE5YS4uM2UwZmUxYjg4ZjcxYWU2M2RkN2Nj
YTQyOWYzMGNjMGU2ZTEyMjkxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xMDE2LDYg
KzEwMTYsOCBAQCBqYXZhCiAKICMgTWlzc2luZyBEUlQgYWJpbGl0eSB0byBvdmVycmlkZSAnc3Rh
bmRhcmQnIHByZWZlcmVuY2VzLgogZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZp
Z2F0aW9uLWJhY2suaHRtbAorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFn
ZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxh
bmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUt
c2Vuc2l0aXZlLWZvbnRzLmh0bWwKIGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ct
c2l6ZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNzM3ZGExNDNhMmVhYzA0
NDE0MmUzN2NiODE4MTk5MGE5OTk1MTRlNS4uMGY1NTI3NDNkOTFiYWM3MDg2OTJjYjAyNjZkYTU3
NjFhNjNjMTcwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTE0OTEsNiArMTQ5MSw4
IEBAIGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQtcGFnaW5nLXktaW4tc2Nyb2xsaW5n
LWRpdi5odG1sCiBmYXN0L2V2ZW50cy9wbGF0Zm9ybS13aGVlbGV2ZW50LXBhZ2luZy15LWluLXNj
cm9sbGluZy1wYWdlLmh0bWwKIAogIyBEUlQgZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0KkZvbnRNYXAiLi4uKQorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVu
dC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9j
b250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25h
bC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0
IGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAppbmRleCBjNjA3MjY5
ZDJhMDI2Y2IzMjRkYTc0N2IwZjY2YzY0NmZlNWMwMDM0Li45ZDY3ZDE4ZjhiNmFkMWM0ZjExYjg1
YzYyZWM3MmE5NDM1NzQ0OGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQK
QEAgLTIwMjUsNiArMjAyNSw4IEBAIGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQtcGFn
aW5nLXktaW4tc2Nyb2xsaW5nLWRpdi5odG1sCiBmYXN0L2V2ZW50cy9wbGF0Zm9ybS13aGVlbGV2
ZW50LXBhZ2luZy15LWluLXNjcm9sbGluZy1wYWdlLmh0bWwKIAogIyBEUlQgZG9lc24ndCBzdXBw
b3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0KkZvbnRNYXAiLi4uKQorZmFzdC90ZXh0L2lu
dGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3Rl
eHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIg
SW50ZW50cyBpcyBub3QgeWV0IGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4
IDJjMmQ3MzUwY2RiODAzMTdlOGUyM2ZhZDBiNzQ3ZTFjYjVmODIxMjguLjIwMTE3M2RiYjZiZjQ3
MTc2YzNkZDFiN2QzMzEwNDU3OWU4YWVjYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBA
IC0zMDksNiArMzA5LDggQEAgZmFzdC9wYXJzZXIvbm9zY3JpcHQtd2l0aC1qYXZhc2NyaXB0LWRp
c2FibGVkLmh0bWwKIGZhc3QvcGFyc2VyL25vc2NyaXB0LXdpdGgtamF2YXNjcmlwdC1lbmFibGVk
Lmh0bWwKIGZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRh
YmxlLWVsZW1lbnQuaHRtbAogZmFzdC90ZXh0L3plcm8tZm9udC1zaXplLmh0bWwKK2Zhc3QvdGV4
dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbAorZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3MuaHRtbAog
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvbG9jYWxlLXNlbnNpdGl2ZS1mb250cy5odG1sCiBodHRw
L3Rlc3RzL2FwcGNhY2hlL2Rpc2FibGVkLmh0bWwKIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVy
LXNoYWRlci1jYWNoZS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124519</attachid>
            <date>2012-01-30 03:55:50 -0800</date>
            <delta_ts>2012-02-02 23:30:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76701-20120130205548.patch</filename>
            <type>text/plain</type>
            <size>26990</size>
            <attacher name="Matt Falkenhagen">falken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE3YWRmYmY5OTEzMWMw
ZWZiNDM2YWYyMGVhYzU4Y2M5NWE0MDBhNi4uMzg5MzcyYjc4N2E0MzdlZGRjMmY0Y2NkMDkwMmRk
MDRjODlmN2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTMwICBNYXR0
IEZhbGtlbmhhZ2VuICA8ZmFsa2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBVc2UgY29udGVu
dC1sYW5ndWFnZSBmcm9tIGh0dHAtZXF1aXYgdG8gc2V0IGRvY3VtZW50IGxvY2FsZSBhbmQgZm9u
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTbyBmYXIs
IG9ubHkgY29udGVudC1sYW5ndWFnZSBzZXQgdGhyb3VnaCBodHRwLWVxdWl2IGlzIHVzZWQ7IHRo
ZSBIVFRQIENvbnRlbnQtTGFuZ3VhZ2UKKyAgICAgICAgaGVhZGVyIGlzIG5vdCB5ZXQgc3VwcG9y
dGVkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1jYXNlLWlu
c2Vuc2l0aXZpdHkuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3Vh
Z2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1
YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvdGV4dC9pbnRlcm5h
dGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWV4cGVjdGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1z
dWJ0YWdzLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yRG9jdW1lbnQpOiBVc2UgY29u
dGVudCBsYW5ndWFnZSB3aGVuIHNlbGVjdGluZyBpbml0aWFsIGZvbnQuCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRDb250ZW50TGFu
Z3VhZ2UpOiBSZWNhbGN1bGF0ZSBzdHlsZSBzbyBsYW5ndWFnZSBpcyB0YWtlbiBpbnRvIGFjY291
bnQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAg
ICAgKERvY3VtZW50KToKKwogMjAxMi0wMS0yOSAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3
ZWJraXQub3JnPgogCiAgICAgICAgIEN1c3RvbSB3cml0dGVuIENTUyBsZXhlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IGUzMmI2NWJiNmJhOTVlMjYwM2IzYmFi
ODQ1ODc3NDM1ZmM5NDQyNzUuLmRkMGRkY2YyYWJlNmE5NDcxMGQ3MDI2YWNiMjk3YzQwYjUwNzIz
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTEyMjksNiAr
MTIyOSw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxl
Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBDCiAgICAgZG9jdW1lbnRTdHlsZS0+c2V0
Wm9vbShmcmFtZSA/IGZyYW1lLT5wYWdlWm9vbUZhY3RvcigpIDogMSk7CiAgICAgZG9jdW1lbnRT
dHlsZS0+c2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZyYW1lID8gZnJhbWUtPmZyYW1lU2NhbGVGYWN0
b3IoKSA6IDEpOwogICAgIGRvY3VtZW50U3R5bGUtPnNldFVzZXJNb2RpZnkoZG9jdW1lbnQtPmlu
RGVzaWduTW9kZSgpID8gUkVBRF9XUklURSA6IFJFQURfT05MWSk7CisgICAgZG9jdW1lbnRTdHls
ZS0+c2V0TG9jYWxlKGRvY3VtZW50LT5jb250ZW50TGFuZ3VhZ2UoKSk7CiAKICAgICBFbGVtZW50
KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwogICAgIFJlbmRlck9i
amVjdCogZG9jRWxlbWVudFJlbmRlcmVyID0gZG9jRWxlbWVudCA/IGRvY0VsZW1lbnQtPnJlbmRl
cmVyKCkgOiAwOwpAQCAtMTI1OSwxMiArMTI2MCwxMyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
QwogCiAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKICAgICBmb250RGVzY3Jp
cHRpb24uc2V0VXNlUHJpbnRlckZvbnQoZG9jdW1lbnQtPnByaW50aW5nKCkpOworICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRTY3JpcHQobG9jYWxlVG9TY3JpcHRDb2RlRm9yRm9udFNlbGVjdGlvbihk
b2N1bWVudFN0eWxlLT5sb2NhbGUoKSkpOwogICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBk
b2N1bWVudC0+c2V0dGluZ3MoKSkgewogICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVy
aW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7Ci0gICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgc3RkZm9udCA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKLSAg
ICAgICAgaWYgKCFzdGRmb250LmlzRW1wdHkoKSkgeworICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIHN0YW5kYXJkRm9udCA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRGYW1pbHkoZm9udERlc2Ny
aXB0aW9uLnNjcmlwdCgpKTsKKyAgICAgICAgaWYgKCFzdGFuZGFyZEZvbnQuaXNFbXB0eSgpKSB7
CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3Jp
cHRpb246OlN0YW5kYXJkRmFtaWx5KTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5maXJz
dEZhbWlseSgpLnNldEZhbWlseShzdGRmb250KTsKKyAgICAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5maXJzdEZhbWlseSgpLnNldEZhbWlseShzdGFuZGFyZEZvbnQpOwogICAgICAgICAgICAgZm9u
dERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCkuYXBwZW5kRmFtaWx5KDApOwogICAgICAgICB9CiAg
ICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZShDU1NWYWx1ZU1lZGl1bSAtIENT
U1ZhbHVlWHhTbWFsbCArIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2FiYjNhZGE5
YmNiNTFmMDFmMDI0NzVhODE5MTY3M2JkZWE4YTFhMS4uMjQ5MzNhZDFlN2JmNTI4NDhhZGQxYWEw
NjYzYmZjNWIyNzg1MTEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDkzLDYgKzEw
OTMsMTYgQEAgdm9pZCBEb2N1bWVudDo6c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQp
CiAgICAgZGVjb2RlcigpLT5zZXRFbmNvZGluZyhjaGFyc2V0LCBUZXh0UmVzb3VyY2VEZWNvZGVy
OjpVc2VyQ2hvc2VuRW5jb2RpbmcpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXRDb250ZW50TGFu
Z3VhZ2UoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKK3sKKyAgICBpZiAobV9jb250ZW50TGFuZ3Vh
Z2UgPT0gbGFuZ3VhZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NvbnRlbnRMYW5ndWFnZSA9
IGxhbmd1YWdlOworCisgICAgLy8gUmVjYWxjdWxhdGUgc3R5bGUgc28gbGFuZ3VhZ2UgaXMgdXNl
ZCB3aGVuIHNlbGVjdGluZyB0aGUgaW5pdGlhbCBmb250LgorICAgIHN0eWxlU2VsZWN0b3JDaGFu
Z2VkKERlZmVyUmVjYWxjU3R5bGUpOworfQorCiB2b2lkIERvY3VtZW50OjpzZXRYTUxWZXJzaW9u
KGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFp
bXBsZW1lbnRhdGlvbigpLT5oYXNGZWF0dXJlKCJYTUwiLCBTdHJpbmcoKSkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZmRiMzk4ODc1ZjUxNGRmZmM0YzcwMzk3MjFiMWE3NTc0N2NiYjk3Yi4u
NTVkZGM2OWNjYThlZjUzYjEzY2FjMzZjNDg5NDFjYmViNGMxOGY4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTM4Niw3ICszODYsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHN1Z2dlc3RlZE1J
TUVUeXBlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgY29udGVudExhbmd1YWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZW50TGFuZ3VhZ2U7IH0KLSAgICB2b2lkIHNldENvbnRlbnRMYW5ndWFnZShj
b25zdCBTdHJpbmcmIGxhbmcpIHsgbV9jb250ZW50TGFuZ3VhZ2UgPSBsYW5nOyB9CisgICAgdm9p
ZCBzZXRDb250ZW50TGFuZ3VhZ2UoY29uc3QgU3RyaW5nJik7CiAKICAgICBTdHJpbmcgeG1sRW5j
b2RpbmcoKSBjb25zdCB7IHJldHVybiBtX3htbEVuY29kaW5nOyB9CiAgICAgU3RyaW5nIHhtbFZl
cnNpb24oKSBjb25zdCB7IHJldHVybiBtX3htbFZlcnNpb247IH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNWI4YTgwZTRj
MDJkNDFmZDY3ZGMyNzQzYTVhNmM0Y2E4NmM2ZjIwLi4yOWY4ODQwZDg1NWM5NjMzNjRhNTg0ZDAz
MmVlZGE3NjFmZDQ1OWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMDEtMzAgIE1hdHQg
RmFsa2VuaGFnZW4gIDxmYWxrZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVzZSBjb250ZW50
LWxhbmd1YWdlIGZyb20gaHR0cC1lcXVpdiB0byBzZXQgZG9jdW1lbnQgbG9jYWxlIGFuZCBmb250
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0
cyB0aGF0IGNvbnRlbnQtbGFuZ3VhZ2UgZnJvbSBodHRwLWVxdWl2IHNldHMgZG9jdW1lbnQgbG9j
YWxlIGFuZCBpcyB1c2VkIGluIGZvbnQgc2VsZWN0aW9uLgorCisgICAgICAgICogZmFzdC90ZXh0
L2NvbnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBl
ZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC90
ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250
LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1z
dWJ0YWdzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC9pbnRlcm5h
dGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS54aHRtbDog
Rml4IHNvbWUgc3R5bGUgaXNzdWVzLgorICAgICAgICAqIGZhc3QvdGV4dC94bWwtbGFuZy1pZ25v
cmVkLWluLWh0bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvdGV4dC94bWwtbGFuZy1p
Z25vcmVkLWluLWh0bWwuaHRtbDogRml4IHNvbWUgc3R5bGUgaXNzdWVzLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9Ta2lwcGVkOiBTa2lwIHRlc3RzIHVzaW5nIG92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0KkZvbnRNYXAiLi4uKSBvbiBub24tQ2hyb21pdW0gcG9ydHMuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrLXdrMi9Ta2lwcGVkOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tp
cHBlZDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Ta2lwcGVkOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDogRGl0dG8uCisKIDIwMTItMDEt
MjkgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gVW5yZXZpZXdlZCB0ZXN0IGV4cGVjdGF0aW9uIGNoYW5nZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0eS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1jYXNlLWlu
c2Vuc2l0aXZpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMGI0ZGI2NTQ5ZDBhMjdiN2U3
YWVhZjM0ZjM4YjQyYmQyMjkwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvY29udGVudC1sYW5ndWFnZS1jYXNlLWluc2Vuc2l0aXZpdHktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorVGVzdCBmb3IgYnVnIDc2NzAxOiBtYXAgY29udGVudC1sYW5ndWFnZSB0
byAtd2Via2l0LWxvY2FsZS4gVGhpcyBwYXJ0aWN1bGFyIHRlc3QgdGVzdHMgdGhhdCB0aGUgbWF0
Y2hpbmcgb2YgdGhlIGh0dHAtZXF1aXYgYXR0cmlidXRlIHRvIHRoZSBjb250ZW50LWxhbmd1YWdl
IHN0YXRlIGlzIGNhc2UgaW5zZW5zaXRpdmUuCisKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3gxJykg
aXMgImphLUpQIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdl
LWNhc2UtaW5zZW5zaXRpdml0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQt
bGFuZ3VhZ2UtY2FzZS1pbnNlbnNpdGl2aXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk3NWJmMzFlZDJj
NDFjN2NhYTk5NDhjYTZkOWQ3Yjk2NDIwNDQ2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLWNhc2UtaW5zZW5zaXRpdml0eS5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJjT050RU5ULUxB
bmd1QUdFIiBjb250ZW50PSJqYS1KUCI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVz
dCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2
NzAxIj5idWcgNzY3MDE8L2E+OgorbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdlYmtpdC1sb2Nh
bGUuIFRoaXMgcGFydGljdWxhciB0ZXN0IHRlc3RzIHRoYXQgdGhlCittYXRjaGluZyBvZiB0aGUg
aHR0cC1lcXVpdiBhdHRyaWJ1dGUgdG8gdGhlIGNvbnRlbnQtbGFuZ3VhZ2Ugc3RhdGUgaXMgY2Fz
ZQoraW5zZW5zaXRpdmUuCis8L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9
IngxIi8+Cis8c2NyaXB0PgorZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOworfQorc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJqYS1KUCIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQtbGFuZ3VhZ2UtbWFwcGVkLXRvLXdl
YmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2NvbnRlbnQt
bGFuZ3VhZ2UtbWFwcGVkLXRvLXdlYmtpdC1sb2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdjNzkwNzgwODQwMjAwNThjMjQ0MTc2ZmM5ZTQ2ZDQ3OGY4YThhMWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Vi
a2l0LWxvY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IGZvciBidWcgNzY3
MDE6IG1hcCBjb250ZW50LWxhbmd1YWdlIHRvIC13ZWJraXQtbG9jYWxlLgorCitQQVNTIGxhbmd1
YWdlT2ZOb2RlKCd4MScpIGlzICJ6aC1DTiIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ20xJykgaXMg
ImFyIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9jb250ZW50LWxhbmd1YWdlLW1hcHBl
ZC10by13ZWJraXQtbG9jYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1s
YW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNjFlYTEw
Nzc5MDMwZDRlM2VkZTQ1NjEwZWUxMGM5ZTRmNTQ5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvY29udGVudC1sYW5ndWFnZS1tYXBwZWQtdG8td2Via2l0LWxvY2Fs
ZS5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJj
b250ZW50LWxhbmd1YWdlIiBjb250ZW50PSJ6aC1DTiI+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc2NzAxIj5idWcgNzY3MDE8L2E+OgorbWFwIGNvbnRlbnQtbGFuZ3VhZ2UgdG8gLXdl
YmtpdC1sb2NhbGUuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJ4MSIv
PgorPGRpdiBsYW5nPSJhciIgaWQ9Im0xIi8+Cis8c2NyaXB0PgorZnVuY3Rpb24gbGFuZ3VhZ2VP
Zk5vZGUoaWQpIHsKKyAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk
KTsKKyAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9j
YWxlOworfQorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgneDEnKSIsICJ6
aC1DTiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgnbTEnKSIsICJh
ciIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9u
YWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVj
dGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmNmRiNzVjNGZmOTA1NzNlYjAyMzUyMDg0
NjVmN2UzNmIxNDNmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
aW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgZm9udCBzZWxl
Y3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBz
dHlsZT0iZm9udC1mYW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGluIEFoZW0gZm9udC4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2UtZm9udC1zZWxlY3Rpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MDY3MjE2NDUzNDkxMDkyOGZmOGJjOTMyMzdjMTQwOWY2MTViNDI3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29u
dGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtbGFu
Z3VhZ2UiIGNvbnRlbnQ9InpoLVRXIj4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0U3RhbmRhcmRGb250TWFwIiwgWyAiSGFudCIsICJBaGVtIiBdKTsKKzwvc2NyaXB0Pgor
PHRpdGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzwhLS0gVGhpcyB0ZXN0cyBmb250IHNlbGVjdGlvbiBiYXNl
ZCBvbiBjb250ZW50LWxhbmd1YWdlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzY3MDE+LiBUaGUgdGV4dCBzaG91bGQgYmUgaW4gQWhlbSBmb250LiAtLT4KK1RoaXMg
aXMgaW4gQWhlbSBmb250LgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS13aXRoLXN1YnRhZ3Mt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRl
bnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY2ZGI3
NWM0ZmY5MDU3M2ViMDIzNTIwODQ2NWY3ZTM2YjE0M2Y0OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1z
dWJ0YWdzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHRp
dGxlPlRlc3QgZm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZTwvdGl0bGU+
Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6ICdBaGVtJyI+CitUaGlzIGlzIGlu
IEFoZW0gZm9udC4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdp
dGgtc3VidGFncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YmU2YTZmNjRmYWExMTgyNzY2NzI0YmE1MzYw
YjMwNzYxNjYwOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCkBAIC0wLDAgKzEs
MTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9
ImNvbnRlbnQtbGFuZ3VhZ2UiIGNvbnRlbnQ9InpoX3R3X2Zvb2JhciI+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdFN0YW5kYXJkRm9udE1hcCIsIFsgIkhhbnQiLCAiQWhl
bSIgXSk7Cis8L3NjcmlwdD4KKzx0aXRsZT5UZXN0IGZvbnQgc2VsZWN0aW9uIGJhc2VkIG9uIGNv
bnRlbnQtbGFuZ3VhZ2U8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8IS0tIFRoaXMgdGVzdHMg
Zm9udCBzZWxlY3Rpb24gYmFzZWQgb24gY29udGVudC1sYW5ndWFnZQorPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjcwMT4sIHdoZW4gY29udGVudC1sYW5ndWFnZSBo
YXMKK2V4dHJhIHN1YnRhZ3MuIFRoZSBsYW5ndWFnZSAiemhfdHdfZm9vYmFyIiBzaG91bGQgbWF0
Y2ggSGFuIFRyYWRpdGlvbmFsIHNjcmlwdCwKK3NvIHRoZSB0ZXh0IHNob3VsZCBiZSBpbiBBaGVt
IGZvbnQuIC0tPgorVGhpcyBpcyBpbiBBaGVtIGZvbnQuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2Fs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Vi
a2l0LWxvY2FsZS1leHBlY3RlZC50eHQKaW5kZXggZmE5MWIxOTY0MThkNGNhMzgxYzJiOTY2MzQ3
YTVkZWU0NjM1NmZiZi4uOWNjZmMzYzUyNjE2NWY2NWI0ODU0MWFlOTZlZjVlODNjNGVmNjQ1NSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2xhbmctbWFwcGVkLXRvLXdlYmtpdC1s
b2NhbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBl
ZC10by13ZWJraXQtbG9jYWxlLWV4cGVjdGVkLnR4dApAQCAtMSwyOCArMSwyOCBAQAogVGhpcyBp
cyBhIHRlc3QgZm9yIGJ1ZyA2NzU4Ni4gSFRNTCBhdHRyaWJ1dGVzIGxhbmcgYW5kIHhtbDpsYW5n
IGFyZSBtYXBwZWQgdG8gJy13ZWJraXQtbG9jYWxlJyB0byB1c2UgdGhlaXIgdmFsdWUgaW4gZm9u
dCBmYWxsYmFjay4KIAotUEFTUyBnZXRMYW5nT2ZOb2RlKCd4MScpIGlzICJqYSIKLVBBU1MgZ2V0
TGFuZ09mTm9kZSgneDInKSBpcyAiamEiCi1QQVNTIGdldExhbmdPZk5vZGUoJ3gzJykgaXMgImph
IgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdsMScpIGlzICJ6aCIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgn
bDInKSBpcyAiemgiCi1QQVNTIGdldExhbmdPZk5vZGUoJ2wzJykgaXMgInpoIgotUEFTUyBnZXRM
YW5nT2ZOb2RlKCdtMScpIGlzICJrbyIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbTInKSBpcyAiZnIi
Ci1QQVNTIGdldExhbmdPZk5vZGUoJ20zJykgaXMgImZyIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdu
MScpIGlzICJmciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbjInKSBpcyAiZnIiCi1QQVNTIGdldExh
bmdPZk5vZGUoJ24zJykgaXMgInN2IgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdwMScpIGlzICJqYSIK
LVBBU1MgZ2V0TGFuZ09mTm9kZSgncDInKSBpcyAiYXV0byIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgn
cTEnKSBpcyAiamEiCi1QQVNTIGdldExhbmdPZk5vZGUoJ3EyJykgaXMgImF1dG8iCi1QQVNTIGdl
dExhbmdPZk5vZGUoJ3EzJykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ3E0JykgaXMg
ImFyIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdxNScpIGlzICJhdXRvIgotUEFTUyBnZXRMYW5nT2ZO
b2RlKCdxNicpIGlzICInICAnIgotUEFTUyBnZXRMYW5nT2ZOb2RlKCdxNycpIGlzICJhdXRvIgot
UEFTUyBnZXRMYW5nT2ZOb2RlKCdxOCcpIGlzICJ4eXp6eSIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgn
cTknKSBpcyAiJ11bO11bWyciCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCd4MScpIGlzICJqYSIKK1BB
U1MgbGFuZ3VhZ2VPZk5vZGUoJ3gyJykgaXMgImphIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgneDMn
KSBpcyAiamEiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdsMScpIGlzICJ6aCIKK1BBU1MgbGFuZ3Vh
Z2VPZk5vZGUoJ2wyJykgaXMgInpoIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbDMnKSBpcyAiemgi
CitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdtMScpIGlzICJrbyIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUo
J20yJykgaXMgImZyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbTMnKSBpcyAiZnIiCitQQVNTIGxh
bmd1YWdlT2ZOb2RlKCduMScpIGlzICJmciIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ24yJykgaXMg
ImZyIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgnbjMnKSBpcyAic3YiCitQQVNTIGxhbmd1YWdlT2ZO
b2RlKCdwMScpIGlzICJqYSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3AyJykgaXMgImF1dG8iCitQ
QVNTIGxhbmd1YWdlT2ZOb2RlKCdxMScpIGlzICJqYSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3Ey
JykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxMycpIGlzICJhdXRvIgorUEFTUyBs
YW5ndWFnZU9mTm9kZSgncTQnKSBpcyAiYXIiCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxNScpIGlz
ICJhdXRvIgorUEFTUyBsYW5ndWFnZU9mTm9kZSgncTYnKSBpcyAiJyAgJyIKK1BBU1MgbGFuZ3Vh
Z2VPZk5vZGUoJ3E3JykgaXMgImF1dG8iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdxOCcpIGlzICJ4
eXp6eSIKK1BBU1MgbGFuZ3VhZ2VPZk5vZGUoJ3E5JykgaXMgIiddWztdW1snIgogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvbGFuZy1tYXBwZWQtdG8td2Via2l0LWxvY2FsZS54aHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCmlu
ZGV4IDU5ZTFmNjk5ODg5ZmEyNzk1ODY0YzgyY2U0MDc2MTIzMTZlNWI4MWEuLjM0ZWU3NWFlMWY4
ODA2N2Q4NDNkNjM5NGM3NzI1Y2VkNzE0Y2FmN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9sYW5nLW1hcHBlZC10by13ZWJraXQtbG9jYWxlLnhodG1sCkBAIC0yNCwz
MyArMjQsMzMgQEAKICAgICA8ZGl2IGxhbmc9Il1bO11bWyIgaWQ9InE5Ij48L2Rpdj4KIDwvZGl2
PgogPHNjcmlwdD4KLWZ1bmN0aW9uIGdldExhbmdPZk5vZGUobikgewotICAgIGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChuKTsKLSAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZSkud2Via2l0TG9jYWxlOworZnVuY3Rpb24gbGFuZ3VhZ2VPZk5vZGUoaWQpIHsKKyAgICB2YXIg
ZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICByZXR1cm4gd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkud2Via2l0TG9jYWxlOwogfQotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCd4MScpIiwgImphIik7Ci1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldExhbmdPZk5vZGUoJ3gyJykiLCAiamEiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZ2V0TGFuZ09mTm9kZSgneDMnKSIsICJqYSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJn
ZXRMYW5nT2ZOb2RlKCdsMScpIiwgInpoIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ2wyJykiLCAiemgiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09m
Tm9kZSgnbDMnKSIsICJ6aCIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2Rl
KCdtMScpIiwgImtvIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ20y
JykiLCAiZnIiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTMnKSIs
ICJmciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCduMScpIiwgImZy
Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ24yJykiLCAiZnIiKTsK
LXNob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbjMnKSIsICJzdiIpOwotc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdwMScpIiwgImphIik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3AyJykiLCAiYXV0byIpOwotc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxMScpIiwgImphIik7Ci1zaG91bGRCZUVxdWFs
VG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ3EyJykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdxMycpIiwgImF1dG8iKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygiZ2V0TGFuZ09mTm9kZSgncTQnKSIsICJhciIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJnZXRMYW5nT2ZOb2RlKCdxNScpIiwgImF1dG8iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygi
Z2V0TGFuZ09mTm9kZSgncTYnKSIsICInICAnIik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdl
dExhbmdPZk5vZGUoJ3E3JykiLCAiYXV0byIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRM
YW5nT2ZOb2RlKCdxOCcpIiwgInh5enp5Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldExh
bmdPZk5vZGUoJ3E5JykiLCAiJ11bO11bWyciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFu
Z3VhZ2VPZk5vZGUoJ3gxJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3Vh
Z2VPZk5vZGUoJ3gyJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VP
Zk5vZGUoJ3gzJykiLCAiamEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5v
ZGUoJ2wxJykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUo
J2wyJykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ2wz
JykiLCAiemgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20xJyki
LCAia28iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20yJykiLCAi
ZnIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ20zJykiLCAiZnIi
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24xJykiLCAiZnIiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24yJykiLCAiZnIiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24zJykiLCAic3YiKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3AxJykiLCAiamEiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3AyJykiLCAiYXV0byIpOworc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTEnKSIsICJqYSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJsYW5ndWFnZU9mTm9kZSgncTInKSIsICJhdXRvIik7CitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdxMycpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3E0JykiLCAiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygibGFuZ3VhZ2VPZk5vZGUoJ3E1JykiLCAiYXV0byIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJsYW5ndWFnZU9mTm9kZSgncTYnKSIsICInICAnIik7CitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImxhbmd1YWdlT2ZOb2RlKCdxNycpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFuZ3VhZ2VPZk5vZGUoJ3E4JykiLCAieHl6enkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFuZ3VhZ2VPZk5vZGUoJ3E5JykiLCAiJ11bO11bWyciKTsKIAogdmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC94bWwtbGFuZy1pZ25vcmVkLWluLWh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3RlZC50eHQKaW5kZXggMmMy
ODczN2ZiOTQ0YmNmZWI5ZWRkNDZlNmNmY2JlYTEwM2ZmNWJhZi4uNTllNmJkZGMyZjZkYjc2MzNm
N2JiODIzZjA0Yjk3Yzg3Y2QyMjc2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4taHRtbC1leHBlY3RlZC50eHQKQEAgLTEsOSAr
MSw5IEBACiBUaGlzIHRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0ZSBpbiBubyBuYW1lc3BhY2Ugd2l0
aCBubyBwcmVmaXggYW5kIHdpdGggdGhlIGxpdGVyYWwgbG9jYWxuYW1lICJ4bWw6bGFuZyIgaXMg
aWdub3JlZCBpbiBIVE1MLiBTZWUgYnVnIDY3NTg2LgogCi1QQVNTIGdldExhbmdPZk5vZGUoJ20x
JykgaXMgImF1dG8iCi1QQVNTIGdldExhbmdPZk5vZGUoJ24xJykgaXMgImtvIgotUEFTUyBnZXRM
YW5nT2ZOb2RlKCdvMScpIGlzICJhciIKLVBBU1MgZ2V0TGFuZ09mTm9kZSgnbzInKSBpcyAiYXIi
CitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdtMScpIGlzICJhdXRvIgorUEFTUyBsYW5ndWFnZU9mTm9k
ZSgnbjEnKSBpcyAia28iCitQQVNTIGxhbmd1YWdlT2ZOb2RlKCdvMScpIGlzICJhciIKK1BBU1Mg
bGFuZ3VhZ2VPZk5vZGUoJ28yJykgaXMgImFyIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
eG1sLWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQveG1s
LWxhbmctaWdub3JlZC1pbi1odG1sLmh0bWwKaW5kZXggZWQ4YTNjNDQ0ODcyMjAzNzNkODBkNGUx
OWE3OGI1MjFjNTdlZDNkMy4uNGIzN2UyODM3NGZjNWYzMzc5NWY4MGRhMzI5YTcwMTUxM2NjYWFi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3htbC1sYW5nLWlnbm9yZWQtaW4t
aHRtbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC94bWwtbGFuZy1pZ25vcmVkLWlu
LWh0bWwuaHRtbApAQCAtMSwyNCArMSwyNCBAQAogPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgogPGhlYWQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyIgLz4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KIDxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJv
ZHk+CiA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIGF0dHJpYnV0ZSBpbiBubyBuYW1lc3BhY2Ugd2l0
aCBubyBwcmVmaXggYW5kIHdpdGggdGhlIGxpdGVyYWwgbG9jYWxuYW1lICJ4bWw6bGFuZyIgaXMg
aWdub3JlZCBpbiBIVE1MLiBTZWUKIDxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnL2IvNjc1ODYi
PmJ1ZyA2NzU4NjwvYT4uPC9wPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08ZGl2IHhtbDps
YW5nPSJhciIgaWQ9Im0xIj48L2Rpdj48L2Rpdj4KKzxkaXYgeG1sOmxhbmc9ImFyIiBpZD0ibTEi
PjwvZGl2PgogPGRpdiBsYW5nPSJrbyI+PGRpdiB4bWw6bGFuZz0iYXIiIGlkPSJuMSI+PC9kaXY+
PC9kaXY+CiA8ZGl2IGxhbmc9ImFyIiBpZD0ibzEiPjxkaXYgeG1sOmxhbmc9IiIgaWQ9Im8yIj48
L2Rpdj48L2Rpdj4KIDxzY3JpcHQ+Ci1mdW5jdGlvbiBnZXRMYW5nT2ZOb2RlKG4pIHsKLSAgICBl
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobik7Ci0gICAgcmV0dXJuIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGUpLndlYmtpdExvY2FsZTsKK2Z1bmN0aW9uIGxhbmd1YWdlT2ZOb2RlKGlkKSB7
CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgcmV0
dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLndlYmtpdExvY2FsZTsKIH0KLXNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbTEnKSIsICJhdXRvIik7Ci1zaG91
bGRCZUVxdWFsVG9TdHJpbmcoImdldExhbmdPZk5vZGUoJ24xJykiLCAia28iKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0TGFuZ09mTm9kZSgnbzEnKSIsICJhciIpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJnZXRMYW5nT2ZOb2RlKCdvMicpIiwgImFyIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImxhbmd1YWdlT2ZOb2RlKCdtMScpIiwgImF1dG8iKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygibGFuZ3VhZ2VPZk5vZGUoJ24xJykiLCAia28iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGFuZ3VhZ2VPZk5vZGUoJ28xJykiLCAiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
bGFuZ3VhZ2VPZk5vZGUoJ28yJykiLCAiYXIiKTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggMTNmZmNmMmE4
Nzc0NjcwODc4NDFhYWFlZGFiMDgyMDQyOTEzOGJjZC4uZDlhNjYxYzQxYTVlZmI2Y2EzZjljYmY2
MzBkNzJjYjdkZmQ4NjEzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAgLTcxOCw2ICs3
MTgsOCBAQCBmYXN0L3BhcnNlci9ub3NjcmlwdC13aXRoLWphdmFzY3JpcHQtZW5hYmxlZC5odG1s
CiBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1sCiBmYXN0L3JlcGFpbnQv
bm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKIGZh
c3Qvc3BhdGlhbC1uYXZpZ2F0aW9uCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxh
bmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRl
bnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2xv
Y2FsZS1zZW5zaXRpdmUtZm9udHMuaHRtbAogZmFzdC90ZXh0L3plcm8tZm9udC1zaXplLmh0bWwK
IGZhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIv
U2tpcHBlZAppbmRleCAwOWJjN2VhNjJhYzdjYjBjN2QyZDJhMDhkZDA5ZjI1ODk0OGU3ZmY2Li5i
NTFlNjllYzljY2VhZGEzOGMyOTEyN2Y3NDNlYTY4YmRlYjIyYjU2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrLXdrMi9Ta2lwcGVkCkBAIC0yMDgsNiArMjA4LDggQEAgZmFzdC9ldmVudHMvd2hlZWxl
dmVudC1kaXJlY3Rpb24taW52ZXJ0ZWQtZnJvbS1kZXZpY2UuaHRtbAogCiAjIFdlYktpdDIgbmVl
ZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjE5NworZmFzdC90ZXh0L2ludGVybmF0aW9u
YWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBmYXN0L3RleHQvaW50
ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIGZhc3QvcmVwYWludC9uby1j
YXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50LWVkaXRhYmxlLWVsZW1lbnQuaHRtbAogZWRpdGlu
Zy9zZWxlY3Rpb24vY2FyZXQtbW9kZS1wYXJhZ3JhcGgta2V5cy1uYXZpZ2F0aW9uLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggNmVmMzM3MGQ0NWJlNTIzNzMyNWZhZDQxMTlkMWI1
NDY4MDQzZTFkMy4uZTIzY2Q5Nzk5Mjg3MmVlM2QxMTA0OTkyOWI1NWMwYjE0MjcxOTFiNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTM3Myw2ICszNzMsOCBAQCBmYXN0L211dGF0aW9u
CiAKICMgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXQqRm9u
dE1hcCIuLi4pIGlzIG5vdAogIyBzdXBwb3J0ZWQuCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9j
b250ZW50LWxhbmd1YWdlLWZvbnQtc2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlv
bmFsL2NvbnRlbnQtbGFuZ3VhZ2Utd2l0aC1zdWJ0YWdzLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5h
dGlvbmFsL2xvY2FsZS1zZW5zaXRpdmUtZm9udHMuaHRtbAogCiAjIE5lZWRzIGxheW91dFRlc3RD
b250cm9sbGVyLmVuYWJsZUF1dG9SZXNpemVNb2RlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
aW5kZXggNzgzM2VhOTYzMTU4MWE0MGQxOTFkMWU5MjE1YjFlNTQ5ZTlkZDJlNC4uMjY4YjA1NjM1
ZTBiNzEyMzJjYWIxM2U1MGExMDU1NmU2ZDVlNGNhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKQEAgLTQ5MSw2ICs0OTEsOCBAQCBmYXN0L2NhbnZhcy93ZWJnbC91bmlmb3JtLWxvY2F0aW9u
LWxlbmd0aC1saW1pdHMuaHRtbAogZmFzdC9yZXBhaW50L3RhYmxlLWV4dHJhLWJvdHRvbS1ncm93
Lmh0bWwKIAogIyBEUlQgZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
KkZvbnRNYXAiLi4uKQorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1m
b250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1
YWdlLXdpdGgtc3VidGFncy5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vu
c2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0IGVuYWJsZWQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCBmY2Q5ZDA0MTY3ZWQ4ZmFmZDJiMjgwM2E0NzliZGI1
MzY0ZmNlZTEzLi4xODhmYTVmYzAxNzAxZmI1MGY4NmVkYjMwZTA3NTU5Nzc2NzIxNTIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTk4Myw2ICs5ODMsOCBAQCBqYXZhCiAKICMgTWlzc2lu
ZyBEUlQgYWJpbGl0eSB0byBvdmVycmlkZSAnc3RhbmRhcmQnIHByZWZlcmVuY2VzLgogZmFzdC9k
b20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAorZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBm
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0bWwKIGxvYWRl
ci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKaW5kZXggOWQ2MDdhMjdkMmRkMzk2M2I3MmE2NTdkZDJkNDE1N2EwYjU4YWM4OC4u
NGFiYTBiZDEwZmNkMWY5MjVlZDdiNDk2MGU5NzM0YjgxYjE5MDk5NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKQEAgLTE0OTEsNiArMTQ5MSw4IEBAIGZhc3QvZXZlbnRzL3BsYXRmb3JtLXdo
ZWVsZXZlbnQtcGFnaW5nLXktaW4tc2Nyb2xsaW5nLWRpdi5odG1sCiBmYXN0L2V2ZW50cy9wbGF0
Zm9ybS13aGVlbGV2ZW50LXBhZ2luZy15LWluLXNjcm9sbGluZy1wYWdlLmh0bWwKIAogIyBEUlQg
ZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0KkZvbnRNYXAiLi4uKQor
ZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFnZS1mb250LXNlbGVjdGlvbi5o
dG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLXdpdGgtc3VidGFn
cy5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUtc2Vuc2l0aXZlLWZvbnRzLmh0
bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0IGVuYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vU2tpcHBlZAppbmRleCBjNjA3MjY5ZDJhMDI2Y2IzMjRkYTc0N2IwZjY2YzY0NmZl
NWMwMDM0Li45ZDY3ZDE4ZjhiNmFkMWM0ZjExYjg1YzYyZWM3MmE5NDM1NzQ0OGM5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKQEAgLTIwMjUsNiArMjAyNSw4IEBAIGZhc3Qv
ZXZlbnRzL3BsYXRmb3JtLXdoZWVsZXZlbnQtcGFnaW5nLXktaW4tc2Nyb2xsaW5nLWRpdi5odG1s
CiBmYXN0L2V2ZW50cy9wbGF0Zm9ybS13aGVlbGV2ZW50LXBhZ2luZy15LWluLXNjcm9sbGluZy1w
YWdlLmh0bWwKIAogIyBEUlQgZG9lc24ndCBzdXBwb3J0IG92ZXJyaWRlUHJlZmVyZW5jZSgiV2Vi
S2l0KkZvbnRNYXAiLi4uKQorZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvY29udGVudC1sYW5ndWFn
ZS1mb250LXNlbGVjdGlvbi5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxh
bmd1YWdlLXdpdGgtc3VidGFncy5odG1sCiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9sb2NhbGUt
c2Vuc2l0aXZlLWZvbnRzLmh0bWwKIAogIyBXZWIgSW50ZW50cyBpcyBub3QgeWV0IGVuYWJsZWQu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4IGY2YWMzZGQxN2RkNTc2YTc0MGQ1YmI2MzIy
ZTFiMjljZjZjN2QxYjMuLjJlNTNkODQwM2YwYjFiNzgwODExMjNhZjQ5OGU2NjMwYTg4ZTk2Njcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBAIC0yOTAsNiArMjkwLDggQEAgZmFzdC9oYXJu
ZXNzL292ZXJyaWRlLXByZWZlcmVuY2VzLTIuaHRtbAogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lm
LXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sCiBmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWlu
dC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKIGZhc3QvdGV4dC96ZXJvLWZv
bnQtc2l6ZS5odG1sCitmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9jb250ZW50LWxhbmd1YWdlLWZv
bnQtc2VsZWN0aW9uLmh0bWwKK2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbnRlbnQtbGFuZ3Vh
Z2Utd2l0aC1zdWJ0YWdzLmh0bWwKIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2xvY2FsZS1zZW5z
aXRpdmUtZm9udHMuaHRtbAogY3NzMy9maWx0ZXJzL2VmZmVjdC1jb21iaW5lZC5odG1sCiBjc3Mz
L2ZpbHRlcnMvZmlsdGVyLXJlcGFpbnQuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>