<?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>203292</bug_id>
          
          <creation_ts>2019-10-23 07:45:24 -0700</creation_ts>
          <short_desc>Accessory bar next/previous buttons do not work on inputs in shadow roots</short_desc>
          <delta_ts>2021-02-02 02:09:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>Safari 13</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 13</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=203299</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Liam DeBeasi">ldebeasi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cyptus</cc>
    
    <cc>darin</cc>
    
    <cc>kasia</cc>
    
    <cc>niklasmerz</cc>
    
    <cc>rniwa</cc>
    
    <cc>Simanchal.sahu</cc>
    
    <cc>tetsuharu.ohzeki</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
    
    <cc>webkit</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582803</commentid>
    <comment_count>0</comment_count>
    <who name="Liam DeBeasi">ldebeasi</who>
    <bug_when>2019-10-23 07:45:24 -0700</bug_when>
    <thetext>Inputs that are slotted in shadow roots are not accessible via the next/previous buttons in the iOS Safari Accessory Bar.

Link to CodePen reproduction: https://codepen.io/liamdebeasi/pen/bGGqMpO

Steps to reproduce:

1. Open CodePen link on an iOS device (tested on iOS 12 and iOS 13).
2. Tap &quot;Light DOM Input 2&quot;. Notice that the next/previous buttons are active.
3. Tap &quot;Shadow DOM Input 2&quot;. Notice that the next/previous buttons are disabled.
4. Tap &quot;Shadow DOM Input 3&quot;. Notice that the next button is disabled, even though the next input is in the light DOM and the same form.


Expected Result:

I would expect to be able to use the next/previous buttons to jump between inputs regardless of whether or not the input is in the Shadow DOM.


Other Info:

Next/Previous buttons on inputs in the Shadow DOM behave as expected on Chrome for Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582878</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-23 10:45:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/56544829&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597124</commentid>
    <comment_count>2</comment_count>
    <who name="cyptus">cyptus</who>
    <bug_when>2019-12-10 01:09:30 -0800</bug_when>
    <thetext>can we get any attention here? this is quite a big issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608730</commentid>
    <comment_count>3</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2020-01-20 06:26:40 -0800</bug_when>
    <thetext>Can we provide anything to get this resolved? This is a pretty annoying usability bug for Ionic apps which typically use shadow DOM for all inputs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608938</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-01-20 23:25:49 -0800</bug_when>
    <thetext>I can reproduce the issue. It&apos;s just a matter of taking the time to fix the bug now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691027</commentid>
    <comment_count>5</comment_count>
    <who name="Luan Freitas">webkit</who>
    <bug_when>2020-09-22 21:44:15 -0700</bug_when>
    <thetext>I know it sucks to be asking. But do we have any predictions? Even how far? Middle 2021, maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691029</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-09-22 22:02:06 -0700</bug_when>
    <thetext>If someone can point out a major website which gets affected by this bug, that would help us prioritize it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691030</commentid>
    <comment_count>7</comment_count>
    <who name="cyptus">cyptus</who>
    <bug_when>2020-09-22 22:31:34 -0700</bug_when>
    <thetext>The whole ionic framework (https://ionicframework.com/) and every app that is build for iOS or visited by safari is affected by this bug.

Here is an offical list of major ionic customers who build their apps with this framework:
https://ionicframework.com/customers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691039</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-09-22 23:11:10 -0700</bug_when>
    <thetext>(In reply to cyptus from comment #7)
&gt; The whole ionic framework (https://ionicframework.com/) and every app that
&gt; is build for iOS or visited by safari is affected by this bug.
&gt; 
&gt; Here is an offical list of major ionic customers who build their apps with
&gt; this framework:
&gt; https://ionicframework.com/customers

Rather than saying every app is affected, saying X doesn&apos;t work in app Y would be useful. Apple&apos;s way of prioritizing things rely heavily on data &amp; exact user impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691041</commentid>
    <comment_count>9</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2020-09-22 23:56:36 -0700</bug_when>
    <thetext>I can give an example how this affects our app. We are working on an enterprise app with many different forms with lots of inputs item. Imagine a for where you enter contact information like: name, company, street, city etc. Most of our forms have can have dozens intputs as a list. So the user enters the first input an enters information. No they click on the up and down arrows of the accessory bar of the keyboard and nothing happens. Users would expect the focus cursor to jump to the next input just below.

Apps that use Ionic just like ours all will have this problem for their forms, because Ionic uses shadow DOM for almost all their components. An Ionic input element is using shadow DOM and may be one of the most used components because it styles an HTML input just like a native input. That&apos;s why Ionic is popular for app devs and probably many enterprise CRUD apps that work like ours with many input fields in forms.

I hope that gives a perspective. Fixing this would really improve the UX of apps built with Ionic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691044</commentid>
    <comment_count>10</comment_count>
    <who name="cyptus">cyptus</who>
    <bug_when>2020-09-23 00:12:16 -0700</bug_when>
    <thetext>Referred to the ionic customers link i provided, please download the app &quot;UNTAPPD&quot; on any iOS device (https://apps.apple.com/de/app/untappd-discover-beer/id449141888).

- Open the app and click on the bottom link &quot;No Account? Register&quot;.
- A form will be shown to register your new account.
- iOS keyboard does not provide any option to switch between the input fields, the user needs to click manually on them for each input.

Screenshot: https://abload.de/img/ios-shadowdom-forms-bl1kor.jpg

See the same behavior in the example initially provided by Liam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691517</commentid>
    <comment_count>11</comment_count>
    <who name="Simanchal Sahu">Simanchal.sahu</who>
    <bug_when>2020-09-24 07:46:31 -0700</bug_when>
    <thetext>Amtrak is currently in the process of upgrading our mobile application that is built with the Ionic Framework. With the latest upgrade including support for the Shadow Dom, this has interfered with the functionality of the accessory bar buttons to navigate forms effectively on iOS. The Amtrak app powers our entire customer facing native experience and with users filling out forms constantly for ticket purchases, the disruption from a typical iOS app flow can cause a significant impact in terms of usability as well as customer satisfaction and retention.

This is a key issue for the ADA community which is one of the top priority for Amtrak in addition to millions of other users.

We would love to see this issue resolved quickly to reduce the impact that this bug has on our app, as well as improve the overall iOS experience for our customers.

We would highly appreciate if this can be resolved at the earliest.


Thanks,
Simanchal Sahu, Sr Principal Technologist
Customer, Architecture and Platform Services - CAPS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691780</commentid>
    <comment_count>12</comment_count>
      <attachid>409657</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-09-24 22:44:00 -0700</bug_when>
    <thetext>Created attachment 409657
WIP

I think this will do the trick but need to find a time to write a test &amp; verify that it actually fixes the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691782</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-09-24 22:45:41 -0700</bug_when>
    <thetext>Wensons says:
On UIScriptController, there’s:
undefined keyboardAccessoryBarNext();
undefined keyboardAccessoryBarPrevious();
These call WKWebView SPI that directly call into -accessoryTab: (edited) 

So that&apos;s how I&apos;d write a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694729</commentid>
    <comment_count>14</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-05 09:32:20 -0700</bug_when>
    <thetext>I&apos;ll try to write a test for this.

Ryosuke, are there any others to need to work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695983</commentid>
    <comment_count>15</comment_count>
      <attachid>410867</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-08 11:56:31 -0700</bug_when>
    <thetext>Created attachment 410867
Patch

I added tests on the top of Ryosuke&apos;s original fix and format the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696051</commentid>
    <comment_count>16</comment_count>
      <attachid>410867</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-08 15:28:48 -0700</bug_when>
    <thetext>Comment on attachment 410867
Patch

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

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:61
&gt; +    this
&gt; +        .attachShadow({ mode: &apos;open&apos; })
&gt; +        .innerHTML = &apos;&lt;p&gt;&lt;slot&gt;&lt;/slot&gt;&lt;/p&gt;&apos;;  

Can we just fit this in a single line?

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:72
&gt; +    this
&gt; +        .attachShadow({ mode: &apos;closed&apos; })
&gt; +        .innerHTML = &apos;&lt;p&gt;&lt;slot&gt;&lt;/slot&gt;&lt;/p&gt;&apos;;  

Ditto.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:78
&gt; +function moveToNextElement() {
&gt; +    return new Promise((resolve) =&gt; {

Hm... can we add this function to UIHelper in ui-helper.js?
Maybe call it moveToNextByKeyboardAccessoryBar.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:86
&gt; +function moveToPrevElement() {

Ditto.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:96
&gt; +if (window.testRunner) {
&gt; +    description(&apos;Test that Accessory bar next/previous buttons work on inputs in shadow roots&apos;);

Please add an instruction on how to test this manually in a browser.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:98
&gt; +    const runTest = async () =&gt; {

Can we define this outside if?

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:112
&gt; +                shouldBe(() =&gt; document.activeElement.getAttribute(&apos;placeholder&apos;), () =&gt; element.getAttribute(&apos;placeholder&apos;));

shouldBe doesn&apos;t take functions. They take strings to be eval&apos;ed.

Can we mirror tests like negative-tabindex-on-shadow-host and just log the element which got focus?
This will allow easier manual testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696230</commentid>
    <comment_count>17</comment_count>
      <attachid>410941</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-09 09:18:14 -0700</bug_when>
    <thetext>Created attachment 410941
Patch

I moved testcases to under LayoutTests/platform/ios/ios/. I&apos;ll address points reviewed by Ryosuke in the next patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696277</commentid>
    <comment_count>18</comment_count>
      <attachid>410953</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-09 11:16:32 -0700</bug_when>
    <thetext>Created attachment 410953
Patch

I addressed reviewed points</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696278</commentid>
    <comment_count>19</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-09 11:17:17 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #16)
&gt; &gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:112
&gt; &gt; +                shouldBe(() =&gt; document.activeElement.getAttribute(&apos;placeholder&apos;), () =&gt; element.getAttribute(&apos;placeholder&apos;));
&gt; 
&gt; shouldBe doesn&apos;t take functions. They take strings to be eval&apos;ed.

If we don&apos;t pass a function, `shouldBe()` will fail by `ReferrenceError`. It cannot capture a block scupe variables...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696373</commentid>
    <comment_count>20</comment_count>
      <attachid>410953</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-09 15:01:41 -0700</bug_when>
    <thetext>Comment on attachment 410953
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Tests: platform/ios/ios/fast/shadow-dom/accessory-bar-work-on-input-in-shadow-roots.html
&gt; +               platform/ios/ios/fast/shadow-dom/accessory-bar-work-on-input-in-shadow-tree.html

This isn&apos;t right. We need to have this test under fast/shadow-dom/ios as you did in your original patch.

platform directories are supposed to only contain -expected.txt files going forward.

&gt; LayoutTests/platform/ios/ios/fast/shadow-dom/accessory-bar-work-on-input-in-shadow-roots.html:14
&gt; +        &lt;input type=&quot;text&quot; onfocus=&quot;logOnFocus(this)&quot; placeholder=&quot;0. Shadow DOM Input 0&quot;&gt;

Just do: Array.from(document.querySelectorAll(&apos;input&apos;)).forEach((input) =&gt; input.addEventListener(logOnFocus)).

We also need to test input elements inside a shadow tree, input elements hosts not assigned to any slot,
as well as non-input elements with negative, positive, and 0 tabIndex.

This is why I was suggesting earlier to model it over other existing tabindex tests.

&gt; LayoutTests/platform/ios/ios/fast/shadow-dom/accessory-bar-work-on-input-in-shadow-roots.html:59
&gt; +&lt;pre style=&quot;display: none&quot; id=&quot;console-for-manually&quot;&gt;&lt;/pre&gt;

It&apos;s okay for this element to exist even inside WebKitTestRunner. Just forget about display: none.
&quot;manually&quot; is an adverb, we need a noun there instead. We usually call this just &quot;log&quot; so: id=&quot;log&quot;.

&gt; LayoutTests/platform/ios/ios/fast/shadow-dom/accessory-bar-work-on-input-in-shadow-roots.html:130
&gt; +    consoleForManually.style.display = &apos;&apos;;

consoleForManually.style.display = null would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696687</commentid>
    <comment_count>21</comment_count>
      <attachid>411063</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-11 14:04:06 -0700</bug_when>
    <thetext>Created attachment 411063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696776</commentid>
    <comment_count>22</comment_count>
      <attachid>411063</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-11 19:30:17 -0700</bug_when>
    <thetext>Comment on attachment 411063
Patch

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

&gt; LayoutTests/platform/gtk/TestExpectations:650
&gt; +# These tests are for iOS&apos; accessory bar. Not for other ports.

The preferred pattern here is to skip this directory in the top level TestExpectations file and then set expectations of [Pass] in the iOS TestExpectations file.

Also part of the pattern is to do the expectation for the whole directory, not a file at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696873</commentid>
    <comment_count>23</comment_count>
      <attachid>411122</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-12 09:00:34 -0700</bug_when>
    <thetext>Created attachment 411122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696916</commentid>
    <comment_count>24</comment_count>
      <attachid>411122</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-12 10:37:52 -0700</bug_when>
    <thetext>Comment on attachment 411122
Patch

Waiting to see successful test results on iOS-wk2 EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697184</commentid>
    <comment_count>25</comment_count>
      <attachid>411122</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-13 00:04:01 -0700</bug_when>
    <thetext>Comment on attachment 411122
Patch

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

It&apos;s not great to split these tests into multiple files. Now not all the combinations are tested.
Also, it seems like once accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html becomes complete,
all other test files are sort of redundant.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-roots.html:130
&gt; +} else {
&gt; +    document.getElementById(&apos;console&apos;).style.display = &apos;none&apos;;
&gt; +}

Nit: not curly bracket around a single line statement:
https://webkit.org/code-style-guidelines/#braces-one-line

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-tree.html:33
&gt; +    this
&gt; +        .attachShadow({ mode: &apos;open&apos; })
&gt; +        .innerHTML = &apos;&lt;p&gt;&lt;input onfocus=&quot;logOnFocus(this)&quot; placeholder=&quot;1. input hosted by input-holder&quot;/&gt;&lt;/p&gt;&apos;;

Can we place attachShadow &amp; this in the same line?

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-tree.html:43
&gt; +    this
&gt; +        .attachShadow({ mode: &apos;open&apos; })

Ditto.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-in-shadow-tree.html:44
&gt; +        .innerHTML = &apos;&lt;input-holder&gt;&lt;/input-holder&gt;&apos;;

We should add another input before &amp; after this inner shadow host.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:22
&gt; +    &lt;input id=&quot;input-host-with-positive-tabindex&quot; tabindex=&quot;0&quot; onfocus=&quot;logOnFocus(this)&quot; placeholder=&quot;1. Shadow host with a positive tabindex&quot; /&gt;

Seems like we&apos;re missing setting tabIndex to positive &amp; negative values in the slotted content.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:45
&gt; +    &lt;slot&gt;&lt;/slot&gt;
&gt; +    &lt;input id=&quot;inside-shadow-host-with-positive-tabindex&quot; tabindex=&quot;0&quot; onfocus=&quot;logOnFocus(this)&quot; placeholder=&quot;2. Focusable element inside a shadow host with a positive tabindex&quot;/&gt;

It seems like we&apos;re missing a test case where set a positive &amp; negative tabIndex values inside a shadow tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700996</commentid>
    <comment_count>26</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-23 06:49:01 -0700</bug_when>
    <thetext>I&apos;m sorry to no reaction for a while.
I&apos;ll reply in this weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701311</commentid>
    <comment_count>27</comment_count>
      <attachid>412272</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-25 10:32:10 -0700</bug_when>
    <thetext>Created attachment 412272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701341</commentid>
    <comment_count>28</comment_count>
      <attachid>412272</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-25 17:24:07 -0700</bug_when>
    <thetext>Comment on attachment 412272
Patch

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

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:130
&gt; +class Testcase {
&gt; +    constructor(documentOrShadowRoot, inputGetter) {

It seems that we can just have a helper function that creates a simple dictionary instead of a class with a getter.
For tests, we should strive to make things as simple as possible because we don&apos;t want to be debugging test code.

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:145
&gt; +        new Testcase(document, (_) =&gt; document.getElementById(&apos;first&apos;)),

It seems this class is totally unnecessary.
Given we&apos;re not dynamically mutating the tree, we can simply compute the input element right here:
e.g. testCase(document, document.getElementById(&apos;first&apos;))

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:181
&gt; +    for (const [i, { documentOrShadowRoot, inputElement, }] of stack.entries()) {

Why not just start at i=1 instead?

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:196
&gt; +    for (let i = stack.length - 1; -1 &lt; i; --i) {
&gt; +        if (stack.length - 1 === i) {

Why not just start i = stack.length - 2?

&gt; LayoutTests/resources/ui-helper.js:1383
&gt; +    static moveToNextByKeyboardAccessoryBar() {

Nit: { should be on the next line.

&gt; LayoutTests/resources/ui-helper.js:1392
&gt; +    static moveToPrevByKeyboardAccessoryBar() {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701496</commentid>
    <comment_count>29</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-26 10:09:51 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #28)
&gt; Comment on attachment 412272 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412272&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:130
&gt; &gt; +class Testcase {
&gt; &gt; +    constructor(documentOrShadowRoot, inputGetter) {
&gt; 
&gt; It seems that we can just have a helper function that creates a simple
&gt; dictionary instead of a class with a getter.
&gt; For tests, we should strive to make things as simple as possible because we
&gt; don&apos;t want to be debugging test code.


As a viewpoint to simplify the tests, how do you think about change `runTest()` in this patch to following?:

```
async function runTest() {
    const NUMBER_OF_INPUT_ELEMENTS_SHOULD_BE_FOCUSED = 10;
    for (let i = 0; i &lt; NUMBER_OF_INPUT_ELEMENTS_SHOULD_BE_FOCUED; ++i) {
        await UIHelper.moveToNextByKeyboardAccessoryBar();        
    }

    for (let i = NUMBER_OF_INPUT_ELEMENTS_SHOULD_BE_FOCUED; -1 &lt; i; --i) {
        await UIHelper.moveToPrevByKeyboardAccessoryBar();
    }
}
```

I had thought this pattern is at first, but I also thought that 

1. this might be hard to debug failures in CI job.
2. this might be a oversimplified.


So I chose the current patch&apos;s approach.
What do you think about this?



&gt; &gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:181
&gt; &gt; +    for (const [i, { documentOrShadowRoot, inputElement, }] of stack.entries()) {
&gt; 
&gt; Why not just start at i=1 instead?

This is because my refactoring was not enough....


&gt; &gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:196
&gt; &gt; +    for (let i = stack.length - 1; -1 &lt; i; --i) {
&gt; &gt; +        if (stack.length - 1 === i) {
&gt; 


Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701544</commentid>
    <comment_count>30</comment_count>
      <attachid>412339</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-26 11:14:20 -0700</bug_when>
    <thetext>Created attachment 412339
Patch

I addressed the comment in the  comment #28</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701920</commentid>
    <comment_count>31</comment_count>
      <attachid>412433</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-27 09:47:53 -0700</bug_when>
    <thetext>Created attachment 412433
Patch

I rebased the patch on bug 218162.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701930</commentid>
    <comment_count>32</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-27 10:01:42 -0700</bug_when>
    <thetext>I presume Ryosuke wants to review the revised tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701935</commentid>
    <comment_count>33</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-27 10:04:39 -0700</bug_when>
    <thetext>I also think so.
I&apos;d like to hear Ryosuke&apos;s feedback about comment #29</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701947</commentid>
    <comment_count>34</comment_count>
      <attachid>412433</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-27 10:18:47 -0700</bug_when>
    <thetext>Comment on attachment 412433
Patch

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

New test looks good!

&gt; LayoutTests/fast/shadow-dom/ios/accessory-bar-work-on-input-with-tabindex-in-shadow-tree.html:206
&gt; +} else {
&gt; +    document.getElementById(&apos;console&apos;).style.display = &apos;none&apos;;
&gt; +}

Nit: no curly braces around a single line statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701950</commentid>
    <comment_count>35</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-27 10:23:26 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #34)
&gt; Comment on attachment 412433 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412433&amp;action=review
&gt; 
&gt; New test looks good!


Thank you!
Is &quot;New test&quot; the attachment 412433, or the proposal that I commented in comment #29?



&gt; Nit: no curly braces around a single line statement.

Oops. I&apos;ll address...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701958</commentid>
    <comment_count>36</comment_count>
      <attachid>412441</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-27 10:30:19 -0700</bug_when>
    <thetext>Created attachment 412441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701989</commentid>
    <comment_count>37</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-27 11:03:52 -0700</bug_when>
    <thetext>Did you also meant to set cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701992</commentid>
    <comment_count>38</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-27 11:08:39 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #37)
&gt; Did you also meant to set cq?

Ah, not yet.
I thought your feedback about #comment 35 will come and I was going to set cq? after that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702004</commentid>
    <comment_count>39</comment_count>
      <attachid>412441</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-10-27 11:33:14 -0700</bug_when>
    <thetext>Comment on attachment 412441
Patch

Great. Thanks for writing a test &amp; refining it many times!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702009</commentid>
    <comment_count>40</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-27 11:51:43 -0700</bug_when>
    <thetext>Committed r269059: &lt;https://trac.webkit.org/changeset/269059&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412441.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702230</commentid>
    <comment_count>41</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-10-27 22:42:24 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #39)

&gt; Great. Thanks for writing a test &amp; refining it many times!

You&apos;re welcome!
I also say thank you for your review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724576</commentid>
    <comment_count>42</comment_count>
    <who name="Niklas Merz">niklasmerz</who>
    <bug_when>2021-02-02 02:09:36 -0800</bug_when>
    <thetext>I just tested our app with iOS 14.5 Developer Beta and this issue is fixed.

Thank you all very much for this patch. This is a huge UX improvement for our users.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409657</attachid>
            <date>2020-09-24 22:44:00 -0700</date>
            <delta_ts>2020-09-24 22:44:00 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wip203292.patch</filename>
            <type>text/plain</type>
            <size>1343</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA2MmE5ZWE0MGNjY2Yu
LjJlM2NhNTg2N2I0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApA
QCAtNjY1LDE0ICs2NjUsMTQgQEAgRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNh
YmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0dXJu
IGEgbm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCBn
aXZlIHRoZSBjb3JyZWN0IGFuc3dlciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBhY2Nv
dW50IHNpbmNlIGl0IGRvZXNuJ3QgcGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gbmV4dEZvY3Vz
YWJsZUVsZW1lbnRPclNjb3BlT3duZXIoRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3Rh
cnQpLCAmc3RhcnQsIG51bGxwdHIpOworICAgIHJldHVybiBmaW5kRm9jdXNhYmxlRWxlbWVudEFj
cm9zc0ZvY3VzU2NvcGUoRm9jdXNEaXJlY3Rpb25Gb3J3YXJkLCBGb2N1c05hdmlnYXRpb25TY29w
ZTo6c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7CiB9CiAKIEVsZW1lbnQqIEZvY3Vz
Q29udHJvbGxlcjo6cHJldmlvdXNGb2N1c2FibGVFbGVtZW50KE5vZGUmIHN0YXJ0KQogewogICAg
IC8vIEZJWE1FOiBUaGlzIGNhbiByZXR1cm4gYSBub24tZm9jdXNhYmxlIHNoYWRvdyBob3N0Lgog
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGdpdmUgdGhlIGNvcnJlY3QgYW5zd2VyIHRoYXQgdGFr
ZXMgbW9kaWZpZXIga2V5cyBpbnRvIGFjY291bnQgc2luY2UgaXQgZG9lc24ndCBwYXNzIGFuIGV2
ZW50LgotICAgIHJldHVybiBwcmV2aW91c0ZvY3VzYWJsZUVsZW1lbnRPclNjb3BlT3duZXIoRm9j
dXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3RhcnQsIG51bGxwdHIpOworICAg
IHJldHVybiBmaW5kRm9jdXNhYmxlRWxlbWVudEFjcm9zc0ZvY3VzU2NvcGUoRm9jdXNEaXJlY3Rp
b25CYWNrd2FyZCwgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3RhcnQs
IG51bGxwdHIpOwogfQogCiBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVF
bGVtZW50T3JTY29wZU93bmVyKGNvbnN0IEZvY3VzTmF2aWdhdGlvblNjb3BlJiBzY29wZSwgTm9k
ZSogc3RhcnQsIEtleWJvYXJkRXZlbnQqIGV2ZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410867</attachid>
            <date>2020-10-08 11:56:31 -0700</date>
            <delta_ts>2020-10-09 09:18:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201009035629.patch</filename>
            <type>text/plain</type>
            <size>18195</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVmNWVkNTE0YTMwMzI5
YzM5NmVlMzYyOTYwOTUxMDRkNTAwZGRlNi4uYWMwMjYwZGE0NTUzOWE0YzFhZWQ1OTcyZjU1NzE4
NGIzNWE0NTVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LWluLXNoYWRvdy1yb290cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20v
aW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sCisKKyAg
ICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb2N1
c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZv
Y3VzQ29udHJvbGxlcjo6cHJldmlvdXNGb2N1c2FibGVFbGVtZW50KToKKwogMjAyMC0xMC0wNCAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0
aW9uXSBFbmFibGUgc29mdCBoeXBoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcAppbmRleCA2MmE5ZWE0MGNjY2ZiOGI1ZWNlMzg2YzYzNmU2MzZiY2IwM2Q5ODkzLi4yZTNj
YTU4NjdiNDVlZTAyZWJhMjY1Mzk1ODNhYTE4NGM5MDViMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC02NjUsMTQgKzY2NSwxNCBAQCBFbGVtZW50KiBGb2N1
c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVFbGVtZW50KE5vZGUmIHN0YXJ0KQogewogICAgIC8v
IEZJWE1FOiBUaGlzIGNhbiByZXR1cm4gYSBub24tZm9jdXNhYmxlIHNoYWRvdyBob3N0LgogICAg
IC8vIEZJWE1FOiBUaGlzIGNhbid0IGdpdmUgdGhlIGNvcnJlY3QgYW5zd2VyIHRoYXQgdGFrZXMg
bW9kaWZpZXIga2V5cyBpbnRvIGFjY291bnQgc2luY2UgaXQgZG9lc24ndCBwYXNzIGFuIGV2ZW50
LgotICAgIHJldHVybiBuZXh0Rm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihGb2N1c05hdmln
YXRpb25TY29wZTo6c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7CisgICAgcmV0dXJu
IGZpbmRGb2N1c2FibGVFbGVtZW50QWNyb3NzRm9jdXNTY29wZShGb2N1c0RpcmVjdGlvbkZvcndh
cmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRy
KTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZUVsZW1l
bnQoTm9kZSYgc3RhcnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVybiBhIG5vbi1m
b2N1c2FibGUgc2hhZG93IGhvc3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgZ2l2ZSB0aGUg
Y29ycmVjdCBhbnN3ZXIgdGhhdCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNjb3VudCBzaW5j
ZSBpdCBkb2Vzbid0IHBhc3MgYW4gZXZlbnQuCi0gICAgcmV0dXJuIHByZXZpb3VzRm9jdXNhYmxl
RWxlbWVudE9yU2NvcGVPd25lcihGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPZihzdGFydCks
ICZzdGFydCwgbnVsbHB0cik7CisgICAgcmV0dXJuIGZpbmRGb2N1c2FibGVFbGVtZW50QWNyb3Nz
Rm9jdXNTY29wZShGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLCBGb2N1c05hdmlnYXRpb25TY29wZTo6
c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7CiB9CiAKIEVsZW1lbnQqIEZvY3VzQ29u
dHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1lbnRPclNjb3BlT3duZXIoY29uc3QgRm9jdXNOYXZp
Z2F0aW9uU2NvcGUmIHNjb3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYTFiZjk1ODlkYmY4MjEyZmQyMDY5MzdkOTVlM2M2OTgzMGZlNmVjMC4uOWI3N2NlYTE3
NThmZGUzYmU5MWFhYmJhYmU4YmIwZWVmZjdmNjk2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDIwLTEwLTA4ICBUZXRzdWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+
CisKKyAgICAgICAgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdv
cmsgb24gaW5wdXRzIGluIHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXIt
d29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1z
aGFkb3ctcm9vdHMuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhpcyBpcyBiYXNlZCBvbiB0aGUg
YXR0YWNoZWQgdGVzdCBjYXNlIGZvciB0aGUgYnVnLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRv
bS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFy
LXdvcmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhp
cyB0ZXN0cyB0aGUgZm9jdXMgbW92ZSBieSBhY2Nlc3NvcnkgYmFyIGZvciBpbnB1dHMgaW4gc2hh
ZG93IHRyZWUuCisKIDIwMjAtMTAtMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gRW5hYmxlIHNvZnQgaHlwaGVuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1v
bi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3Rz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWFjNjhjOWVjZTczZWFkZjEzMjE3ZjhmMGRlNzY2
YzU2YWIxYzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkxIEBACisKKworCisKKworCisKKworCisKKworCisKKworVGVzdCB0
aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK2FjdGl2YXRlIDB0
aCBpbnB1dAorYWN0aXZhdGVkIDB0aCBpbnB1dAorZm9yd2FyZCB0byAxdGggaW5wdXQKK2RvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IFNoYWRvdyBET00gSW5w
dXQgMQorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxh
Y2Vob2xkZXInKSBpcyBTaGFkb3cgRE9NIElucHV0IDEKK2ZvcndhcmQgdG8gMnRoIGlucHV0Citk
b2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBTaGFkb3cgRE9N
IElucHV0IDIKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
J3BsYWNlaG9sZGVyJykgaXMgU2hhZG93IERPTSBJbnB1dCAyCitmb3J3YXJkIHRvIDN0aCBpbnB1
dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogTGlnaHQg
RE9NIElucHV0IDAKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoJ3BsYWNlaG9sZGVyJykgaXMgTGlnaHQgRE9NIElucHV0IDAKK2ZvcndhcmQgdG8gNHRoIGlu
cHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdo
dCBET00gSW5wdXQgMQorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgncGxhY2Vob2xkZXInKSBpcyBMaWdodCBET00gSW5wdXQgMQorZm9yd2FyZCB0byA1dGgg
aW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IExp
Z2h0IERPTSBJbnB1dCAyCitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIExpZ2h0IERPTSBJbnB1dCAyCitmb3J3YXJkIHRvIDZ0
aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTog
U2hhZG93IERPTSBJbnB1dCAzCitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIFNoYWRvdyBET00gSW5wdXQgMworZm9yd2FyZCB0
byA3dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6IFNoYWRvdyBET00gSW5wdXQgNAorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyBTaGFkb3cgRE9NIElucHV0IDQKK2Zvcndh
cmQgdG8gOHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0
cmlidXRlOiBTaGFkb3cgRE9NIElucHV0IDUKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgU2hhZG93IERPTSBJbnB1dCA1Citm
b3J3YXJkIHRvIDl0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogTGlnaHQgRE9NIElucHV0IDMKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgTGlnaHQgRE9NIElucHV0IDMK
K2ZvcndhcmQgdG8gMTB0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9s
ZGVyIGF0dHJpYnV0ZTogTGlnaHQgRE9NIElucHV0IDQKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgTGlnaHQgRE9NIElucHV0
IDQKK2ZvcndhcmQgdG8gMTF0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNl
aG9sZGVyIGF0dHJpYnV0ZTogTGlnaHQgRE9NIElucHV0IDUKK1BBU1MgKCkgPT4gZG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgTGlnaHQgRE9NIElu
cHV0IDUKK2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUg
dG8gdGhlIGZpcnN0IHJldmVyc2VseQorYmFjayB0byAxMHRoIGlucHV0Citkb2N1bWVudC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgNAorUEFT
UyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDQKK2Jh
Y2sgdG8gOXRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0
cmlidXRlOiBMaWdodCBET00gSW5wdXQgMworUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vo
b2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDMKK2JhY2sgdG8gOHRoIGlucHV0Citkb2N1bWVudC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBTaGFkb3cgRE9NIElucHV0IDUK
K1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIFNoYWRvdyBET00gSW5wdXQg
NQorYmFjayB0byA3dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRl
ciBhdHRyaWJ1dGU6IFNoYWRvdyBET00gSW5wdXQgNAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50
UGxhY2Vob2xkZXIgaXMgU2hhZG93IERPTSBJbnB1dCA0CitiYWNrIHRvIDZ0aCBpbnB1dAorZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogU2hhZG93IERPTSBJ
bnB1dCAzCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyBTaGFkb3cgRE9N
IElucHV0IDMKK2JhY2sgdG8gNXRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgMgorUEFTUyAoKSA9PiBhY3RpdmVF
bGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDIKK2JhY2sgdG8gNHRoIGlucHV0
Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBE
T00gSW5wdXQgMQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQg
RE9NIElucHV0IDEKK2JhY2sgdG8gM3RoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3Mg
cGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgMAorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDAKK2JhY2sgdG8gMnRoIGlu
cHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBTaGFk
b3cgRE9NIElucHV0IDIKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIFNo
YWRvdyBET00gSW5wdXQgMgorYmFjayB0byAxdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1l
bnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IFNoYWRvdyBET00gSW5wdXQgMQorUEFTUyAoKSA9
PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgU2hhZG93IERPTSBJbnB1dCAxCitiYWNrIHRv
IDB0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0
ZTogU2hhZG93IERPTSBJbnB1dCAwCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRl
ciBpcyBTaGFkb3cgRE9NIElucHV0IDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LWluLXNoYWRvdy1yb290cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNjgxOWRlNDIzODEzNzZiMzg1
OWYzOTRmMWIzYzMzMzk0MDAwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9v
dHMuaHRtbApAQCAtMCwwICsxLDE0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPGZvcm0+CisgICAgPGhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIg
cGxhY2Vob2xkZXI9IlNoYWRvdyBET00gSW5wdXQgMCI+CisgICAgPC9oZWxsby13b3JsZD4KKwor
ICAgIDxoZWxsby13b3JsZD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVy
PSJTaGFkb3cgRE9NIElucHV0IDEiPgorICAgIDwvaGVsbG8td29ybGQ+CisKKyAgICA8aGVsbG8t
d29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iU2hhZG93IERP
TSBJbnB1dCAyIj4KKyAgICA8L2hlbGxvLXdvcmxkPgorCisgICAgPHA+CisgICAgICAgIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iTGlnaHQgRE9NIElucHV0IDAiPgorICAgIDwvcD4K
KyAgICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJMaWdodCBE
T00gSW5wdXQgMSI+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4
dCIgcGxhY2Vob2xkZXI9IkxpZ2h0IERPTSBJbnB1dCAyIj4KKyAgICA8L3A+CisKKyAgICA8Y2xv
c2VkLWhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9
IlNoYWRvdyBET00gSW5wdXQgMyI+CisgICAgPC9jbG9zZWQtaGVsbG8td29ybGQ+CisKKyAgICA8
Y2xvc2VkLWhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xk
ZXI9IlNoYWRvdyBET00gSW5wdXQgNCI+CisgICAgPC9jbG9zZWQtaGVsbG8td29ybGQ+CisKKyAg
ICA8Y2xvc2VkLWhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vo
b2xkZXI9IlNoYWRvdyBET00gSW5wdXQgNSI+CisgICAgPC9jbG9zZWQtaGVsbG8td29ybGQ+CisK
KyAgICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJMaWdodCBE
T00gSW5wdXQgMyI+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4
dCIgcGxhY2Vob2xkZXI9IkxpZ2h0IERPTSBJbnB1dCA0Ij4KKyAgICA8L3A+CisgICAgPHA+Cisg
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iTGlnaHQgRE9NIElucHV0IDUi
PgorICAgIDwvcD4KKzwvZm9ybT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2NsYXNzIEhlbGxvV29ybGQgZXh0ZW5kcyBI
VE1MRWxlbWVudCB7CisgIGNvbnN0cnVjdG9yKCkgeworICAgIHN1cGVyKCk7CisgICAgCisgICAg
dGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5p
bm5lckhUTUwgPSAnPHA+PHNsb3Q+PC9zbG90PjwvcD4nOyAgCisgIH0gIAorfQorY3VzdG9tRWxl
bWVudHMuZGVmaW5lKCdoZWxsby13b3JsZCcsIEhlbGxvV29ybGQpOworCitjbGFzcyBDbG9zZWRI
ZWxsb1dvcmxkIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBz
dXBlcigpOworICAgIAorICAgIHRoaXMKKyAgICAgICAgLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdj
bG9zZWQnIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPHA+PHNsb3Q+PC9zbG90PjwvcD4nOyAg
CisgIH0gIAorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdjbG9zZWQtaGVsbG8td29ybGQnLCBD
bG9zZWRIZWxsb1dvcmxkKTsKKworZnVuY3Rpb24gbW92ZVRvTmV4dEVsZW1lbnQoKSB7CisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoYAorICAgICAgICAgICAgdWlDb250cm9sbGVyLmtleWJvYXJkQWNjZXNzb3J5QmFy
TmV4dCgpOworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAg
ICAgICAgYCwgcmVzb2x2ZSk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIG1vdmVUb1ByZXZFbGVt
ZW50KCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci5rZXlib2Fy
ZEFjY2Vzc29yeUJhclByZXZpb3VzKCk7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3Jp
cHRDb21wbGV0ZSgpOworICAgICAgICBgLCByZXNvbHZlKTsKKyAgICB9KTsKK30KKworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBBY2Nlc3Nvcnkg
YmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9uIGlucHV0cyBpbiBzaGFkb3cgcm9vdHMn
KTsKKworICAgIGNvbnN0IHJ1blRlc3QgPSBhc3luYyAoKSA9PiB7CisgICAgICAgIGxldCBmaXJz
dEVsZW1lbnQgPSBudWxsOworCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGlucHV0TGlz
dCA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXTsKKyAgICAgICAgICAg
IGZpcnN0RWxlbWVudCA9IGlucHV0TGlzdC5zaGlmdCgpOworICAgICAgICAgICAgZGVidWcoJ2Fj
dGl2YXRlIDB0aCBpbnB1dCcpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVF
bGVtZW50KGZpcnN0RWxlbWVudCk7CisgICAgICAgICAgICBkZWJ1ZygnYWN0aXZhdGVkIDB0aCBp
bnB1dCcpOworCisgICAgICAgICAgICBmb3IgKGNvbnN0IFtpLCBlbGVtZW50XSBvZiBpbnB1dExp
c3QuZW50cmllcygpKSB7CisgICAgICAgICAgICAgICAgZGVidWcoYGZvcndhcmQgdG8gJHtTdHJp
bmcoaSArIDEpfXRoIGlucHV0YCk7CisgICAgICAgICAgICAgICAgYXdhaXQgbW92ZVRvTmV4dEVs
ZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBkZWJ1ZyhgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdz
IHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHtkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgoKSA9PiBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSwgKCkgPT4g
ZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgZGVidWcoJ2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVt
ZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseScpOworCisgICAgICAgIHsK
KyAgICAgICAgICAgIGNvbnN0IGlucHV0TGlzdCA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdpbnB1dCcpXS5yZXZlcnNlKCk7CisgICAgICAgICAgICBpbnB1dExpc3Quc2hpZnQoKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgbGV0IGxhc3RFbGVtZW50SW5kZXggPSBpbnB1dExp
c3QubGVuZ3RoOworICAgICAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGlucHV0TGlzdCkg
eworICAgICAgICAgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7U3RyaW5nKC0tbGFzdEVsZW1lbnRJ
bmRleCl9dGggaW5wdXRgKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBtb3ZlVG9QcmV2RWxlbWVu
dCgpOworCisgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyID0g
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7CisgICAg
ICAgICAgICAgICAgZGVidWcoYGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBh
dHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyfWApOworICAgICAgICAgICAgICAg
IHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciwgKCkgPT4gZWxlbWVudC5n
ZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfTsKKworICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4gZGVidWcoYEZB
SUw6IFxgJHtlfVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVuKTsKK30KKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29y
ay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdkYTE2
ZDgzOWFlYmI5MmU5YzA0Y2I0ZTY2ZTcxMTMwMWQyNTNiYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0
LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACisKKworVGVzdCB0
aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIGRvIG5vdCB3b3JrIG9uIGlu
cHV0cyBpbiBzaGFkb3cgdHJlZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK2FjdGl2
YXRlIDB0aCBpbnB1dAorYWN0aXZhdGVkIDB0aCBpbnB1dAorZm9yd2FyZCB0byAxdGggaW5wdXQK
K2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6IGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xkZXIKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhv
bGRlcgorZm9yd2FyZCB0byAydGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVs
ZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xk
ZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xk
ZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyCitmb2N1cyBoYXMgbW92ZWQgdG8gdGhlIGxh
c3QgZWxlbWVudCBhbmQgd2lsbCBtb3ZlIHRvIHRoZSBmaXJzdCByZXZlcnNlbHkKK2JhY2sgdG8g
MXRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xk
ZXIgYXR0cmlidXRlOiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyCitQQVNTICgpID0+IGFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIGlucHV0IGhvc3RlZCBi
eSBpbnB1dC1ob2xkZXIKK2JhY2sgdG8gMHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgMAor
UEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyBM
aWdodCBET00gSW5wdXQgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3Mv
YWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1z
aGFkb3ctdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NDYyNTFjZTE1ZTJhZmM1NWUxMWNiZWVlY2Zl
ZjdhZDExNzFjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1k
b20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sCkBA
IC0wLDAgKzEsMTE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8Zm9ybT4K
KyAgICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJMaWdodCBE
T00gSW5wdXQgMCIvPgorICAgIDwvcD4KKworICAgIDxpbnB1dC1ob2xkZXI+PC9pbnB1dC1ob2xk
ZXI+CisgICAgPG5lc3QtaW5wdXQtaG9sZGVyPjwvbmVzdC1pbnB1dC1ob2xkZXI+Cis8L2Zvcm0+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitjbGFzcyBJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29u
c3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzCisgICAgICAgIC5hdHRh
Y2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkKKyAgICAgICAgLmlubmVySFRNTCA9ICc8cD48aW5w
dXQgcGxhY2Vob2xkZXI9ImlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xkZXIiLz48L3A+JzsKKyAg
fQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnB1dC1ob2xkZXInLCBJbnB1dEhvbGRlcik7
CisKK2NsYXNzIE5lc3RJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29uc3Ry
dWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzCisgICAgICAgIC5hdHRhY2hT
aGFkb3coeyBtb2RlOiAnb3BlbicgfSkKKyAgICAgICAgLmlubmVySFRNTCA9ICc8aW5wdXQtaG9s
ZGVyPjwvaW5wdXQtaG9sZGVyPic7CisgICAgdGhpcworICAgICAgICAuc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdpbnB1dC1ob2xkZXInKQorICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdpbnB1dCcpLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCAnaW5wdXQgaG9zdGVkIGJ5
IGlucHV0LWhvbGRlciBob3N0ZWQgYnkgbmVzdC1pbnB1dC1ob2xkZXInKTsKKyAgfQorfQorY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCduZXN0LWlucHV0LWhvbGRlcicsIE5lc3RJbnB1dEhvbGRlcik7
CisKK2Z1bmN0aW9uIG1vdmVUb05leHRFbGVtZW50KCkgeworICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4geworICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5rZXlib2FyZEFjY2Vzc29yeUJhck5leHQoKTsKKyAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIGAsIHJlc29sdmUp
OworICAgIH0pOworfQorCitmdW5jdGlvbiBtb3ZlVG9QcmV2RWxlbWVudCgpIHsKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdChgCisgICAgICAgICAgICB1aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2
aW91cygpOworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAg
ICAgICAgYCwgcmVzb2x2ZSk7CisgICAgfSk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3Vz
IGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyB0cmVlJyk7CisKKyAgICBj
b25zdCBydW5UZXN0ID0gYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBpbnB1dEhvbGRlciA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LWhvbGRlcicpCisgICAgICAgICAgICAuc2hh
ZG93Um9vdDsKKyAgICAgICAgY29uc3QgbmVzdElucHV0SG9sZGVyID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignbmVzdC1pbnB1dC1ob2xkZXInKQorICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgICAgIC5zaGFkb3dSb290OworICAg
ICAgICAKKyAgICAgICAgY29uc3Qgc3RhY2sgPSBbCisgICAgICAgICAgICBkb2N1bWVudCwKKyAg
ICAgICAgICAgIGlucHV0SG9sZGVyLAorICAgICAgICAgICAgbmVzdElucHV0SG9sZGVyLAorICAg
ICAgICBdOworCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7CisgICAgICAgICAgICBkZWJ1ZygnYWN0aXZh
dGUgMHRoIGlucHV0Jyk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1l
bnQoZmlyc3RFbGVtZW50KTsKKyAgICAgICAgICAgIGRlYnVnKCdhY3RpdmF0ZWQgMHRoIGlucHV0
Jyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGNvbnN0IFtpLCBkb2N1bWVudE9yU2hhZG93
Um9vdF0gb2Ygc3RhY2suZW50cmllcygpKSB7CisgICAgICAgICAgICBpZiAoaSA9PT0gMCkgewor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBk
ZWJ1ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBpbnB1dGApOworICAgICAgICAgICAgYXdh
aXQgbW92ZVRvTmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQg
PSBkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICAgICAgZGVidWco
YGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAg
ICAgICAgICBzaG91bGRCZSgoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vo
b2xkZXInKSwgKCkgPT4gZG9jdW1lbnRPclNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQn
KS5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICB9IAorCisgICAgICAgIGRl
YnVnKCdmb2N1cyBoYXMgbW92ZWQgdG8gdGhlIGxhc3QgZWxlbWVudCBhbmQgd2lsbCBtb3ZlIHRv
IHRoZSBmaXJzdCByZXZlcnNlbHknKTsKKworICAgICAgICBmb3IgKGxldCBpID0gc3RhY2subGVu
Z3RoIC0gMTsgLTEgPCBpOyAtLWkpIHsKKyAgICAgICAgICAgIGlmIChzdGFjay5sZW5ndGggLSAx
ID09PSBpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7U3RyaW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAg
ICAgICBhd2FpdCBtb3ZlVG9QcmV2RWxlbWVudCgpOworICAgICAgICAgICAgY29uc3QgZG9jdW1l
bnRPclNoYWRvd1Jvb3QgPSBzdGFja1tpXTsKKyAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1l
bnQgPSBkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICAgICAgZGVi
dWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRy
aWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxh
Y2Vob2xkZXInKSwgKCkgPT4gZG9jdW1lbnRPclNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5w
dXQnKS5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICB9CisgICAgfTsKKwor
ICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtl
fVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVuKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410941</attachid>
            <date>2020-10-09 09:18:14 -0700</date>
            <delta_ts>2020-10-09 11:16:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201010011811.patch</filename>
            <type>text/plain</type>
            <size>18537</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk5MDc2YTIzNTAxOTQ2
ZmM3NTAyZDg2ZjNkODRiMzI2MjRhN2JiYi4uNWE3NTU2MjNlOTdlZGNlOWU2MWFiMTFhZTM4NjRh
ZjkzYTBmODllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1i
YXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMuaHRtbAorICAgICAgICAgICAgICAgcGxh
dGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0
LWluLXNoYWRvdy10cmVlLmh0bWwKKworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJs
ZUVsZW1lbnQpOgorCiAyMDIwLTEwLTA4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBmbG9hdCBjbGVhciBmb3IgPGJy
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDYyYTllYTQwY2Nj
ZmI4YjVlY2UzODZjNjM2ZTYzNmJjYjAzZDk4OTMuLjJlM2NhNTg2N2I0NWVlMDJlYmEyNjUzOTU4
M2FhMTg0YzkwNWIyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
QEAgLTY2NSwxNCArNjY1LDE0IEBAIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3Vz
YWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVy
biBhIG5vbi1mb2N1c2FibGUgc2hhZG93IGhvc3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3Qg
Z2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIgdGhhdCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNj
b3VudCBzaW5jZSBpdCBkb2Vzbid0IHBhc3MgYW4gZXZlbnQuCi0gICAgcmV0dXJuIG5leHRGb2N1
c2FibGVFbGVtZW50T3JTY29wZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0
YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVsZW1lbnRB
Y3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGlyZWN0aW9uRm9yd2FyZCwgRm9jdXNOYXZpZ2F0aW9uU2Nv
cGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3RhcnQsIG51bGxwdHIpOwogfQogCiBFbGVtZW50KiBGb2N1
c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdC4K
ICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dlciB0aGF0IHRh
a2VzIG1vZGlmaWVyIGtleXMgaW50byBhY2NvdW50IHNpbmNlIGl0IGRvZXNuJ3QgcGFzcyBhbiBl
dmVudC4KLSAgICByZXR1cm4gcHJldmlvdXNGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVyKEZv
Y3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKKyAg
ICByZXR1cm4gZmluZEZvY3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGlyZWN0
aW9uQmFja3dhcmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0
LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxl
RWxlbWVudE9yU2NvcGVPd25lcihjb25zdCBGb2N1c05hdmlnYXRpb25TY29wZSYgc2NvcGUsIE5v
ZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3OWU4OGVmOTVhODczMjdh
ZTM0NTU3MWMyODNhNzNmMTY5ZmFiZDdiLi41YzhiYjdiNTI1Mjk1ZmI3NDQ1M2ViMGU5MTVjNDk5
MmY3YTgwNDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMTAtMDggIFRldHN1aGFydSBP
aHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KKworICAgICAgICBBY2Nlc3Nvcnkg
YmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyBkbyBub3Qgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93
IHJvb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDMyOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZhbWlseS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXIt
d29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmst
b24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAgIFRoaXMgaXMg
YmFzZWQgb24gdGhlIGF0dGFjaGVkIHRlc3QgY2FzZSBmb3IgdGhlIGJ1Zy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5w
dXQtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4t
c2hhZG93LXRyZWUuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhpcyB0ZXN0cyB0aGUgZm9jdXMg
bW92ZSBieSBhY2Nlc3NvcnkgYmFyIGZvciBpbnB1dHMgaW4gc2hhZG93IHRyZWUuCisKIDIwMjAt
MTAtMDggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJ
bnRlZ3JhdGlvbl0gRW5hYmxlIGZsb2F0IGNsZWFyIGZvciA8YnI+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdv
cmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhYWM2OGM5ZWNlNzNl
YWRmMTMyMTdmOGYwZGU3NjZjNTZhYjFjOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtaW4tc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkxIEBACisKKwor
CisKKworCisKKworCisKKworCisKKworVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2
aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyByb290cworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKK2FjdGl2YXRlIDB0aCBpbnB1dAorYWN0aXZhdGVkIDB0aCBpbnB1
dAorZm9yd2FyZCB0byAxdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhv
bGRlciBhdHRyaWJ1dGU6IFNoYWRvdyBET00gSW5wdXQgMQorUEFTUyAoKSA9PiBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyBTaGFkb3cgRE9NIElu
cHV0IDEKK2ZvcndhcmQgdG8gMnRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiBTaGFkb3cgRE9NIElucHV0IDIKK1BBU1MgKCkgPT4gZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgU2hhZG93IERP
TSBJbnB1dCAyCitmb3J3YXJkIHRvIDN0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdz
IHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogTGlnaHQgRE9NIElucHV0IDAKK1BBU1MgKCkgPT4gZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgTGlnaHQg
RE9NIElucHV0IDAKK2ZvcndhcmQgdG8gNHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50
J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgMQorUEFTUyAoKSA9PiBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyBMaWdo
dCBET00gSW5wdXQgMQorZm9yd2FyZCB0byA1dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1l
bnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IExpZ2h0IERPTSBJbnB1dCAyCitQQVNTICgpID0+
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIExp
Z2h0IERPTSBJbnB1dCAyCitmb3J3YXJkIHRvIDZ0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxl
bWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogU2hhZG93IERPTSBJbnB1dCAzCitQQVNTICgp
ID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlz
IFNoYWRvdyBET00gSW5wdXQgMworZm9yd2FyZCB0byA3dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IFNoYWRvdyBET00gSW5wdXQgNAorUEFT
UyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXIn
KSBpcyBTaGFkb3cgRE9NIElucHV0IDQKK2ZvcndhcmQgdG8gOHRoIGlucHV0Citkb2N1bWVudC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBTaGFkb3cgRE9NIElucHV0IDUK
K1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9s
ZGVyJykgaXMgU2hhZG93IERPTSBJbnB1dCA1Citmb3J3YXJkIHRvIDl0aCBpbnB1dAorZG9jdW1l
bnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogTGlnaHQgRE9NIElucHV0
IDMKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNl
aG9sZGVyJykgaXMgTGlnaHQgRE9NIElucHV0IDMKK2ZvcndhcmQgdG8gMTB0aCBpbnB1dAorZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogTGlnaHQgRE9NIElu
cHV0IDQKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJykgaXMgTGlnaHQgRE9NIElucHV0IDQKK2ZvcndhcmQgdG8gMTF0aCBpbnB1dAor
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogTGlnaHQgRE9N
IElucHV0IDUKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
J3BsYWNlaG9sZGVyJykgaXMgTGlnaHQgRE9NIElucHV0IDUKK2ZvY3VzIGhhcyBtb3ZlZCB0byB0
aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseQorYmFj
ayB0byAxMHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0
cmlidXRlOiBMaWdodCBET00gSW5wdXQgNAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vo
b2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDQKK2JhY2sgdG8gOXRoIGlucHV0Citkb2N1bWVudC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgMwor
UEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDMK
K2JhY2sgdG8gOHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIg
YXR0cmlidXRlOiBTaGFkb3cgRE9NIElucHV0IDUKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBs
YWNlaG9sZGVyIGlzIFNoYWRvdyBET00gSW5wdXQgNQorYmFjayB0byA3dGggaW5wdXQKK2RvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IFNoYWRvdyBET00gSW5w
dXQgNAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgU2hhZG93IERPTSBJ
bnB1dCA0CitiYWNrIHRvIDZ0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNl
aG9sZGVyIGF0dHJpYnV0ZTogU2hhZG93IERPTSBJbnB1dCAzCitQQVNTICgpID0+IGFjdGl2ZUVs
ZW1lbnRQbGFjZWhvbGRlciBpcyBTaGFkb3cgRE9NIElucHV0IDMKK2JhY2sgdG8gNXRoIGlucHV0
Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBE
T00gSW5wdXQgMgorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQg
RE9NIElucHV0IDIKK2JhY2sgdG8gNHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3Mg
cGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5wdXQgMQorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGlnaHQgRE9NIElucHV0IDEKK2JhY2sgdG8gM3RoIGlu
cHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdo
dCBET00gSW5wdXQgMAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgTGln
aHQgRE9NIElucHV0IDAKK2JhY2sgdG8gMnRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50
J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBTaGFkb3cgRE9NIElucHV0IDIKK1BBU1MgKCkgPT4g
YWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIFNoYWRvdyBET00gSW5wdXQgMgorYmFjayB0byAx
dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6
IFNoYWRvdyBET00gSW5wdXQgMQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIg
aXMgU2hhZG93IERPTSBJbnB1dCAxCitiYWNrIHRvIDB0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogU2hhZG93IERPTSBJbnB1dCAwCitQQVNT
ICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyBTaGFkb3cgRE9NIElucHV0IDAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3Nv
cnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5w
dXQtaW4tc2hhZG93LXJvb3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ2ZTI0MGI4YmM3OThiMzdlNWVl
ZGVmM2QyN2VhMGY2Nzk4OGY3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1p
bi1zaGFkb3ctcm9vdHMuaHRtbApAQCAtMCwwICsxLDE0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPGZvcm0+CisgICAgPGhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQg
dHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IlNoYWRvdyBET00gSW5wdXQgMCI+CisgICAgPC9oZWxs
by13b3JsZD4KKworICAgIDxoZWxsby13b3JsZD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQi
IHBsYWNlaG9sZGVyPSJTaGFkb3cgRE9NIElucHV0IDEiPgorICAgIDwvaGVsbG8td29ybGQ+CisK
KyAgICA8aGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRl
cj0iU2hhZG93IERPTSBJbnB1dCAyIj4KKyAgICA8L2hlbGxvLXdvcmxkPgorCisgICAgPHA+Cisg
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iTGlnaHQgRE9NIElucHV0IDAi
PgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9s
ZGVyPSJMaWdodCBET00gSW5wdXQgMSI+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkxpZ2h0IERPTSBJbnB1dCAyIj4KKyAgICA8L3A+
CisKKyAgICA8Y2xvc2VkLWhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIg
cGxhY2Vob2xkZXI9IlNoYWRvdyBET00gSW5wdXQgMyI+CisgICAgPC9jbG9zZWQtaGVsbG8td29y
bGQ+CisKKyAgICA8Y2xvc2VkLWhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4
dCIgcGxhY2Vob2xkZXI9IlNoYWRvdyBET00gSW5wdXQgNCI+CisgICAgPC9jbG9zZWQtaGVsbG8t
d29ybGQ+CisKKyAgICA8Y2xvc2VkLWhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0i
dGV4dCIgcGxhY2Vob2xkZXI9IlNoYWRvdyBET00gSW5wdXQgNSI+CisgICAgPC9jbG9zZWQtaGVs
bG8td29ybGQ+CisKKyAgICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9s
ZGVyPSJMaWdodCBET00gSW5wdXQgMyI+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkxpZ2h0IERPTSBJbnB1dCA0Ij4KKyAgICA8L3A+
CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iTGlnaHQg
RE9NIElucHV0IDUiPgorICAgIDwvcD4KKzwvZm9ybT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Ns
YXNzIEhlbGxvV29ybGQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgIGNvbnN0cnVjdG9yKCkgewor
ICAgIHN1cGVyKCk7CisgICAgCisgICAgdGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHsgbW9k
ZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPHA+PHNsb3Q+PC9zbG90PjwvcD4n
OyAgCisgIH0gIAorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdoZWxsby13b3JsZCcsIEhlbGxv
V29ybGQpOworCitjbGFzcyBDbG9zZWRIZWxsb1dvcmxkIGV4dGVuZHMgSFRNTEVsZW1lbnQgewor
ICBjb25zdHJ1Y3RvcigpIHsKKyAgICBzdXBlcigpOworICAgIAorICAgIHRoaXMKKyAgICAgICAg
LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdjbG9zZWQnIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAn
PHA+PHNsb3Q+PC9zbG90PjwvcD4nOyAgCisgIH0gIAorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdjbG9zZWQtaGVsbG8td29ybGQnLCBDbG9zZWRIZWxsb1dvcmxkKTsKKworZnVuY3Rpb24gbW92
ZVRvTmV4dEVsZW1lbnQoKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
CisgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgdWlDb250cm9s
bGVyLmtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCgpOworICAgICAgICAgICAgdWlDb250cm9sbGVy
LnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgYCwgcmVzb2x2ZSk7CisgICAgfSk7Cit9CisK
K2Z1bmN0aW9uIG1vdmVUb1ByZXZFbGVtZW50KCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geworICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5rZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3VzKCk7CisgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICBgLCByZXNvbHZl
KTsKKyAgICB9KTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgZGVzY3JpcHRp
b24oJ1Rlc3QgdGhhdCBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9u
IGlucHV0cyBpbiBzaGFkb3cgcm9vdHMnKTsKKworICAgIGNvbnN0IHJ1blRlc3QgPSBhc3luYyAo
KSA9PiB7CisgICAgICAgIGxldCBmaXJzdEVsZW1lbnQgPSBudWxsOworCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGNvbnN0IGlucHV0TGlzdCA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdpbnB1dCcpXTsKKyAgICAgICAgICAgIGZpcnN0RWxlbWVudCA9IGlucHV0TGlzdC5zaGlmdCgp
OworICAgICAgICAgICAgZGVidWcoJ2FjdGl2YXRlIDB0aCBpbnB1dCcpOworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGZpcnN0RWxlbWVudCk7CisgICAgICAgICAg
ICBkZWJ1ZygnYWN0aXZhdGVkIDB0aCBpbnB1dCcpOworCisgICAgICAgICAgICBmb3IgKGNvbnN0
IFtpLCBlbGVtZW50XSBvZiBpbnB1dExpc3QuZW50cmllcygpKSB7CisgICAgICAgICAgICAgICAg
ZGVidWcoYGZvcndhcmQgdG8gJHtTdHJpbmcoaSArIDEpfXRoIGlucHV0YCk7CisgICAgICAgICAg
ICAgICAgYXdhaXQgbW92ZVRvTmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBkZWJ1Zyhg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHtkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZSgoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgncGxhY2Vob2xkZXInKSwgKCkgPT4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZGVidWcoJ2ZvY3VzIGhh
cyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJl
dmVyc2VseScpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGlucHV0TGlzdCA9IFsu
Li5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXS5yZXZlcnNlKCk7CisgICAgICAg
ICAgICBpbnB1dExpc3Quc2hpZnQoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbGV0IGxh
c3RFbGVtZW50SW5kZXggPSBpbnB1dExpc3QubGVuZ3RoOworICAgICAgICAgICAgZm9yIChjb25z
dCBlbGVtZW50IG9mIGlucHV0TGlzdCkgeworICAgICAgICAgICAgICAgIGRlYnVnKGBiYWNrIHRv
ICR7U3RyaW5nKC0tbGFzdEVsZW1lbnRJbmRleCl9dGggaW5wdXRgKTsKKyAgICAgICAgICAgICAg
ICBhd2FpdCBtb3ZlVG9QcmV2RWxlbWVudCgpOworCisgICAgICAgICAgICAgICAgY29uc3QgYWN0
aXZlRWxlbWVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoJ3BsYWNlaG9sZGVyJyk7CisgICAgICAgICAgICAgICAgZGVidWcoYGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudFBsYWNlaG9s
ZGVyfWApOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnRQbGFj
ZWhvbGRlciwgKCkgPT4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfTsKKworICAgIGNvbnN0IHJ1biA9IHJ1blRlc3Qo
KS5jYXRjaCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtlfVxgYCkpOworICAgIFVJSGVscGVyLndh
aXQocnVuKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFy
LXdvcmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2RhMTZkODM5YWVi
YjkyZTljMDRjYjRlNjZlNzExMzAxZDI1M2JiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13b3JrLW9u
LWlucHV0LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACisKKwor
VGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIGRvIG5vdCB3b3Jr
IG9uIGlucHV0cyBpbiBzaGFkb3cgdHJlZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
K2FjdGl2YXRlIDB0aCBpbnB1dAorYWN0aXZhdGVkIDB0aCBpbnB1dAorZm9yd2FyZCB0byAxdGgg
aW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBh
dHRyaWJ1dGU6IGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xkZXIKK1BBU1MgKCkgPT4gYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgaW5wdXQgaG9zdGVkIGJ5IGlu
cHV0LWhvbGRlcgorZm9yd2FyZCB0byAydGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IGlucHV0IGhvc3RlZCBieSBpbnB1
dC1ob2xkZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyCitQQVNTICgpID0+IGFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIGlucHV0IGhvc3RlZCBieSBpbnB1
dC1ob2xkZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyCitmb2N1cyBoYXMgbW92ZWQgdG8g
dGhlIGxhc3QgZWxlbWVudCBhbmQgd2lsbCBtb3ZlIHRvIHRoZSBmaXJzdCByZXZlcnNlbHkKK2Jh
Y2sgdG8gMXRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyCitQQVNTICgp
ID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIGlucHV0IGhv
c3RlZCBieSBpbnB1dC1ob2xkZXIKK2JhY2sgdG8gMHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93
Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiBMaWdodCBET00gSW5w
dXQgMAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXIn
KSBpcyBMaWdodCBET00gSW5wdXQgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9p
b3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ct
dHJlZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20v
YWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmYyMDE2ZmNkNGZjYWJkMzY3MTM2ZDdlZDhjNTJkMzRiZjU3NWY5YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vz
c29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sCkBAIC0wLDAgKzEsMTE5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8Zm9ybT4KKyAgICA8cD4KKyAg
ICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJMaWdodCBET00gSW5wdXQgMCIv
PgorICAgIDwvcD4KKworICAgIDxpbnB1dC1ob2xkZXI+PC9pbnB1dC1ob2xkZXI+CisgICAgPG5l
c3QtaW5wdXQtaG9sZGVyPjwvbmVzdC1pbnB1dC1ob2xkZXI+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJk
ZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitjbGFzcyBJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29u
c3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzCisgICAgICAgIC5hdHRh
Y2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkKKyAgICAgICAgLmlubmVySFRNTCA9ICc8cD48aW5w
dXQgcGxhY2Vob2xkZXI9ImlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xkZXIiLz48L3A+JzsKKyAg
fQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnB1dC1ob2xkZXInLCBJbnB1dEhvbGRlcik7
CisKK2NsYXNzIE5lc3RJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29uc3Ry
dWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzCisgICAgICAgIC5hdHRhY2hT
aGFkb3coeyBtb2RlOiAnb3BlbicgfSkKKyAgICAgICAgLmlubmVySFRNTCA9ICc8aW5wdXQtaG9s
ZGVyPjwvaW5wdXQtaG9sZGVyPic7CisgICAgdGhpcworICAgICAgICAuc2hhZG93Um9vdC5xdWVy
eVNlbGVjdG9yKCdpbnB1dC1ob2xkZXInKQorICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdpbnB1dCcpLnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCAnaW5wdXQgaG9zdGVkIGJ5
IGlucHV0LWhvbGRlciBob3N0ZWQgYnkgbmVzdC1pbnB1dC1ob2xkZXInKTsKKyAgfQorfQorY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCduZXN0LWlucHV0LWhvbGRlcicsIE5lc3RJbnB1dEhvbGRlcik7
CisKK2Z1bmN0aW9uIG1vdmVUb05leHRFbGVtZW50KCkgeworICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4geworICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAg
ICAgICAgIHVpQ29udHJvbGxlci5rZXlib2FyZEFjY2Vzc29yeUJhck5leHQoKTsKKyAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIGAsIHJlc29sdmUp
OworICAgIH0pOworfQorCitmdW5jdGlvbiBtb3ZlVG9QcmV2RWxlbWVudCgpIHsKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdChgCisgICAgICAgICAgICB1aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2
aW91cygpOworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAg
ICAgICAgYCwgcmVzb2x2ZSk7CisgICAgfSk7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3Vz
IGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyB0cmVlJyk7CisKKyAgICBj
b25zdCBydW5UZXN0ID0gYXN5bmMgKCkgPT4geworICAgICAgICBjb25zdCBpbnB1dEhvbGRlciA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LWhvbGRlcicpCisgICAgICAgICAgICAuc2hh
ZG93Um9vdDsKKyAgICAgICAgY29uc3QgbmVzdElucHV0SG9sZGVyID0gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvcignbmVzdC1pbnB1dC1ob2xkZXInKQorICAgICAgICAgICAgLnNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgICAgIC5zaGFkb3dSb290OworICAg
ICAgICAKKyAgICAgICAgY29uc3Qgc3RhY2sgPSBbCisgICAgICAgICAgICBkb2N1bWVudCwKKyAg
ICAgICAgICAgIGlucHV0SG9sZGVyLAorICAgICAgICAgICAgbmVzdElucHV0SG9sZGVyLAorICAg
ICAgICBdOworCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7CisgICAgICAgICAgICBkZWJ1ZygnYWN0aXZh
dGUgMHRoIGlucHV0Jyk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1l
bnQoZmlyc3RFbGVtZW50KTsKKyAgICAgICAgICAgIGRlYnVnKCdhY3RpdmF0ZWQgMHRoIGlucHV0
Jyk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGNvbnN0IFtpLCBkb2N1bWVudE9yU2hhZG93
Um9vdF0gb2Ygc3RhY2suZW50cmllcygpKSB7CisgICAgICAgICAgICBpZiAoaSA9PT0gMCkgewor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBk
ZWJ1ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBpbnB1dGApOworICAgICAgICAgICAgYXdh
aXQgbW92ZVRvTmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQg
PSBkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICAgICAgZGVidWco
YGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAg
ICAgICAgICBzaG91bGRCZSgoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vo
b2xkZXInKSwgKCkgPT4gZG9jdW1lbnRPclNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQn
KS5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICB9IAorCisgICAgICAgIGRl
YnVnKCdmb2N1cyBoYXMgbW92ZWQgdG8gdGhlIGxhc3QgZWxlbWVudCBhbmQgd2lsbCBtb3ZlIHRv
IHRoZSBmaXJzdCByZXZlcnNlbHknKTsKKworICAgICAgICBmb3IgKGxldCBpID0gc3RhY2subGVu
Z3RoIC0gMTsgLTEgPCBpOyAtLWkpIHsKKyAgICAgICAgICAgIGlmIChzdGFjay5sZW5ndGggLSAx
ID09PSBpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7U3RyaW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAg
ICAgICBhd2FpdCBtb3ZlVG9QcmV2RWxlbWVudCgpOworICAgICAgICAgICAgY29uc3QgZG9jdW1l
bnRPclNoYWRvd1Jvb3QgPSBzdGFja1tpXTsKKyAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1l
bnQgPSBkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICAgICAgZGVi
dWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRy
aWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxh
Y2Vob2xkZXInKSwgKCkgPT4gZG9jdW1lbnRPclNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5w
dXQnKS5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICB9CisgICAgfTsKKwor
ICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtl
fVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVuKTsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410953</attachid>
            <date>2020-10-09 11:16:32 -0700</date>
            <delta_ts>2020-10-11 14:04:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201010031630.patch</filename>
            <type>text/plain</type>
            <size>21436</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMzNzEwYWQ4YzMzZmY3
MzBkZGNlM2UyOWQyZGI4MTBkNTRhZDQ0MS4uMmI2MTIxZWU0NGYzNzE0ZTkzYzczNmY0ZjgyY2Q0
YmZlOTUyMjcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1i
YXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMuaHRtbAorICAgICAgICAgICAgICAgcGxh
dGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0
LWluLXNoYWRvdy10cmVlLmh0bWwKKworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJs
ZUVsZW1lbnQpOgorCiAyMDIwLTEwLTA5ICBOb2FtIFJvc2VudGhhbCAgPG5vYW1Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBDU1MgaW1hZ2Utb3JpZW50YXRpb246IG5vbmUgc2hvdWxkIGJlIGlnbm9y
ZWQgZm9yIGNyb3NzLW9yaWdpbiBpbWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAppbmRleCA2MmE5ZWE0MGNjY2ZiOGI1ZWNlMzg2YzYzNmU2MzZiY2IwM2Q5ODkzLi4y
ZTNjYTU4NjdiNDVlZTAyZWJhMjY1Mzk1ODNhYTE4NGM5MDViMmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC02NjUsMTQgKzY2NSwxNCBAQCBFbGVtZW50KiBG
b2N1c0NvbnRyb2xsZXI6Om5leHRGb2N1c2FibGVFbGVtZW50KE5vZGUmIHN0YXJ0KQogewogICAg
IC8vIEZJWE1FOiBUaGlzIGNhbiByZXR1cm4gYSBub24tZm9jdXNhYmxlIHNoYWRvdyBob3N0Lgog
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGdpdmUgdGhlIGNvcnJlY3QgYW5zd2VyIHRoYXQgdGFr
ZXMgbW9kaWZpZXIga2V5cyBpbnRvIGFjY291bnQgc2luY2UgaXQgZG9lc24ndCBwYXNzIGFuIGV2
ZW50LgotICAgIHJldHVybiBuZXh0Rm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihGb2N1c05h
dmlnYXRpb25TY29wZTo6c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7CisgICAgcmV0
dXJuIGZpbmRGb2N1c2FibGVFbGVtZW50QWNyb3NzRm9jdXNTY29wZShGb2N1c0RpcmVjdGlvbkZv
cndhcmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxs
cHRyKTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZUVs
ZW1lbnQoTm9kZSYgc3RhcnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVybiBhIG5v
bi1mb2N1c2FibGUgc2hhZG93IGhvc3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgZ2l2ZSB0
aGUgY29ycmVjdCBhbnN3ZXIgdGhhdCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNjb3VudCBz
aW5jZSBpdCBkb2Vzbid0IHBhc3MgYW4gZXZlbnQuCi0gICAgcmV0dXJuIHByZXZpb3VzRm9jdXNh
YmxlRWxlbWVudE9yU2NvcGVPd25lcihGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPZihzdGFy
dCksICZzdGFydCwgbnVsbHB0cik7CisgICAgcmV0dXJuIGZpbmRGb2N1c2FibGVFbGVtZW50QWNy
b3NzRm9jdXNTY29wZShGb2N1c0RpcmVjdGlvbkJhY2t3YXJkLCBGb2N1c05hdmlnYXRpb25TY29w
ZTo6c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7CiB9CiAKIEVsZW1lbnQqIEZvY3Vz
Q29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1lbnRPclNjb3BlT3duZXIoY29uc3QgRm9jdXNO
YXZpZ2F0aW9uU2NvcGUmIHNjb3BlLCBOb2RlKiBzdGFydCwgS2V5Ym9hcmRFdmVudCogZXZlbnQp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMTMxYTYwMTVlMzcyYzcxYzRlYWQ2ZWI4YzNkN2IzMTE5Nzk3ZDViMi4uZDFmOTBi
Mzk0ZDRlZTkxZTRkYTJiNWVkZWUyMzQ3ZjZhOWRlOTlkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBA
CisyMDIwLTEwLTA4ICBUZXRzdWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5j
b20+CisKKyAgICAgICAgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90
IHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlZCB0ZXN0Y2FzZXMgb25seSBuZWVkIHRv
IHJ1biB3aXRoIGlPUyBmYW1pbHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qv
c2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRv
dy1kb20vYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy1yb290cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgICBUaGlzIGlzIGJhc2VkIG9uIHRoZSBhdHRhY2hlZCB0ZXN0IGNhc2Ug
Zm9yIHRoZSBidWcuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20v
YWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNz
b3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAgIFRoaXMgdGVzdHMgdGhlIGZvY3VzIG1vdmUgYnkgYWNjZXNzb3J5IGJhciBmb3IgaW5wdXRz
IGluIHNoYWRvdyB0cmVlLgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAg
ICAgICh3aW5kb3cuVUlIZWxwZXIubW92ZVRvTmV4dEJ5S2V5Ym9hcmRBY2Nlc3NvcnlCYXIpOgor
ICAgICAgICAod2luZG93LlVJSGVscGVyLm1vdmVUb1ByZXZCeUtleWJvYXJkQWNjZXNzb3J5QmFy
KToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlcik6CisKKwogMjAyMC0xMC0wOSAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgSW1wb3J0IHNjcm9sbC1z
bmFwIFdQVCB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQt
aW4tc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9p
b3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ct
cm9vdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwZTk2MWYyYTlhMjgyZTM0YzBjZmUzOTlk
ZmYyZDA5YjYzOTM3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hh
ZG93LXJvb3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk5IEBACitUZXN0IHRoYXQgQWNjZXNz
b3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJv
b3RzLgorCitUbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuCisKK0ZvY3VzIHRo
ZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLgorUHJlc3MgIm5l
eHQiIGljb24gMTEgdGltZXMuCitQcmVzcyAicHJldiIgaWNvbiAxMSB0aW1lcy4KK0l0IHNob3Vs
ZCB0cmF2ZXJzZSBmb2N1c2FibGUgZWxlbWVudHMgaW4gdGhlIGluY3JlYXNpbmcgbnVtZXJpY2Fs
IG9yZGVyIGFuZCByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGVtLgorCisKKworCisKKworCisKKwor
CisKKworCisKK1Rlc3QgdGhhdCBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3
b3JrIG9uIGlucHV0cyBpbiBzaGFkb3cgcm9vdHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCithY3RpdmF0ZSAwdGggaW5wdXQKK2FjdGl2YXRlZCAwdGggaW5wdXQKK2ZvcndhcmQgdG8g
MXRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRl
OiAxLiBTaGFkb3cgRE9NIElucHV0IDEKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMS4gU2hhZG93IERPTSBJbnB1dCAxCitm
b3J3YXJkIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogMi4gU2hhZG93IERPTSBJbnB1dCAyCitQQVNTICgpID0+IGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDIuIFNoYWRvdyBET00g
SW5wdXQgMgorZm9yd2FyZCB0byAzdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBw
bGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIExpZ2h0IERPTSBJbnB1dCAwCitQQVNTICgpID0+IGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDMuIExp
Z2h0IERPTSBJbnB1dCAwCitmb3J3YXJkIHRvIDR0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxl
bWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNC4gTGlnaHQgRE9NIElucHV0IDEKK1BBU1Mg
KCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykg
aXMgNC4gTGlnaHQgRE9NIElucHV0IDEKK2ZvcndhcmQgdG8gNXRoIGlucHV0Citkb2N1bWVudC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA1LiBMaWdodCBET00gSW5wdXQg
MgorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vo
b2xkZXInKSBpcyA1LiBMaWdodCBET00gSW5wdXQgMgorZm9yd2FyZCB0byA2dGggaW5wdXQKK2Rv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDYuIFNoYWRvdyBE
T00gSW5wdXQgMworUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgncGxhY2Vob2xkZXInKSBpcyA2LiBTaGFkb3cgRE9NIElucHV0IDMKK2ZvcndhcmQgdG8gN3Ro
IGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA3
LiBTaGFkb3cgRE9NIElucHV0IDQKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNy4gU2hhZG93IERPTSBJbnB1dCA0Citmb3J3
YXJkIHRvIDh0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0
dHJpYnV0ZTogOC4gU2hhZG93IERPTSBJbnB1dCA1CitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDguIFNoYWRvdyBET00gSW5w
dXQgNQorZm9yd2FyZCB0byA5dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFj
ZWhvbGRlciBhdHRyaWJ1dGU6IDkuIExpZ2h0IERPTSBJbnB1dCAzCitQQVNTICgpID0+IGRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDkuIExpZ2h0
IERPTSBJbnB1dCAzCitmb3J3YXJkIHRvIDEwdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1l
bnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEwLiBMaWdodCBET00gSW5wdXQgNAorUEFTUyAo
KSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBp
cyAxMC4gTGlnaHQgRE9NIElucHV0IDQKK2ZvcndhcmQgdG8gMTF0aCBpbnB1dAorZG9jdW1lbnQu
YWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMTEuIExpZ2h0IERPTSBJbnB1
dCA1CitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFj
ZWhvbGRlcicpIGlzIDExLiBMaWdodCBET00gSW5wdXQgNQorZm9jdXMgaGFzIG1vdmVkIHRvIHRo
ZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmlyc3QgcmV2ZXJzZWx5CitiYWNr
IHRvIDEwdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRy
aWJ1dGU6IDEwLiBMaWdodCBET00gSW5wdXQgNAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxh
Y2Vob2xkZXIgaXMgMTAuIExpZ2h0IERPTSBJbnB1dCA0CitiYWNrIHRvIDl0aCBpbnB1dAorZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogOS4gTGlnaHQgRE9N
IElucHV0IDMKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDkuIExpZ2h0
IERPTSBJbnB1dCAzCitiYWNrIHRvIDh0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdz
IHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogOC4gU2hhZG93IERPTSBJbnB1dCA1CitQQVNTICgpID0+
IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyA4LiBTaGFkb3cgRE9NIElucHV0IDUKK2JhY2sg
dG8gN3RoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmli
dXRlOiA3LiBTaGFkb3cgRE9NIElucHV0IDQKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNl
aG9sZGVyIGlzIDcuIFNoYWRvdyBET00gSW5wdXQgNAorYmFjayB0byA2dGggaW5wdXQKK2RvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDYuIFNoYWRvdyBET00g
SW5wdXQgMworUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgNi4gU2hhZG93
IERPTSBJbnB1dCAzCitiYWNrIHRvIDV0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdz
IHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNS4gTGlnaHQgRE9NIElucHV0IDIKK1BBU1MgKCkgPT4g
YWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDUuIExpZ2h0IERPTSBJbnB1dCAyCitiYWNrIHRv
IDR0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0
ZTogNC4gTGlnaHQgRE9NIElucHV0IDEKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9s
ZGVyIGlzIDQuIExpZ2h0IERPTSBJbnB1dCAxCitiYWNrIHRvIDN0aCBpbnB1dAorZG9jdW1lbnQu
YWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMy4gTGlnaHQgRE9NIElucHV0
IDAKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDMuIExpZ2h0IERPTSBJ
bnB1dCAwCitiYWNrIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNl
aG9sZGVyIGF0dHJpYnV0ZTogMi4gU2hhZG93IERPTSBJbnB1dCAyCitQQVNTICgpID0+IGFjdGl2
ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyAyLiBTaGFkb3cgRE9NIElucHV0IDIKK2JhY2sgdG8gMXRo
IGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAx
LiBTaGFkb3cgRE9NIElucHV0IDEKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVy
IGlzIDEuIFNoYWRvdyBET00gSW5wdXQgMQorYmFjayB0byAwdGggaW5wdXQKK2RvY3VtZW50LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDAuIFNoYWRvdyBET00gSW5wdXQg
MAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgMC4gU2hhZG93IERPTSBJ
bnB1dCAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1k
b20vYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy1yb290cy5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13
b3JrLW9uLWlucHV0LWluLXNoYWRvdy1yb290cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5YThkZjk4ZmZi
MWQxMDU0MDY3MjBjNjhhOGU5MGU3MDlmNTc2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmst
b24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWwKQEAgLTAsMCArMSwxMzUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxoMT5UZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0
L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJvb3RzLjwvaDE+Cis8
cD5UbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuPC9wPgorPG9sPgorICAgIDxs
aT5Gb2N1cyB0aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi48
L2xpPgorICAgIDxsaT5QcmVzcyAibmV4dCIgaWNvbiAxMSB0aW1lcy48L2xpPgorICAgIDxsaT5Q
cmVzcyAicHJldiIgaWNvbiAxMSB0aW1lcy48L2xpPgorICAgIDxsaT5JdCBzaG91bGQgdHJhdmVy
c2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBh
bmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS48L2xpPgorPC9vbD4gICAgCis8Zm9ybT4KKyAg
ICA8aGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBvbmZvY3VzPSJsb2dP
bkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0iMC4gU2hhZG93IERPTSBJbnB1dCAwIj4KKyAgICA8
L2hlbGxvLXdvcmxkPgorCisgICAgPGhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0i
dGV4dCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9IjEuIFNoYWRvdyBE
T00gSW5wdXQgMSI+CisgICAgPC9oZWxsby13b3JsZD4KKworICAgIDxoZWxsby13b3JsZD4KKyAg
ICAgICAgPGlucHV0IHR5cGU9InRleHQiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNl
aG9sZGVyPSIyLiBTaGFkb3cgRE9NIElucHV0IDIiPgorICAgIDwvaGVsbG8td29ybGQ+CisKKyAg
ICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhp
cykiIHBsYWNlaG9sZGVyPSIzLiBMaWdodCBET00gSW5wdXQgMCI+CisgICAgPC9wPgorICAgIDxw
PgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIg
cGxhY2Vob2xkZXI9IjQuIExpZ2h0IERPTSBJbnB1dCAxIj4KKyAgICA8L3A+CisgICAgPHA+Cisg
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFj
ZWhvbGRlcj0iNS4gTGlnaHQgRE9NIElucHV0IDIiPgorICAgIDwvcD4KKworICAgIDxjbG9zZWQt
aGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBvbmZvY3VzPSJsb2dPbkZv
Y3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0iNi4gU2hhZG93IERPTSBJbnB1dCAzIj4KKyAgICA8L2Ns
b3NlZC1oZWxsby13b3JsZD4KKworICAgIDxjbG9zZWQtaGVsbG8td29ybGQ+CisgICAgICAgIDxp
bnB1dCB0eXBlPSJ0ZXh0IiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0i
Ny4gU2hhZG93IERPTSBJbnB1dCA0Ij4KKyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAg
IDxjbG9zZWQtaGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBvbmZvY3Vz
PSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0iOC4gU2hhZG93IERPTSBJbnB1dCA1Ij4K
KyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAgIDxwPgorICAgICAgICA8aW5wdXQgdHlw
ZT0idGV4dCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9IjkuIExpZ2h0
IERPTSBJbnB1dCAzIj4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0
ZXh0IiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0iMTAuIExpZ2h0IERP
TSBJbnB1dCA0Ij4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0
IiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0iMTEuIExpZ2h0IERPTSBJ
bnB1dCA1Ij4KKyAgICA8L3A+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxwcmUgc3R5bGU9ImRpc3BsYXk6IG5vbmUiIGlk
PSJjb25zb2xlLWZvci1tYW51YWxseSI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY2xh
c3MgSGVsbG9Xb3JsZCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29uc3RydWN0b3IoKSB7Cisg
ICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9
KS5pbm5lckhUTUwgPSAnPHA+PHNsb3Q+PC9zbG90PjwvcD4nOyAgCisgIH0gIAorfQorY3VzdG9t
RWxlbWVudHMuZGVmaW5lKCdoZWxsby13b3JsZCcsIEhlbGxvV29ybGQpOworCitjbGFzcyBDbG9z
ZWRIZWxsb1dvcmxkIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICBjb25zdHJ1Y3RvcigpIHsKKyAg
ICBzdXBlcigpOworICAgIAorICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ2Nsb3NlZCcg
fSkuaW5uZXJIVE1MID0gJzxwPjxzbG90Pjwvc2xvdD48L3A+JzsgIAorICB9ICAKK30KK2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnY2xvc2VkLWhlbGxvLXdvcmxkJywgQ2xvc2VkSGVsbG9Xb3JsZCk7
CisKK2NvbnN0IGNvbnNvbGVGb3JNYW51YWxseSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlLWZvci1tYW51YWxseScpOworCitmdW5jdGlvbiBsb2dPbkZvY3VzKGVsZW1lbnQpIHsK
KyAgICBjb25zb2xlRm9yTWFudWFsbHkudGV4dENvbnRlbnQgKz0gZWxlbWVudC5nZXRBdHRyaWJ1
dGUoJ3BsYWNlaG9sZGVyJykgKyAnXG4nOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIGxldCBmaXJzdEVsZW1lbnQgPSBudWxsOworCisgICAgeworICAgICAgICBjb25zdCBp
bnB1dExpc3QgPSBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKV07CisgICAg
ICAgIGZpcnN0RWxlbWVudCA9IGlucHV0TGlzdC5zaGlmdCgpOworICAgICAgICBkZWJ1ZygnYWN0
aXZhdGUgMHRoIGlucHV0Jyk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVu
dChmaXJzdEVsZW1lbnQpOworICAgICAgICBkZWJ1ZygnYWN0aXZhdGVkIDB0aCBpbnB1dCcpOwor
CisgICAgICAgIGZvciAoY29uc3QgW2ksIGVsZW1lbnRdIG9mIGlucHV0TGlzdC5lbnRyaWVzKCkp
IHsKKyAgICAgICAgICAgIGRlYnVnKGBmb3J3YXJkIHRvICR7U3RyaW5nKGkgKyAxKX10aCBpbnB1
dGApOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW92ZVRvTmV4dEJ5S2V5Ym9hcmRBY2Nl
c3NvcnlCYXIoKTsKKyAgICAgICAgICAgIGRlYnVnKGBkb2N1bWVudC5hY3RpdmVFbGVtZW50J3Mg
cGxhY2Vob2xkZXIgYXR0cmlidXRlOiAke2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCdwbGFjZWhvbGRlcicpfWApOworICAgICAgICAgICAgc2hvdWxkQmUoKCkgPT4gZG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+IGVsZW1l
bnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGRlYnVnKCdmb2N1cyBoYXMgbW92ZWQgdG8gdGhlIGxhc3QgZWxlbWVudCBhbmQgd2lsbCBtb3Zl
IHRvIHRoZSBmaXJzdCByZXZlcnNlbHknKTsKKworICAgIHsKKyAgICAgICAgY29uc3QgaW5wdXRM
aXN0ID0gWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0JyldLnJldmVyc2UoKTsK
KyAgICAgICAgaW5wdXRMaXN0LnNoaWZ0KCk7CisgICAgICAgIAorICAgICAgICBsZXQgbGFzdEVs
ZW1lbnRJbmRleCA9IGlucHV0TGlzdC5sZW5ndGg7CisgICAgICAgIGZvciAoY29uc3QgZWxlbWVu
dCBvZiBpbnB1dExpc3QpIHsKKyAgICAgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7U3RyaW5nKC0t
bGFzdEVsZW1lbnRJbmRleCl9dGggaW5wdXRgKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
Lm1vdmVUb1ByZXZCeUtleWJvYXJkQWNjZXNzb3J5QmFyKCk7CisKKyAgICAgICAgICAgIGNvbnN0
IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCdwbGFjZWhvbGRlcicpOworICAgICAgICAgICAgZGVidWcoYGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudFBsYWNlaG9s
ZGVyfWApOworICAgICAgICAgICAgc2hvdWxkQmUoKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9s
ZGVyLCAoKSA9PiBlbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSk7CisgICAgICAg
IH0KKyAgICB9Cit9OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBkZXNjcmlwdGlv
bihgVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24g
aW5wdXRzIGluIHNoYWRvdyByb290c2ApOworICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRj
aCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtlfVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVu
KTsKK30gZWxzZSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworICAgIGNvbnNvbGVGb3JNYW51YWxseS5zdHlsZS5kaXNwbGF5
ID0gJyc7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13
b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQxOGUxMTkyN2ViNGUw
MjRhMGRjN2U5Nzg2YTBkNzJhYmMzNTliNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vzc29yeS1iYXItd29yay1vbi1p
bnB1dC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorVGVzdCB0
aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIGRvIG5vdCB3b3JrIG9uIGlu
cHV0cyBpbiBzaGFkb3cgdHJlZQorCitUbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3Rl
cHMuCisKK0ZvY3VzIHRoZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNo
b3duLgorUHJlc3MgIm5leHQiIGljb24gMiB0aW1lcy4KK1ByZXNzICJwcmV2IiBpY29uIDIgdGlt
ZXMuCitJdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFz
aW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS4KKworCitU
ZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsg
b24gaW5wdXRzIGluIHNoYWRvdyB0cmVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
YWN0aXZhdGUgMHRoIGlucHV0CithY3RpdmF0ZWQgMHRoIGlucHV0Citmb3J3YXJkIHRvIDF0aCBp
bnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0
dHJpYnV0ZTogMS4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRlcgorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxLiBpbnB1dCBob3N0ZWQg
YnkgaW5wdXQtaG9sZGVyCitmb3J3YXJkIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMi4gaW5wdXQgaG9zdGVk
IGJ5IGlucHV0LWhvbGRlciBob3N0ZWQgYnkgbmVzdC1pbnB1dC1ob2xkZXIKK1BBU1MgKCkgPT4g
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMi4gaW5wdXQgaG9z
dGVkIGJ5IGlucHV0LWhvbGRlciBob3N0ZWQgYnkgbmVzdC1pbnB1dC1ob2xkZXIKK2ZvY3VzIGhh
cyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJl
dmVyc2VseQorYmFjayB0byAxdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVs
ZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEuIGlucHV0IGhvc3RlZCBieSBpbnB1dC1o
b2xkZXIKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykgaXMgMS4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRlcgorYmFjayB0byAwdGggaW5wdXQK
K2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6IDAuIExpZ2h0IERPTSBJbnB1dCAwCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDAuIExpZ2h0IERPTSBJbnB1dCAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13
b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hh
ZG93LXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2Y2YzZjMjYxZTMwOGRmZGE0MzFkY2U4YzA3ODBl
NjBmMjY2YjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lv
cy9mYXN0L3NoYWRvdy1kb20vYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10
cmVlLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxoMT5UZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8g
bm90IHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyB0cmVlPC9oMT4KKzxwPlRvIG1hbnVhbGx5IHRl
c3QsIGRvIGZvbGxvd2luZyBzdGVwcy48L3A+Cis8b2w+CisgICAgPGxpPkZvY3VzIHRoZSAxc3Qg
b2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLjwvbGk+CisgICAgPGxpPlBy
ZXNzICJuZXh0IiBpY29uIDIgdGltZXMuPC9saT4KKyAgICA8bGk+UHJlc3MgInByZXYiIGljb24g
MiB0aW1lcy48L2xpPgorICAgIDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1l
bnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3Jk
ZXIgb2YgdGhlbS48L2xpPgorPC9vbD4KKzxmb3JtPgorICAgIDxwPgorICAgICAgICA8aW5wdXQg
dHlwZT0idGV4dCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgIHBsYWNlaG9sZGVyPSIwLiBM
aWdodCBET00gSW5wdXQgMCIvPgorICAgIDwvcD4KKworICAgIDxpbnB1dC1ob2xkZXI+PC9pbnB1
dC1ob2xkZXI+CisgICAgPG5lc3QtaW5wdXQtaG9sZGVyPjwvbmVzdC1pbnB1dC1ob2xkZXI+Cis8
L2Zvcm0+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxwcmUgc3R5bGU9ImRpc3BsYXk6IG5vbmUiIGlkPSJjb25zb2xlLWZvci1tYW51YWxs
eSI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY2xhc3MgSW5wdXRIb2xkZXIgZXh0ZW5k
cyBIVE1MRWxlbWVudCB7CisgIGNvbnN0cnVjdG9yKCkgeworICAgIHN1cGVyKCk7CisgICAgCisg
ICAgdGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAg
IC5pbm5lckhUTUwgPSAnPHA+PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNl
aG9sZGVyPSIxLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyIi8+PC9wPic7CisgIH0KK30K
K2N1c3RvbUVsZW1lbnRzLmRlZmluZSgnaW5wdXQtaG9sZGVyJywgSW5wdXRIb2xkZXIpOworCitj
bGFzcyBOZXN0SW5wdXRIb2xkZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgIGNvbnN0cnVjdG9y
KCkgeworICAgIHN1cGVyKCk7CisgICAgCisgICAgdGhpcworICAgICAgICAuYXR0YWNoU2hhZG93
KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPGlucHV0LWhvbGRlcj48
L2lucHV0LWhvbGRlcj4nOworICAgIHRoaXMKKyAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxl
Y3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
aW5wdXQnKS5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgJzIuIGlucHV0IGhvc3RlZCBieSBp
bnB1dC1ob2xkZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyJyk7CisgIH0KK30KK2N1c3Rv
bUVsZW1lbnRzLmRlZmluZSgnbmVzdC1pbnB1dC1ob2xkZXInLCBOZXN0SW5wdXRIb2xkZXIpOwor
Citjb25zdCBjb25zb2xlRm9yTWFudWFsbHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZS1mb3ItbWFudWFsbHknKTsKKworZnVuY3Rpb24gbG9nT25Gb2N1cyhlbGVtZW50KSB7Cisg
ICAgY29uc29sZUZvck1hbnVhbGx5LnRleHRDb250ZW50ICs9IGVsZW1lbnQuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpICsgJ1xuJzsKK30KKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICBjb25zdCBpbnB1dEhvbGRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LWhv
bGRlcicpCisgICAgICAgIC5zaGFkb3dSb290OworICAgIGNvbnN0IG5lc3RJbnB1dEhvbGRlciA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ25lc3QtaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNoYWRvd1Jv
b3Q7CisgICAgCisgICAgY29uc3Qgc3RhY2sgPSBbCisgICAgICAgIGRvY3VtZW50LAorICAgICAg
ICBpbnB1dEhvbGRlciwKKyAgICAgICAgbmVzdElucHV0SG9sZGVyLAorICAgIF07CisKKyAgICB7
CisgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lu
cHV0Jyk7CisgICAgICAgIGRlYnVnKCdhY3RpdmF0ZSAwdGggaW5wdXQnKTsKKyAgICAgICAgYXdh
aXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGZpcnN0RWxlbWVudCk7CisgICAgICAgIGRlYnVn
KCdhY3RpdmF0ZWQgMHRoIGlucHV0Jyk7CisgICAgfQorCisgICAgZm9yIChjb25zdCBbaSwgZG9j
dW1lbnRPclNoYWRvd1Jvb3RdIG9mIHN0YWNrLmVudHJpZXMoKSkgeworICAgICAgICBpZiAoaSA9
PT0gMCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBkZWJ1
ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBpbnB1dGApOworICAgICAgICBhd2FpdCBVSUhl
bHBlci5tb3ZlVG9OZXh0QnlLZXlib2FyZEFjY2Vzc29yeUJhcigpOworICAgICAgICBjb25zdCBh
Y3RpdmVFbGVtZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDsKKyAgICAg
ICAgZGVidWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRl
ciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9
YCk7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdw
bGFjZWhvbGRlcicpLCAoKSA9PiBkb2N1bWVudE9yU2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdp
bnB1dCcpLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSk7CisgICAgfSAKKworICAgIGRlYnVn
KCdmb2N1cyBoYXMgbW92ZWQgdG8gdGhlIGxhc3QgZWxlbWVudCBhbmQgd2lsbCBtb3ZlIHRvIHRo
ZSBmaXJzdCByZXZlcnNlbHknKTsKKworICAgIGZvciAobGV0IGkgPSBzdGFjay5sZW5ndGggLSAx
OyAtMSA8IGk7IC0taSkgeworICAgICAgICBpZiAoc3RhY2subGVuZ3RoIC0gMSA9PT0gaSkgewor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBkZWJ1ZyhgYmFjayB0
byAke1N0cmluZyhpKX10aCBpbnB1dGApOworICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9Q
cmV2QnlLZXlib2FyZEFjY2Vzc29yeUJhcigpOworICAgICAgICBjb25zdCBkb2N1bWVudE9yU2hh
ZG93Um9vdCA9IHN0YWNrW2ldOworICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1l
bnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWcoYGRvY3VtZW50T3JT
aGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAgIHNob3VsZEJl
KCgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpLCAoKSA9PiBk
b2N1bWVudE9yU2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmdldEF0dHJpYnV0ZSgn
cGxhY2Vob2xkZXInKSk7CisgICAgfQorfTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0
dG9ucyBkbyBub3Qgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHRyZWUnKTsKKyAgICBjb25zdCBy
dW4gPSBydW5UZXN0KCkuY2F0Y2goKGUpID0+IGRlYnVnKGBGQUlMOiBcYCR7ZX1cYGApKTsKKyAg
ICBVSUhlbHBlci53YWl0KHJ1bik7Cit9IGVsc2UgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKKyAgICBjb25zb2xlRm9yTWFu
dWFsbHkuc3R5bGUuZGlzcGxheSA9ICcnOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xh
eW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMjU0OTNlY2I4ZDMzMTBlMWQ5
Yjc2ZTQwMGUzYzhmZjczMWZmMjU4YS4uMzEyMTc5MGNhNDkwYjcyNzRlMzZiYzU0NjI0NWQ1NDQw
ZTY0NGQ2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwor
KysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0xMzQ0LDYgKzEzNDQs
MjQgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICAgICAgICAg
IH0pKCk7YCwgcmVzdWx0ID0+IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKICAgICAgICAg
fSk7CiAgICAgfQorCisgICAgc3RhdGljIG1vdmVUb05leHRCeUtleWJvYXJkQWNjZXNzb3J5QmFy
KCkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci5rZXlib2FyZEFjY2Vzc29yeUJhck5leHQoKTsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgYCwgcmVzb2x2ZSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIHN0YXRpYyBtb3ZlVG9QcmV2QnlLZXlib2FyZEFjY2Vzc29yeUJh
cigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cygpOworICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICBgLCByZXNvbHZlKTsKKyAg
ICAgICAgfSk7CisgICAgfQogfQogCiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFz
cyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411063</attachid>
            <date>2020-10-11 14:04:06 -0700</date>
            <delta_ts>2020-10-12 09:00:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201012060404.patch</filename>
            <type>text/plain</type>
            <size>35413</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ2ZTk2NzcyZWE1OTRh
NTcxMjM5MjI3NmI2M2M3NDBiNDU1ZGUzZS4uOTBiNzhiOWMyNWQ1MjgwNzk1YmFmZmU2Zjk5MDYx
ZGIwNWZmMWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LWluLXNoYWRvdy1yb290cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20v
aW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwKKworICAgICAgICAqIHBhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6bmV4
dEZvY3VzYWJsZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpw
cmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQpOgorCiAyMDIwLTEwLTExICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb3Rpb25NYXJrXSBDb21wdXRpbmcg
dGhlIGZhc3QgYm91bmRpbmcgcmVjdCBvZiBhbiBhcmMgc2hvdWxkIG5vdCBtYXRlcmlhbGl6ZSBh
IENHUGF0aFJlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDYy
YTllYTQwY2NjZmI4YjVlY2UzODZjNjM2ZTYzNmJjYjAzZDk4OTMuLjJlM2NhNTg2N2I0NWVlMDJl
YmEyNjUzOTU4M2FhMTg0YzkwNWIyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKQEAgLTY2NSwxNCArNjY1LDE0IEBAIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6
bmV4dEZvY3VzYWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMg
Y2FuIHJldHVybiBhIG5vbi1mb2N1c2FibGUgc2hhZG93IGhvc3QuCiAgICAgLy8gRklYTUU6IFRo
aXMgY2FuJ3QgZ2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIgdGhhdCB0YWtlcyBtb2RpZmllciBrZXlz
IGludG8gYWNjb3VudCBzaW5jZSBpdCBkb2Vzbid0IHBhc3MgYW4gZXZlbnQuCi0gICAgcmV0dXJu
IG5leHRGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpz
Y29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJs
ZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGlyZWN0aW9uRm9yd2FyZCwgRm9jdXNOYXZp
Z2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3RhcnQsIG51bGxwdHIpOwogfQogCiBFbGVt
ZW50KiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudChOb2RlJiBzdGFy
dCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFk
b3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dl
ciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBhY2NvdW50IHNpbmNlIGl0IGRvZXNuJ3Qg
cGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gcHJldmlvdXNGb2N1c2FibGVFbGVtZW50T3JTY29w
ZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxs
cHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZv
Y3VzRGlyZWN0aW9uQmFja3dhcmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0
KSwgJnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0
Rm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjb25zdCBGb2N1c05hdmlnYXRpb25TY29wZSYg
c2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNjBhMjMy
N2JiZTEzNWMyYzIzNmZlZDk4OTlmMWZmN2NiNWViYjZlLi5iY2I1MjFmODNlOGU5NGE3MTI0NTBm
OTJlYTMxZGVjMGQ1YmIwN2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjAtMTAtMTEgIFRl
dHN1aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KKworICAgICAgICBB
Y2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyBkbyBub3Qgd29yayBvbiBpbnB1dHMg
aW4gc2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDMyOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZh
bWlseS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vz
c29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3Nvcnkt
YmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAg
IFRoaXMgaXMgYmFzZWQgb24gdGhlIGF0dGFjaGVkIHRlc3QgY2FzZSBmb3IgdGhlIGJ1Zy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdv
cmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtaW4tc2hhZG93LXRyZWUuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhpcyB0ZXN0cyB0
aGUgZm9jdXMgbW92ZSBieSBhY2Nlc3NvcnkgYmFyIGZvciBpbnB1dHMgaW4gc2hhZG93IHRyZWUu
CisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5w
dXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdp
dGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhpcyB0
ZXN0cyB0aGUgZm9jdXMgbW92ZSBieSBhY2Nlc3NvcnkgYmFyIGZvciBpbnB1dHMgd2hpY2ggaXMg
bm90CisgICAgICAgICAgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWUuCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICAgQXZvaWQgdG8gcnVuIGludHJvZHVjZWQgdGVzdHMgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHRv
IHJ1biB0aGVtIGFuZAorICAgICAgICAgIHRlc3RzIGFyZSBjcmFzaGVkIG9uIHRoZXNlIHBsYXRm
b3Jtcy4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93
LlVJSGVscGVyLm1vdmVUb05leHRCeUtleWJvYXJkQWNjZXNzb3J5QmFyKToKKyAgICAgICAgKHdp
bmRvdy5VSUhlbHBlci5tb3ZlVG9QcmV2QnlLZXlib2FyZEFjY2Vzc29yeUJhcik6CisgICAgICAg
ICh3aW5kb3cuVUlIZWxwZXIpOgorCiAyMDIwLTEwLTEwICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3NzYxKTogZWRpdGluZy9tYWMvc3Bl
bGxpbmcvYXV0b2NvcnJlY3Rpb24tY29udHJhY3Rpb24uaHRtbCBpcyBhIGNvbnN0YW50IHRpbWVv
dXQgb24gbWFjT1Mgd2syIERlYnVnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRv
dy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFy
LXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MzhmM2VkOTNmZGYwZTJmZDY2MzgzNDFmNjk2NmQ5MDllMDQ0ODk1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtaW4tc2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyMiBAQAorVGVz
dCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRz
IGluIHNoYWRvdyByb290cy4KKworVG8gbWFudWFsbHkgdGVzdCwgZG8gZm9sbG93aW5nIHN0ZXBz
LgorCitGb2N1cyB0aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93
bi4KK1ByZXNzICJuZXh0IiBpY29uIDExIHRpbWVzLgorUHJlc3MgInByZXYiIGljb24gMTEgdGlt
ZXMuCitJdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFz
aW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS4KKworCisK
KworCisKKworCisKKworCisKKworCitUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZp
b3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJvb3RzCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworYWN0aXZhdGUgMHRoIGlucHV0CithY3RpdmF0ZWQgMHRoIGlucHV0
Citmb3J3YXJkIHRvIDF0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9s
ZGVyIGF0dHJpYnV0ZTogMS4gU2hhZG93IERPTSBJbnB1dCAxCitQQVNTICgpID0+IGRvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDEuIFNoYWRvdyBE
T00gSW5wdXQgMQorZm9yd2FyZCB0byAydGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQn
cyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDIuIFNoYWRvdyBET00gSW5wdXQgMgorUEFTUyAoKSA9
PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAy
LiBTaGFkb3cgRE9NIElucHV0IDIKK2ZvcndhcmQgdG8gM3RoIGlucHV0Citkb2N1bWVudC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAzLiBMaWdodCBET00gSW5wdXQgMAor
UEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xk
ZXInKSBpcyAzLiBMaWdodCBET00gSW5wdXQgMAorZm9yd2FyZCB0byA0dGggaW5wdXQKK2RvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQuIExpZ2h0IERPTSBJ
bnB1dCAxCitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdw
bGFjZWhvbGRlcicpIGlzIDQuIExpZ2h0IERPTSBJbnB1dCAxCitmb3J3YXJkIHRvIDV0aCBpbnB1
dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNS4gTGln
aHQgRE9NIElucHV0IDIKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNS4gTGlnaHQgRE9NIElucHV0IDIKK2ZvcndhcmQgdG8g
NnRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRl
OiA2LiBTaGFkb3cgRE9NIElucHV0IDMKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNi4gU2hhZG93IERPTSBJbnB1dCAzCitm
b3J3YXJkIHRvIDd0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogNy4gU2hhZG93IERPTSBJbnB1dCA0CitQQVNTICgpID0+IGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDcuIFNoYWRvdyBET00g
SW5wdXQgNAorZm9yd2FyZCB0byA4dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBw
bGFjZWhvbGRlciBhdHRyaWJ1dGU6IDguIFNoYWRvdyBET00gSW5wdXQgNQorUEFTUyAoKSA9PiBk
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA4LiBT
aGFkb3cgRE9NIElucHV0IDUKK2ZvcndhcmQgdG8gOXRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVF
bGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA5LiBMaWdodCBET00gSW5wdXQgMworUEFT
UyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXIn
KSBpcyA5LiBMaWdodCBET00gSW5wdXQgMworZm9yd2FyZCB0byAxMHRoIGlucHV0Citkb2N1bWVu
dC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAxMC4gTGlnaHQgRE9NIElu
cHV0IDQKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJykgaXMgMTAuIExpZ2h0IERPTSBJbnB1dCA0Citmb3J3YXJkIHRvIDExdGggaW5w
dXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDExLiBM
aWdodCBET00gSW5wdXQgNQorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxMS4gTGlnaHQgRE9NIElucHV0IDUKK2ZvY3VzIGhh
cyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJl
dmVyc2VseQorYmFjayB0byAxMHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiAxMC4gTGlnaHQgRE9NIElucHV0IDQKK1BBU1MgKCkgPT4gYWN0
aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDEwLiBMaWdodCBET00gSW5wdXQgNAorYmFjayB0byA5
dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6
IDkuIExpZ2h0IERPTSBJbnB1dCAzCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRl
ciBpcyA5LiBMaWdodCBET00gSW5wdXQgMworYmFjayB0byA4dGggaW5wdXQKK2RvY3VtZW50LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDguIFNoYWRvdyBET00gSW5wdXQg
NQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgOC4gU2hhZG93IERPTSBJ
bnB1dCA1CitiYWNrIHRvIDd0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNl
aG9sZGVyIGF0dHJpYnV0ZTogNy4gU2hhZG93IERPTSBJbnB1dCA0CitQQVNTICgpID0+IGFjdGl2
ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyA3LiBTaGFkb3cgRE9NIElucHV0IDQKK2JhY2sgdG8gNnRo
IGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA2
LiBTaGFkb3cgRE9NIElucHV0IDMKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVy
IGlzIDYuIFNoYWRvdyBET00gSW5wdXQgMworYmFjayB0byA1dGggaW5wdXQKK2RvY3VtZW50LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDUuIExpZ2h0IERPTSBJbnB1dCAy
CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyA1LiBMaWdodCBET00gSW5w
dXQgMgorYmFjayB0byA0dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhv
bGRlciBhdHRyaWJ1dGU6IDQuIExpZ2h0IERPTSBJbnB1dCAxCitQQVNTICgpID0+IGFjdGl2ZUVs
ZW1lbnRQbGFjZWhvbGRlciBpcyA0LiBMaWdodCBET00gSW5wdXQgMQorYmFjayB0byAzdGggaW5w
dXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIExp
Z2h0IERPTSBJbnB1dCAwCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyAz
LiBMaWdodCBET00gSW5wdXQgMAorYmFjayB0byAydGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDIuIFNoYWRvdyBET00gSW5wdXQgMgorUEFT
UyAoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgMi4gU2hhZG93IERPTSBJbnB1dCAy
CitiYWNrIHRvIDF0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogMS4gU2hhZG93IERPTSBJbnB1dCAxCitQQVNTICgpID0+IGFjdGl2ZUVsZW1l
bnRQbGFjZWhvbGRlciBpcyAxLiBTaGFkb3cgRE9NIElucHV0IDEKK2JhY2sgdG8gMHRoIGlucHV0
Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAwLiBTaGFk
b3cgRE9NIElucHV0IDAKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDAu
IFNoYWRvdyBET00gSW5wdXQgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCiswLiBTaGFkb3cgRE9NIElucHV0IDAKKzEuIFNoYWRvdyBET00gSW5wdXQg
MQorMi4gU2hhZG93IERPTSBJbnB1dCAyCiszLiBMaWdodCBET00gSW5wdXQgMAorNC4gTGlnaHQg
RE9NIElucHV0IDEKKzUuIExpZ2h0IERPTSBJbnB1dCAyCis2LiBTaGFkb3cgRE9NIElucHV0IDMK
KzcuIFNoYWRvdyBET00gSW5wdXQgNAorOC4gU2hhZG93IERPTSBJbnB1dCA1Cis5LiBMaWdodCBE
T00gSW5wdXQgMworMTAuIExpZ2h0IERPTSBJbnB1dCA0CisxMS4gTGlnaHQgRE9NIElucHV0IDUK
KzEwLiBMaWdodCBET00gSW5wdXQgNAorOS4gTGlnaHQgRE9NIElucHV0IDMKKzguIFNoYWRvdyBE
T00gSW5wdXQgNQorNy4gU2hhZG93IERPTSBJbnB1dCA0Cis2LiBTaGFkb3cgRE9NIElucHV0IDMK
KzUuIExpZ2h0IERPTSBJbnB1dCAyCis0LiBMaWdodCBET00gSW5wdXQgMQorMy4gTGlnaHQgRE9N
IElucHV0IDAKKzIuIFNoYWRvdyBET00gSW5wdXQgMgorMS4gU2hhZG93IERPTSBJbnB1dCAxCisw
LiBTaGFkb3cgRE9NIElucHV0IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFk
b3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1v
bi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmI3YmQ0YWMxMTRlNjIy
MWYxOTMwNmVjNDUxNzgxN2E3NGNiNmZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93
LXJvb3RzLmh0bWwKQEAgLTAsMCArMSwxMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxoMT5UZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMg
d29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJvb3RzLjwvaDE+Cis8cD5UbyBtYW51YWxseSB0ZXN0
LCBkbyBmb2xsb3dpbmcgc3RlcHMuPC9wPgorPG9sPgorICAgIDxsaT5Gb2N1cyB0aGUgMXN0IG9m
IGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi48L2xpPgorICAgIDxsaT5QcmVz
cyAibmV4dCIgaWNvbiAxMSB0aW1lcy48L2xpPgorICAgIDxsaT5QcmVzcyAicHJldiIgaWNvbiAx
MSB0aW1lcy48L2xpPgorICAgIDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1l
bnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3Jk
ZXIgb2YgdGhlbS48L2xpPgorPC9vbD4gICAgCis8Zm9ybT4KKyAgICA8aGVsbG8td29ybGQ+Cisg
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iMC4gU2hhZG93IERPTSBJbnB1
dCAwIj4KKyAgICA8L2hlbGxvLXdvcmxkPgorCisgICAgPGhlbGxvLXdvcmxkPgorICAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IjEuIFNoYWRvdyBET00gSW5wdXQgMSI+Cisg
ICAgPC9oZWxsby13b3JsZD4KKworICAgIDxoZWxsby13b3JsZD4KKyAgICAgICAgPGlucHV0IHR5
cGU9InRleHQiIHBsYWNlaG9sZGVyPSIyLiBTaGFkb3cgRE9NIElucHV0IDIiPgorICAgIDwvaGVs
bG8td29ybGQ+CisKKyAgICA8cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9s
ZGVyPSIzLiBMaWdodCBET00gSW5wdXQgMCI+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8
aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IjQuIExpZ2h0IERPTSBJbnB1dCAxIj4KKyAg
ICA8L3A+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0i
NS4gTGlnaHQgRE9NIElucHV0IDIiPgorICAgIDwvcD4KKworICAgIDxjbG9zZWQtaGVsbG8td29y
bGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iNi4gU2hhZG93IERP
TSBJbnB1dCAzIj4KKyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAgIDxjbG9zZWQtaGVs
bG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iNy4gU2hh
ZG93IERPTSBJbnB1dCA0Ij4KKyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAgIDxjbG9z
ZWQtaGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0i
OC4gU2hhZG93IERPTSBJbnB1dCA1Ij4KKyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAg
IDxwPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IjkuIExpZ2h0IERP
TSBJbnB1dCAzIj4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0
IiBwbGFjZWhvbGRlcj0iMTAuIExpZ2h0IERPTSBJbnB1dCA0Ij4KKyAgICA8L3A+CisgICAgPHA+
CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iMTEuIExpZ2h0IERPTSBJ
bnB1dCA1Ij4KKyAgICA8L3A+Cis8L2Zvcm0+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworY2xhc3MgSGVsbG9Xb3JsZCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29uc3RydWN0b3Io
KSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdv
cGVuJyB9KS5pbm5lckhUTUwgPSAnPHA+PHNsb3Q+PC9zbG90PjwvcD4nOyAgCisgIH0gIAorfQor
Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCdoZWxsby13b3JsZCcsIEhlbGxvV29ybGQpOworCitjbGFz
cyBDbG9zZWRIZWxsb1dvcmxkIGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICBjb25zdHJ1Y3Rvcigp
IHsKKyAgICBzdXBlcigpOworICAgIAorICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ2Ns
b3NlZCcgfSkuaW5uZXJIVE1MID0gJzxwPjxzbG90Pjwvc2xvdD48L3A+JzsgIAorICB9ICAKK30K
K2N1c3RvbUVsZW1lbnRzLmRlZmluZSgnY2xvc2VkLWhlbGxvLXdvcmxkJywgQ2xvc2VkSGVsbG9X
b3JsZCk7CisKK2Z1bmN0aW9uIGxvZ09uRm9jdXMoZXZlbnQpIHsKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbG9nJykudGV4dENvbnRlbnQgKz0gZXZlbnQuY3VycmVudFRhcmdldC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgKyAnXG4nOworfQorCithc3luYyBmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQn
KSkuZm9yRWFjaCgoaW5wdXQpID0+IGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgbG9n
T25Gb2N1cykpOworCisgICAgbGV0IGZpcnN0RWxlbWVudCA9IG51bGw7CisKKyAgICB7CisgICAg
ICAgIGNvbnN0IGlucHV0TGlzdCA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1
dCcpXTsKKyAgICAgICAgZmlyc3RFbGVtZW50ID0gaW5wdXRMaXN0LnNoaWZ0KCk7CisgICAgICAg
IGRlYnVnKCdhY3RpdmF0ZSAwdGggaW5wdXQnKTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0
aXZhdGVFbGVtZW50KGZpcnN0RWxlbWVudCk7CisgICAgICAgIGRlYnVnKCdhY3RpdmF0ZWQgMHRo
IGlucHV0Jyk7CisKKyAgICAgICAgZm9yIChjb25zdCBbaSwgZWxlbWVudF0gb2YgaW5wdXRMaXN0
LmVudHJpZXMoKSkgeworICAgICAgICAgICAgZGVidWcoYGZvcndhcmQgdG8gJHtTdHJpbmcoaSAr
IDEpfXRoIGlucHV0YCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9OZXh0QnlL
ZXlib2FyZEFjY2Vzc29yeUJhcigpOworICAgICAgICAgICAgZGVidWcoYGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7ZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAgICAgICBzaG91bGRCZSgo
KSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSwg
KCkgPT4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZGVidWcoJ2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFu
ZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseScpOworCisgICAgeworICAgICAgICBj
b25zdCBpbnB1dExpc3QgPSBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKV0u
cmV2ZXJzZSgpOworICAgICAgICBpbnB1dExpc3Quc2hpZnQoKTsKKyAgICAgICAgCisgICAgICAg
IGxldCBsYXN0RWxlbWVudEluZGV4ID0gaW5wdXRMaXN0Lmxlbmd0aDsKKyAgICAgICAgZm9yIChj
b25zdCBlbGVtZW50IG9mIGlucHV0TGlzdCkgeworICAgICAgICAgICAgZGVidWcoYGJhY2sgdG8g
JHtTdHJpbmcoLS1sYXN0RWxlbWVudEluZGV4KX10aCBpbnB1dGApOworICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIubW92ZVRvUHJldkJ5S2V5Ym9hcmRBY2Nlc3NvcnlCYXIoKTsKKworICAgICAg
ICAgICAgY29uc3QgYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7CisgICAgICAgICAgICBkZWJ1ZyhgZG9j
dW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVFbGVt
ZW50UGxhY2Vob2xkZXJ9YCk7CisgICAgICAgICAgICBzaG91bGRCZSgoKSA9PiBhY3RpdmVFbGVt
ZW50UGxhY2Vob2xkZXIsICgpID0+IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
KTsKKyAgICAgICAgfQorICAgIH0KK307CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IGRlc2NyaXB0aW9uKGBUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRv
bnMgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJvb3RzYCk7CisgICAgY29uc3QgcnVuID0gcnVu
VGVzdCgpLmNhdGNoKChlKSA9PiBkZWJ1ZyhgRkFJTDogXGAke2V9XGBgKSk7CisgICAgVUlIZWxw
ZXIud2FpdChydW4pOworfSBlbHNlIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nl
c3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQt
aW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZTMyM2NkOTUzZWU1ZTc4
OTNjYmYzZTgwMWJkNGM5Y2Q5ZGJlYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ct
dHJlZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorVGVzdCB0aGF0IEFjY2Vzc29yeSBi
YXIgbmV4dC9wcmV2aW91cyBidXR0b25zIGRvIG5vdCB3b3JrIG9uIGlucHV0cyBpbiBzaGFkb3cg
dHJlZQorCitUbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuCisKK0ZvY3VzIHRo
ZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLgorUHJlc3MgIm5l
eHQiIGljb24gMiB0aW1lcy4KK1ByZXNzICJwcmV2IiBpY29uIDIgdGltZXMuCitJdCBzaG91bGQg
dHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBv
cmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS4KKworCitUZXN0IHRoYXQgQWNjZXNz
b3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGluIHNo
YWRvdyB0cmVlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworYWN0aXZhdGUgMHRoIGlu
cHV0CithY3RpdmF0ZWQgMHRoIGlucHV0Citmb3J3YXJkIHRvIDF0aCBpbnB1dAorZG9jdW1lbnRP
clNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4gaW5w
dXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRlcgorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVy
Citmb3J3YXJkIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVu
dCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMi4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRl
ciBob3N0ZWQgYnkgbmVzdC1pbnB1dC1ob2xkZXIKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMi4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhv
bGRlciBob3N0ZWQgYnkgbmVzdC1pbnB1dC1ob2xkZXIKK2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUg
bGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseQorYmFjayB0
byAxdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhv
bGRlciBhdHRyaWJ1dGU6IDEuIGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xkZXIKK1BBU1MgKCkg
PT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMS4gaW5wdXQg
aG9zdGVkIGJ5IGlucHV0LWhvbGRlcgorYmFjayB0byAwdGggaW5wdXQKK2RvY3VtZW50T3JTaGFk
b3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDAuIExpZ2h0IERP
TSBJbnB1dCAwCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhv
bGRlcicpIGlzIDAuIExpZ2h0IERPTSBJbnB1dCAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKzAuIExpZ2h0IERPTSBJbnB1dCAwCisxLiBpbnB1dCBo
b3N0ZWQgYnkgaW5wdXQtaG9sZGVyCisyLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyIGhv
c3RlZCBieSBuZXN0LWlucHV0LWhvbGRlcgorMS4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRl
cgorMC4gTGlnaHQgRE9NIElucHV0IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3Jr
LW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU1NDU1YWRmNmRjOTgy
NmIwNTgxMDQ0MmQ4ZGI4YmZkODY0NmY1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRv
dy10cmVlLmh0bWwKQEAgLTAsMCArMSwxMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxoMT5UZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMg
ZG8gbm90IHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyB0cmVlPC9oMT4KKzxwPlRvIG1hbnVhbGx5
IHRlc3QsIGRvIGZvbGxvd2luZyBzdGVwcy48L3A+Cis8b2w+CisgICAgPGxpPkZvY3VzIHRoZSAx
c3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLjwvbGk+CisgICAgPGxp
PlByZXNzICJuZXh0IiBpY29uIDIgdGltZXMuPC9saT4KKyAgICA8bGk+UHJlc3MgInByZXYiIGlj
b24gMiB0aW1lcy48L2xpPgorICAgIDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVs
ZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUg
b3JkZXIgb2YgdGhlbS48L2xpPgorPC9vbD4KKzxmb3JtPgorICAgIDxwPgorICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgIHBsYWNlaG9sZGVyPSIw
LiBMaWdodCBET00gSW5wdXQgMCIvPgorICAgIDwvcD4KKworICAgIDxpbnB1dC1ob2xkZXI+PC9p
bnB1dC1ob2xkZXI+CisgICAgPG5lc3QtaW5wdXQtaG9sZGVyPjwvbmVzdC1pbnB1dC1ob2xkZXI+
Cis8L2Zvcm0+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY2xhc3MgSW5wdXRIb2xk
ZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgIGNvbnN0cnVjdG9yKCkgeworICAgIHN1cGVyKCk7
CisgICAgCisgICAgdGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0p
CisgICAgICAgIC5pbm5lckhUTUwgPSAnPHA+PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhp
cykiIHBsYWNlaG9sZGVyPSIxLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyIi8+PC9wPic7
CisgIH0KK30KK2N1c3RvbUVsZW1lbnRzLmRlZmluZSgnaW5wdXQtaG9sZGVyJywgSW5wdXRIb2xk
ZXIpOworCitjbGFzcyBOZXN0SW5wdXRIb2xkZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgIGNv
bnN0cnVjdG9yKCkgeworICAgIHN1cGVyKCk7CisgICAgCisgICAgdGhpcworICAgICAgICAuYXR0
YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPGlucHV0
LWhvbGRlcj48L2lucHV0LWhvbGRlcj4nOworICAgIHRoaXMKKyAgICAgICAgLnNoYWRvd1Jvb3Qu
cXVlcnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlT
ZWxlY3RvcignaW5wdXQnKS5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgJzIuIGlucHV0IGhv
c3RlZCBieSBpbnB1dC1ob2xkZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyJyk7CisgIH0K
K30KK2N1c3RvbUVsZW1lbnRzLmRlZmluZSgnbmVzdC1pbnB1dC1ob2xkZXInLCBOZXN0SW5wdXRI
b2xkZXIpOworCitmdW5jdGlvbiBsb2dPbkZvY3VzKGVsZW1lbnQpIHsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbG9nJykudGV4dENvbnRlbnQgKz0gZWxlbWVudC5nZXRBdHRyaWJ1dGUo
J3BsYWNlaG9sZGVyJykgKyAnXG4nOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgIGNvbnN0IGlucHV0SG9sZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQtaG9s
ZGVyJykKKyAgICAgICAgLnNoYWRvd1Jvb3Q7CisgICAgY29uc3QgbmVzdElucHV0SG9sZGVyID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmVzdC1pbnB1dC1ob2xkZXInKQorICAgICAgICAuc2hh
ZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dC1ob2xkZXInKQorICAgICAgICAuc2hhZG93Um9v
dDsKKyAgICAKKyAgICBjb25zdCBzdGFjayA9IFsKKyAgICAgICAgZG9jdW1lbnQsCisgICAgICAg
IGlucHV0SG9sZGVyLAorICAgICAgICBuZXN0SW5wdXRIb2xkZXIsCisgICAgXTsKKworICAgIHsK
KyAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5w
dXQnKTsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlIDB0aCBpbnB1dCcpOworICAgICAgICBhd2Fp
dCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZmlyc3RFbGVtZW50KTsKKyAgICAgICAgZGVidWco
J2FjdGl2YXRlZCAwdGggaW5wdXQnKTsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0IFtpLCBkb2N1
bWVudE9yU2hhZG93Um9vdF0gb2Ygc3RhY2suZW50cmllcygpKSB7CisgICAgICAgIGlmIChpID09
PSAwKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVn
KGBmb3J3YXJkIHRvICR7U3RyaW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVs
cGVyLm1vdmVUb05leHRCeUtleWJvYXJkQWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0IGFj
dGl2ZUVsZW1lbnQgPSBkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAg
ICBkZWJ1ZyhgZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogJHthY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1g
KTsKKyAgICAgICAgc2hvdWxkQmUoKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJyksICgpID0+IGRvY3VtZW50T3JTaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lu
cHV0JykuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICB9IAorCisgICAgZGVidWco
J2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhl
IGZpcnN0IHJldmVyc2VseScpOworCisgICAgZm9yIChsZXQgaSA9IHN0YWNrLmxlbmd0aCAtIDE7
IC0xIDwgaTsgLS1pKSB7CisgICAgICAgIGlmIChzdGFjay5sZW5ndGggLSAxID09PSBpKSB7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVnKGBiYWNrIHRv
ICR7U3RyaW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdmVUb1By
ZXZCeUtleWJvYXJkQWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0IGRvY3VtZW50T3JTaGFk
b3dSb290ID0gc3RhY2tbaV07CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVu
dE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRPclNo
YWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxkQmUo
KCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+IGRv
Y3VtZW50T3JTaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZ2V0QXR0cmlidXRlKCdw
bGFjZWhvbGRlcicpKTsKKyAgICB9Cit9OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICBkZXNjcmlwdGlvbignVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0
b25zIGRvIG5vdCB3b3JrIG9uIGlucHV0cyBpbiBzaGFkb3cgdHJlZScpOworICAgIGNvbnN0IHJ1
biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtlfVxgYCkpOworICAg
IFVJSGVscGVyLndhaXQocnVuKTsKK30gZWxzZSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworfQorCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9t
L2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ct
dHJlZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vz
c29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOTljNzI1MDZkNzZiNmQzNWFkZmZiODBmYjZmOTM3M2M4NWEx
N2U0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9h
Y2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NyBAQAorVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4
dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0
byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZQorCitUbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dp
bmcgc3RlcHMuCisKK0ZvY3VzIHRoZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3
aWxsIHNob3duLgorUHJlc3MgIm5leHQiIGljb24gNCB0aW1lcy4KK1ByZXNzICJwcmV2IiBpY29u
IDQgdGltZXMuCitJdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBp
bmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS4K
KworCisKK1Rlc3QgdGhhdCBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3Jr
IG9uIGlucHV0cyB3aGljaCBpcyBub3QgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRy
ZWUKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCithY3RpdmF0ZSAwdGggaW5wdXQKK2Fj
dGl2YXRlZCAwdGggaW5wdXQKK2ZvcndhcmQgdG8gMXRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93
Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAxLiBTaGFkb3cgaG9z
dCB3aXRoIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMS4gU2hhZG93IGhvc3Qgd2l0aCBhIHBvc2l0aXZl
IHRhYmluZGV4Citmb3J3YXJkIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMi4gRm9jdXNhYmxlIGVsZW1lbnQg
aW5zaWRlIGEgc2hhZG93IGhvc3Qgd2l0aCBhIHBvc2l0aXZlIHRhYmluZGV4CitQQVNTICgpID0+
IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDIuIEZvY3VzYWJs
ZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleAor
Zm9yd2FyZCB0byAzdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQn
cyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNo
YWRvdyBob3N0IHdpdGggbm8gdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNC4gRm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIGEg
c2hhZG93IGhvc3Qgd2l0aCBubyB0YWJpbmRleAorZm9yd2FyZCB0byA0dGggaW5wdXQKK2RvY3Vt
ZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQu
IExhc3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKK1BB
U1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNC4g
TGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworZm9j
dXMgaGFzIG1vdmVkIHRvIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmly
c3QgcmV2ZXJzZWx5CitiYWNrIHRvIDN0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNC4gRm9jdXNhYmxlIGVsZW1lbnQg
aW5zaWRlIGEgc2hhZG93IGhvc3Qgd2l0aCBubyB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA0LiBGb2N1c2FibGUgZWxlbWVu
dCBpbnNpZGUgYSBzaGFkb3cgaG9zdCB3aXRoIG5vIHRhYmluZGV4CitiYWNrIHRvIDJ0aCBpbnB1
dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJp
YnV0ZTogMi4gRm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIGEgc2hhZG93IGhvc3Qgd2l0aCBhIHBv
c2l0aXZlIHRhYmluZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdw
bGFjZWhvbGRlcicpIGlzIDIuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0
IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleAorYmFjayB0byAxdGggaW5wdXQKK2RvY3VtZW50T3JT
aGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEuIFNoYWRv
dyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxLiBTaGFkb3cgaG9zdCB3aXRoIGEgcG9z
aXRpdmUgdGFiaW5kZXgKK2JhY2sgdG8gMHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAwLiBGaXJzdCBzZXF1ZW50aWFs
bHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyAoKSA9PiBhY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAwLiBGaXJzdCBzZXF1ZW50aWFs
bHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5w
dXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworMS4gU2hhZG93IGhvc3Qgd2l0aCBhIHBv
c2l0aXZlIHRhYmluZGV4CisyLiBGb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgYSBzaGFkb3cgaG9z
dCB3aXRoIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzQuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBh
IHNoYWRvdyBob3N0IHdpdGggbm8gdGFiaW5kZXgKK251bGwKKzQuIExhc3Qgc2VxdWVudGlhbGx5
IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKKzQuIEZvY3VzYWJsZSBlbGVtZW50
IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGggbm8gdGFiaW5kZXgKK251bGwKKzIuIEZvY3VzYWJs
ZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleAor
MS4gU2hhZG93IGhvc3Qgd2l0aCBhIHBvc2l0aXZlIHRhYmluZGV4CiswLiBGaXJzdCBzZXF1ZW50
aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWlu
LXNoYWRvdy10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg2OWIyNjliYTMwODAwZjc1MWM0ZGEzMjQz
NjA5NjQ0ZGU4YjY3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93
LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hh
ZG93LXRyZWUuaHRtbApAQCAtMCwwICsxLDEyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorCis8aDE+VGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0
b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBz
aGFkb3cgdHJlZTwvaDE+Cis8cD5UbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMu
PC9wPgorPG9sPgorICAgIDxsaT5Gb2N1cyB0aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29y
eSBiYXIgd2lsbCBzaG93bi48L2xpPgorICAgIDxsaT5QcmVzcyAibmV4dCIgaWNvbiA0IHRpbWVz
LjwvbGk+CisgICAgPGxpPlByZXNzICJwcmV2IiBpY29uIDQgdGltZXMuPC9saT4KKyAgICA8bGk+
SXQgc2hvdWxkIHRyYXZlcnNlIGZvY3VzYWJsZSBlbGVtZW50cyBpbiB0aGUgaW5jcmVhc2luZyBu
dW1lcmljYWwgb3JkZXIgYW5kIHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZW0uPC9saT4KKzwvb2w+
CisKKzxpbnB1dCBpZD0iZmlyc3QiIHRhYmluZGV4PSIxIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRo
aXMpIgorICAgIHBsYWNlaG9sZGVyPSIwLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVu
dCBvdXRzaWRlIHNoYWRvdyB0cmVlcyIgLz4KKzxkaXYgaWQ9Imhvc3Qtd2l0aC1uZWdhdGl2ZS10
YWJpbmRleCIgdGFiaW5kZXg9Ii0xIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIj5TaGFkb3cg
aG9zdCB3aXRoIGEgbmVnYXRpdmUgdGFiaW5kZXg8L2Rpdj4KKzxkaXYgaWQ9Imhvc3Qtd2l0aC1u
by10YWJpbmRleCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSI+CisgICAgPGlucHV0IGlkPSJo
b3N0LXdpdGgtbm8tdGFiaW5kZXgiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAg
IHBsYWNlaG9sZGVyPSJTaG91bGQgbm90IGJlIGZvY3VzZWQgYXMgaXQgaXMgaW5zaWRlIGEgc2hh
ZG93IGhvc3Qgd2l0aCBhIG5vIHRhYmluZGV4IiAvPgorPC9kaXY+Cis8ZGl2IGlkPSJob3N0LXdp
dGgtcG9zaXRpdmUtdGFiaW5kZXgiIHRhYmluZGV4PSIyIj4KKyAgICA8aW5wdXQgaWQ9ImlucHV0
LWhvc3Qtd2l0aC1wb3NpdGl2ZS10YWJpbmRleCIgdGFiaW5kZXg9IjAiIG9uZm9jdXM9ImxvZ09u
Rm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSIxLiBTaGFkb3cgaG9zdCB3aXRoIGEgcG9zaXRpdmUg
dGFiaW5kZXgiIC8+Cis8L2Rpdj4KKzxpbnB1dCBpZD0ibGFzdCIgdGFiaW5kZXg9IjAiIG9uZm9j
dXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgcGxhY2Vob2xkZXI9IjQuIExhc3Qgc2VxdWVudGlh
bGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMiIC8+CisKKworPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8cHJlIGlkPSJs
b2ciPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LXdpdGgt
bmVnYXRpdmUtdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkuaW5uZXJI
VE1MID0gYAorICAgIDxpbnB1dCB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlz
KSIgcGxhY2Vob2xkZXI9IlNob3VsZCBub3QgYmUgZm9jdXNlZCBhcyBpdCBpcyBpbnNpZGUgYSBz
aGFkb3cgaG9zdCB3aXRoIGEgbmVnYXRpdmUgdGFiaW5kZXgiLz4KK2A7CisKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtbm8tdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3coeyBtb2Rl
OiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxpbnB1dCBpZD0iaW5zaWRlLXNoYWRvdy1o
b3N0LW5vLXRhYmluZGV4IiB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIg
cGxhY2Vob2xkZXI9IjQuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdp
dGggbm8gdGFiaW5kZXgiLz4KK2A7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LXdp
dGgtcG9zaXRpdmUtdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkuaW5u
ZXJIVE1MID0gYAorICAgIDxzbG90Pjwvc2xvdD4KKyAgICA8aW5wdXQgaWQ9Imluc2lkZS1zaGFk
b3ctaG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4IiB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9n
T25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9IjIuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBh
IHNoYWRvdyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleCIvPgorYDsKKworZnVuY3Rpb24g
bG9nT25Gb2N1cyhlbGVtZW50KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycp
LnRleHRDb250ZW50ICs9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpICsgJ1xu
JzsKK30KKworY2xhc3MgVGVzdGNhc2UgeworICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50T3JTaGFk
b3dSb290LCBpbnB1dEdldHRlcikgeworICAgICAgICB0aGlzLmRvY3VtZW50T3JTaGFkb3dSb290
ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3Q7CisgICAgICAgIHRoaXMuX2lucHV0R2V0dGVyID0gaW5w
dXRHZXR0ZXI7CisgICAgfQorCisgICAgZ2V0IGlucHV0RWxlbWVudCgpIHsKKyAgICAgICAgY29u
c3Qgcm9vdCA9IHRoaXMuZG9jdW1lbnRPclNoYWRvd1Jvb3Q7CisgICAgICAgIHJldHVybiB0aGlz
Ll9pbnB1dEdldHRlcihyb290KTsKKyAgICB9Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgY29uc3Qgc3RhY2sgPSBbCisgICAgICAgIG5ldyBUZXN0Y2FzZShkb2N1bWVudCwg
KF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdCcpKSwKKyAgICAgICAgbmV3IFRl
c3RjYXNlKGRvY3VtZW50LCAoXykgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LWhv
c3Qtd2l0aC1wb3NpdGl2ZS10YWJpbmRleCcpKSwKKworICAgICAgICBuZXcgVGVzdGNhc2UoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qtd2l0aC1wb3NpdGl2ZS10YWJpbmRleCcpLnNoYWRv
d1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCcjaW5zaWRlLXNoYWRvdy1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKSksIAorCisg
ICAgICAgIG5ldyBUZXN0Y2FzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdC13aXRoLW5v
LXRhYmluZGV4Jykuc2hhZG93Um9vdCwKKyAgICAgICAgICAgIChzaGFkb3dSb290KSA9PiBzaGFk
b3dSb290LnF1ZXJ5U2VsZWN0b3IoJyNpbnNpZGUtc2hhZG93LWhvc3Qtbm8tdGFiaW5kZXgnKSks
IAorCisgICAgICAgIG5ldyBUZXN0Y2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsYXN0JykpLAorICAgIF07CisKKyAgICB7CisgICAgICAgIGNvbnN0IGZpcnN0
RWxlbWVudCA9IHN0YWNrWzBdLmlucHV0RWxlbWVudDsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRl
IDB0aCBpbnB1dCcpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZmly
c3RFbGVtZW50KTsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlZCAwdGggaW5wdXQnKTsKKyAgICB9
CisKKyAgICBmb3IgKGNvbnN0IFtpLCB7IGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEVsZW1l
bnQsIH1dIG9mIHN0YWNrLmVudHJpZXMoKSkgeworICAgICAgICBpZiAoaSA9PT0gMCkgeworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBkZWJ1ZyhgZm9yd2FyZCB0
byAke1N0cmluZyhpKX10aCBpbnB1dGApOworICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9O
ZXh0QnlLZXlib2FyZEFjY2Vzc29yeUJhcigpOworICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50
ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWcoYGRv
Y3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6
ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAg
IHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
LCAoKSA9PiBpbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICB9
IAorCisgICAgZGVidWcoJ2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3
aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseScpOworCisgICAgZm9yIChsZXQgaSA9IHN0
YWNrLmxlbmd0aCAtIDE7IC0xIDwgaTsgLS1pKSB7CisgICAgICAgIGlmIChzdGFjay5sZW5ndGgg
LSAxID09PSBpKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAg
IGRlYnVnKGBiYWNrIHRvICR7U3RyaW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJ
SGVscGVyLm1vdmVUb1ByZXZCeUtleWJvYXJkQWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0
IHsgZG9jdW1lbnRPclNoYWRvd1Jvb3QsIGlucHV0RWxlbWVudCwgfSA9IHN0YWNrW2ldOworICAg
ICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxl
bWVudDsKKyAgICAgICAgZGVidWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQn
cyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJyl9YCk7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpLCAoKSA9PiBpbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpKTsKKyAgICB9Cit9OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICBkZXNjcmlwdGlvbihgVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBi
dXR0b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBp
biBzaGFkb3cgdHJlZWApOworICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4g
ZGVidWcoYEZBSUw6IFxgJHtlfVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVuKTsKK30gZWxz
ZSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5zdHlsZS5kaXNwbGF5
ID0gJ25vbmUnOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDU2OTExZWM5M2FiYzYxMDEwMTAzODk1NjljNzI1YWQ1ZDFiZTYwMjguLjM2YWQzNTMx
NjY5NzQ3NzE0NTMzOGZmYWU2ZTkxYWU2MGNmNTg3NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02NDcsNiArNjQ3LDExIEBAIHdlYmtpdC5vcmcvYi8x
MDk1NzAgbWVkaWEvdHJhY2svdzNjIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy90b3VjaC9nZXN0dXJl
IFsgU2tpcCBdCiBmYXN0L3NoYWRvdy1kb20vdG91Y2gtZXZlbnQtb24tdGV4dC1hc3NpZ25lZC10
by1zbG90Lmh0bWwgWyBTa2lwIF0KIAorIyBUaGVzZSB0ZXN0cyBhcmUgZm9yIGlPUycgYWNjZXNz
b3J5IGJhci4gTm90IGZvciBvdGhlciBwb3J0cy4KK2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNz
b3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy1yb290cy5odG1sIFsgU2tpcCBdCitmYXN0
L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJl
ZS5odG1sIFsgU2tpcCBdCitmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1v
bi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwgWyBTa2lwIF0KKwogIyBU
aGVzZSB0ZXN0cyByZXF1aXJlIHRvdWNoIHN1cHBvcnQKIGZhc3QvZXZlbnRzL3RvdWNoIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3RvdWNoLWV2ZW50cyBbIFNraXAg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlYWJjMzE5
YWMxZDMzZmE2MzkwMDk5YTBlN2Q0ZGJjM2M4ZTI3MWI2Li44OTViMTNmNDZmNmIwMjhhMDJjYTMy
OTM1OTcyNGIzMDM0N2YyYzhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjI0MiwzICsyMjQyLDggQEAgd2Via2l0Lm9yZy9iLzIxNzQ2MSBbIE1vamF2
ZSsgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbWFza2luZy8KIHdl
YmtpdC5vcmcvYi8yMTc1NDIgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRp
by90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb2NvbnRleHQtaW50ZXJmYWNlL3Byb2Nlc3NpbmctYWZ0
ZXItcmVzdW1lLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjE3
NTQzIHdlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQvb25zdGF0ZWNoYW5nZS5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KKworIyBUaGVzZSB0ZXN0cyBhcmUgZm9yIGlPUycgYWNjZXNzb3J5IGJhci4g
Tm90IGZvciBvdGhlciBwb3J0cy4KK2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13
b3JrLW9uLWlucHV0LWluLXNoYWRvdy1yb290cy5odG1sIFsgU2tpcCBdCitmYXN0L3NoYWRvdy1k
b20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sIFsg
U2tpcCBdCitmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13
aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwgWyBTa2lwIF0KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDZiZWVjNTg3OGVhZmFkMjMwNzQwODYwOTY3N2MwNDdkNTRiNTYyYWQuLjIyM2VlMTRiMTFh
ZGI2NDQwNjRhYWVhYWJjZWNlNWU3MGZlYWMxZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTgwLDMgKzQ1ODAsOCBAQCBmYXN0L3RleHQvZW1vamkt
c3ludGhlc2lzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmFuaW1hdGlvbnMvYWNjZWxl
cmF0ZWQtY3NzLWFuaW1hdGlvbi13aXRoLWVhc2luZy5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNjk2NyBmYXN0L3RleHQvd2hpdGVzcGFjZS9wcmUtd3Jh
cC1sb25nLXdvcmQtc2ltcGxlLWxpbmVzLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQor
CisjIFRoZXNlIHRlc3RzIGFyZSBmb3IgaU9TJyBhY2Nlc3NvcnkgYmFyLiBOb3QgZm9yIG90aGVy
IHBvcnRzLgorZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQt
aW4tc2hhZG93LXJvb3RzLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNz
b3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWwgWyBTa2lwIF0KK2Zhc3Qv
c2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgt
aW4tc2hhZG93LXRyZWUuaHRtbCBbIFNraXAgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWY5MjRlZjA4
OTBhODJjMjNhNDA3ZGZhMzQxMzk0N2YxM2YwNzM3NS4uZTUxZjAyNzAzNmZhMTU2M2MxZjIzMjhi
MTczYzAwOWI1MzM1MDA4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTI5Nyw2ICsyOTcsMTEgQEAgZmFzdC9kb20vV2luZG93L3dhdGNob3MgWyBTa2lw
IF0KIAogZmFzdC9kb20vV2luZG93L1BsdWctaW5zLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBUaGVz
ZSB0ZXN0cyBhcmUgZm9yIGlPUycgYWNjZXNzb3J5IGJhci4gTm90IGZvciBvdGhlciBwb3J0cy4K
K2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRv
dy1yb290cy5odG1sIFsgU2tpcCBdCitmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXIt
d29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sIFsgU2tpcCBdCitmYXN0L3NoYWRvdy1k
b20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRv
dy10cmVlLmh0bWwgWyBTa2lwIF0KKwogIyBQb2ludGVyIExvY2sgQVBJIG5vdCBpbXBsZW1lbnRl
ZAogd2Via2l0Lm9yZy9iLzIwNDAwMSBwb2ludGVyLWxvY2svIFsgU2tpcCBdCiB3ZWJraXQub3Jn
L2IvMjA0MDAxIGZhc3Qvc2hhZG93LWRvbS9wb2ludGVybG9ja2VsZW1lbnQtaW4tc2hhZG93LXRy
ZWUuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggMjU0OTNl
Y2I4ZDMzMTBlMWQ5Yjc2ZTQwMGUzYzhmZjczMWZmMjU4YS4uMzEyMTc5MGNhNDkwYjcyNzRlMzZi
YzU0NjI0NWQ1NDQwZTY0NGQ2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0x
MzQ0LDYgKzEzNDQsMjQgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAg
ICAgICAgICAgICAgIH0pKCk7YCwgcmVzdWx0ID0+IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIp
KTsKICAgICAgICAgfSk7CiAgICAgfQorCisgICAgc3RhdGljIG1vdmVUb05leHRCeUtleWJvYXJk
QWNjZXNzb3J5QmFyKCkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5rZXlib2FyZEFjY2Vzc29yeUJhck5leHQoKTsKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgYCwgcmVzb2x2
ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHN0YXRpYyBtb3ZlVG9QcmV2QnlLZXlib2Fy
ZEFjY2Vzc29yeUJhcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cygpOworICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICBgLCBy
ZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1
aWxkZXIgPSBjbGFzcyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411122</attachid>
            <date>2020-10-12 09:00:34 -0700</date>
            <delta_ts>2020-10-25 10:32:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201013010033.patch</filename>
            <type>text/plain</type>
            <size>32850</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ2ZTk2NzcyZWE1OTRh
NTcxMjM5MjI3NmI2M2M3NDBiNDU1ZGUzZS4uOTBiNzhiOWMyNWQ1MjgwNzk1YmFmZmU2Zjk5MDYx
ZGIwNWZmMWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LWluLXNoYWRvdy1yb290cy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20v
aW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwKKworICAgICAgICAqIHBhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxlcjo6bmV4
dEZvY3VzYWJsZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpw
cmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQpOgorCiAyMDIwLTEwLTExICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtNb3Rpb25NYXJrXSBDb21wdXRpbmcg
dGhlIGZhc3QgYm91bmRpbmcgcmVjdCBvZiBhbiBhcmMgc2hvdWxkIG5vdCBtYXRlcmlhbGl6ZSBh
IENHUGF0aFJlZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IDYy
YTllYTQwY2NjZmI4YjVlY2UzODZjNjM2ZTYzNmJjYjAzZDk4OTMuLjJlM2NhNTg2N2I0NWVlMDJl
YmEyNjUzOTU4M2FhMTg0YzkwNWIyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKQEAgLTY2NSwxNCArNjY1LDE0IEBAIEVsZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6
bmV4dEZvY3VzYWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMg
Y2FuIHJldHVybiBhIG5vbi1mb2N1c2FibGUgc2hhZG93IGhvc3QuCiAgICAgLy8gRklYTUU6IFRo
aXMgY2FuJ3QgZ2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIgdGhhdCB0YWtlcyBtb2RpZmllciBrZXlz
IGludG8gYWNjb3VudCBzaW5jZSBpdCBkb2Vzbid0IHBhc3MgYW4gZXZlbnQuCi0gICAgcmV0dXJu
IG5leHRGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpz
Y29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJs
ZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGlyZWN0aW9uRm9yd2FyZCwgRm9jdXNOYXZp
Z2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3RhcnQsIG51bGxwdHIpOwogfQogCiBFbGVt
ZW50KiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudChOb2RlJiBzdGFy
dCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFk
b3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4ndCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dl
ciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBhY2NvdW50IHNpbmNlIGl0IGRvZXNuJ3Qg
cGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gcHJldmlvdXNGb2N1c2FibGVFbGVtZW50T3JTY29w
ZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxs
cHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZv
Y3VzRGlyZWN0aW9uQmFja3dhcmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0
KSwgJnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0
Rm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjb25zdCBGb2N1c05hdmlnYXRpb25TY29wZSYg
c2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNjBhMjMy
N2JiZTEzNWMyYzIzNmZlZDk4OTlmMWZmN2NiNWViYjZlLi44ZTNjMDY3YmUyZTMyNzk4ODVmMDkz
NzJmOGU2ODE0N2I0YmNlM2NmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMTAtMTEgIFRl
dHN1aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KKworICAgICAgICBB
Y2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyBkbyBub3Qgd29yayBvbiBpbnB1dHMg
aW4gc2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDMyOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZh
bWlseS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZmFzdC9zaGFkb3ctZG9tL2FjY2Vz
c29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3Nvcnkt
YmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWw6IEFkZGVkLgorICAgICAgICAg
IFRoaXMgaXMgYmFzZWQgb24gdGhlIGF0dGFjaGVkIHRlc3QgY2FzZSBmb3IgdGhlIGJ1Zy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdv
cmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvaW9zL2Zhc3Qvc2hhZG93LWRvbS9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtaW4tc2hhZG93LXRyZWUuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhpcyB0ZXN0cyB0
aGUgZm9jdXMgbW92ZSBieSBhY2Nlc3NvcnkgYmFyIGZvciBpbnB1dHMgaW4gc2hhZG93IHRyZWUu
CisgICAgICAgICogZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5w
dXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdp
dGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbDogQWRkZWQuCisgICAgICAgICAgVGhpcyB0
ZXN0cyB0aGUgZm9jdXMgbW92ZSBieSBhY2Nlc3NvcnkgYmFyIGZvciBpbnB1dHMgd2hpY2ggaXMg
bm90CisgICAgICAgICAgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWUuCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgICBBdm9pZCB0byBydW4gaW50cm9kdWNlZCB0ZXN0cyBiZWNhdXNl
IHdlIGRvbid0IGhhdmUgdG8gcnVuIHRoZW0gYW5kCisgICAgICAgICAgdGVzdHMgYXJlIGNyYXNo
ZWQgb24gdGhlc2UgcGxhdGZvcm1zLgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6
CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIubW92ZVRvTmV4dEJ5S2V5Ym9hcmRBY2Nlc3NvcnlC
YXIpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLm1vdmVUb1ByZXZCeUtleWJvYXJkQWNjZXNz
b3J5QmFyKToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlcik6CisKIDIwMjAtMTAtMTAgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjc3NjEp
OiBlZGl0aW5nL21hYy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1jb250cmFjdGlvbi5odG1sIGlz
IGEgY29uc3RhbnQgdGltZW91dCBvbiBtYWNPUyB3azIgRGVidWcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDgxMWMyOThmNTNmZmQyY2M0OTBkMGNkNDQ5MTU2ZGJiZDc4NTBiMTcuLjFjYWQ3YjBmNzli
YTBiODA5OTgyOTMyOGU3MDQ0OGQxZTc2OWU0M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDUy
NCwzICs0NTI0LDYgQEAgZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5kby5odG1sIFsgRmFpbHVyZSBd
CiAKIGZhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMjE3MDU0IGZhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvaG9yaXpvbnRh
bC1zaXppbmctd2l0aC10cmFpbGluZy1sZXR0ZXItc3BhY2luZy5odG1sIFsgU2tpcCBdCisKKyMg
VGhlc2UgdGVzdHMgYXJlIGZvciBpT1MgcG9ydC4KK2Zhc3Qvc2hhZG93LWRvbS9pb3MvIFsgU2tp
cCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29y
eS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctcm9vdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4t
c2hhZG93LXJvb3RzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzhmM2VkOTNmZGYwZTJmZDY2
MzgzNDFmNjk2NmQ5MDllMDQ0ODk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJv
b3RzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyMiBAQAorVGVzdCB0aGF0IEFjY2Vzc29yeSBi
YXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyByb290cy4K
KworVG8gbWFudWFsbHkgdGVzdCwgZG8gZm9sbG93aW5nIHN0ZXBzLgorCitGb2N1cyB0aGUgMXN0
IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi4KK1ByZXNzICJuZXh0IiBp
Y29uIDExIHRpbWVzLgorUHJlc3MgInByZXYiIGljb24gMTEgdGltZXMuCitJdCBzaG91bGQgdHJh
dmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRl
ciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS4KKworCisKKworCisKKworCisKKworCisK
KworCitUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBv
biBpbnB1dHMgaW4gc2hhZG93IHJvb3RzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
YWN0aXZhdGUgMHRoIGlucHV0CithY3RpdmF0ZWQgMHRoIGlucHV0Citmb3J3YXJkIHRvIDF0aCBp
bnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4g
U2hhZG93IERPTSBJbnB1dCAxCitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDEuIFNoYWRvdyBET00gSW5wdXQgMQorZm9yd2Fy
ZCB0byAydGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRy
aWJ1dGU6IDIuIFNoYWRvdyBET00gSW5wdXQgMgorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVF
bGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAyLiBTaGFkb3cgRE9NIElucHV0
IDIKK2ZvcndhcmQgdG8gM3RoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vo
b2xkZXIgYXR0cmlidXRlOiAzLiBMaWdodCBET00gSW5wdXQgMAorUEFTUyAoKSA9PiBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAzLiBMaWdodCBE
T00gSW5wdXQgMAorZm9yd2FyZCB0byA0dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQn
cyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQuIExpZ2h0IERPTSBJbnB1dCAxCitQQVNTICgpID0+
IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDQu
IExpZ2h0IERPTSBJbnB1dCAxCitmb3J3YXJkIHRvIDV0aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZl
RWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNS4gTGlnaHQgRE9NIElucHV0IDIKK1BB
U1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykgaXMgNS4gTGlnaHQgRE9NIElucHV0IDIKK2ZvcndhcmQgdG8gNnRoIGlucHV0Citkb2N1bWVu
dC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA2LiBTaGFkb3cgRE9NIElu
cHV0IDMKK1BBU1MgKCkgPT4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJykgaXMgNi4gU2hhZG93IERPTSBJbnB1dCAzCitmb3J3YXJkIHRvIDd0aCBpbnB1
dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNy4gU2hh
ZG93IERPTSBJbnB1dCA0CitQQVNTICgpID0+IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDcuIFNoYWRvdyBET00gSW5wdXQgNAorZm9yd2FyZCB0
byA4dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6IDguIFNoYWRvdyBET00gSW5wdXQgNQorUEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA4LiBTaGFkb3cgRE9NIElucHV0IDUK
K2ZvcndhcmQgdG8gOXRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xk
ZXIgYXR0cmlidXRlOiA5LiBMaWdodCBET00gSW5wdXQgMworUEFTUyAoKSA9PiBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA5LiBMaWdodCBET00g
SW5wdXQgMworZm9yd2FyZCB0byAxMHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3Mg
cGxhY2Vob2xkZXIgYXR0cmlidXRlOiAxMC4gTGlnaHQgRE9NIElucHV0IDQKK1BBU1MgKCkgPT4g
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMTAu
IExpZ2h0IERPTSBJbnB1dCA0Citmb3J3YXJkIHRvIDExdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDExLiBMaWdodCBET00gSW5wdXQgNQor
UEFTUyAoKSA9PiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xk
ZXInKSBpcyAxMS4gTGlnaHQgRE9NIElucHV0IDUKK2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFz
dCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseQorYmFjayB0byAx
MHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRl
OiAxMC4gTGlnaHQgRE9NIElucHV0IDQKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9s
ZGVyIGlzIDEwLiBMaWdodCBET00gSW5wdXQgNAorYmFjayB0byA5dGggaW5wdXQKK2RvY3VtZW50
LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDkuIExpZ2h0IERPTSBJbnB1
dCAzCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyA5LiBMaWdodCBET00g
SW5wdXQgMworYmFjayB0byA4dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFj
ZWhvbGRlciBhdHRyaWJ1dGU6IDguIFNoYWRvdyBET00gSW5wdXQgNQorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50UGxhY2Vob2xkZXIgaXMgOC4gU2hhZG93IERPTSBJbnB1dCA1CitiYWNrIHRvIDd0
aCBpbnB1dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTog
Ny4gU2hhZG93IERPTSBJbnB1dCA0CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRl
ciBpcyA3LiBTaGFkb3cgRE9NIElucHV0IDQKK2JhY2sgdG8gNnRoIGlucHV0Citkb2N1bWVudC5h
Y3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA2LiBTaGFkb3cgRE9NIElucHV0
IDMKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDYuIFNoYWRvdyBET00g
SW5wdXQgMworYmFjayB0byA1dGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFj
ZWhvbGRlciBhdHRyaWJ1dGU6IDUuIExpZ2h0IERPTSBJbnB1dCAyCitQQVNTICgpID0+IGFjdGl2
ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyA1LiBMaWdodCBET00gSW5wdXQgMgorYmFjayB0byA0dGgg
aW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQu
IExpZ2h0IERPTSBJbnB1dCAxCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBp
cyA0LiBMaWdodCBET00gSW5wdXQgMQorYmFjayB0byAzdGggaW5wdXQKK2RvY3VtZW50LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIExpZ2h0IERPTSBJbnB1dCAwCitQ
QVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyAzLiBMaWdodCBET00gSW5wdXQg
MAorYmFjayB0byAydGggaW5wdXQKK2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRl
ciBhdHRyaWJ1dGU6IDIuIFNoYWRvdyBET00gSW5wdXQgMgorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50UGxhY2Vob2xkZXIgaXMgMi4gU2hhZG93IERPTSBJbnB1dCAyCitiYWNrIHRvIDF0aCBpbnB1
dAorZG9jdW1lbnQuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4gU2hh
ZG93IERPTSBJbnB1dCAxCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnRQbGFjZWhvbGRlciBpcyAx
LiBTaGFkb3cgRE9NIElucHV0IDEKK2JhY2sgdG8gMHRoIGlucHV0Citkb2N1bWVudC5hY3RpdmVF
bGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAwLiBTaGFkb3cgRE9NIElucHV0IDAKK1BB
U1MgKCkgPT4gYWN0aXZlRWxlbWVudFBsYWNlaG9sZGVyIGlzIDAuIFNoYWRvdyBET00gSW5wdXQg
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiswLiBT
aGFkb3cgRE9NIElucHV0IDAKKzEuIFNoYWRvdyBET00gSW5wdXQgMQorMi4gU2hhZG93IERPTSBJ
bnB1dCAyCiszLiBMaWdodCBET00gSW5wdXQgMAorNC4gTGlnaHQgRE9NIElucHV0IDEKKzUuIExp
Z2h0IERPTSBJbnB1dCAyCis2LiBTaGFkb3cgRE9NIElucHV0IDMKKzcuIFNoYWRvdyBET00gSW5w
dXQgNAorOC4gU2hhZG93IERPTSBJbnB1dCA1Cis5LiBMaWdodCBET00gSW5wdXQgMworMTAuIExp
Z2h0IERPTSBJbnB1dCA0CisxMS4gTGlnaHQgRE9NIElucHV0IDUKKzEwLiBMaWdodCBET00gSW5w
dXQgNAorOS4gTGlnaHQgRE9NIElucHV0IDMKKzguIFNoYWRvdyBET00gSW5wdXQgNQorNy4gU2hh
ZG93IERPTSBJbnB1dCA0Cis2LiBTaGFkb3cgRE9NIElucHV0IDMKKzUuIExpZ2h0IERPTSBJbnB1
dCAyCis0LiBMaWdodCBET00gSW5wdXQgMQorMy4gTGlnaHQgRE9NIElucHV0IDAKKzIuIFNoYWRv
dyBET00gSW5wdXQgMgorMS4gU2hhZG93IERPTSBJbnB1dCAxCiswLiBTaGFkb3cgRE9NIElucHV0
IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3Nv
cnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ct
cm9vdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmI3YmQ0YWMxMTRlNjIyMWYxOTMwNmVjNDUxNzgxN2E3
NGNiNmZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lv
cy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXJvb3RzLmh0bWwKQEAgLTAs
MCArMSwxMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxoMT5UZXN0IHRo
YXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgaW4g
c2hhZG93IHJvb3RzLjwvaDE+Cis8cD5UbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3Rl
cHMuPC9wPgorPG9sPgorICAgIDxsaT5Gb2N1cyB0aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vz
c29yeSBiYXIgd2lsbCBzaG93bi48L2xpPgorICAgIDxsaT5QcmVzcyAibmV4dCIgaWNvbiAxMSB0
aW1lcy48L2xpPgorICAgIDxsaT5QcmVzcyAicHJldiIgaWNvbiAxMSB0aW1lcy48L2xpPgorICAg
IDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFz
aW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS48L2xpPgor
PC9vbD4gICAgCis8Zm9ybT4KKyAgICA8aGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1dCB0eXBl
PSJ0ZXh0IiBwbGFjZWhvbGRlcj0iMC4gU2hhZG93IERPTSBJbnB1dCAwIj4KKyAgICA8L2hlbGxv
LXdvcmxkPgorCisgICAgPGhlbGxvLXdvcmxkPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIg
cGxhY2Vob2xkZXI9IjEuIFNoYWRvdyBET00gSW5wdXQgMSI+CisgICAgPC9oZWxsby13b3JsZD4K
KworICAgIDxoZWxsby13b3JsZD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9s
ZGVyPSIyLiBTaGFkb3cgRE9NIElucHV0IDIiPgorICAgIDwvaGVsbG8td29ybGQ+CisKKyAgICA8
cD4KKyAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSIzLiBMaWdodCBET00g
SW5wdXQgMCI+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIg
cGxhY2Vob2xkZXI9IjQuIExpZ2h0IERPTSBJbnB1dCAxIj4KKyAgICA8L3A+CisgICAgPHA+Cisg
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iNS4gTGlnaHQgRE9NIElucHV0
IDIiPgorICAgIDwvcD4KKworICAgIDxjbG9zZWQtaGVsbG8td29ybGQ+CisgICAgICAgIDxpbnB1
dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iNi4gU2hhZG93IERPTSBJbnB1dCAzIj4KKyAgICA8
L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAgIDxjbG9zZWQtaGVsbG8td29ybGQ+CisgICAgICAg
IDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iNy4gU2hhZG93IERPTSBJbnB1dCA0Ij4K
KyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAgIDxjbG9zZWQtaGVsbG8td29ybGQ+Cisg
ICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iOC4gU2hhZG93IERPTSBJbnB1
dCA1Ij4KKyAgICA8L2Nsb3NlZC1oZWxsby13b3JsZD4KKworICAgIDxwPgorICAgICAgICA8aW5w
dXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IjkuIExpZ2h0IERPTSBJbnB1dCAzIj4KKyAgICA8
L3A+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iMTAu
IExpZ2h0IERPTSBJbnB1dCA0Ij4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxpbnB1dCB0
eXBlPSJ0ZXh0IiBwbGFjZWhvbGRlcj0iMTEuIExpZ2h0IERPTSBJbnB1dCA1Ij4KKyAgICA8L3A+
Cis8L2Zvcm0+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxwcmUgaWQ9ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworY2xhc3MgSGVsbG9Xb3Js
ZCBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29uc3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsK
KyAgICAKKyAgICB0aGlzLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KS5pbm5lckhUTUwg
PSAnPHA+PHNsb3Q+PC9zbG90PjwvcD4nOyAgCisgIH0gIAorfQorY3VzdG9tRWxlbWVudHMuZGVm
aW5lKCdoZWxsby13b3JsZCcsIEhlbGxvV29ybGQpOworCitjbGFzcyBDbG9zZWRIZWxsb1dvcmxk
IGV4dGVuZHMgSFRNTEVsZW1lbnQgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBzdXBlcigpOwor
ICAgIAorICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ2Nsb3NlZCcgfSkuaW5uZXJIVE1M
ID0gJzxwPjxzbG90Pjwvc2xvdD48L3A+JzsgIAorICB9ICAKK30KK2N1c3RvbUVsZW1lbnRzLmRl
ZmluZSgnY2xvc2VkLWhlbGxvLXdvcmxkJywgQ2xvc2VkSGVsbG9Xb3JsZCk7CisKK2Z1bmN0aW9u
IGxvZ09uRm9jdXMoZXZlbnQpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyku
dGV4dENvbnRlbnQgKz0gZXZlbnQuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9s
ZGVyJykgKyAnXG4nOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIEFycmF5
LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKSkuZm9yRWFjaCgoaW5wdXQp
ID0+IGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgbG9nT25Gb2N1cykpOworCisgICAg
bGV0IGZpcnN0RWxlbWVudCA9IG51bGw7CisKKyAgICB7CisgICAgICAgIGNvbnN0IGlucHV0TGlz
dCA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXTsKKyAgICAgICAgZmly
c3RFbGVtZW50ID0gaW5wdXRMaXN0LnNoaWZ0KCk7CisgICAgICAgIGRlYnVnKCdhY3RpdmF0ZSAw
dGggaW5wdXQnKTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGZpcnN0
RWxlbWVudCk7CisgICAgICAgIGRlYnVnKCdhY3RpdmF0ZWQgMHRoIGlucHV0Jyk7CisKKyAgICAg
ICAgZm9yIChjb25zdCBbaSwgZWxlbWVudF0gb2YgaW5wdXRMaXN0LmVudHJpZXMoKSkgeworICAg
ICAgICAgICAgZGVidWcoYGZvcndhcmQgdG8gJHtTdHJpbmcoaSArIDEpfXRoIGlucHV0YCk7Cisg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9OZXh0QnlLZXlib2FyZEFjY2Vzc29yeUJh
cigpOworICAgICAgICAgICAgZGVidWcoYGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhv
bGRlciBhdHRyaWJ1dGU6ICR7ZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJyl9YCk7CisgICAgICAgICAgICBzaG91bGRCZSgoKSA9PiBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSwgKCkgPT4gZWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgICAgICB9CisgICAgfQorCisgICAgZGVidWco
J2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhl
IGZpcnN0IHJldmVyc2VseScpOworCisgICAgeworICAgICAgICBjb25zdCBpbnB1dExpc3QgPSBb
Li4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQnKV0ucmV2ZXJzZSgpOworICAgICAg
ICBpbnB1dExpc3Quc2hpZnQoKTsKKyAgICAgICAgCisgICAgICAgIGxldCBsYXN0RWxlbWVudElu
ZGV4ID0gaW5wdXRMaXN0Lmxlbmd0aDsKKyAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIGlu
cHV0TGlzdCkgeworICAgICAgICAgICAgZGVidWcoYGJhY2sgdG8gJHtTdHJpbmcoLS1sYXN0RWxl
bWVudEluZGV4KX10aCBpbnB1dGApOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIubW92ZVRv
UHJldkJ5S2V5Ym9hcmRBY2Nlc3NvcnlCYXIoKTsKKworICAgICAgICAgICAgY29uc3QgYWN0aXZl
RWxlbWVudFBsYWNlaG9sZGVyID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
J3BsYWNlaG9sZGVyJyk7CisgICAgICAgICAgICBkZWJ1ZyhgZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVFbGVtZW50UGxhY2Vob2xkZXJ9YCk7
CisgICAgICAgICAgICBzaG91bGRCZSgoKSA9PiBhY3RpdmVFbGVtZW50UGxhY2Vob2xkZXIsICgp
ID0+IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICAgICAgfQorICAg
IH0KK307CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIGRlc2NyaXB0aW9uKGBUZXN0
IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMg
aW4gc2hhZG93IHJvb3RzYCk7CisgICAgY29uc3QgcnVuID0gcnVuVGVzdCgpLmNhdGNoKChlKSA9
PiBkZWJ1ZyhgRkFJTDogXGAke2V9XGBgKSk7CisgICAgVUlIZWxwZXIud2FpdChydW4pOworfSBl
bHNlIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLnN0eWxlLmRpc3Bs
YXkgPSAnbm9uZSc7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFk
b3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZTMyM2NkOTUzZWU1ZTc4OTNjYmYzZTgwMWJkNGM5Y2Q5
ZGJlYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9z
L2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzOCBAQAorVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBi
dXR0b25zIGRvIG5vdCB3b3JrIG9uIGlucHV0cyBpbiBzaGFkb3cgdHJlZQorCitUbyBtYW51YWxs
eSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuCisKK0ZvY3VzIHRoZSAxc3Qgb2YgaW5wdXQsIHRo
ZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLgorUHJlc3MgIm5leHQiIGljb24gMiB0aW1lcy4K
K1ByZXNzICJwcmV2IiBpY29uIDIgdGltZXMuCitJdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxl
IGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0
aGUgb3JkZXIgb2YgdGhlbS4KKworCitUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZp
b3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGluIHNoYWRvdyB0cmVlCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworYWN0aXZhdGUgMHRoIGlucHV0CithY3RpdmF0ZWQgMHRo
IGlucHV0Citmb3J3YXJkIHRvIDF0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZl
RWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0
LWhvbGRlcgorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xk
ZXInKSBpcyAxLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyCitmb3J3YXJkIHRvIDJ0aCBp
bnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0
dHJpYnV0ZTogMi4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRlciBob3N0ZWQgYnkgbmVzdC1p
bnB1dC1ob2xkZXIKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNl
aG9sZGVyJykgaXMgMi4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRlciBob3N0ZWQgYnkgbmVz
dC1pbnB1dC1ob2xkZXIKK2ZvY3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3
aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseQorYmFjayB0byAxdGggaW5wdXQKK2RvY3Vt
ZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEu
IGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xkZXIKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMS4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhv
bGRlcgorYmFjayB0byAwdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1l
bnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDAuIExpZ2h0IERPTSBJbnB1dCAwCitQQVNTICgp
ID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDAuIExpZ2h0
IERPTSBJbnB1dCAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKzAuIExpZ2h0IERPTSBJbnB1dCAwCisxLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9s
ZGVyCisyLiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyIGhvc3RlZCBieSBuZXN0LWlucHV0
LWhvbGRlcgorMS4gaW5wdXQgaG9zdGVkIGJ5IGlucHV0LWhvbGRlcgorMC4gTGlnaHQgRE9NIElu
cHV0IDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nl
c3NvcnktYmFyLXdvcmstb24taW5wdXQtaW4tc2hhZG93LXRyZWUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRv
dy10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU1NDU1YWRmNmRjOTgyNmIwNTgxMDQ0MmQ4ZGI4YmZk
ODY0NmY1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9p
b3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LWluLXNoYWRvdy10cmVlLmh0bWwKQEAgLTAs
MCArMSwxMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxoMT5UZXN0IHRo
YXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5w
dXRzIGluIHNoYWRvdyB0cmVlPC9oMT4KKzxwPlRvIG1hbnVhbGx5IHRlc3QsIGRvIGZvbGxvd2lu
ZyBzdGVwcy48L3A+Cis8b2w+CisgICAgPGxpPkZvY3VzIHRoZSAxc3Qgb2YgaW5wdXQsIHRoZW4g
QWNjZXNzb3J5IGJhciB3aWxsIHNob3duLjwvbGk+CisgICAgPGxpPlByZXNzICJuZXh0IiBpY29u
IDIgdGltZXMuPC9saT4KKyAgICA8bGk+UHJlc3MgInByZXYiIGljb24gMiB0aW1lcy48L2xpPgor
ICAgIDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNy
ZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS48L2xp
PgorPC9vbD4KKzxmb3JtPgorICAgIDxwPgorICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgb25m
b2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgIHBsYWNlaG9sZGVyPSIwLiBMaWdodCBET00gSW5wdXQg
MCIvPgorICAgIDwvcD4KKworICAgIDxpbnB1dC1ob2xkZXI+PC9pbnB1dC1ob2xkZXI+CisgICAg
PG5lc3QtaW5wdXQtaG9sZGVyPjwvbmVzdC1pbnB1dC1ob2xkZXI+Cis8L2Zvcm0+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxwcmUgaWQ9
ImxvZyI+PC9wcmU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworY2xhc3MgSW5wdXRIb2xkZXIgZXh0ZW5kcyBIVE1MRWxl
bWVudCB7CisgIGNvbnN0cnVjdG9yKCkgeworICAgIHN1cGVyKCk7CisgICAgCisgICAgdGhpcwor
ICAgICAgICAuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhU
TUwgPSAnPHA+PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSIx
LiBpbnB1dCBob3N0ZWQgYnkgaW5wdXQtaG9sZGVyIi8+PC9wPic7CisgIH0KK30KK2N1c3RvbUVs
ZW1lbnRzLmRlZmluZSgnaW5wdXQtaG9sZGVyJywgSW5wdXRIb2xkZXIpOworCitjbGFzcyBOZXN0
SW5wdXRIb2xkZXIgZXh0ZW5kcyBIVE1MRWxlbWVudCB7CisgIGNvbnN0cnVjdG9yKCkgeworICAg
IHN1cGVyKCk7CisgICAgCisgICAgdGhpcworICAgICAgICAuYXR0YWNoU2hhZG93KHsgbW9kZTog
J29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPGlucHV0LWhvbGRlcj48L2lucHV0LWhv
bGRlcj4nOworICAgIHRoaXMKKyAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5w
dXQtaG9sZGVyJykKKyAgICAgICAgLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKS5z
ZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgJzIuIGlucHV0IGhvc3RlZCBieSBpbnB1dC1ob2xk
ZXIgaG9zdGVkIGJ5IG5lc3QtaW5wdXQtaG9sZGVyJyk7CisgIH0KK30KK2N1c3RvbUVsZW1lbnRz
LmRlZmluZSgnbmVzdC1pbnB1dC1ob2xkZXInLCBOZXN0SW5wdXRIb2xkZXIpOworCitmdW5jdGlv
biBsb2dPbkZvY3VzKGVsZW1lbnQpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9n
JykudGV4dENvbnRlbnQgKz0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgKyAn
XG4nOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGNvbnN0IGlucHV0SG9s
ZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNo
YWRvd1Jvb3Q7CisgICAgY29uc3QgbmVzdElucHV0SG9sZGVyID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignbmVzdC1pbnB1dC1ob2xkZXInKQorICAgICAgICAuc2hhZG93Um9vdC5xdWVyeVNlbGVj
dG9yKCdpbnB1dC1ob2xkZXInKQorICAgICAgICAuc2hhZG93Um9vdDsKKyAgICAKKyAgICBjb25z
dCBzdGFjayA9IFsKKyAgICAgICAgZG9jdW1lbnQsCisgICAgICAgIGlucHV0SG9sZGVyLAorICAg
ICAgICBuZXN0SW5wdXRIb2xkZXIsCisgICAgXTsKKworICAgIHsKKyAgICAgICAgY29uc3QgZmly
c3RFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKKyAgICAgICAgZGVi
dWcoJ2FjdGl2YXRlIDB0aCBpbnB1dCcpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0
ZUVsZW1lbnQoZmlyc3RFbGVtZW50KTsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlZCAwdGggaW5w
dXQnKTsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0IFtpLCBkb2N1bWVudE9yU2hhZG93Um9vdF0g
b2Ygc3RhY2suZW50cmllcygpKSB7CisgICAgICAgIGlmIChpID09PSAwKSB7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVnKGBmb3J3YXJkIHRvICR7U3Ry
aW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdmVUb05leHRCeUtl
eWJvYXJkQWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1
bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRP
clNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxk
QmUoKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+
IGRvY3VtZW50T3JTaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpKTsKKyAgICB9IAorCisgICAgZGVidWcoJ2ZvY3VzIGhhcyBtb3ZlZCB0
byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IHJldmVyc2VseScp
OworCisgICAgZm9yIChsZXQgaSA9IHN0YWNrLmxlbmd0aCAtIDE7IC0xIDwgaTsgLS1pKSB7Cisg
ICAgICAgIGlmIChzdGFjay5sZW5ndGggLSAxID09PSBpKSB7CisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7U3RyaW5nKGkpfXRoIGlu
cHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdmVUb1ByZXZCeUtleWJvYXJkQWNjZXNz
b3J5QmFyKCk7CisgICAgICAgIGNvbnN0IGRvY3VtZW50T3JTaGFkb3dSb290ID0gc3RhY2tbaV07
CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxl
bWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxkQmUoKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+IGRvY3VtZW50T3JTaGFkb3dSb290
LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAg
ICB9Cit9OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBkZXNjcmlwdGlvbignVGVz
dCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIGRvIG5vdCB3b3JrIG9u
IGlucHV0cyBpbiBzaGFkb3cgdHJlZScpOworICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRj
aCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtlfVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVu
KTsKK30gZWxzZSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5zdHls
ZS5kaXNwbGF5ID0gJ25vbmUnOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFy
LXdvcmstb24taW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1p
bnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iOTljNzI1MDZkNzZiNmQzNWFkZmZiODBmYjZmOTM3M2M4NWExN2U0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmst
b24taW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NyBAQAorVGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25z
IHdvcmsgb24gaW5wdXRzIHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFk
b3cgdHJlZQorCitUbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuCisKK0ZvY3Vz
IHRoZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLgorUHJlc3Mg
Im5leHQiIGljb24gNCB0aW1lcy4KK1ByZXNzICJwcmV2IiBpY29uIDQgdGltZXMuCitJdCBzaG91
bGQgdHJhdmVyc2UgZm9jdXNhYmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNh
bCBvcmRlciBhbmQgcmV2ZXJzZSB0aGUgb3JkZXIgb2YgdGhlbS4KKworCisKK1Rlc3QgdGhhdCBB
Y2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9uIGlucHV0cyB3aGljaCBp
cyBub3QgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWUKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCithY3RpdmF0ZSAwdGggaW5wdXQKK2FjdGl2YXRlZCAwdGggaW5wdXQK
K2ZvcndhcmQgdG8gMXRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50
J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAxLiBTaGFkb3cgaG9zdCB3aXRoIGEgcG9zaXRpdmUg
dGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9s
ZGVyJykgaXMgMS4gU2hhZG93IGhvc3Qgd2l0aCBhIHBvc2l0aXZlIHRhYmluZGV4Citmb3J3YXJk
IHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNl
aG9sZGVyIGF0dHJpYnV0ZTogMi4gRm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIGEgc2hhZG93IGhv
c3Qgd2l0aCBhIHBvc2l0aXZlIHRhYmluZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDIuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBh
IHNoYWRvdyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleAorZm9yd2FyZCB0byAzdGggaW5w
dXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRy
aWJ1dGU6IDQuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGggbm8g
dGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9s
ZGVyJykgaXMgNC4gRm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIGEgc2hhZG93IGhvc3Qgd2l0aCBu
byB0YWJpbmRleAorZm9yd2FyZCB0byA0dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQuIExhc3Qgc2VxdWVudGlhbGx5
IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKK1BBU1MgKCkgPT4gYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNC4gTGFzdCBzZXF1ZW50aWFsbHkg
aW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworZm9jdXMgaGFzIG1vdmVkIHRvIHRo
ZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmlyc3QgcmV2ZXJzZWx5CitiYWNr
IHRvIDN0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNl
aG9sZGVyIGF0dHJpYnV0ZTogNC4gRm9jdXNhYmxlIGVsZW1lbnQgaW5zaWRlIGEgc2hhZG93IGhv
c3Qgd2l0aCBubyB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgncGxhY2Vob2xkZXInKSBpcyA0LiBGb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgYSBzaGFkb3cg
aG9zdCB3aXRoIG5vIHRhYmluZGV4CitiYWNrIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRv
d1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMi4gRm9jdXNhYmxl
IGVsZW1lbnQgaW5zaWRlIGEgc2hhZG93IGhvc3Qgd2l0aCBhIHBvc2l0aXZlIHRhYmluZGV4CitQ
QVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDIu
IEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0
YWJpbmRleAorYmFjayB0byAxdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVs
ZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEuIFNoYWRvdyBob3N0IHdpdGggYSBwb3Np
dGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxh
Y2Vob2xkZXInKSBpcyAxLiBTaGFkb3cgaG9zdCB3aXRoIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2Jh
Y2sgdG8gMHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiAwLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBv
dXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgncGxhY2Vob2xkZXInKSBpcyAwLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBv
dXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRl
IHNoYWRvdyB0cmVlcworMS4gU2hhZG93IGhvc3Qgd2l0aCBhIHBvc2l0aXZlIHRhYmluZGV4Cisy
LiBGb2N1c2FibGUgZWxlbWVudCBpbnNpZGUgYSBzaGFkb3cgaG9zdCB3aXRoIGEgcG9zaXRpdmUg
dGFiaW5kZXgKKzQuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGgg
bm8gdGFiaW5kZXgKK251bGwKKzQuIExhc3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0
c2lkZSBzaGFkb3cgdHJlZXMKKzQuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBo
b3N0IHdpdGggbm8gdGFiaW5kZXgKK251bGwKKzIuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBh
IHNoYWRvdyBob3N0IHdpdGggYSBwb3NpdGl2ZSB0YWJpbmRleAorMS4gU2hhZG93IGhvc3Qgd2l0
aCBhIHBvc2l0aXZlIHRhYmluZGV4CiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVu
dCBvdXRzaWRlIHNoYWRvdyB0cmVlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3No
YWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWlu
LXNoYWRvdy10cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vz
c29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjg2OWIyNjliYTMwODAwZjc1MWM0ZGEzMjQzNjA5NjQ0ZGU4YjY3YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5
LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbApAQCAt
MCwwICsxLDEyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCis8aDE+VGVz
dCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRz
IHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZTwvaDE+Cis8
cD5UbyBtYW51YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuPC9wPgorPG9sPgorICAgIDxs
aT5Gb2N1cyB0aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi48
L2xpPgorICAgIDxsaT5QcmVzcyAibmV4dCIgaWNvbiA0IHRpbWVzLjwvbGk+CisgICAgPGxpPlBy
ZXNzICJwcmV2IiBpY29uIDQgdGltZXMuPC9saT4KKyAgICA8bGk+SXQgc2hvdWxkIHRyYXZlcnNl
IGZvY3VzYWJsZSBlbGVtZW50cyBpbiB0aGUgaW5jcmVhc2luZyBudW1lcmljYWwgb3JkZXIgYW5k
IHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZW0uPC9saT4KKzwvb2w+CisKKzxpbnB1dCBpZD0iZmly
c3QiIHRhYmluZGV4PSIxIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgIHBsYWNlaG9s
ZGVyPSIwLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0
cmVlcyIgLz4KKzxkaXYgaWQ9Imhvc3Qtd2l0aC1uZWdhdGl2ZS10YWJpbmRleCIgdGFiaW5kZXg9
Ii0xIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIj5TaGFkb3cgaG9zdCB3aXRoIGEgbmVnYXRp
dmUgdGFiaW5kZXg8L2Rpdj4KKzxkaXYgaWQ9Imhvc3Qtd2l0aC1uby10YWJpbmRleCIgb25mb2N1
cz0ibG9nT25Gb2N1cyh0aGlzKSI+CisgICAgPGlucHV0IGlkPSJob3N0LXdpdGgtbm8tdGFiaW5k
ZXgiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgIHBsYWNlaG9sZGVyPSJTaG91
bGQgbm90IGJlIGZvY3VzZWQgYXMgaXQgaXMgaW5zaWRlIGEgc2hhZG93IGhvc3Qgd2l0aCBhIG5v
IHRhYmluZGV4IiAvPgorPC9kaXY+Cis8ZGl2IGlkPSJob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5k
ZXgiIHRhYmluZGV4PSIyIj4KKyAgICA8aW5wdXQgaWQ9ImlucHV0LWhvc3Qtd2l0aC1wb3NpdGl2
ZS10YWJpbmRleCIgdGFiaW5kZXg9IjAiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNl
aG9sZGVyPSIxLiBTaGFkb3cgaG9zdCB3aXRoIGEgcG9zaXRpdmUgdGFiaW5kZXgiIC8+Cis8L2Rp
dj4KKzxpbnB1dCBpZD0ibGFzdCIgdGFiaW5kZXg9IjAiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhp
cykiCisgICAgcGxhY2Vob2xkZXI9IjQuIExhc3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQg
b3V0c2lkZSBzaGFkb3cgdHJlZXMiIC8+CisKKworPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtbmVnYXRpdmUtdGFiaW5kZXgn
KS5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxpbnB1
dCB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9IlNo
b3VsZCBub3QgYmUgZm9jdXNlZCBhcyBpdCBpcyBpbnNpZGUgYSBzaGFkb3cgaG9zdCB3aXRoIGEg
bmVnYXRpdmUgdGFiaW5kZXgiLz4KK2A7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0
LXdpdGgtbm8tdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkuaW5uZXJI
VE1MID0gYAorICAgIDxpbnB1dCBpZD0iaW5zaWRlLXNoYWRvdy1ob3N0LW5vLXRhYmluZGV4IiB0
YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9IjQuIEZv
Y3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGggbm8gdGFiaW5kZXgiLz4K
K2A7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5k
ZXgnKS5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxz
bG90Pjwvc2xvdD4KKyAgICA8aW5wdXQgaWQ9Imluc2lkZS1zaGFkb3ctaG9zdC13aXRoLXBvc2l0
aXZlLXRhYmluZGV4IiB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxh
Y2Vob2xkZXI9IjIuIEZvY3VzYWJsZSBlbGVtZW50IGluc2lkZSBhIHNoYWRvdyBob3N0IHdpdGgg
YSBwb3NpdGl2ZSB0YWJpbmRleCIvPgorYDsKKworZnVuY3Rpb24gbG9nT25Gb2N1cyhlbGVtZW50
KSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ICs9IGVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpICsgJ1xuJzsKK30KKworY2xhc3MgVGVz
dGNhc2UgeworICAgIGNvbnN0cnVjdG9yKGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEdldHRl
cikgeworICAgICAgICB0aGlzLmRvY3VtZW50T3JTaGFkb3dSb290ID0gZG9jdW1lbnRPclNoYWRv
d1Jvb3Q7CisgICAgICAgIHRoaXMuX2lucHV0R2V0dGVyID0gaW5wdXRHZXR0ZXI7CisgICAgfQor
CisgICAgZ2V0IGlucHV0RWxlbWVudCgpIHsKKyAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuZG9j
dW1lbnRPclNoYWRvd1Jvb3Q7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnB1dEdldHRlcihyb290
KTsKKyAgICB9Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgY29uc3Qgc3Rh
Y2sgPSBbCisgICAgICAgIG5ldyBUZXN0Y2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdmaXJzdCcpKSwKKyAgICAgICAgbmV3IFRlc3RjYXNlKGRvY3VtZW50LCAo
XykgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0LWhvc3Qtd2l0aC1wb3NpdGl2ZS10
YWJpbmRleCcpKSwKKworICAgICAgICBuZXcgVGVzdGNhc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2hvc3Qtd2l0aC1wb3NpdGl2ZS10YWJpbmRleCcpLnNoYWRvd1Jvb3QsCisgICAgICAgICAg
ICAoc2hhZG93Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjaW5zaWRlLXNoYWRv
dy1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKSksIAorCisgICAgICAgIG5ldyBUZXN0Y2Fz
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdC13aXRoLW5vLXRhYmluZGV4Jykuc2hhZG93
Um9vdCwKKyAgICAgICAgICAgIChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0
b3IoJyNpbnNpZGUtc2hhZG93LWhvc3Qtbm8tdGFiaW5kZXgnKSksIAorCisgICAgICAgIG5ldyBU
ZXN0Y2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXN0Jykp
LAorICAgIF07CisKKyAgICB7CisgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHN0YWNrWzBd
LmlucHV0RWxlbWVudDsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlIDB0aCBpbnB1dCcpOworICAg
ICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZmlyc3RFbGVtZW50KTsKKyAgICAg
ICAgZGVidWcoJ2FjdGl2YXRlZCAwdGggaW5wdXQnKTsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0
IFtpLCB7IGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEVsZW1lbnQsIH1dIG9mIHN0YWNrLmVu
dHJpZXMoKSkgeworICAgICAgICBpZiAoaSA9PT0gMCkgeworICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIH0KKworICAgICAgICBkZWJ1ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBp
bnB1dGApOworICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9OZXh0QnlLZXlib2FyZEFjY2Vz
c29yeUJhcigpOworICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnRPclNoYWRv
d1Jvb3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWcoYGRvY3VtZW50T3JTaGFkb3dSb290
LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpLCAoKSA9PiBpbnB1dEVsZW1l
bnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICB9IAorCisgICAgZGVidWcoJ2Zv
Y3VzIGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZp
cnN0IHJldmVyc2VseScpOworCisgICAgZm9yIChsZXQgaSA9IHN0YWNrLmxlbmd0aCAtIDE7IC0x
IDwgaTsgLS1pKSB7CisgICAgICAgIGlmIChzdGFjay5sZW5ndGggLSAxID09PSBpKSB7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7
U3RyaW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdmVUb1ByZXZC
eUtleWJvYXJkQWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0IHsgZG9jdW1lbnRPclNoYWRv
d1Jvb3QsIGlucHV0RWxlbWVudCwgfSA9IHN0YWNrW2ldOworICAgICAgICBjb25zdCBhY3RpdmVF
bGVtZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVi
dWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRy
aWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7Cisg
ICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhv
bGRlcicpLCAoKSA9PiBpbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsK
KyAgICB9Cit9OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBkZXNjcmlwdGlvbihg
VGVzdCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5w
dXRzIHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZWApOwor
ICAgIGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtl
fVxgYCkpOworICAgIFVJSGVscGVyLndhaXQocnVuKTsKK30gZWxzZSB7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworfQorCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjMWZjZWY1YTA3
ODAzMDljMDVmOGY2MmM4ZTFkNjNjNDdjODE0YTUuLjliYjdhMGYzOWY5MDBjNzY4NDEyNjUxYTNi
Y2MyZTc2MjZmZTUxNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zNTAxLDMgKzM1MDEsNiBAQCBtZWRpYS9tZWRpYS1jb250aW51ZXMtcGxheWluZy1h
ZnRlci1yZXBsYWNlLXNvdXJjZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBUaGlzIHRlc3Qg
ZmFpbHMgaW4gaU9TIGR1ZSB0byBzdWJwaXhlbCBkaWZmZXJlbmNlcyBmb3IgdGhlIG1hcmtlciBw
b3NpdGlvbgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWxpc3RzL2xp
c3Qtc3R5bGUtdHlwZS1zdHJpbmctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKworIyBU
aGVzZSB0ZXN0cyBhcmUgZm9yIGlPUyBwb3J0LiBTaG91bGQgYmUgcGFzcy4KK2Zhc3Qvc2hhZG93
LWRvbS9pb3MvIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCAyNTQ5
M2VjYjhkMzMxMGUxZDliNzZlNDAwZTNjOGZmNzMxZmYyNThhLi4zMTIxNzkwY2E0OTBiNzI3NGUz
NmJjNTQ2MjQ1ZDU0NDBlNjQ0ZDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
dWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAg
LTEzNDQsNiArMTM0NCwyNCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAg
ICAgICAgICAgICAgICAgfSkoKTtgLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVl
IikpOwogICAgICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgbW92ZVRvTmV4dEJ5S2V5Ym9h
cmRBY2Nlc3NvcnlCYXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLmtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCgpOworICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICBgLCByZXNv
bHZlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIG1vdmVUb1ByZXZCeUtleWJv
YXJkQWNjZXNzb3J5QmFyKCkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUp
ID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5rZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3VzKCk7CisgICAgICAg
ICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgIGAs
IHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIFVJSGVscGVyLkV2ZW50U3RyZWFt
QnVpbGRlciA9IGNsYXNzIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412272</attachid>
            <date>2020-10-25 10:32:10 -0700</date>
            <delta_ts>2020-10-26 11:14:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201026023209.patch</filename>
            <type>text/plain</type>
            <size>23222</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWEwZjAxN2U0OWMzNWI3
MzAxODMyMjI1ZDkyYThhZWM2MGU5ZDgxOC4uMjkzZGIxNDcxNzU2NmRlYzE1N2Y0MmY0YmI0YWU5
YzJmOGY5NzQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbAorCisgICAgICAgICogcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpu
ZXh0Rm9jdXNhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudCk6CisKIDIwMjAtMTAtMjIgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEhhbmRsZSBsaW5lIGJveCBz
aXppbmcgcXVpcmtzIGF0IHRoZSBsaW5lIGJveCBsZXZlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCmluZGV4IDYyYTllYTQwY2NjZmI4YjVlY2UzODZjNjM2ZTYzNmJjYjAz
ZDk4OTMuLjJlM2NhNTg2N2I0NWVlMDJlYmEyNjUzOTU4M2FhMTg0YzkwNWIyYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTY2NSwxNCArNjY1LDE0IEBAIEVs
ZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQp
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVybiBhIG5vbi1mb2N1c2FibGUgc2hhZG93
IGhvc3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgZ2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIg
dGhhdCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNjb3VudCBzaW5jZSBpdCBkb2Vzbid0IHBh
c3MgYW4gZXZlbnQuCi0gICAgcmV0dXJuIG5leHRGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVy
KEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsK
KyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGly
ZWN0aW9uRm9yd2FyZCwgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3Rh
cnQsIG51bGxwdHIpOwogfQogCiBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9j
dXNhYmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0
dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4n
dCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dlciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBh
Y2NvdW50IHNpbmNlIGl0IGRvZXNuJ3QgcGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gcHJldmlv
dXNGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29w
ZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVs
ZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsIEZvY3VzTmF2aWdh
dGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVu
dCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjb25z
dCBGb2N1c05hdmlnYXRpb25TY29wZSYgc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50
KiBldmVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA5NDNlNzk4ODM4OWE5ODA4YWQzMjEzNWYwMGIyNWU5OWVlMmE2MmQ0
Li5jM2FkZmNmYzBhYWNhOWM0Y2YwOTVlZDk4ZjlhYTg5NGIyMDM2MGQyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMjAtMTAtMTEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtp
QGdtYWlsLmNvbT4KKworICAgICAgICBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9u
cyBkbyBub3Qgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyOTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5
IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZhbWlseS4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRv
bS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93
LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vaW9z
L2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgQXZvaWQgdG8gcnVuIGludHJv
ZHVjZWQgdGVzdHMgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHRvIHJ1biB0aGVtIGFuZAorICAgICAg
ICAgIHRlc3RzIGFyZSBjcmFzaGVkIG9uIHRoZXNlIHBsYXRmb3Jtcy4KKyAgICAgICAgKiByZXNv
dXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLm1vdmVUb05leHRC
eUtleWJvYXJkQWNjZXNzb3J5QmFyKToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5tb3ZlVG9Q
cmV2QnlLZXlib2FyZEFjY2Vzc29yeUJhcik6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIpOgor
CiAyMDIwLTEwLTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJbnRlZ3JhdGlvbl0gTGluZXMgd2l0aCBvdXRsaW5lIHNob3VsZCBiZSBtYXJrZWQg
aGF2aW5nIHZpc3VhbCBvdmVyZmxvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTgxODgyYmFiYjg1
YmYzYzcwOTk0ZmI2YWJkNjEyMjVkZDZiYTJkNC4uODM2MmQ4YmZkODhiODc4NTM0NzEwMjkwMGYw
YmU2ZGIzMWQ2MTI3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTE4LDMgKzQ1MTgsNiBAQCBl
ZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9sYXlvdXRm
b3JtYXR0aW5nY29udGV4dC8gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTcw
NTQgZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9ob3Jpem9udGFsLXNpemluZy13aXRoLXRy
YWlsaW5nLWxldHRlci1zcGFjaW5nLmh0bWwgWyBTa2lwIF0KKworIyBUaGVzZSB0ZXN0cyBhcmUg
Zm9yIGlPUyBwb3J0LgorZmFzdC9zaGFkb3ctZG9tL2lvcy8gWyBTa2lwIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtd2l0aC10
YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQwYmVlZjI3
NWMxMTZjNzVhNjFlMDQxMGIyODgwYzUwYWVmYjI0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdp
dGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTA2IEBA
CitUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBp
bnB1dHMgd2hpY2ggaXMgbm90IGFzc2lnbmVkIHRvIGFueSBzbG90IGluIHNoYWRvdyB0cmVlCisK
K1RvIG1hbnVhbGx5IHRlc3QsIGRvIGZvbGxvd2luZyBzdGVwcy4KKworRm9jdXMgdGhlIDFzdCBv
ZiBpbnB1dCwgdGhlbiBBY2Nlc3NvcnkgYmFyIHdpbGwgc2hvd24uCitQcmVzcyAibmV4dCIgaWNv
biA0IHRpbWVzLgorUHJlc3MgInByZXYiIGljb24gNCB0aW1lcy4KK0l0IHNob3VsZCB0cmF2ZXJz
ZSBmb2N1c2FibGUgZWxlbWVudHMgaW4gdGhlIGluY3JlYXNpbmcgbnVtZXJpY2FsIG9yZGVyIGFu
ZCByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGVtLgorCisKKworCisKKworVGVzdCB0aGF0IEFjY2Vz
c29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlzIG5v
dCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKK2FjdGl2YXRlIDB0aCBpbnB1dAorYWN0aXZhdGVkIDB0aCBpbnB1dAorZm9y
d2FyZCB0byAxdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBw
bGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUg
dGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4
CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlz
IDEuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cg
dHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4Citmb3J3YXJkIHRvIDJ0aCBpbnB1
dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJp
YnV0ZTogMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVs
ZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcg
YSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5k
ZXgKK2ZvcndhcmQgdG8gM3RoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVt
ZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAzLiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJp
bmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9
PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAzLiBpbnB1dCBl
bGVtZW50IGhhdmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0
YWJpbmRleAorZm9yd2FyZCB0byA0dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IHRhYmluZGV4PTAgaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
IGlzIDQuIGlucHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTAgaW4gYSBzaGFkb3cgdHJlZSBo
b3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4Citmb3J3YXJkIHRvIDV0aCBpbnB1dAorZG9j
dW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTog
NS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0
cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNS4gaW5wdXQgZWxlbWVudCBoYXZpbmcg
YSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3Qg
dGFiaW5kZXgKK2ZvcndhcmQgdG8gNnRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA2LiBpbnB1dCBlbGVtZW50IGluIGNs
b3NlZCBzaGFkb3cgdHJlZSBob3N0CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCdwbGFjZWhvbGRlcicpIGlzIDYuIGlucHV0IGVsZW1lbnQgaW4gY2xvc2VkIHNoYWRvdyB0
cmVlIGhvc3QKK2ZvcndhcmQgdG8gN3RoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA3LiBpbnB1dCBlbGVtZW50IGJlZm9y
ZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCitQQVNTICgpID0+IGFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDcuIGlucHV0IGVsZW1l
bnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK2Zvcndh
cmQgdG8gOHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiA4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJl
ZQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBp
cyA4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorZm9yd2FyZCB0byA5dGgg
aW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBh
dHRyaWJ1dGU6IDkuIGlucHV0IGVsZW1lbnQgYWZ0ZXIgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhh
dmluZyBzaGFkb3cgdHJlZQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgn
cGxhY2Vob2xkZXInKSBpcyA5LiBpbnB1dCBlbGVtZW50IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxl
bWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK2ZvcndhcmQgdG8gMTB0aCBpbnB1dAorZG9jdW1lbnRP
clNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMTAuIExh
c3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKK1BBU1Mg
KCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMTAuIExh
c3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKK2ZvY3Vz
IGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0
IHJldmVyc2VseQorYmFjayB0byA5dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDkuIGlucHV0IGVsZW1lbnQgYWZ0ZXIg
bmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA5LiBpbnB1dCBlbGVtZW50
IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK2JhY2sgdG8g
OHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xk
ZXIgYXR0cmlidXRlOiA4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorUEFT
UyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA4LiBp
bnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorYmFjayB0byA3dGggaW5wdXQKK2Rv
Y3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6
IDcuIGlucHV0IGVsZW1lbnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hh
ZG93IHRyZWUKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9s
ZGVyJykgaXMgNy4gaW5wdXQgZWxlbWVudCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhh
dmluZyBzaGFkb3cgdHJlZQorYmFjayB0byA2dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290
LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDYuIGlucHV0IGVsZW1lbnQg
aW4gY2xvc2VkIHNoYWRvdyB0cmVlIGhvc3QKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNi4gaW5wdXQgZWxlbWVudCBpbiBjbG9zZWQgc2hh
ZG93IHRyZWUgaG9zdAorYmFjayB0byA1dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDUuIGlucHV0IGVsZW1lbnQgaGF2
aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IHdoaWNoIGRvZXMg
bm90IHRhYmluZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFj
ZWhvbGRlcicpIGlzIDUuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgg
aW4gYSBzaGFkb3cgdHJlZSBob3N0IHdoaWNoIGRvZXMgbm90IHRhYmluZGV4CitiYWNrIHRvIDR0
aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogNC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRv
dyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNC4gaW5wdXQgZWxlbWVudCBo
YXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUg
dGFiaW5kZXgKK2JhY2sgdG8gM3RoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVF
bGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAzLiBpbnB1dCBlbGVtZW50IGhhdmluZyB0
YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAo
KSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAzLiBpbnB1
dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleAorYmFjayB0byAydGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDIuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
IGlzIDIuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBlbGVt
ZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CitiYWNrIHRvIDF0aCBpbnB1dAorZG9jdW1l
bnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4g
aW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVl
IGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcg
YSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRp
dmUgdGFiaW5kZXgKK2JhY2sgdG8gMHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAwLiBGaXJzdCBzZXF1ZW50aWFsbHkg
aW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAwLiBGaXJzdCBzZXF1ZW50aWFsbHkg
aW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQg
ZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBw
b3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUg
dGFiaW5kZXgKKzIuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4g
YSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CiszLiBpbnB1dCBlbGVtZW50IGhh
dmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAor
NC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qg
aGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzUuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9z
aXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IHdoaWNoIGRvZXMgbm90IHRhYmlu
ZGV4Cis2LiBpbnB1dCBlbGVtZW50IGluIGNsb3NlZCBzaGFkb3cgdHJlZSBob3N0Cis3LiBpbnB1
dCBlbGVtZW50IGJlZm9yZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVl
Cis4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorOS4gaW5wdXQgZWxlbWVu
dCBhZnRlciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCisxMC4gTGFz
dCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworOS4gaW5w
dXQgZWxlbWVudCBhZnRlciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVl
Cis4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorNy4gaW5wdXQgZWxlbWVu
dCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorNi4gaW5w
dXQgZWxlbWVudCBpbiBjbG9zZWQgc2hhZG93IHRyZWUgaG9zdAorNS4gaW5wdXQgZWxlbWVudCBo
YXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9l
cyBub3QgdGFiaW5kZXgKKzQuIGlucHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTAgaW4gYSBz
aGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CiszLiBpbnB1dCBlbGVt
ZW50IGhhdmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJp
bmRleAorMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVs
ZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzEuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0
aXZlIHRhYmluZGV4CiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRl
IHNoYWRvdyB0cmVlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
aW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10
cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXIt
d29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzhkNGUyMjk4Y2NjOGVjYmI5ODczMWIzNDFkMTY1MTcyZDhiNDFhMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3Jr
LW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbApAQCAtMCwwICsxLDIx
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCis8aDE+VGVzdCB0aGF0IEFj
Y2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlz
IG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZTwvaDE+Cis8cD5UbyBtYW51
YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuPC9wPgorPG9sPgorICAgIDxsaT5Gb2N1cyB0
aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi48L2xpPgorICAg
IDxsaT5QcmVzcyAibmV4dCIgaWNvbiA0IHRpbWVzLjwvbGk+CisgICAgPGxpPlByZXNzICJwcmV2
IiBpY29uIDQgdGltZXMuPC9saT4KKyAgICA8bGk+SXQgc2hvdWxkIHRyYXZlcnNlIGZvY3VzYWJs
ZSBlbGVtZW50cyBpbiB0aGUgaW5jcmVhc2luZyBudW1lcmljYWwgb3JkZXIgYW5kIHJldmVyc2Ug
dGhlIG9yZGVyIG9mIHRoZW0uPC9saT4KKzwvb2w+CisKKzxpbnB1dCBpZD0iZmlyc3QiIHRhYmlu
ZGV4PSIxIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgIHBsYWNlaG9sZGVyPSIwLiBG
aXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcyIgLz4K
KworPGRpdiBpZD0iaG9zdC13aXRoLW5lZ2F0aXZlLXRhYmluZGV4IiB0YWJpbmRleD0iLTEiPlNo
b3VsZCBub3QgZm9jdXM6IFNoYWRvdyBob3N0IHdpdGggYSBuZWdhdGl2ZSB0YWJpbmRleCBidXQg
bm90IGlucHV0IGVsZW1lbnQ8L2Rpdj4KKworPGRpdiBpZD0iaG9zdC13aXRoLW5vLXRhYmluZGV4
Ij4KKyAgICA8aW5wdXQgaWQ9Imhvc3Qtd2l0aC1uby10YWJpbmRleCIKKyAgICAgICAgb25mb2N1
cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAgcGxhY2Vob2xkZXI9IlNob3VsZCBub3QgZm9j
dXM6IGlucHV0IGVsZW1lbnQgaGF2aW5nIG5vIHRhYmluZGV4IGluIGEgZWxlbWVudCBoYXZpbmcg
bm8gdGFiaW5kZXggYnV0IHdpbGwgbm90IGFzc2lnbmVkIHRvIHNsb3QiIC8+Cis8L2Rpdj4KKwor
PGRpdiBpZD0iaG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4IiB0YWJpbmRleD0iMiI+CisgICAg
PGRpdj4KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFi
aW5kZXgtbmVnYXRpdmUiCisgICAgICAgICAgICB0YWJpbmRleD0iLTEiCisgICAgICAgICAgICBv
bmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNob3Vs
ZCBub3QgZm9jdXM6IGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgbmVnYXRpdmUgdGFiaW5kZXggaW4g
YSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IiAvPgorICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIDxpbnB1dCBpZD0iaW5wdXQtaW4taG9zdC13aXRoLXBvc2l0aXZlLXRh
YmluZGV4IgorICAgICAgICAgICAgdGFiaW5kZXg9IjAiCisgICAgICAgICAgICBvbmZvY3VzPSJs
b2dPbkZvY3VzKHRoaXMpIgorICAgICAgICAgICAgcGxhY2Vob2xkZXI9IjMuIGlucHV0IGVsZW1l
bnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4IiAvPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCBpZD0iaW5wdXQt
aW4taG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4LXBvc2l0aXZlIgorICAgICAgICAgICAgdGFi
aW5kZXg9IjEiCisgICAgICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAg
ICAgICAgcGxhY2Vob2xkZXI9IjIuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXggaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IiAvPgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9ImNsb3NlZC1zaGFkb3ctdHJlZS1ob3N0Ij4KKyAgICA8
aW5wdXQgaWQ9ImlucHVudC1kZXNjZW5kYW50cy1vZi1jbG9zZWQtc2hhZG93LXRyZWUtaG9zdCIg
CisgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgIHBsYWNlaG9sZGVy
PSI2LiBpbnB1dCBlbGVtZW50IGluIGNsb3NlZCBzaGFkb3cgdHJlZSBob3N0IiAvPgorPC9kaXY+
CisKKzxuZXN0LWlucHV0LWhvbGRlcj48L25lc3QtaW5wdXQtaG9sZGVyPgorCis8aW5wdXQgaWQ9
Imxhc3QiIHRhYmluZGV4PSIwIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgIHBsYWNl
aG9sZGVyPSIxMC4gTGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRv
dyB0cmVlcyIgLz4KKworPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtbmVnYXRpdmUtdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3co
eyBtb2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxpbnB1dCB0YWJpbmRleD0iMCIK
KyAgICAgICAgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAgcGxhY2Vob2xkZXI9
IlNob3VsZCBub3QgZm9jdXM6IGlucHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTAgaW4gYSBz
aGFkb3cgdHJlZSBob3N0IGhhdmluZyBuZWdhdGl2ZSB0YWJpbmRleCIvPgorYDsKKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qtd2l0aC1uby10YWJpbmRleCcpLmF0dGFjaFNoYWRvdyh7
IG1vZGU6ICdvcGVuJyB9KS5pbm5lckhUTUwgPSBgCisgICAgPGlucHV0IHRhYmluZGV4PSIwIgor
ICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICBwbGFjZWhvbGRlcj0i
NS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0
cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFiaW5kZXgiLz4KK2A7CisKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3coeyBt
b2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxzbG90Pjwvc2xvdD4KKyAgICA8ZGl2
PgorICAgICAgICA8aW5wdXQgdGFiaW5kZXg9IjAiCisgICAgICAgICAgICBvbmZvY3VzPSJsb2dP
bkZvY3VzKHRoaXMpIgorICAgICAgICAgICAgcGxhY2Vob2xkZXI9IjQuIGlucHV0IGVsZW1lbnQg
aGF2aW5nIHRhYmluZGV4PTAgaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZl
IHRhYmluZGV4Ii8+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0IHRhYmlu
ZGV4PSItMSIKKyAgICAgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAg
ICAgICBwbGFjZWhvbGRlcj0iU2hvdWxkIG5vdCBmb2N1czogaW5wdXQgZWxlbWVudCBoYXZpbmcg
bmVnYXRpYmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZl
IHRhYmluZGV4Ii8+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0IHRhYmlu
ZGV4PSIxIgorICAgICAgICAgICAgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAg
ICAgIHBsYWNlaG9sZGVyPSIxLiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCIvPgor
ICAgIDwvZGl2PgorYDsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb3NlZC1zaGFkb3ct
dHJlZS1ob3N0JykuYXR0YWNoU2hhZG93KHsgbW9kZTogJ2Nsb3NlZCcgfSkuaW5uZXJIVE1MID0g
YAorICAgIDxzbG90Pjwvc2xvdD4KK2A7CisKK2NsYXNzIElucHV0SG9sZGVyIGV4dGVuZHMgSFRN
TEVsZW1lbnQgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBzdXBlcigpOworICAgIAorICAgIHRo
aXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAn
PHA+PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSIiLz48L3A+
JzsKKyAgfQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnB1dC1ob2xkZXInLCBJbnB1dEhv
bGRlcik7CisKK2NsYXNzIE5lc3RJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAg
Y29uc3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzLmF0dGFjaFNoYWRv
dyh7IG1vZGU6ICdvcGVuJyB9KQorICAgICAgICAuaW5uZXJIVE1MID0gYAorICAgICAgICA8aW5w
dXQgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9JzcuIGlucHV0IGVsZW1l
bnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUnIC8+Cisg
ICAgICAgIDxpbnB1dC1ob2xkZXI+PC9pbnB1dC1ob2xkZXI+CisgICAgICAgIDxpbnB1dCBvbmZv
Y3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0nOS4gaW5wdXQgZWxlbWVudCBhZnRl
ciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlJy8+CisgICAgICAgIGA7
CisgICAgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LWhvbGRlcicpCisgICAg
ICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jykuc2V0QXR0cmlidXRlKCdwbGFj
ZWhvbGRlcicsICc4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZScpOworICB9
Cit9CitjdXN0b21FbGVtZW50cy5kZWZpbmUoJ25lc3QtaW5wdXQtaG9sZGVyJywgTmVzdElucHV0
SG9sZGVyKTsKKworZnVuY3Rpb24gbG9nT25Gb2N1cyhlbGVtZW50KSB7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ICs9IGVsZW1lbnQuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpICsgJ1xuJzsKK30KKworY2xhc3MgVGVzdGNhc2UgeworICAgIGNvbnN0
cnVjdG9yKGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEdldHRlcikgeworICAgICAgICB0aGlz
LmRvY3VtZW50T3JTaGFkb3dSb290ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3Q7CisgICAgICAgIHRo
aXMuX2lucHV0R2V0dGVyID0gaW5wdXRHZXR0ZXI7CisgICAgfQorCisgICAgZ2V0IGlucHV0RWxl
bWVudCgpIHsKKyAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuZG9jdW1lbnRPclNoYWRvd1Jvb3Q7
CisgICAgICAgIHJldHVybiB0aGlzLl9pbnB1dEdldHRlcihyb290KTsKKyAgICB9Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgY29uc3QgbmVzdElucHV0SG9sZGVyID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcignbmVzdC1pbnB1dC1ob2xkZXInKTsKKworICAgIGNvbnN0IHN0
YWNrID0gWworICAgICAgICBuZXcgVGVzdGNhc2UoZG9jdW1lbnQsIChfKSA9PiBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZmlyc3QnKSksCisKKyAgICAgICAgbmV3IFRlc3RjYXNlKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKS5zaGFkb3dSb290
LAorICAgICAgICAgICAgKHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcign
aW5wdXRbdGFiaW5kZXg9IjEiXScpKSwKKworICAgICAgICBuZXcgVGVzdGNhc2UoZG9jdW1lbnQs
IChfKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQtaW4taG9zdC13aXRoLXBvc2l0
aXZlLXRhYmluZGV4LXBvc2l0aXZlJykpLAorCisgICAgICAgIG5ldyBUZXN0Y2FzZShkb2N1bWVu
dCwgKF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dC1pbi1ob3N0LXdpdGgtcG9z
aXRpdmUtdGFiaW5kZXgnKSksCisKKyAgICAgICAgbmV3IFRlc3RjYXNlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKS5zaGFkb3dSb290LAorICAg
ICAgICAgICAgKHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXRb
dGFiaW5kZXg9IjAiXScpKSwgCisKKyAgICAgICAgbmV3IFRlc3RjYXNlKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0LXdpdGgtbm8tdGFiaW5kZXgnKS5zaGFkb3dSb290LAorICAgICAgICAg
ICAgKHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXRbdGFiaW5k
ZXg9IjAiXScpKSwKKworICAgICAgICBuZXcgVGVzdGNhc2UoZG9jdW1lbnQsIChfKSA9PiBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdW50LWRlc2NlbmRhbnRzLW9mLWNsb3NlZC1zaGFkb3ct
dHJlZS1ob3N0JykpLAorCisgICAgICAgIG5ldyBUZXN0Y2FzZShuZXN0SW5wdXRIb2xkZXIuc2hh
ZG93Um9vdCwKKyAgICAgICAgICAgIChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2lucHV0Om50aC1jaGlsZCgxKScpKSwKKworICAgICAgICBuZXcgVGVzdGNhc2UobmVz
dElucHV0SG9sZGVyLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykuc2hh
ZG93Um9vdCwKKyAgICAgICAgICAgIChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2Vs
ZWN0b3IoJ2lucHV0JykpLAorCisgICAgICAgIG5ldyBUZXN0Y2FzZShuZXN0SW5wdXRIb2xkZXIu
c2hhZG93Um9vdCwKKyAgICAgICAgICAgIChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5
U2VsZWN0b3IoJ2lucHV0Om50aC1sYXN0LWNoaWxkKDEpJykpLAorCisgICAgICAgIG5ldyBUZXN0
Y2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXN0JykpLAor
ICAgIF07CisKKyAgICB7CisgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHN0YWNrWzBdLmlu
cHV0RWxlbWVudDsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlIDB0aCBpbnB1dCcpOworICAgICAg
ICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZmlyc3RFbGVtZW50KTsKKyAgICAgICAg
ZGVidWcoJ2FjdGl2YXRlZCAwdGggaW5wdXQnKTsKKyAgICB9CisKKyAgICBmb3IgKGNvbnN0IFtp
LCB7IGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEVsZW1lbnQsIH1dIG9mIHN0YWNrLmVudHJp
ZXMoKSkgeworICAgICAgICBpZiAoaSA9PT0gMCkgeworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKworICAgICAgICBkZWJ1ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBpbnB1
dGApOworICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9OZXh0QnlLZXlib2FyZEFjY2Vzc29y
eUJhcigpOworICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpLCAoKSA9PiBpbnB1dEVsZW1lbnQu
Z2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICB9IAorCisgICAgZGVidWcoJ2ZvY3Vz
IGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0
IHJldmVyc2VseScpOworCisgICAgZm9yIChsZXQgaSA9IHN0YWNrLmxlbmd0aCAtIDE7IC0xIDwg
aTsgLS1pKSB7CisgICAgICAgIGlmIChzdGFjay5sZW5ndGggLSAxID09PSBpKSB7CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVnKGBiYWNrIHRvICR7U3Ry
aW5nKGkpfXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdmVUb1ByZXZCeUtl
eWJvYXJkQWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0IHsgZG9jdW1lbnRPclNoYWRvd1Jv
b3QsIGlucHV0RWxlbWVudCwgfSA9IHN0YWNrW2ldOworICAgICAgICBjb25zdCBhY3RpdmVFbGVt
ZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWco
YGRvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1
dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAg
ICAgIHNob3VsZEJlKCgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRl
cicpLCAoKSA9PiBpbnB1dEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAg
ICB9Cit9OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBkZXNjcmlwdGlvbihgVGVz
dCB0aGF0IEFjY2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRz
IHdoaWNoIGlzIG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZWApOworICAg
IGNvbnN0IHJ1biA9IHJ1blRlc3QoKS5jYXRjaCgoZSkgPT4gZGVidWcoYEZBSUw6IFxgJHtlfVxg
YCkpOworICAgIFVJSGVscGVyLndhaXQocnVuKTsKK30gZWxzZSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOworfQorCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM5YmFiODU0M2RkNWY3
YmZiZDhhNWNkZDg5MmUyYWU3MDg4Njc3OWMuLjY3NDRiNzNjMGQxNmRiNWQxOTU0MWQ3MjM3NGFh
NjY1NTI1NDA3NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0zNTA3LDMgKzM1MDcsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nw
ZWVjaC1hcGkvU3BlZWNoU3ludGhlc2lzLXNwZWFrLXdpdGhvdXQtYWN0aXZhdAogCiAjIFRoaXMg
dGVzdCBmYWlscyBpbiBpT1MgZHVlIHRvIHN1YnBpeGVsIGRpZmZlcmVuY2VzIGZvciB0aGUgbWFy
a2VyIHBvc2l0aW9uCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbGlz
dHMvbGlzdC1zdHlsZS10eXBlLXN0cmluZy0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQor
CisjIFRoZXNlIHRlc3RzIGFyZSBmb3IgaU9TIHBvcnQuIFNob3VsZCBiZSBwYXNzLgorZmFzdC9z
aGFkb3ctZG9tL2lvcy8gWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNl
cy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4
IDY5ZjAyODY1MjJiMjcwYzJkNTYzY2M5OWJmNTU2YWFlN2M5YWQyM2QuLjU2ZmRkNTFjNjNhYjJk
YTM1YjdjNmFiOTFhZmM1N2M4YzAxZGExZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5q
cwpAQCAtMTM3OSw2ICsxMzc5LDI0IEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVy
IHsKICAgICAgICAgICAgICAgICB9KSgpO2AsIHJlc3VsdCA9PiByZXNvbHZlKHJlc3VsdCA9PT0g
InRydWUiKSk7CiAgICAgICAgIH0pOwogICAgIH0KKworICAgIHN0YXRpYyBtb3ZlVG9OZXh0QnlL
ZXlib2FyZEFjY2Vzc29yeUJhcigpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAg
ICAgICAgICB1aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0KCk7CisgICAgICAg
ICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgIGAs
IHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbW92ZVRvUHJldkJ5
S2V5Ym9hcmRBY2Nlc3NvcnlCYXIoKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVz
b2x2ZSkgPT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAg
ICAgICAgICAgdWlDb250cm9sbGVyLmtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXMoKTsKKyAg
ICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAg
ICAgYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KIH0KIAogVUlIZWxwZXIuRXZlbnRT
dHJlYW1CdWlsZGVyID0gY2xhc3Mgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412339</attachid>
            <date>2020-10-26 11:14:20 -0700</date>
            <delta_ts>2020-10-27 09:47:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201027031415.patch</filename>
            <type>text/plain</type>
            <size>23050</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWEwZjAxN2U0OWMzNWI3
MzAxODMyMjI1ZDkyYThhZWM2MGU5ZDgxOC4uMjkzZGIxNDcxNzU2NmRlYzE1N2Y0MmY0YmI0YWU5
YzJmOGY5NzQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbAorCisgICAgICAgICogcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpu
ZXh0Rm9jdXNhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudCk6CisKIDIwMjAtMTAtMjIgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEhhbmRsZSBsaW5lIGJveCBz
aXppbmcgcXVpcmtzIGF0IHRoZSBsaW5lIGJveCBsZXZlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCmluZGV4IDYyYTllYTQwY2NjZmI4YjVlY2UzODZjNjM2ZTYzNmJjYjAz
ZDk4OTMuLjJlM2NhNTg2N2I0NWVlMDJlYmEyNjUzOTU4M2FhMTg0YzkwNWIyYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTY2NSwxNCArNjY1LDE0IEBAIEVs
ZW1lbnQqIEZvY3VzQ29udHJvbGxlcjo6bmV4dEZvY3VzYWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQp
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVybiBhIG5vbi1mb2N1c2FibGUgc2hhZG93
IGhvc3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgZ2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIg
dGhhdCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNjb3VudCBzaW5jZSBpdCBkb2Vzbid0IHBh
c3MgYW4gZXZlbnQuCi0gICAgcmV0dXJuIG5leHRGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVy
KEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsK
KyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVsZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGly
ZWN0aW9uRm9yd2FyZCwgRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yoc3RhcnQpLCAmc3Rh
cnQsIG51bGxwdHIpOwogfQogCiBFbGVtZW50KiBGb2N1c0NvbnRyb2xsZXI6OnByZXZpb3VzRm9j
dXNhYmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0
dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4n
dCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dlciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBh
Y2NvdW50IHNpbmNlIGl0IGRvZXNuJ3QgcGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gcHJldmlv
dXNGb2N1c2FibGVFbGVtZW50T3JTY29wZU93bmVyKEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29w
ZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKKyAgICByZXR1cm4gZmluZEZvY3VzYWJsZUVs
ZW1lbnRBY3Jvc3NGb2N1c1Njb3BlKEZvY3VzRGlyZWN0aW9uQmFja3dhcmQsIEZvY3VzTmF2aWdh
dGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVu
dCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjb25z
dCBGb2N1c05hdmlnYXRpb25TY29wZSYgc2NvcGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50
KiBldmVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA5NDNlNzk4ODM4OWE5ODA4YWQzMjEzNWYwMGIyNWU5OWVlMmE2MmQ0
Li5jM2FkZmNmYzBhYWNhOWM0Y2YwOTVlZDk4ZjlhYTg5NGIyMDM2MGQyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMjAtMTAtMTEgIFRldHN1aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtp
QGdtYWlsLmNvbT4KKworICAgICAgICBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9u
cyBkbyBub3Qgd29yayBvbiBpbnB1dHMgaW4gc2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyOTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5
IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZhbWlseS4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRv
bS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93
LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vaW9z
L2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgQXZvaWQgdG8gcnVuIGludHJv
ZHVjZWQgdGVzdHMgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHRvIHJ1biB0aGVtIGFuZAorICAgICAg
ICAgIHRlc3RzIGFyZSBjcmFzaGVkIG9uIHRoZXNlIHBsYXRmb3Jtcy4KKyAgICAgICAgKiByZXNv
dXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLm1vdmVUb05leHRC
eUtleWJvYXJkQWNjZXNzb3J5QmFyKToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5tb3ZlVG9Q
cmV2QnlLZXlib2FyZEFjY2Vzc29yeUJhcik6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIpOgor
CiAyMDIwLTEwLTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJbnRlZ3JhdGlvbl0gTGluZXMgd2l0aCBvdXRsaW5lIHNob3VsZCBiZSBtYXJrZWQg
aGF2aW5nIHZpc3VhbCBvdmVyZmxvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTgxODgyYmFiYjg1
YmYzYzcwOTk0ZmI2YWJkNjEyMjVkZDZiYTJkNC4uODM2MmQ4YmZkODhiODc4NTM0NzEwMjkwMGYw
YmU2ZGIzMWQ2MTI3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTE4LDMgKzQ1MTgsNiBAQCBl
ZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9sYXlvdXRm
b3JtYXR0aW5nY29udGV4dC8gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTcw
NTQgZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9ob3Jpem9udGFsLXNpemluZy13aXRoLXRy
YWlsaW5nLWxldHRlci1zcGFjaW5nLmh0bWwgWyBTa2lwIF0KKworIyBUaGVzZSB0ZXN0cyBhcmUg
Zm9yIGlPUyBwb3J0LgorZmFzdC9zaGFkb3ctZG9tL2lvcy8gWyBTa2lwIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQtd2l0aC10
YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQwYmVlZjI3
NWMxMTZjNzVhNjFlMDQxMGIyODgwYzUwYWVmYjI0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdp
dGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTA2IEBA
CitUZXN0IHRoYXQgQWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBp
bnB1dHMgd2hpY2ggaXMgbm90IGFzc2lnbmVkIHRvIGFueSBzbG90IGluIHNoYWRvdyB0cmVlCisK
K1RvIG1hbnVhbGx5IHRlc3QsIGRvIGZvbGxvd2luZyBzdGVwcy4KKworRm9jdXMgdGhlIDFzdCBv
ZiBpbnB1dCwgdGhlbiBBY2Nlc3NvcnkgYmFyIHdpbGwgc2hvd24uCitQcmVzcyAibmV4dCIgaWNv
biA0IHRpbWVzLgorUHJlc3MgInByZXYiIGljb24gNCB0aW1lcy4KK0l0IHNob3VsZCB0cmF2ZXJz
ZSBmb2N1c2FibGUgZWxlbWVudHMgaW4gdGhlIGluY3JlYXNpbmcgbnVtZXJpY2FsIG9yZGVyIGFu
ZCByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGVtLgorCisKKworCisKKworVGVzdCB0aGF0IEFjY2Vz
c29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlzIG5v
dCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZQorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKK2FjdGl2YXRlIDB0aCBpbnB1dAorYWN0aXZhdGVkIDB0aCBpbnB1dAorZm9y
d2FyZCB0byAxdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBw
bGFjZWhvbGRlciBhdHRyaWJ1dGU6IDEuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUg
dGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4
CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlz
IDEuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cg
dHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4Citmb3J3YXJkIHRvIDJ0aCBpbnB1
dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJp
YnV0ZTogMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVs
ZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcg
YSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5k
ZXgKK2ZvcndhcmQgdG8gM3RoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVt
ZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAzLiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJp
bmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9
PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAzLiBpbnB1dCBl
bGVtZW50IGhhdmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0
YWJpbmRleAorZm9yd2FyZCB0byA0dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDQuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IHRhYmluZGV4PTAgaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
IGlzIDQuIGlucHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTAgaW4gYSBzaGFkb3cgdHJlZSBo
b3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4Citmb3J3YXJkIHRvIDV0aCBpbnB1dAorZG9j
dW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTog
NS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0
cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNS4gaW5wdXQgZWxlbWVudCBoYXZpbmcg
YSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3Qg
dGFiaW5kZXgKK2ZvcndhcmQgdG8gNnRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA2LiBpbnB1dCBlbGVtZW50IGluIGNs
b3NlZCBzaGFkb3cgdHJlZSBob3N0CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCdwbGFjZWhvbGRlcicpIGlzIDYuIGlucHV0IGVsZW1lbnQgaW4gY2xvc2VkIHNoYWRvdyB0
cmVlIGhvc3QKK2ZvcndhcmQgdG8gN3RoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiA3LiBpbnB1dCBlbGVtZW50IGJlZm9y
ZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCitQQVNTICgpID0+IGFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDcuIGlucHV0IGVsZW1l
bnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK2Zvcndh
cmQgdG8gOHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxh
Y2Vob2xkZXIgYXR0cmlidXRlOiA4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJl
ZQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBp
cyA4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorZm9yd2FyZCB0byA5dGgg
aW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBh
dHRyaWJ1dGU6IDkuIGlucHV0IGVsZW1lbnQgYWZ0ZXIgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhh
dmluZyBzaGFkb3cgdHJlZQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgn
cGxhY2Vob2xkZXInKSBpcyA5LiBpbnB1dCBlbGVtZW50IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxl
bWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK2ZvcndhcmQgdG8gMTB0aCBpbnB1dAorZG9jdW1lbnRP
clNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMTAuIExh
c3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKK1BBU1Mg
KCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMTAuIExh
c3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFkb3cgdHJlZXMKK2ZvY3Vz
IGhhcyBtb3ZlZCB0byB0aGUgbGFzdCBlbGVtZW50IGFuZCB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0
IHJldmVyc2VseQorYmFjayB0byA5dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDkuIGlucHV0IGVsZW1lbnQgYWZ0ZXIg
bmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA5LiBpbnB1dCBlbGVtZW50
IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK2JhY2sgdG8g
OHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xk
ZXIgYXR0cmlidXRlOiA4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorUEFT
UyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA4LiBp
bnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorYmFjayB0byA3dGggaW5wdXQKK2Rv
Y3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6
IDcuIGlucHV0IGVsZW1lbnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hh
ZG93IHRyZWUKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9s
ZGVyJykgaXMgNy4gaW5wdXQgZWxlbWVudCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhh
dmluZyBzaGFkb3cgdHJlZQorYmFjayB0byA2dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290
LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDYuIGlucHV0IGVsZW1lbnQg
aW4gY2xvc2VkIHNoYWRvdyB0cmVlIGhvc3QKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNi4gaW5wdXQgZWxlbWVudCBpbiBjbG9zZWQgc2hh
ZG93IHRyZWUgaG9zdAorYmFjayB0byA1dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDUuIGlucHV0IGVsZW1lbnQgaGF2
aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IHdoaWNoIGRvZXMg
bm90IHRhYmluZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFj
ZWhvbGRlcicpIGlzIDUuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgg
aW4gYSBzaGFkb3cgdHJlZSBob3N0IHdoaWNoIGRvZXMgbm90IHRhYmluZGV4CitiYWNrIHRvIDR0
aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogNC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRv
dyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNC4gaW5wdXQgZWxlbWVudCBo
YXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUg
dGFiaW5kZXgKK2JhY2sgdG8gM3RoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVF
bGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAzLiBpbnB1dCBlbGVtZW50IGhhdmluZyB0
YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAo
KSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAzLiBpbnB1
dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleAorYmFjayB0byAydGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDIuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4CitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
IGlzIDIuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBlbGVt
ZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CitiYWNrIHRvIDF0aCBpbnB1dAorZG9jdW1l
bnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4g
aW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVl
IGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcg
YSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRp
dmUgdGFiaW5kZXgKK2JhY2sgdG8gMHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3Rp
dmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAwLiBGaXJzdCBzZXF1ZW50aWFsbHkg
aW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAwLiBGaXJzdCBzZXF1ZW50aWFsbHkg
aW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQg
ZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBw
b3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUg
dGFiaW5kZXgKKzIuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4g
YSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CiszLiBpbnB1dCBlbGVtZW50IGhh
dmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAor
NC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qg
aGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzUuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9z
aXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IHdoaWNoIGRvZXMgbm90IHRhYmlu
ZGV4Cis2LiBpbnB1dCBlbGVtZW50IGluIGNsb3NlZCBzaGFkb3cgdHJlZSBob3N0Cis3LiBpbnB1
dCBlbGVtZW50IGJlZm9yZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVl
Cis4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorOS4gaW5wdXQgZWxlbWVu
dCBhZnRlciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCisxMC4gTGFz
dCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworOS4gaW5w
dXQgZWxlbWVudCBhZnRlciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVl
Cis4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZQorNy4gaW5wdXQgZWxlbWVu
dCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorNi4gaW5w
dXQgZWxlbWVudCBpbiBjbG9zZWQgc2hhZG93IHRyZWUgaG9zdAorNS4gaW5wdXQgZWxlbWVudCBo
YXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9l
cyBub3QgdGFiaW5kZXgKKzQuIGlucHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTAgaW4gYSBz
aGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CiszLiBpbnB1dCBlbGVt
ZW50IGhhdmluZyB0YWJpbmRleD0xIGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJp
bmRleAorMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVs
ZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzEuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0
aXZlIHRhYmluZGV4CiswLiBGaXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRl
IHNoYWRvdyB0cmVlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
aW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10
cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXIt
d29yay1vbi1pbnB1dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjJjZjYzMmJhYjdiYWY3OGJiMWE1NTlmMzIxZGZlNTc4OTVkMjNmNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3Jr
LW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbApAQCAtMCwwICsxLDIx
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCis8aDE+VGVzdCB0aGF0IEFj
Y2Vzc29yeSBiYXIgbmV4dC9wcmV2aW91cyBidXR0b25zIHdvcmsgb24gaW5wdXRzIHdoaWNoIGlz
IG5vdCBhc3NpZ25lZCB0byBhbnkgc2xvdCBpbiBzaGFkb3cgdHJlZTwvaDE+Cis8cD5UbyBtYW51
YWxseSB0ZXN0LCBkbyBmb2xsb3dpbmcgc3RlcHMuPC9wPgorPG9sPgorICAgIDxsaT5Gb2N1cyB0
aGUgMXN0IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi48L2xpPgorICAg
IDxsaT5QcmVzcyAibmV4dCIgaWNvbiA0IHRpbWVzLjwvbGk+CisgICAgPGxpPlByZXNzICJwcmV2
IiBpY29uIDQgdGltZXMuPC9saT4KKyAgICA8bGk+SXQgc2hvdWxkIHRyYXZlcnNlIGZvY3VzYWJs
ZSBlbGVtZW50cyBpbiB0aGUgaW5jcmVhc2luZyBudW1lcmljYWwgb3JkZXIgYW5kIHJldmVyc2Ug
dGhlIG9yZGVyIG9mIHRoZW0uPC9saT4KKzwvb2w+CisKKzxpbnB1dCBpZD0iZmlyc3QiIHRhYmlu
ZGV4PSIxIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgIHBsYWNlaG9sZGVyPSIwLiBG
aXJzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcyIgLz4K
KworPGRpdiBpZD0iaG9zdC13aXRoLW5lZ2F0aXZlLXRhYmluZGV4IiB0YWJpbmRleD0iLTEiPlNo
b3VsZCBub3QgZm9jdXM6IFNoYWRvdyBob3N0IHdpdGggYSBuZWdhdGl2ZSB0YWJpbmRleCBidXQg
bm90IGlucHV0IGVsZW1lbnQ8L2Rpdj4KKworPGRpdiBpZD0iaG9zdC13aXRoLW5vLXRhYmluZGV4
Ij4KKyAgICA8aW5wdXQgaWQ9Imhvc3Qtd2l0aC1uby10YWJpbmRleCIKKyAgICAgICAgb25mb2N1
cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAgcGxhY2Vob2xkZXI9IlNob3VsZCBub3QgZm9j
dXM6IGlucHV0IGVsZW1lbnQgaGF2aW5nIG5vIHRhYmluZGV4IGluIGEgZWxlbWVudCBoYXZpbmcg
bm8gdGFiaW5kZXggYnV0IHdpbGwgbm90IGFzc2lnbmVkIHRvIHNsb3QiIC8+Cis8L2Rpdj4KKwor
PGRpdiBpZD0iaG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4IiB0YWJpbmRleD0iMiI+CisgICAg
PGRpdj4KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFi
aW5kZXgtbmVnYXRpdmUiCisgICAgICAgICAgICB0YWJpbmRleD0iLTEiCisgICAgICAgICAgICBv
bmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICAgICAgcGxhY2Vob2xkZXI9IlNob3Vs
ZCBub3QgZm9jdXM6IGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgbmVnYXRpdmUgdGFiaW5kZXggaW4g
YSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IiAvPgorICAgIDwvZGl2PgorICAg
IDxkaXY+CisgICAgICAgIDxpbnB1dCBpZD0iaW5wdXQtaW4taG9zdC13aXRoLXBvc2l0aXZlLXRh
YmluZGV4IgorICAgICAgICAgICAgdGFiaW5kZXg9IjAiCisgICAgICAgICAgICBvbmZvY3VzPSJs
b2dPbkZvY3VzKHRoaXMpIgorICAgICAgICAgICAgcGxhY2Vob2xkZXI9IjMuIGlucHV0IGVsZW1l
bnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4IiAvPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCBpZD0iaW5wdXQt
aW4taG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4LXBvc2l0aXZlIgorICAgICAgICAgICAgdGFi
aW5kZXg9IjEiCisgICAgICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAg
ICAgICAgcGxhY2Vob2xkZXI9IjIuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXggaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IiAvPgorICAgIDwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9ImNsb3NlZC1zaGFkb3ctdHJlZS1ob3N0Ij4KKyAgICA8
aW5wdXQgaWQ9ImlucHVudC1kZXNjZW5kYW50cy1vZi1jbG9zZWQtc2hhZG93LXRyZWUtaG9zdCIg
CisgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgIHBsYWNlaG9sZGVy
PSI2LiBpbnB1dCBlbGVtZW50IGluIGNsb3NlZCBzaGFkb3cgdHJlZSBob3N0IiAvPgorPC9kaXY+
CisKKzxuZXN0LWlucHV0LWhvbGRlcj48L25lc3QtaW5wdXQtaG9sZGVyPgorCis8aW5wdXQgaWQ9
Imxhc3QiIHRhYmluZGV4PSIwIiBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgIHBsYWNl
aG9sZGVyPSIxMC4gTGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRv
dyB0cmVlcyIgLz4KKworPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8cHJlIGlkPSJsb2ciPjwvcHJlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtbmVnYXRpdmUtdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3co
eyBtb2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxpbnB1dCB0YWJpbmRleD0iMCIK
KyAgICAgICAgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAgcGxhY2Vob2xkZXI9
IlNob3VsZCBub3QgZm9jdXM6IGlucHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTAgaW4gYSBz
aGFkb3cgdHJlZSBob3N0IGhhdmluZyBuZWdhdGl2ZSB0YWJpbmRleCIvPgorYDsKKworZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qtd2l0aC1uby10YWJpbmRleCcpLmF0dGFjaFNoYWRvdyh7
IG1vZGU6ICdvcGVuJyB9KS5pbm5lckhUTUwgPSBgCisgICAgPGlucHV0IHRhYmluZGV4PSIwIgor
ICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICBwbGFjZWhvbGRlcj0i
NS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0
cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFiaW5kZXgiLz4KK2A7CisKK2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3coeyBt
b2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxzbG90Pjwvc2xvdD4KKyAgICA8ZGl2
PgorICAgICAgICA8aW5wdXQgdGFiaW5kZXg9IjAiCisgICAgICAgICAgICBvbmZvY3VzPSJsb2dP
bkZvY3VzKHRoaXMpIgorICAgICAgICAgICAgcGxhY2Vob2xkZXI9IjQuIGlucHV0IGVsZW1lbnQg
aGF2aW5nIHRhYmluZGV4PTAgaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZl
IHRhYmluZGV4Ii8+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0IHRhYmlu
ZGV4PSItMSIKKyAgICAgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAg
ICAgICBwbGFjZWhvbGRlcj0iU2hvdWxkIG5vdCBmb2N1czogaW5wdXQgZWxlbWVudCBoYXZpbmcg
bmVnYXRpYmUgdGFiaW5kZXggaW4gYSBzaGFkb3cgdHJlZSBob3N0IGhhdmluZyBhIHBvc2l0aXZl
IHRhYmluZGV4Ii8+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0IHRhYmlu
ZGV4PSIxIgorICAgICAgICAgICAgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAg
ICAgIHBsYWNlaG9sZGVyPSIxLiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmlu
ZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCIvPgor
ICAgIDwvZGl2PgorYDsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nsb3NlZC1zaGFkb3ct
dHJlZS1ob3N0JykuYXR0YWNoU2hhZG93KHsgbW9kZTogJ2Nsb3NlZCcgfSkuaW5uZXJIVE1MID0g
YAorICAgIDxzbG90Pjwvc2xvdD4KK2A7CisKK2NsYXNzIElucHV0SG9sZGVyIGV4dGVuZHMgSFRN
TEVsZW1lbnQgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBzdXBlcigpOworICAgIAorICAgIHRo
aXMuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAn
PHA+PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSIiLz48L3A+
JzsKKyAgfQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnB1dC1ob2xkZXInLCBJbnB1dEhv
bGRlcik7CisKK2NsYXNzIE5lc3RJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAg
Y29uc3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKyAgICAKKyAgICB0aGlzLmF0dGFjaFNoYWRv
dyh7IG1vZGU6ICdvcGVuJyB9KQorICAgICAgICAuaW5uZXJIVE1MID0gYAorICAgICAgICA8aW5w
dXQgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIgcGxhY2Vob2xkZXI9JzcuIGlucHV0IGVsZW1l
bnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUnIC8+Cisg
ICAgICAgIDxpbnB1dC1ob2xkZXI+PC9pbnB1dC1ob2xkZXI+CisgICAgICAgIDxpbnB1dCBvbmZv
Y3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0nOS4gaW5wdXQgZWxlbWVudCBhZnRl
ciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlJy8+CisgICAgICAgIGA7
CisgICAgdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0LWhvbGRlcicpCisgICAg
ICAgIC5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jykuc2V0QXR0cmlidXRlKCdwbGFj
ZWhvbGRlcicsICc4LiBpbnB1dCBlbGVtZW50IGluIG5lc3RlZCBzaGFkb3cgdHJlZScpOworICB9
Cit9CitjdXN0b21FbGVtZW50cy5kZWZpbmUoJ25lc3QtaW5wdXQtaG9sZGVyJywgTmVzdElucHV0
SG9sZGVyKTsKKworZnVuY3Rpb24gbG9nT25Gb2N1cyhlbGVtZW50KSB7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ICs9IGVsZW1lbnQuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpICsgJ1xuJzsKK30KKworZnVuY3Rpb24gdGVzdENhc2UoZG9jdW1lbnRP
clNoYWRvd1Jvb3QsIGlucHV0R2V0dGVyKSB7CisgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5w
dXRHZXR0ZXIoZG9jdW1lbnRPclNoYWRvd1Jvb3QpOworICAgIHJldHVybiB7CisgICAgICAgIGRv
Y3VtZW50T3JTaGFkb3dSb290LAorICAgICAgICBpbnB1dEVsZW1lbnQsCisgICAgfTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBjb25zdCBob3N0V2l0aFBvc2l0aXZlVGFi
SW5kZXhTaGFkb3dSb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvc3Qtd2l0aC1wb3Np
dGl2ZS10YWJpbmRleCcpLnNoYWRvd1Jvb3Q7CisgICAgY29uc3QgbmVzdElucHV0SG9sZGVyU2hh
ZG93Um9vdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ25lc3QtaW5wdXQtaG9sZGVyJykuc2hh
ZG93Um9vdDsKKworICAgIGNvbnN0IHN0YWNrID0gWworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVu
dCwgKF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdCcpKSwKKworICAgICAgICB0
ZXN0Q2FzZShob3N0V2l0aFBvc2l0aXZlVGFiSW5kZXhTaGFkb3dSb290LAorICAgICAgICAgICAg
KHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXRbdGFiaW5kZXg9
IjEiXScpKSwKKworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgtcG9zaXRp
dmUnKSksCisKKyAgICAgICAgdGVzdENhc2UoZG9jdW1lbnQsIChfKSA9PiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaW5wdXQtaW4taG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4JykpLAorCisg
ICAgICAgIHRlc3RDYXNlKGhvc3RXaXRoUG9zaXRpdmVUYWJJbmRleFNoYWRvd1Jvb3QsCisgICAg
ICAgICAgICAoc2hhZG93Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0
YWJpbmRleD0iMCJdJykpLCAKKworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaG9zdC13aXRoLW5vLXRhYmluZGV4Jykuc2hhZG93Um9vdCwKKyAgICAgICAgICAgIChz
aGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PSIw
Il0nKSksCisKKyAgICAgICAgdGVzdENhc2UoZG9jdW1lbnQsIChfKSA9PiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaW5wdW50LWRlc2NlbmRhbnRzLW9mLWNsb3NlZC1zaGFkb3ctdHJlZS1ob3N0
JykpLAorCisgICAgICAgIHRlc3RDYXNlKG5lc3RJbnB1dEhvbGRlclNoYWRvd1Jvb3QsCisgICAg
ICAgICAgICAoc2hhZG93Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dDpu
dGgtY2hpbGQoMSknKSksCisKKyAgICAgICAgdGVzdENhc2UobmVzdElucHV0SG9sZGVyU2hhZG93
Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dC1ob2xkZXInKS5zaGFkb3dSb290LAorICAgICAgICAg
ICAgKHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKSksCisK
KyAgICAgICAgdGVzdENhc2UobmVzdElucHV0SG9sZGVyU2hhZG93Um9vdCwKKyAgICAgICAgICAg
IChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Om50aC1sYXN0
LWNoaWxkKDEpJykpLAorCisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykgPT4gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2xhc3QnKSksCisgICAgXTsKKworICAgIHsKKyAgICAgICAgY29u
c3QgZmlyc3RFbGVtZW50ID0gc3RhY2tbMF0uaW5wdXRFbGVtZW50OworICAgICAgICBkZWJ1Zygn
YWN0aXZhdGUgMHRoIGlucHV0Jyk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxl
bWVudChmaXJzdEVsZW1lbnQpOworICAgICAgICBkZWJ1ZygnYWN0aXZhdGVkIDB0aCBpbnB1dCcp
OworICAgIH0KKworICAgIGZvciAobGV0IGkgPSAxLCBsID0gc3RhY2subGVuZ3RoOyBpIDwgbDsg
KytpKSB7CisgICAgICAgIGNvbnN0IHsgZG9jdW1lbnRPclNoYWRvd1Jvb3QsIGlucHV0RWxlbWVu
dCwgfSA9IHN0YWNrW2ldOworCisgICAgICAgIGRlYnVnKGBmb3J3YXJkIHRvICR7U3RyaW5nKGkp
fXRoIGlucHV0YCk7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLm1vdmVUb05leHRCeUtleWJvYXJk
QWNjZXNzb3J5QmFyKCk7CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudE9y
U2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRPclNoYWRv
d1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxkQmUoKCkg
PT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+IGlucHV0
RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgIH0gCisKKyAgICBkZWJ1
ZygnZm9jdXMgaGFzIG1vdmVkIHRvIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0
aGUgZmlyc3QgcmV2ZXJzZWx5Jyk7CisKKyAgICBmb3IgKGxldCBpID0gc3RhY2subGVuZ3RoIC0g
MjsgLTEgPCBpOyAtLWkpIHsKKyAgICAgICAgZGVidWcoYGJhY2sgdG8gJHtTdHJpbmcoaSl9dGgg
aW5wdXRgKTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIubW92ZVRvUHJldkJ5S2V5Ym9hcmRBY2Nl
c3NvcnlCYXIoKTsKKyAgICAgICAgY29uc3QgeyBkb2N1bWVudE9yU2hhZG93Um9vdCwgaW5wdXRF
bGVtZW50LCB9ID0gc3RhY2tbaV07CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1
bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRP
clNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxk
QmUoKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+
IGlucHV0RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgIH0KK30KKwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgZGVzY3JpcHRpb24oYFRlc3QgdGhhdCBBY2Nl
c3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9uIGlucHV0cyB3aGljaCBpcyBu
b3QgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWVgKTsKKyAgICBjb25zdCBydW4g
PSBydW5UZXN0KCkuY2F0Y2goKGUpID0+IGRlYnVnKGBGQUlMOiBcYCR7ZX1cYGApKTsKKyAgICBV
SUhlbHBlci53YWl0KHJ1bik7Cit9IGVsc2UgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK30KKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjOWJhYjg1NDNkZDVmN2JmYmQ4YTVjZGQ4
OTJlMmFlNzA4ODY3NzljLi42NzQ0YjczYzBkMTZkYjVkMTk1NDFkNzIzNzRhYTY2NTUyNTQwNzQx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUwNywz
ICszNTA3LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1Nw
ZWVjaFN5bnRoZXNpcy1zcGVhay13aXRob3V0LWFjdGl2YXQKIAogIyBUaGlzIHRlc3QgZmFpbHMg
aW4gaU9TIGR1ZSB0byBzdWJwaXhlbCBkaWZmZXJlbmNlcyBmb3IgdGhlIG1hcmtlciBwb3NpdGlv
bgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWxpc3RzL2xpc3Qtc3R5
bGUtdHlwZS1zdHJpbmctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKworIyBUaGVzZSB0
ZXN0cyBhcmUgZm9yIGlPUyBwb3J0LiBTaG91bGQgYmUgcGFzcy4KK2Zhc3Qvc2hhZG93LWRvbS9p
b3MvIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA2OWYwMjg2NTIy
YjI3MGMyZDU2M2NjOTliZjU1NmFhZTdjOWFkMjNkLi5iZmIzNmJhZDUzOTg4ZTg4NjYwZjkwYzFm
YjZlYzZiOGQ1MGJlNGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTEzNzks
NiArMTM3OSwyNiBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAg
ICAgICAgICAgfSkoKTtgLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVlIikpOwog
ICAgICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgbW92ZVRvTmV4dEJ5S2V5Ym9hcmRBY2Nl
c3NvcnlCYXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0KCk7CisgICAgICAgICAgICAg
ICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgIGAsIHJlc29s
dmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbW92ZVRvUHJldkJ5S2V5Ym9h
cmRBY2Nlc3NvcnlCYXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv
bHZlKSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAg
ICAgICAgICB1aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cygpOworICAg
ICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAg
ICBgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiBVSUhlbHBlci5FdmVudFN0
cmVhbUJ1aWxkZXIgPSBjbGFzcyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412433</attachid>
            <date>2020-10-27 09:47:53 -0700</date>
            <delta_ts>2020-10-27 10:30:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201028014752.patch</filename>
            <type>text/plain</type>
            <size>23041</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyMjc0NDI3YzAyZjA3
OTllOGVlNjJmMGEwMGI3N2RkYmVjODZkZC4uYzFlNDQ1MWRiYzUwY2VhZjU1NzBlZDc2MzFhMjhm
MTI5ZjNlMmNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbAorCisgICAgICAgICogcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpu
ZXh0Rm9jdXNhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudCk6CisKIDIwMjAtMTAtMjcgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydCBpbiBCb3hUcmVlOjpsYXlvdXRC
b3hGb3JSZW5kZXJlcigpIHVuZGVyIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxDb3JuZXJTdHls
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggODJhNjRjMzA2
YjhlZWQ3ZGFkYjFhMzE2ZmJjODhlY2JlYzBlMDg0Yy4uMjY2ZjMxNWU0MGRkNDY1YjQ4NjE0YTg5
Njg5MGI2NzhiNTZkZWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cApAQCAtNjY1LDE0ICs2NjUsMTQgQEAgRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9j
dXNhYmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0
dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4n
dCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dlciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBh
Y2NvdW50IHNpbmNlIGl0IGRvZXNuJ3QgcGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gbmV4dEZv
Y3VzYWJsZUVsZW1lbnRPclNjb3BlT3duZXIoRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yo
c3RhcnQpLCAmc3RhcnQsIG51bGxwdHIpOworICAgIHJldHVybiBmaW5kRm9jdXNhYmxlRWxlbWVu
dEFjcm9zc0ZvY3VzU2NvcGUoRm9jdXNEaXJlY3Rpb246OkZvcndhcmQsIEZvY3VzTmF2aWdhdGlv
blNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCog
Rm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQpCiB7
CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVybiBhIG5vbi1mb2N1c2FibGUgc2hhZG93IGhv
c3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgZ2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIgdGhh
dCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNjb3VudCBzaW5jZSBpdCBkb2Vzbid0IHBhc3Mg
YW4gZXZlbnQuCi0gICAgcmV0dXJuIHByZXZpb3VzRm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25l
cihGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7
CisgICAgcmV0dXJuIGZpbmRGb2N1c2FibGVFbGVtZW50QWNyb3NzRm9jdXNTY29wZShGb2N1c0Rp
cmVjdGlvbjo6QmFja3dhcmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwg
JnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9j
dXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjb25zdCBGb2N1c05hdmlnYXRpb25TY29wZSYgc2Nv
cGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YTIwNmViNmI0
OGE1N2NlOTg1MThmM2UwYjlhYTk4NmQ2YjYxNTgyLi4wZWVmNzY0NTNjYTYxMmIzZWFmYTU1NDM3
OTg2OWE4NzkyNjk5NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMTAtMTEgIFRldHN1
aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KKworICAgICAgICBBY2Nl
c3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyBkbyBub3Qgd29yayBvbiBpbnB1dHMgaW4g
c2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDMyOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZhbWls
eS4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9u
LWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICAgQXZvaWQgdG8gcnVuIGludHJvZHVjZWQgdGVzdHMgYmVjYXVzZSB3ZSBkb24n
dCBoYXZlIHRvIHJ1biB0aGVtIGFuZAorICAgICAgICAgIHRlc3RzIGFyZSBjcmFzaGVkIG9uIHRo
ZXNlIHBsYXRmb3Jtcy4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAg
ICAod2luZG93LlVJSGVscGVyLm1vdmVUb05leHRCeUtleWJvYXJkQWNjZXNzb3J5QmFyKToKKyAg
ICAgICAgKHdpbmRvdy5VSUhlbHBlci5tb3ZlVG9QcmV2QnlLZXlib2FyZEFjY2Vzc29yeUJhcik6
CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIpOgorCiAyMDIwLTEwLTI3ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVlZGVkIHdoaXRlc3BhY2Ug
YmV0d2VlbiBjb250ZW50IGFuZCA8YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhODE2ZWE3Y2Y2
MjBkNjhjYTNjMDVkZTMyM2JiZDliYmFlNjYyMjQxLi5jYWRiZDhhZDVjMjE3Mzc4YzA0ZDViYTc3
MzNmNzAwMThiNGEzNzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1MjQsMyArNDUyNCw2IEBA
IGVkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8uaHRtbCBbIEZhaWx1cmUgXQogCiBmYXN0L2xheW91
dGZvcm1hdHRpbmdjb250ZXh0LyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIx
NzA1NCBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2hvcml6b250YWwtc2l6aW5nLXdpdGgt
dHJhaWxpbmctbGV0dGVyLXNwYWNpbmcuaHRtbCBbIFNraXAgXQorCisjIFRoZXNlIHRlc3RzIGFy
ZSBmb3IgaU9TIHBvcnQuCitmYXN0L3NoYWRvdy1kb20vaW9zLyBbIFNraXAgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRo
LXRhYmluZGV4LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDBiZWVm
Mjc1YzExNmM3NWE2MWUwNDEwYjI4ODBjNTBhZWZiMjRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQt
d2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDYg
QEAKK1Rlc3QgdGhhdCBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9u
IGlucHV0cyB3aGljaCBpcyBub3QgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWUK
KworVG8gbWFudWFsbHkgdGVzdCwgZG8gZm9sbG93aW5nIHN0ZXBzLgorCitGb2N1cyB0aGUgMXN0
IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi4KK1ByZXNzICJuZXh0IiBp
Y29uIDQgdGltZXMuCitQcmVzcyAicHJldiIgaWNvbiA0IHRpbWVzLgorSXQgc2hvdWxkIHRyYXZl
cnNlIGZvY3VzYWJsZSBlbGVtZW50cyBpbiB0aGUgaW5jcmVhc2luZyBudW1lcmljYWwgb3JkZXIg
YW5kIHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZW0uCisKKworCisKKworCitUZXN0IHRoYXQgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgd2hpY2ggaXMg
bm90IGFzc2lnbmVkIHRvIGFueSBzbG90IGluIHNoYWRvdyB0cmVlCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworYWN0aXZhdGUgMHRoIGlucHV0CithY3RpdmF0ZWQgMHRoIGlucHV0Citm
b3J3YXJkIHRvIDF0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdz
IHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5k
ZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykg
aXMgMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRv
dyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2ZvcndhcmQgdG8gMnRoIGlu
cHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0
cmlidXRlOiAyLiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEg
ZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAyLiBpbnB1dCBlbGVtZW50IGhhdmlu
ZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJp
bmRleAorZm9yd2FyZCB0byAzdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVs
ZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIGlucHV0IGVsZW1lbnQgaGF2aW5nIHRh
YmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CitQQVNTICgp
ID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDMuIGlucHV0
IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZl
IHRhYmluZGV4Citmb3J3YXJkIHRvIDR0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNC4gaW5wdXQgZWxlbWVudCBoYXZp
bmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykgaXMgNC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVl
IGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2ZvcndhcmQgdG8gNXRoIGlucHV0Citk
b2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRl
OiA1LiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93
IHRyZWUgaG9zdCB3aGljaCBkb2VzIG5vdCB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA1LiBpbnB1dCBlbGVtZW50IGhhdmlu
ZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCB3aGljaCBkb2VzIG5v
dCB0YWJpbmRleAorZm9yd2FyZCB0byA2dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDYuIGlucHV0IGVsZW1lbnQgaW4g
Y2xvc2VkIHNoYWRvdyB0cmVlIGhvc3QKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNi4gaW5wdXQgZWxlbWVudCBpbiBjbG9zZWQgc2hhZG93
IHRyZWUgaG9zdAorZm9yd2FyZCB0byA3dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDcuIGlucHV0IGVsZW1lbnQgYmVm
b3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK1BBU1MgKCkgPT4g
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNy4gaW5wdXQgZWxl
bWVudCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorZm9y
d2FyZCB0byA4dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBw
bGFjZWhvbGRlciBhdHRyaWJ1dGU6IDguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0
cmVlCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
IGlzIDguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCitmb3J3YXJkIHRvIDl0
aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogOS4gaW5wdXQgZWxlbWVudCBhZnRlciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQg
aGF2aW5nIHNoYWRvdyB0cmVlCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpIGlzIDkuIGlucHV0IGVsZW1lbnQgYWZ0ZXIgbmVzdGVkIGN1c3RvbSBl
bGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorZm9yd2FyZCB0byAxMHRoIGlucHV0Citkb2N1bWVu
dE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAxMC4g
TGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFT
UyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxMC4g
TGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworZm9j
dXMgaGFzIG1vdmVkIHRvIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmly
c3QgcmV2ZXJzZWx5CitiYWNrIHRvIDl0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogOS4gaW5wdXQgZWxlbWVudCBhZnRl
ciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCitQQVNTICgpID0+IGFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDkuIGlucHV0IGVsZW1l
bnQgYWZ0ZXIgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorYmFjayB0
byA4dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhv
bGRlciBhdHRyaWJ1dGU6IDguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCitQ
QVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDgu
IGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCitiYWNrIHRvIDd0aCBpbnB1dAor
ZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0
ZTogNy4gaW5wdXQgZWxlbWVudCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBz
aGFkb3cgdHJlZQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vo
b2xkZXInKSBpcyA3LiBpbnB1dCBlbGVtZW50IGJlZm9yZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQg
aGF2aW5nIHNoYWRvdyB0cmVlCitiYWNrIHRvIDZ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNi4gaW5wdXQgZWxlbWVu
dCBpbiBjbG9zZWQgc2hhZG93IHRyZWUgaG9zdAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA2LiBpbnB1dCBlbGVtZW50IGluIGNsb3NlZCBz
aGFkb3cgdHJlZSBob3N0CitiYWNrIHRvIDV0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3Qu
YWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNS4gaW5wdXQgZWxlbWVudCBo
YXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9l
cyBub3QgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJykgaXMgNS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRl
eCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFiaW5kZXgKK2JhY2sgdG8g
NHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xk
ZXIgYXR0cmlidXRlOiA0LiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hh
ZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA0LiBpbnB1dCBlbGVtZW50
IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleAorYmFjayB0byAzdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CitQQVNT
ICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDMuIGlu
cHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0
aXZlIHRhYmluZGV4CitiYWNrIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMi4gaW5wdXQgZWxlbWVudCBoYXZp
bmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykgaXMgMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVs
ZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2JhY2sgdG8gMXRoIGlucHV0Citkb2N1
bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAx
LiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRy
ZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxLiBpbnB1dCBlbGVtZW50IGhhdmlu
ZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3Np
dGl2ZSB0YWJpbmRleAorYmFjayB0byAwdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDAuIEZpcnN0IHNlcXVlbnRpYWxs
eSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCitQQVNTICgpID0+IGFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDAuIEZpcnN0IHNlcXVlbnRpYWxs
eSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKzAuIEZpcnN0IHNlcXVlbnRpYWxseSBpbnB1
dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCisxLiBpbnB1dCBlbGVtZW50IGhhdmluZyBh
IHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleAorMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBp
biBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzMuIGlucHV0IGVsZW1lbnQg
aGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4
Cis0LiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hhZG93IHRyZWUgaG9z
dCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorNS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBw
b3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFi
aW5kZXgKKzYuIGlucHV0IGVsZW1lbnQgaW4gY2xvc2VkIHNoYWRvdyB0cmVlIGhvc3QKKzcuIGlu
cHV0IGVsZW1lbnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRy
ZWUKKzguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCis5LiBpbnB1dCBlbGVt
ZW50IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKKzEwLiBM
YXN0IHNlcXVlbnRpYWxseSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCis5LiBp
bnB1dCBlbGVtZW50IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRy
ZWUKKzguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCis3LiBpbnB1dCBlbGVt
ZW50IGJlZm9yZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCis2LiBp
bnB1dCBlbGVtZW50IGluIGNsb3NlZCBzaGFkb3cgdHJlZSBob3N0Cis1LiBpbnB1dCBlbGVtZW50
IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCB3aGljaCBk
b2VzIG5vdCB0YWJpbmRleAorNC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBh
IHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzMuIGlucHV0IGVs
ZW1lbnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRh
YmluZGV4CisyLiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEg
ZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorMS4gaW5wdXQgZWxlbWVudCBoYXZp
bmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9z
aXRpdmUgdGFiaW5kZXgKKzAuIEZpcnN0IHNlcXVlbnRpYWxseSBpbnB1dCBlbGVtZW50IG91dHNp
ZGUgc2hhZG93IHRyZWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRv
bS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93
LXRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJh
ci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yNzQ5MDM5MjM1MmFlY2NhM2Y1ZWNmMGU1MmMwYzEzY2IyNWFhNmM2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdv
cmstb24taW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS5odG1sCkBAIC0wLDAgKzEs
MjEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisKKzxoMT5UZXN0IHRoYXQg
QWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgd2hpY2gg
aXMgbm90IGFzc2lnbmVkIHRvIGFueSBzbG90IGluIHNoYWRvdyB0cmVlPC9oMT4KKzxwPlRvIG1h
bnVhbGx5IHRlc3QsIGRvIGZvbGxvd2luZyBzdGVwcy48L3A+Cis8b2w+CisgICAgPGxpPkZvY3Vz
IHRoZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLjwvbGk+Cisg
ICAgPGxpPlByZXNzICJuZXh0IiBpY29uIDQgdGltZXMuPC9saT4KKyAgICA8bGk+UHJlc3MgInBy
ZXYiIGljb24gNCB0aW1lcy48L2xpPgorICAgIDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNh
YmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJz
ZSB0aGUgb3JkZXIgb2YgdGhlbS48L2xpPgorPC9vbD4KKworPGlucHV0IGlkPSJmaXJzdCIgdGFi
aW5kZXg9IjEiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgcGxhY2Vob2xkZXI9IjAu
IEZpcnN0IHNlcXVlbnRpYWxseSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzIiAv
PgorCis8ZGl2IGlkPSJob3N0LXdpdGgtbmVnYXRpdmUtdGFiaW5kZXgiIHRhYmluZGV4PSItMSI+
U2hvdWxkIG5vdCBmb2N1czogU2hhZG93IGhvc3Qgd2l0aCBhIG5lZ2F0aXZlIHRhYmluZGV4IGJ1
dCBub3QgaW5wdXQgZWxlbWVudDwvZGl2PgorCis8ZGl2IGlkPSJob3N0LXdpdGgtbm8tdGFiaW5k
ZXgiPgorICAgIDxpbnB1dCBpZD0iaG9zdC13aXRoLW5vLXRhYmluZGV4IgorICAgICAgICBvbmZv
Y3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICBwbGFjZWhvbGRlcj0iU2hvdWxkIG5vdCBm
b2N1czogaW5wdXQgZWxlbWVudCBoYXZpbmcgbm8gdGFiaW5kZXggaW4gYSBlbGVtZW50IGhhdmlu
ZyBubyB0YWJpbmRleCBidXQgd2lsbCBub3QgYXNzaWduZWQgdG8gc2xvdCIgLz4KKzwvZGl2Pgor
Cis8ZGl2IGlkPSJob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgiIHRhYmluZGV4PSIyIj4KKyAg
ICA8ZGl2PgorICAgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWhvc3Qtd2l0aC1wb3NpdGl2ZS10
YWJpbmRleC1uZWdhdGl2ZSIKKyAgICAgICAgICAgIHRhYmluZGV4PSItMSIKKyAgICAgICAgICAg
IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2hv
dWxkIG5vdCBmb2N1czogaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBuZWdhdGl2ZSB0YWJpbmRleCBp
biBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgiIC8+CisgICAgPC9kaXY+Cisg
ICAgPGRpdj4KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUt
dGFiaW5kZXgiCisgICAgICAgICAgICB0YWJpbmRleD0iMCIKKyAgICAgICAgICAgIG9uZm9jdXM9
ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgICAgICBwbGFjZWhvbGRlcj0iMy4gaW5wdXQgZWxl
bWVudCBoYXZpbmcgdGFiaW5kZXg9MSBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXgiIC8+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1
dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgtcG9zaXRpdmUiCisgICAgICAgICAgICB0
YWJpbmRleD0iMSIKKyAgICAgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAg
ICAgICAgICBwbGFjZWhvbGRlcj0iMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0
YWJpbmRleCBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgiIC8+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0iY2xvc2VkLXNoYWRvdy10cmVlLWhvc3QiPgorICAg
IDxpbnB1dCBpZD0iaW5wdW50LWRlc2NlbmRhbnRzLW9mLWNsb3NlZC1zaGFkb3ctdHJlZS1ob3N0
IgorICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICBwbGFjZWhvbGRl
cj0iNi4gaW5wdXQgZWxlbWVudCBpbiBjbG9zZWQgc2hhZG93IHRyZWUgaG9zdCIgLz4KKzwvZGl2
PgorCis8bmVzdC1pbnB1dC1ob2xkZXI+PC9uZXN0LWlucHV0LWhvbGRlcj4KKworPGlucHV0IGlk
PSJsYXN0IiB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICBwbGFj
ZWhvbGRlcj0iMTAuIExhc3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFk
b3cgdHJlZXMiIC8+CisKKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaG9zdC13aXRoLW5lZ2F0aXZlLXRhYmluZGV4JykuYXR0YWNoU2hhZG93
KHsgbW9kZTogJ29wZW4nIH0pLmlubmVySFRNTCA9IGAKKyAgICA8aW5wdXQgdGFiaW5kZXg9IjAi
CisgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgIHBsYWNlaG9sZGVy
PSJTaG91bGQgbm90IGZvY3VzOiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0wIGluIGEg
c2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgbmVnYXRpdmUgdGFiaW5kZXgiLz4KK2A7CisKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtbm8tdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3co
eyBtb2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxpbnB1dCB0YWJpbmRleD0iMCIK
KyAgICAgICAgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAgcGxhY2Vob2xkZXI9
IjUuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cg
dHJlZSBob3N0IHdoaWNoIGRvZXMgbm90IHRhYmluZGV4Ii8+CitgOworCitkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4JykuYXR0YWNoU2hhZG93KHsg
bW9kZTogJ29wZW4nIH0pLmlubmVySFRNTCA9IGAKKyAgICA8c2xvdD48L3Nsb3Q+CisgICAgPGRp
dj4KKyAgICAgICAgPGlucHV0IHRhYmluZGV4PSIwIgorICAgICAgICAgICAgb25mb2N1cz0ibG9n
T25Gb2N1cyh0aGlzKSIKKyAgICAgICAgICAgIHBsYWNlaG9sZGVyPSI0LiBpbnB1dCBlbGVtZW50
IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleCIvPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCB0YWJp
bmRleD0iLTEiCisgICAgICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAg
ICAgICAgcGxhY2Vob2xkZXI9IlNob3VsZCBub3QgZm9jdXM6IGlucHV0IGVsZW1lbnQgaGF2aW5n
IG5lZ2F0aWJlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleCIvPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCB0YWJp
bmRleD0iMSIKKyAgICAgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAg
ICAgICBwbGFjZWhvbGRlcj0iMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJp
bmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgiLz4K
KyAgICA8L2Rpdj4KK2A7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9zZWQtc2hhZG93
LXRyZWUtaG9zdCcpLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdjbG9zZWQnIH0pLmlubmVySFRNTCA9
IGAKKyAgICA8c2xvdD48L3Nsb3Q+CitgOworCitjbGFzcyBJbnB1dEhvbGRlciBleHRlbmRzIEhU
TUxFbGVtZW50IHsKKyAgY29uc3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKworICAgIHRoaXMu
YXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPHA+
PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSIiLz48L3A+JzsK
KyAgfQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnB1dC1ob2xkZXInLCBJbnB1dEhvbGRl
cik7CisKK2NsYXNzIE5lc3RJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29u
c3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKworICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9k
ZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSBgCisgICAgICAgIDxpbnB1dCBvbmZv
Y3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0nNy4gaW5wdXQgZWxlbWVudCBiZWZv
cmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZScgLz4KKyAgICAgICAg
PGlucHV0LWhvbGRlcj48L2lucHV0LWhvbGRlcj4KKyAgICAgICAgPGlucHV0IG9uZm9jdXM9Imxv
Z09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSc5LiBpbnB1dCBlbGVtZW50IGFmdGVyIG5lc3Rl
ZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUnLz4KKyAgICAgICAgYDsKKyAgICB0
aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKS5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JywgJzguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlJyk7CisgIH0KK30KK2N1
c3RvbUVsZW1lbnRzLmRlZmluZSgnbmVzdC1pbnB1dC1ob2xkZXInLCBOZXN0SW5wdXRIb2xkZXIp
OworCitmdW5jdGlvbiBsb2dPbkZvY3VzKGVsZW1lbnQpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbG9nJykudGV4dENvbnRlbnQgKz0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNl
aG9sZGVyJykgKyAnXG4nOworfQorCitmdW5jdGlvbiB0ZXN0Q2FzZShkb2N1bWVudE9yU2hhZG93
Um9vdCwgaW5wdXRHZXR0ZXIpIHsKKyAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dEdldHRl
cihkb2N1bWVudE9yU2hhZG93Um9vdCk7CisgICAgcmV0dXJuIHsKKyAgICAgICAgZG9jdW1lbnRP
clNoYWRvd1Jvb3QsCisgICAgICAgIGlucHV0RWxlbWVudCwKKyAgICB9OworfQorCithc3luYyBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIGNvbnN0IGhvc3RXaXRoUG9zaXRpdmVUYWJJbmRleFNo
YWRvd1Jvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdC13aXRoLXBvc2l0aXZlLXRh
YmluZGV4Jykuc2hhZG93Um9vdDsKKyAgICBjb25zdCBuZXN0SW5wdXRIb2xkZXJTaGFkb3dSb290
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmVzdC1pbnB1dC1ob2xkZXInKS5zaGFkb3dSb290
OworCisgICAgY29uc3Qgc3RhY2sgPSBbCisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykg
PT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0JykpLAorCisgICAgICAgIHRlc3RDYXNl
KGhvc3RXaXRoUG9zaXRpdmVUYWJJbmRleFNoYWRvd1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93
Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD0iMSJdJykp
LAorCisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykgPT4gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2lucHV0LWluLWhvc3Qtd2l0aC1wb3NpdGl2ZS10YWJpbmRleC1wb3NpdGl2ZScpKSwK
KworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKSksCisKKyAgICAgICAg
dGVzdENhc2UoaG9zdFdpdGhQb3NpdGl2ZVRhYkluZGV4U2hhZG93Um9vdCwKKyAgICAgICAgICAg
IChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4
PSIwIl0nKSksCisKKyAgICAgICAgdGVzdENhc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hv
c3Qtd2l0aC1uby10YWJpbmRleCcpLnNoYWRvd1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93Um9v
dCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD0iMCJdJykpLAor
CisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lucHVudC1kZXNjZW5kYW50cy1vZi1jbG9zZWQtc2hhZG93LXRyZWUtaG9zdCcpKSwKKwor
ICAgICAgICB0ZXN0Q2FzZShuZXN0SW5wdXRIb2xkZXJTaGFkb3dSb290LAorICAgICAgICAgICAg
KHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQ6bnRoLWNoaWxk
KDEpJykpLAorCisgICAgICAgIHRlc3RDYXNlKG5lc3RJbnB1dEhvbGRlclNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykuc2hhZG93Um9vdCwKKyAgICAgICAgICAgIChzaGFk
b3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpLAorCisgICAgICAg
IHRlc3RDYXNlKG5lc3RJbnB1dEhvbGRlclNoYWRvd1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93
Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dDpudGgtbGFzdC1jaGlsZCgx
KScpKSwKKworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsYXN0JykpLAorICAgIF07CisKKyAgICB7CisgICAgICAgIGNvbnN0IGZpcnN0
RWxlbWVudCA9IHN0YWNrWzBdLmlucHV0RWxlbWVudDsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRl
IDB0aCBpbnB1dCcpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZmly
c3RFbGVtZW50KTsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlZCAwdGggaW5wdXQnKTsKKyAgICB9
CisKKyAgICBmb3IgKGxldCBpID0gMSwgbCA9IHN0YWNrLmxlbmd0aDsgaSA8IGw7ICsraSkgewor
ICAgICAgICBjb25zdCB7IGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEVsZW1lbnQsIH0gPSBz
dGFja1tpXTsKKworICAgICAgICBkZWJ1ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBpbnB1
dGApOworICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9OZXh0QnlLZXlib2FyZEFjY2Vzc29y
eUJhcigpOworICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpLCAoKSA9PiBpbnB1dEVsZW1lbnQu
Z2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnZm9jdXMg
aGFzIG1vdmVkIHRvIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmlyc3Qg
cmV2ZXJzZWx5Jyk7CisKKyAgICBmb3IgKGxldCBpID0gc3RhY2subGVuZ3RoIC0gMjsgLTEgPCBp
OyAtLWkpIHsKKyAgICAgICAgZGVidWcoYGJhY2sgdG8gJHtTdHJpbmcoaSl9dGggaW5wdXRgKTsK
KyAgICAgICAgYXdhaXQgVUlIZWxwZXIubW92ZVRvUHJldkJ5S2V5Ym9hcmRBY2Nlc3NvcnlCYXIo
KTsKKyAgICAgICAgY29uc3QgeyBkb2N1bWVudE9yU2hhZG93Um9vdCwgaW5wdXRFbGVtZW50LCB9
ID0gc3RhY2tbaV07CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudE9yU2hh
ZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxkQmUoKCkgPT4g
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+IGlucHV0RWxl
bWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgIH0KK30KKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgZGVzY3JpcHRpb24oYFRlc3QgdGhhdCBBY2Nlc3NvcnkgYmFy
IG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9uIGlucHV0cyB3aGljaCBpcyBub3QgYXNzaWdu
ZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWVgKTsKKyAgICBjb25zdCBydW4gPSBydW5UZXN0
KCkuY2F0Y2goKGUpID0+IGRlYnVnKGBGQUlMOiBcYCR7ZX1cYGApKTsKKyAgICBVSUhlbHBlci53
YWl0KHJ1bik7Cit9IGVsc2UgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBjOWJhYjg1NDNkZDVmN2JmYmQ4YTVjZGQ4OTJlMmFlNzA4
ODY3NzljLi42NzQ0YjczYzBkMTZkYjVkMTk1NDFkNzIzNzRhYTY2NTUyNTQwNzQxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzUwNywzICszNTA3LDYg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpL1NwZWVjaFN5bnRo
ZXNpcy1zcGVhay13aXRob3V0LWFjdGl2YXQKIAogIyBUaGlzIHRlc3QgZmFpbHMgaW4gaU9TIGR1
ZSB0byBzdWJwaXhlbCBkaWZmZXJlbmNlcyBmb3IgdGhlIG1hcmtlciBwb3NpdGlvbgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWxpc3RzL2xpc3Qtc3R5bGUtdHlwZS1z
dHJpbmctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKworIyBUaGVzZSB0ZXN0cyBhcmUg
Zm9yIGlPUyBwb3J0LiBTaG91bGQgYmUgcGFzcy4KK2Zhc3Qvc2hhZG93LWRvbS9pb3MvIFsgUGFz
cyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA1ZDgxYjc1MGQ2NTg4NDk2ZWQ2
MTdmNzZkZDEyYmM2NGUzYThkMDc4Li44MzQ4NGE1MDNiZTAzYjBkYzg4YTUyNjk0M2MyYzM5MTJl
MTI3OTVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisr
KyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTEzODYsNiArMTM4Niwy
NiBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgICAgICAgICAg
fSkoKTtgLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVlIikpOwogICAgICAgICB9
KTsKICAgICB9CisKKyAgICBzdGF0aWMgbW92ZVRvTmV4dEJ5S2V5Ym9hcmRBY2Nlc3NvcnlCYXIo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICB1aUNvbnRy
b2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0KCk7CisgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgIGAsIHJlc29sdmUpOworICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgbW92ZVRvUHJldkJ5S2V5Ym9hcmRBY2Nlc3Nv
cnlCYXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICB1
aUNvbnRyb2xsZXIua2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cygpOworICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICBgLCByZXNv
bHZlKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxk
ZXIgPSBjbGFzcyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412441</attachid>
            <date>2020-10-27 10:30:19 -0700</date>
            <delta_ts>2020-10-27 11:51:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203292-20201028023018.patch</filename>
            <type>text/plain</type>
            <size>23036</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YyMjc0NDI3YzAyZjA3
OTllOGVlNjJmMGEwMGI3N2RkYmVjODZkZC4uYzFlNDQ1MWRiYzUwY2VhZjU1NzBlZDc2MzFhMjhm
MTI5ZjNlMmNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA4ICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgZG8gbm90IHdvcmsgb24gaW5wdXRzIGlu
IHNoYWRvdyByb290cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlu
cHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbAorCisgICAgICAgICogcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjpu
ZXh0Rm9jdXNhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpGb2N1c0NvbnRyb2xsZXI6
OnByZXZpb3VzRm9jdXNhYmxlRWxlbWVudCk6CisKIDIwMjAtMTAtMjcgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydCBpbiBCb3hUcmVlOjpsYXlvdXRC
b3hGb3JSZW5kZXJlcigpIHVuZGVyIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxDb3JuZXJTdHls
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggODJhNjRjMzA2
YjhlZWQ3ZGFkYjFhMzE2ZmJjODhlY2JlYzBlMDg0Yy4uMjY2ZjMxNWU0MGRkNDY1YjQ4NjE0YTg5
Njg5MGI2NzhiNTZkZWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNw
cApAQCAtNjY1LDE0ICs2NjUsMTQgQEAgRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9j
dXNhYmxlRWxlbWVudChOb2RlJiBzdGFydCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBjYW4gcmV0
dXJuIGEgbm9uLWZvY3VzYWJsZSBzaGFkb3cgaG9zdC4KICAgICAvLyBGSVhNRTogVGhpcyBjYW4n
dCBnaXZlIHRoZSBjb3JyZWN0IGFuc3dlciB0aGF0IHRha2VzIG1vZGlmaWVyIGtleXMgaW50byBh
Y2NvdW50IHNpbmNlIGl0IGRvZXNuJ3QgcGFzcyBhbiBldmVudC4KLSAgICByZXR1cm4gbmV4dEZv
Y3VzYWJsZUVsZW1lbnRPclNjb3BlT3duZXIoRm9jdXNOYXZpZ2F0aW9uU2NvcGU6OnNjb3BlT2Yo
c3RhcnQpLCAmc3RhcnQsIG51bGxwdHIpOworICAgIHJldHVybiBmaW5kRm9jdXNhYmxlRWxlbWVu
dEFjcm9zc0ZvY3VzU2NvcGUoRm9jdXNEaXJlY3Rpb246OkZvcndhcmQsIEZvY3VzTmF2aWdhdGlv
blNjb3BlOjpzY29wZU9mKHN0YXJ0KSwgJnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCog
Rm9jdXNDb250cm9sbGVyOjpwcmV2aW91c0ZvY3VzYWJsZUVsZW1lbnQoTm9kZSYgc3RhcnQpCiB7
CiAgICAgLy8gRklYTUU6IFRoaXMgY2FuIHJldHVybiBhIG5vbi1mb2N1c2FibGUgc2hhZG93IGhv
c3QuCiAgICAgLy8gRklYTUU6IFRoaXMgY2FuJ3QgZ2l2ZSB0aGUgY29ycmVjdCBhbnN3ZXIgdGhh
dCB0YWtlcyBtb2RpZmllciBrZXlzIGludG8gYWNjb3VudCBzaW5jZSBpdCBkb2Vzbid0IHBhc3Mg
YW4gZXZlbnQuCi0gICAgcmV0dXJuIHByZXZpb3VzRm9jdXNhYmxlRWxlbWVudE9yU2NvcGVPd25l
cihGb2N1c05hdmlnYXRpb25TY29wZTo6c2NvcGVPZihzdGFydCksICZzdGFydCwgbnVsbHB0cik7
CisgICAgcmV0dXJuIGZpbmRGb2N1c2FibGVFbGVtZW50QWNyb3NzRm9jdXNTY29wZShGb2N1c0Rp
cmVjdGlvbjo6QmFja3dhcmQsIEZvY3VzTmF2aWdhdGlvblNjb3BlOjpzY29wZU9mKHN0YXJ0KSwg
JnN0YXJ0LCBudWxscHRyKTsKIH0KIAogRWxlbWVudCogRm9jdXNDb250cm9sbGVyOjpuZXh0Rm9j
dXNhYmxlRWxlbWVudE9yU2NvcGVPd25lcihjb25zdCBGb2N1c05hdmlnYXRpb25TY29wZSYgc2Nv
cGUsIE5vZGUqIHN0YXJ0LCBLZXlib2FyZEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0YTIwNmViNmI0
OGE1N2NlOTg1MThmM2UwYjlhYTk4NmQ2YjYxNTgyLi4wZWVmNzY0NTNjYTYxMmIzZWFmYTU1NDM3
OTg2OWE4NzkyNjk5NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMTAtMTEgIFRldHN1
aGFydSBPaHpla2kgIDx0ZXRzdWhhcnUub2h6ZWtpQGdtYWlsLmNvbT4KKworICAgICAgICBBY2Nl
c3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyBkbyBub3Qgd29yayBvbiBpbnB1dHMgaW4g
c2hhZG93IHJvb3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDMyOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2VkIHRlc3RjYXNlcyBvbmx5IG5lZWQgdG8gcnVuIHdpdGggaU9TIGZhbWls
eS4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9u
LWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1
dC13aXRoLXRhYmluZGV4LWluLXNoYWRvdy10cmVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICAgQXZvaWQgdG8gcnVuIGludHJvZHVjZWQgdGVzdHMgYmVjYXVzZSB3ZSBkb24n
dCBoYXZlIHRvIHJ1biB0aGVtIGFuZAorICAgICAgICAgIHRlc3RzIGFyZSBjcmFzaGVkIG9uIHRo
ZXNlIHBsYXRmb3Jtcy4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAg
ICAod2luZG93LlVJSGVscGVyLm1vdmVUb05leHRCeUtleWJvYXJkQWNjZXNzb3J5QmFyKToKKyAg
ICAgICAgKHdpbmRvdy5VSUhlbHBlci5tb3ZlVG9QcmV2QnlLZXlib2FyZEFjY2Vzc29yeUJhcik6
CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIpOgorCiAyMDIwLTEwLTI3ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVubmVlZGVkIHdoaXRlc3BhY2Ug
YmV0d2VlbiBjb250ZW50IGFuZCA8YnI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhODE2ZWE3Y2Y2
MjBkNjhjYTNjMDVkZTMyM2JiZDliYmFlNjYyMjQxLi5jYWRiZDhhZDVjMjE3Mzc4YzA0ZDViYTc3
MzNmNzAwMThiNGEzNzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1MjQsMyArNDUyNCw2IEBA
IGVkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8uaHRtbCBbIEZhaWx1cmUgXQogCiBmYXN0L2xheW91
dGZvcm1hdHRpbmdjb250ZXh0LyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIx
NzA1NCBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2hvcml6b250YWwtc2l6aW5nLXdpdGgt
dHJhaWxpbmctbGV0dGVyLXNwYWNpbmcuaHRtbCBbIFNraXAgXQorCisjIFRoZXNlIHRlc3RzIGFy
ZSBmb3IgaU9TIHBvcnQuCitmYXN0L3NoYWRvdy1kb20vaW9zLyBbIFNraXAgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24t
aW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vaW9zL2FjY2Vzc29yeS1iYXItd29yay1vbi1pbnB1dC13aXRo
LXRhYmluZGV4LWluLXNoYWRvdy10cmVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDBiZWVm
Mjc1YzExNmM3NWE2MWUwNDEwYjI4ODBjNTBhZWZiMjRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdvcmstb24taW5wdXQt
d2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDYg
QEAKK1Rlc3QgdGhhdCBBY2Nlc3NvcnkgYmFyIG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9u
IGlucHV0cyB3aGljaCBpcyBub3QgYXNzaWduZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWUK
KworVG8gbWFudWFsbHkgdGVzdCwgZG8gZm9sbG93aW5nIHN0ZXBzLgorCitGb2N1cyB0aGUgMXN0
IG9mIGlucHV0LCB0aGVuIEFjY2Vzc29yeSBiYXIgd2lsbCBzaG93bi4KK1ByZXNzICJuZXh0IiBp
Y29uIDQgdGltZXMuCitQcmVzcyAicHJldiIgaWNvbiA0IHRpbWVzLgorSXQgc2hvdWxkIHRyYXZl
cnNlIGZvY3VzYWJsZSBlbGVtZW50cyBpbiB0aGUgaW5jcmVhc2luZyBudW1lcmljYWwgb3JkZXIg
YW5kIHJldmVyc2UgdGhlIG9yZGVyIG9mIHRoZW0uCisKKworCisKKworCitUZXN0IHRoYXQgQWNj
ZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgd2hpY2ggaXMg
bm90IGFzc2lnbmVkIHRvIGFueSBzbG90IGluIHNoYWRvdyB0cmVlCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworYWN0aXZhdGUgMHRoIGlucHV0CithY3RpdmF0ZWQgMHRoIGlucHV0Citm
b3J3YXJkIHRvIDF0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdz
IHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5k
ZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykg
aXMgMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRv
dyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2ZvcndhcmQgdG8gMnRoIGlu
cHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0
cmlidXRlOiAyLiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEg
ZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAyLiBpbnB1dCBlbGVtZW50IGhhdmlu
ZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJp
bmRleAorZm9yd2FyZCB0byAzdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVs
ZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIGlucHV0IGVsZW1lbnQgaGF2aW5nIHRh
YmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CitQQVNTICgp
ID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDMuIGlucHV0
IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZl
IHRhYmluZGV4Citmb3J3YXJkIHRvIDR0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNC4gaW5wdXQgZWxlbWVudCBoYXZp
bmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykgaXMgNC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBhIHNoYWRvdyB0cmVl
IGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2ZvcndhcmQgdG8gNXRoIGlucHV0Citk
b2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRl
OiA1LiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93
IHRyZWUgaG9zdCB3aGljaCBkb2VzIG5vdCB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA1LiBpbnB1dCBlbGVtZW50IGhhdmlu
ZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCB3aGljaCBkb2VzIG5v
dCB0YWJpbmRleAorZm9yd2FyZCB0byA2dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDYuIGlucHV0IGVsZW1lbnQgaW4g
Y2xvc2VkIHNoYWRvdyB0cmVlIGhvc3QKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNi4gaW5wdXQgZWxlbWVudCBpbiBjbG9zZWQgc2hhZG93
IHRyZWUgaG9zdAorZm9yd2FyZCB0byA3dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDcuIGlucHV0IGVsZW1lbnQgYmVm
b3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKK1BBU1MgKCkgPT4g
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgaXMgNy4gaW5wdXQgZWxl
bWVudCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorZm9y
d2FyZCB0byA4dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBw
bGFjZWhvbGRlciBhdHRyaWJ1dGU6IDguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0
cmVlCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicp
IGlzIDguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCitmb3J3YXJkIHRvIDl0
aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVy
IGF0dHJpYnV0ZTogOS4gaW5wdXQgZWxlbWVudCBhZnRlciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQg
aGF2aW5nIHNoYWRvdyB0cmVlCitQQVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCdwbGFjZWhvbGRlcicpIGlzIDkuIGlucHV0IGVsZW1lbnQgYWZ0ZXIgbmVzdGVkIGN1c3RvbSBl
bGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorZm9yd2FyZCB0byAxMHRoIGlucHV0Citkb2N1bWVu
dE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAxMC4g
TGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworUEFT
UyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxMC4g
TGFzdCBzZXF1ZW50aWFsbHkgaW5wdXQgZWxlbWVudCBvdXRzaWRlIHNoYWRvdyB0cmVlcworZm9j
dXMgaGFzIG1vdmVkIHRvIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmly
c3QgcmV2ZXJzZWx5CitiYWNrIHRvIDl0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogOS4gaW5wdXQgZWxlbWVudCBhZnRl
ciBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCitQQVNTICgpID0+IGFj
dGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDkuIGlucHV0IGVsZW1l
bnQgYWZ0ZXIgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZQorYmFjayB0
byA4dGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQncyBwbGFjZWhv
bGRlciBhdHRyaWJ1dGU6IDguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCitQ
QVNTICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDgu
IGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCitiYWNrIHRvIDd0aCBpbnB1dAor
ZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0
ZTogNy4gaW5wdXQgZWxlbWVudCBiZWZvcmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBz
aGFkb3cgdHJlZQorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vo
b2xkZXInKSBpcyA3LiBpbnB1dCBlbGVtZW50IGJlZm9yZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQg
aGF2aW5nIHNoYWRvdyB0cmVlCitiYWNrIHRvIDZ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNi4gaW5wdXQgZWxlbWVu
dCBpbiBjbG9zZWQgc2hhZG93IHRyZWUgaG9zdAorUEFTUyAoKSA9PiBhY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA2LiBpbnB1dCBlbGVtZW50IGluIGNsb3NlZCBz
aGFkb3cgdHJlZSBob3N0CitiYWNrIHRvIDV0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3Qu
YWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogNS4gaW5wdXQgZWxlbWVudCBo
YXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9l
cyBub3QgdGFiaW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3Bs
YWNlaG9sZGVyJykgaXMgNS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRl
eCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFiaW5kZXgKK2JhY2sgdG8g
NHRoIGlucHV0Citkb2N1bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xk
ZXIgYXR0cmlidXRlOiA0LiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hh
ZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyA0LiBpbnB1dCBlbGVtZW50
IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleAorYmFjayB0byAzdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFjdGl2
ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDMuIGlucHV0IGVsZW1lbnQgaGF2aW5n
IHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4CitQQVNT
ICgpID0+IGFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDMuIGlu
cHV0IGVsZW1lbnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0
aXZlIHRhYmluZGV4CitiYWNrIHRvIDJ0aCBpbnB1dAorZG9jdW1lbnRPclNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogMi4gaW5wdXQgZWxlbWVudCBoYXZp
bmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXgKK1BBU1MgKCkgPT4gYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JykgaXMgMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIGVs
ZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKK2JhY2sgdG8gMXRoIGlucHV0Citkb2N1
bWVudE9yU2hhZG93Um9vdC5hY3RpdmVFbGVtZW50J3MgcGxhY2Vob2xkZXIgYXR0cmlidXRlOiAx
LiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRy
ZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorUEFTUyAoKSA9PiBhY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSBpcyAxLiBpbnB1dCBlbGVtZW50IGhhdmlu
ZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3Np
dGl2ZSB0YWJpbmRleAorYmFjayB0byAwdGggaW5wdXQKK2RvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6IDAuIEZpcnN0IHNlcXVlbnRpYWxs
eSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCitQQVNTICgpID0+IGFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpIGlzIDAuIEZpcnN0IHNlcXVlbnRpYWxs
eSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKzAuIEZpcnN0IHNlcXVlbnRpYWxseSBpbnB1
dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCisxLiBpbnB1dCBlbGVtZW50IGhhdmluZyBh
IHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleAorMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBp
biBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzMuIGlucHV0IGVsZW1lbnQg
aGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4
Cis0LiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hhZG93IHRyZWUgaG9z
dCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorNS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBw
b3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3Qgd2hpY2ggZG9lcyBub3QgdGFi
aW5kZXgKKzYuIGlucHV0IGVsZW1lbnQgaW4gY2xvc2VkIHNoYWRvdyB0cmVlIGhvc3QKKzcuIGlu
cHV0IGVsZW1lbnQgYmVmb3JlIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRy
ZWUKKzguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCis5LiBpbnB1dCBlbGVt
ZW50IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUKKzEwLiBM
YXN0IHNlcXVlbnRpYWxseSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzCis5LiBp
bnB1dCBlbGVtZW50IGFmdGVyIG5lc3RlZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRy
ZWUKKzguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlCis3LiBpbnB1dCBlbGVt
ZW50IGJlZm9yZSBuZXN0ZWQgY3VzdG9tIGVsZW1lbnQgaGF2aW5nIHNoYWRvdyB0cmVlCis2LiBp
bnB1dCBlbGVtZW50IGluIGNsb3NlZCBzaGFkb3cgdHJlZSBob3N0Cis1LiBpbnB1dCBlbGVtZW50
IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCB3aGljaCBk
b2VzIG5vdCB0YWJpbmRleAorNC4gaW5wdXQgZWxlbWVudCBoYXZpbmcgdGFiaW5kZXg9MCBpbiBh
IHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgKKzMuIGlucHV0IGVs
ZW1lbnQgaGF2aW5nIHRhYmluZGV4PTEgaW4gYSBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRh
YmluZGV4CisyLiBpbnB1dCBlbGVtZW50IGhhdmluZyBhIHBvc2l0aXZlIHRhYmluZGV4IGluIGEg
ZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJpbmRleAorMS4gaW5wdXQgZWxlbWVudCBoYXZp
bmcgYSBwb3NpdGl2ZSB0YWJpbmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9z
aXRpdmUgdGFiaW5kZXgKKzAuIEZpcnN0IHNlcXVlbnRpYWxseSBpbnB1dCBlbGVtZW50IG91dHNp
ZGUgc2hhZG93IHRyZWVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRv
bS9pb3MvYWNjZXNzb3J5LWJhci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93
LXRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9pb3MvYWNjZXNzb3J5LWJh
ci13b3JrLW9uLWlucHV0LXdpdGgtdGFiaW5kZXgtaW4tc2hhZG93LXRyZWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OTBjNDVlMDgxY2UwN2NmZDQxMDkxMmRiZmE0OGIwZDhhNTk4NzgxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL2lvcy9hY2Nlc3NvcnktYmFyLXdv
cmstb24taW5wdXQtd2l0aC10YWJpbmRleC1pbi1zaGFkb3ctdHJlZS5odG1sCkBAIC0wLDAgKzEs
MjA5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisKKzxoMT5UZXN0IHRoYXQg
QWNjZXNzb3J5IGJhciBuZXh0L3ByZXZpb3VzIGJ1dHRvbnMgd29yayBvbiBpbnB1dHMgd2hpY2gg
aXMgbm90IGFzc2lnbmVkIHRvIGFueSBzbG90IGluIHNoYWRvdyB0cmVlPC9oMT4KKzxwPlRvIG1h
bnVhbGx5IHRlc3QsIGRvIGZvbGxvd2luZyBzdGVwcy48L3A+Cis8b2w+CisgICAgPGxpPkZvY3Vz
IHRoZSAxc3Qgb2YgaW5wdXQsIHRoZW4gQWNjZXNzb3J5IGJhciB3aWxsIHNob3duLjwvbGk+Cisg
ICAgPGxpPlByZXNzICJuZXh0IiBpY29uIDQgdGltZXMuPC9saT4KKyAgICA8bGk+UHJlc3MgInBy
ZXYiIGljb24gNCB0aW1lcy48L2xpPgorICAgIDxsaT5JdCBzaG91bGQgdHJhdmVyc2UgZm9jdXNh
YmxlIGVsZW1lbnRzIGluIHRoZSBpbmNyZWFzaW5nIG51bWVyaWNhbCBvcmRlciBhbmQgcmV2ZXJz
ZSB0aGUgb3JkZXIgb2YgdGhlbS48L2xpPgorPC9vbD4KKworPGlucHV0IGlkPSJmaXJzdCIgdGFi
aW5kZXg9IjEiIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgcGxhY2Vob2xkZXI9IjAu
IEZpcnN0IHNlcXVlbnRpYWxseSBpbnB1dCBlbGVtZW50IG91dHNpZGUgc2hhZG93IHRyZWVzIiAv
PgorCis8ZGl2IGlkPSJob3N0LXdpdGgtbmVnYXRpdmUtdGFiaW5kZXgiIHRhYmluZGV4PSItMSI+
U2hvdWxkIG5vdCBmb2N1czogU2hhZG93IGhvc3Qgd2l0aCBhIG5lZ2F0aXZlIHRhYmluZGV4IGJ1
dCBub3QgaW5wdXQgZWxlbWVudDwvZGl2PgorCis8ZGl2IGlkPSJob3N0LXdpdGgtbm8tdGFiaW5k
ZXgiPgorICAgIDxpbnB1dCBpZD0iaG9zdC13aXRoLW5vLXRhYmluZGV4IgorICAgICAgICBvbmZv
Y3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICBwbGFjZWhvbGRlcj0iU2hvdWxkIG5vdCBm
b2N1czogaW5wdXQgZWxlbWVudCBoYXZpbmcgbm8gdGFiaW5kZXggaW4gYSBlbGVtZW50IGhhdmlu
ZyBubyB0YWJpbmRleCBidXQgd2lsbCBub3QgYXNzaWduZWQgdG8gc2xvdCIgLz4KKzwvZGl2Pgor
Cis8ZGl2IGlkPSJob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgiIHRhYmluZGV4PSIyIj4KKyAg
ICA8ZGl2PgorICAgICAgICA8aW5wdXQgaWQ9ImlucHV0LWluLWhvc3Qtd2l0aC1wb3NpdGl2ZS10
YWJpbmRleC1uZWdhdGl2ZSIKKyAgICAgICAgICAgIHRhYmluZGV4PSItMSIKKyAgICAgICAgICAg
IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgICAgICBwbGFjZWhvbGRlcj0iU2hv
dWxkIG5vdCBmb2N1czogaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBuZWdhdGl2ZSB0YWJpbmRleCBp
biBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgiIC8+CisgICAgPC9kaXY+Cisg
ICAgPGRpdj4KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUt
dGFiaW5kZXgiCisgICAgICAgICAgICB0YWJpbmRleD0iMCIKKyAgICAgICAgICAgIG9uZm9jdXM9
ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgICAgICBwbGFjZWhvbGRlcj0iMy4gaW5wdXQgZWxl
bWVudCBoYXZpbmcgdGFiaW5kZXg9MSBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFi
aW5kZXgiIC8+CisgICAgPC9kaXY+CisgICAgPGRpdj4KKyAgICAgICAgPGlucHV0IGlkPSJpbnB1
dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgtcG9zaXRpdmUiCisgICAgICAgICAgICB0
YWJpbmRleD0iMSIKKyAgICAgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAg
ICAgICAgICBwbGFjZWhvbGRlcj0iMi4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0
YWJpbmRleCBpbiBhIGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgiIC8+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0iY2xvc2VkLXNoYWRvdy10cmVlLWhvc3QiPgorICAg
IDxpbnB1dCBpZD0iaW5wdW50LWRlc2NlbmRhbnRzLW9mLWNsb3NlZC1zaGFkb3ctdHJlZS1ob3N0
IgorICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAgICBwbGFjZWhvbGRl
cj0iNi4gaW5wdXQgZWxlbWVudCBpbiBjbG9zZWQgc2hhZG93IHRyZWUgaG9zdCIgLz4KKzwvZGl2
PgorCis8bmVzdC1pbnB1dC1ob2xkZXI+PC9uZXN0LWlucHV0LWhvbGRlcj4KKworPGlucHV0IGlk
PSJsYXN0IiB0YWJpbmRleD0iMCIgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICBwbGFj
ZWhvbGRlcj0iMTAuIExhc3Qgc2VxdWVudGlhbGx5IGlucHV0IGVsZW1lbnQgb3V0c2lkZSBzaGFk
b3cgdHJlZXMiIC8+CisKKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHByZSBpZD0ibG9nIj48L3ByZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaG9zdC13aXRoLW5lZ2F0aXZlLXRhYmluZGV4JykuYXR0YWNoU2hhZG93
KHsgbW9kZTogJ29wZW4nIH0pLmlubmVySFRNTCA9IGAKKyAgICA8aW5wdXQgdGFiaW5kZXg9IjAi
CisgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAgIHBsYWNlaG9sZGVy
PSJTaG91bGQgbm90IGZvY3VzOiBpbnB1dCBlbGVtZW50IGhhdmluZyB0YWJpbmRleD0wIGluIGEg
c2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgbmVnYXRpdmUgdGFiaW5kZXgiLz4KK2A7CisKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdob3N0LXdpdGgtbm8tdGFiaW5kZXgnKS5hdHRhY2hTaGFkb3co
eyBtb2RlOiAnb3BlbicgfSkuaW5uZXJIVE1MID0gYAorICAgIDxpbnB1dCB0YWJpbmRleD0iMCIK
KyAgICAgICAgb25mb2N1cz0ibG9nT25Gb2N1cyh0aGlzKSIKKyAgICAgICAgcGxhY2Vob2xkZXI9
IjUuIGlucHV0IGVsZW1lbnQgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXggaW4gYSBzaGFkb3cg
dHJlZSBob3N0IHdoaWNoIGRvZXMgbm90IHRhYmluZGV4Ii8+CitgOworCitkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaG9zdC13aXRoLXBvc2l0aXZlLXRhYmluZGV4JykuYXR0YWNoU2hhZG93KHsg
bW9kZTogJ29wZW4nIH0pLmlubmVySFRNTCA9IGAKKyAgICA8c2xvdD48L3Nsb3Q+CisgICAgPGRp
dj4KKyAgICAgICAgPGlucHV0IHRhYmluZGV4PSIwIgorICAgICAgICAgICAgb25mb2N1cz0ibG9n
T25Gb2N1cyh0aGlzKSIKKyAgICAgICAgICAgIHBsYWNlaG9sZGVyPSI0LiBpbnB1dCBlbGVtZW50
IGhhdmluZyB0YWJpbmRleD0wIGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleCIvPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCB0YWJp
bmRleD0iLTEiCisgICAgICAgICAgICBvbmZvY3VzPSJsb2dPbkZvY3VzKHRoaXMpIgorICAgICAg
ICAgICAgcGxhY2Vob2xkZXI9IlNob3VsZCBub3QgZm9jdXM6IGlucHV0IGVsZW1lbnQgaGF2aW5n
IG5lZ2F0aWJlIHRhYmluZGV4IGluIGEgc2hhZG93IHRyZWUgaG9zdCBoYXZpbmcgYSBwb3NpdGl2
ZSB0YWJpbmRleCIvPgorICAgIDwvZGl2PgorICAgIDxkaXY+CisgICAgICAgIDxpbnB1dCB0YWJp
bmRleD0iMSIKKyAgICAgICAgICAgIG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiCisgICAgICAg
ICAgICBwbGFjZWhvbGRlcj0iMS4gaW5wdXQgZWxlbWVudCBoYXZpbmcgYSBwb3NpdGl2ZSB0YWJp
bmRleCBpbiBhIHNoYWRvdyB0cmVlIGhvc3QgaGF2aW5nIGEgcG9zaXRpdmUgdGFiaW5kZXgiLz4K
KyAgICA8L2Rpdj4KK2A7CisKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjbG9zZWQtc2hhZG93
LXRyZWUtaG9zdCcpLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdjbG9zZWQnIH0pLmlubmVySFRNTCA9
IGAKKyAgICA8c2xvdD48L3Nsb3Q+CitgOworCitjbGFzcyBJbnB1dEhvbGRlciBleHRlbmRzIEhU
TUxFbGVtZW50IHsKKyAgY29uc3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKworICAgIHRoaXMu
YXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSAnPHA+
PGlucHV0IG9uZm9jdXM9ImxvZ09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSIiLz48L3A+JzsK
KyAgfQorfQorY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdpbnB1dC1ob2xkZXInLCBJbnB1dEhvbGRl
cik7CisKK2NsYXNzIE5lc3RJbnB1dEhvbGRlciBleHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgY29u
c3RydWN0b3IoKSB7CisgICAgc3VwZXIoKTsKKworICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9k
ZTogJ29wZW4nIH0pCisgICAgICAgIC5pbm5lckhUTUwgPSBgCisgICAgICAgIDxpbnB1dCBvbmZv
Y3VzPSJsb2dPbkZvY3VzKHRoaXMpIiBwbGFjZWhvbGRlcj0nNy4gaW5wdXQgZWxlbWVudCBiZWZv
cmUgbmVzdGVkIGN1c3RvbSBlbGVtZW50IGhhdmluZyBzaGFkb3cgdHJlZScgLz4KKyAgICAgICAg
PGlucHV0LWhvbGRlcj48L2lucHV0LWhvbGRlcj4KKyAgICAgICAgPGlucHV0IG9uZm9jdXM9Imxv
Z09uRm9jdXModGhpcykiIHBsYWNlaG9sZGVyPSc5LiBpbnB1dCBlbGVtZW50IGFmdGVyIG5lc3Rl
ZCBjdXN0b20gZWxlbWVudCBoYXZpbmcgc2hhZG93IHRyZWUnLz4KKyAgICAgICAgYDsKKyAgICB0
aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykKKyAgICAgICAgLnNo
YWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQnKS5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVy
JywgJzguIGlucHV0IGVsZW1lbnQgaW4gbmVzdGVkIHNoYWRvdyB0cmVlJyk7CisgIH0KK30KK2N1
c3RvbUVsZW1lbnRzLmRlZmluZSgnbmVzdC1pbnB1dC1ob2xkZXInLCBOZXN0SW5wdXRIb2xkZXIp
OworCitmdW5jdGlvbiBsb2dPbkZvY3VzKGVsZW1lbnQpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnbG9nJykudGV4dENvbnRlbnQgKz0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNl
aG9sZGVyJykgKyAnXG4nOworfQorCitmdW5jdGlvbiB0ZXN0Q2FzZShkb2N1bWVudE9yU2hhZG93
Um9vdCwgaW5wdXRHZXR0ZXIpIHsKKyAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dEdldHRl
cihkb2N1bWVudE9yU2hhZG93Um9vdCk7CisgICAgcmV0dXJuIHsKKyAgICAgICAgZG9jdW1lbnRP
clNoYWRvd1Jvb3QsCisgICAgICAgIGlucHV0RWxlbWVudCwKKyAgICB9OworfQorCithc3luYyBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIGNvbnN0IGhvc3RXaXRoUG9zaXRpdmVUYWJJbmRleFNo
YWRvd1Jvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaG9zdC13aXRoLXBvc2l0aXZlLXRh
YmluZGV4Jykuc2hhZG93Um9vdDsKKyAgICBjb25zdCBuZXN0SW5wdXRIb2xkZXJTaGFkb3dSb290
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbmVzdC1pbnB1dC1ob2xkZXInKS5zaGFkb3dSb290
OworCisgICAgY29uc3Qgc3RhY2sgPSBbCisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykg
PT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0JykpLAorCisgICAgICAgIHRlc3RDYXNl
KGhvc3RXaXRoUG9zaXRpdmVUYWJJbmRleFNoYWRvd1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93
Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD0iMSJdJykp
LAorCisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykgPT4gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2lucHV0LWluLWhvc3Qtd2l0aC1wb3NpdGl2ZS10YWJpbmRleC1wb3NpdGl2ZScpKSwK
KworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbnB1dC1pbi1ob3N0LXdpdGgtcG9zaXRpdmUtdGFiaW5kZXgnKSksCisKKyAgICAgICAg
dGVzdENhc2UoaG9zdFdpdGhQb3NpdGl2ZVRhYkluZGV4U2hhZG93Um9vdCwKKyAgICAgICAgICAg
IChzaGFkb3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4
PSIwIl0nKSksCisKKyAgICAgICAgdGVzdENhc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hv
c3Qtd2l0aC1uby10YWJpbmRleCcpLnNoYWRvd1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93Um9v
dCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0YWJpbmRleD0iMCJdJykpLAor
CisgICAgICAgIHRlc3RDYXNlKGRvY3VtZW50LCAoXykgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lucHVudC1kZXNjZW5kYW50cy1vZi1jbG9zZWQtc2hhZG93LXRyZWUtaG9zdCcpKSwKKwor
ICAgICAgICB0ZXN0Q2FzZShuZXN0SW5wdXRIb2xkZXJTaGFkb3dSb290LAorICAgICAgICAgICAg
KHNoYWRvd1Jvb3QpID0+IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignaW5wdXQ6bnRoLWNoaWxk
KDEpJykpLAorCisgICAgICAgIHRlc3RDYXNlKG5lc3RJbnB1dEhvbGRlclNoYWRvd1Jvb3QucXVl
cnlTZWxlY3RvcignaW5wdXQtaG9sZGVyJykuc2hhZG93Um9vdCwKKyAgICAgICAgICAgIChzaGFk
b3dSb290KSA9PiBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykpLAorCisgICAgICAg
IHRlc3RDYXNlKG5lc3RJbnB1dEhvbGRlclNoYWRvd1Jvb3QsCisgICAgICAgICAgICAoc2hhZG93
Um9vdCkgPT4gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdpbnB1dDpudGgtbGFzdC1jaGlsZCgx
KScpKSwKKworICAgICAgICB0ZXN0Q2FzZShkb2N1bWVudCwgKF8pID0+IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdsYXN0JykpLAorICAgIF07CisKKyAgICB7CisgICAgICAgIGNvbnN0IGZpcnN0
RWxlbWVudCA9IHN0YWNrWzBdLmlucHV0RWxlbWVudDsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRl
IDB0aCBpbnB1dCcpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoZmly
c3RFbGVtZW50KTsKKyAgICAgICAgZGVidWcoJ2FjdGl2YXRlZCAwdGggaW5wdXQnKTsKKyAgICB9
CisKKyAgICBmb3IgKGxldCBpID0gMSwgbCA9IHN0YWNrLmxlbmd0aDsgaSA8IGw7ICsraSkgewor
ICAgICAgICBjb25zdCB7IGRvY3VtZW50T3JTaGFkb3dSb290LCBpbnB1dEVsZW1lbnQsIH0gPSBz
dGFja1tpXTsKKworICAgICAgICBkZWJ1ZyhgZm9yd2FyZCB0byAke1N0cmluZyhpKX10aCBpbnB1
dGApOworICAgICAgICBhd2FpdCBVSUhlbHBlci5tb3ZlVG9OZXh0QnlLZXlib2FyZEFjY2Vzc29y
eUJhcigpOworICAgICAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudDsKKyAgICAgICAgZGVidWcoYGRvY3VtZW50T3JTaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQncyBwbGFjZWhvbGRlciBhdHRyaWJ1dGU6ICR7YWN0aXZlRWxlbWVudC5nZXRB
dHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyl9YCk7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpLCAoKSA9PiBpbnB1dEVsZW1lbnQu
Z2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnZm9jdXMg
aGFzIG1vdmVkIHRvIHRoZSBsYXN0IGVsZW1lbnQgYW5kIHdpbGwgbW92ZSB0byB0aGUgZmlyc3Qg
cmV2ZXJzZWx5Jyk7CisKKyAgICBmb3IgKGxldCBpID0gc3RhY2subGVuZ3RoIC0gMjsgLTEgPCBp
OyAtLWkpIHsKKyAgICAgICAgZGVidWcoYGJhY2sgdG8gJHtTdHJpbmcoaSl9dGggaW5wdXRgKTsK
KyAgICAgICAgYXdhaXQgVUlIZWxwZXIubW92ZVRvUHJldkJ5S2V5Ym9hcmRBY2Nlc3NvcnlCYXIo
KTsKKyAgICAgICAgY29uc3QgeyBkb2N1bWVudE9yU2hhZG93Um9vdCwgaW5wdXRFbGVtZW50LCB9
ID0gc3RhY2tbaV07CisgICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudE9yU2hh
ZG93Um9vdC5hY3RpdmVFbGVtZW50OworICAgICAgICBkZWJ1ZyhgZG9jdW1lbnRPclNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCdzIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZTogJHthY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKX1gKTsKKyAgICAgICAgc2hvdWxkQmUoKCkgPT4g
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyksICgpID0+IGlucHV0RWxl
bWVudC5nZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykpOworICAgIH0KK30KKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgZGVzY3JpcHRpb24oYFRlc3QgdGhhdCBBY2Nlc3NvcnkgYmFy
IG5leHQvcHJldmlvdXMgYnV0dG9ucyB3b3JrIG9uIGlucHV0cyB3aGljaCBpcyBub3QgYXNzaWdu
ZWQgdG8gYW55IHNsb3QgaW4gc2hhZG93IHRyZWVgKTsKKyAgICBjb25zdCBydW4gPSBydW5UZXN0
KCkuY2F0Y2goKGUpID0+IGRlYnVnKGBGQUlMOiBcYCR7ZX1cYGApKTsKKyAgICBVSUhlbHBlci53
YWl0KHJ1bik7Cit9IGVsc2UKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYzliYWI4NTQzZGQ1ZjdiZmJkOGE1Y2RkODkyZTJhZTcwODg2Nzc5
Yy4uNjc0NGI3M2MwZDE2ZGI1ZDE5NTQxZDcyMzc0YWE2NjU1MjU0MDc0MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM1MDcsMyArMzUwNyw2IEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3BlZWNoLWFwaS9TcGVlY2hTeW50aGVzaXMt
c3BlYWstd2l0aG91dC1hY3RpdmF0CiAKICMgVGhpcyB0ZXN0IGZhaWxzIGluIGlPUyBkdWUgdG8g
c3VicGl4ZWwgZGlmZmVyZW5jZXMgZm9yIHRoZSBtYXJrZXIgcG9zaXRpb24KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1saXN0cy9saXN0LXN0eWxlLXR5cGUtc3RyaW5n
LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKKyMgVGhlc2UgdGVzdHMgYXJlIGZvciBp
T1MgcG9ydC4gU2hvdWxkIGJlIHBhc3MuCitmYXN0L3NoYWRvdy1kb20vaW9zLyBbIFBhc3MgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRl
c3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggNWQ4MWI3NTBkNjU4ODQ5NmVkNjE3Zjc2
ZGQxMmJjNjRlM2E4ZDA3OC4uODM0ODRhNTAzYmUwM2IwZGM4OGE1MjY5NDNjMmMzOTEyZTEyNzk1
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9M
YXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0xMzg2LDYgKzEzODYsMjYgQEAg
d2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICAgICAgICAgIH0pKCk7
YCwgcmVzdWx0ID0+IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKICAgICAgICAgfSk7CiAg
ICAgfQorCisgICAgc3RhdGljIG1vdmVUb05leHRCeUtleWJvYXJkQWNjZXNzb3J5QmFyKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LmtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCgpOworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICBgLCByZXNvbHZlKTsKKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgc3RhdGljIG1vdmVUb1ByZXZCeUtleWJvYXJkQWNjZXNzb3J5QmFy
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLmtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXMoKTsKKyAgICAgICAgICAgICAgICB1
aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgYCwgcmVzb2x2ZSk7
CisgICAgICAgIH0pOworICAgIH0KIH0KIAogVUlIZWxwZXIuRXZlbnRTdHJlYW1CdWlsZGVyID0g
Y2xhc3Mgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>