<?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>218189</bug_id>
          
          <creation_ts>2020-10-26 09:27:09 -0700</creation_ts>
          <short_desc>[Contact Picker API] Add support for picker UI on iOS</short_desc>
          <delta_ts>2020-11-06 08:02:08 -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>New Bugs</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218547</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>hi</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1701470</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-26 09:27:09 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701471</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-26 09:27:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/69862277&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701473</commentid>
    <comment_count>2</comment_count>
      <attachid>412321</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-26 09:31:07 -0700</bug_when>
    <thetext>Created attachment 412321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701554</commentid>
    <comment_count>3</comment_count>
      <attachid>412321</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-26 11:53:28 -0700</bug_when>
    <thetext>Comment on attachment 412321
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.h:28
&gt; +#if PLATFORM(COCOA) &amp;&amp; !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

Is it necessary to `PLATFORM(COCOA)` given that this is inside `Source/WebKit/UIProcess/Cocoa`?

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.h:51
&gt; +- (void)contactPickerDidPresent:(WKContactPicker *)contactPicker;

NIT: do we normally order alphabetically (&quot;D&quot; before &quot;P&quot;) or chronologically (&quot;Present&quot; before &quot;Dismiss&quot;)?

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:43
&gt; +SOFT_LINK_FRAMEWORK(Contacts)

Why do we need to soft link?

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:220
&gt; +        NSString *contactName = [getCNContactFormatterClass() stringFromContact:contact style:CNContactFormatterStyleFullName];
&gt; +        contactInfo.name = { contactName };

If the soft linking fails, what would `contactName` (and/or `CNContactFormatterStyleFullName`) end up being?

I haven&apos;t really dealt with soft linking before tho, so I dunno if this is something we realistically need to worry about.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9129
&gt; +    if (!_contactPicker)
&gt; +        return;

Is this check necessary?

&gt; LayoutTests/contact-picker/contacts-select-after-dismissing-picker.html:45
&gt; +                contacts = await request;

NIT: you can use destructuring to make this slightly nicer
```
   [contact1, contact2, contact3] = await request;
```
alternatively, you could just `contacts[0]` instead of `contact1` so that the index matches `addressBook[0]`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702423</commentid>
    <comment_count>4</comment_count>
      <attachid>412554</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-28 11:43:44 -0700</bug_when>
    <thetext>Created attachment 412554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702426</commentid>
    <comment_count>5</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-28 11:50:27 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #3)
&gt; Comment on attachment 412321 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412321&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.h:28
&gt; &gt; +#if PLATFORM(COCOA) &amp;&amp; !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)
&gt; 
&gt; Is it necessary to `PLATFORM(COCOA)` given that this is inside
&gt; `Source/WebKit/UIProcess/Cocoa`?

Removed `PLATFORM(COCOA)` since this file is only included from WKContentViewInteraction, and the implementation source file is only in SourcesCocoa.txt.
 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.h:51
&gt; &gt; +- (void)contactPickerDidPresent:(WKContactPicker *)contactPicker;
&gt; 
&gt; NIT: do we normally order alphabetically (&quot;D&quot; before &quot;P&quot;) or chronologically
&gt; (&quot;Present&quot; before &quot;Dismiss&quot;)?

WebKit and platform (UIKit) convention looks chronological. See WKUIDelegatePrivate.h (didPresentFocusedElementViewController, didDismissFocusedElementViewController) and UIViewController.h (viewWillAppear, viewDidAppear).

Updated to match convention.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:43
&gt; &gt; +SOFT_LINK_FRAMEWORK(Contacts)
&gt; 
&gt; Why do we need to soft link?

I soft linked because the framework was previously soft linked in another source file. However, I&apos;ve since removed the soft link in the other location, and have updated this file accordingly.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:220
&gt; &gt; +        NSString *contactName = [getCNContactFormatterClass() stringFromContact:contact style:CNContactFormatterStyleFullName];
&gt; &gt; +        contactInfo.name = { contactName };
&gt; 
&gt; If the soft linking fails, what would `contactName` (and/or
&gt; `CNContactFormatterStyleFullName`) end up being?
&gt; 
&gt; I haven&apos;t really dealt with soft linking before tho, so I dunno if this is
&gt; something we realistically need to worry about.

Not relevant anymore but a RELEASE_ASSERT would have been hit if the soft linking failed. (Since I used the SOFT_LINK_FRAMEWORK macro and not SOFT_LINK_OPTIONAL_FRAMEWORK).
 
&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:9129
&gt; &gt; +    if (!_contactPicker)
&gt; &gt; +        return;
&gt; 
&gt; Is this check necessary?

Removed the check as sending a message to nil is safe.
 
&gt; &gt; LayoutTests/contact-picker/contacts-select-after-dismissing-picker.html:45
&gt; &gt; +                contacts = await request;
&gt; 
&gt; NIT: you can use destructuring to make this slightly nicer
&gt; ```
&gt;    [contact1, contact2, contact3] = await request;
&gt; ```
&gt; alternatively, you could just `contacts[0]` instead of `contact1` so that
&gt; the index matches `addressBook[0]`

Updated to use destructuring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702436</commentid>
    <comment_count>6</comment_count>
      <attachid>412554</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-28 12:11:03 -0700</bug_when>
    <thetext>Comment on attachment 412554
Patch

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

One small comment; didn’t get to review the whole patch (yet), an likely won}t get to it until after someone else does.

&gt; Source/WebKit/Configurations/WebKit.xcconfig:65
&gt; +WK_CONTACTS_UI_LDFLAGS = $(WK_CONTACTS_UI_LDFLAGS_$(WK_PLATFORM_NAME));
&gt; +WK_CONTACTS_UI_LDFLAGS_iphoneos = -framework ContactsUI;
&gt; +WK_CONTACTS_UI_LDFLAGS_iphonesimulator = -framework ContactsUI;
&gt; +WK_CONTACTS_UI_LDFLAGS_maccatalyst = -framework ContactsUI;

Can we cut down on the proliferation of these variables? This gets to be a bigger and bigger liability over time. I’m not sure we need a separate variable for each framework; the variable’s job is to handle the per-platform differences. For now, can this one join in with WK_CONTACTS_LDFLAGS, or is there a place where we need to use WK_CONTACTS_LDFLAGS and must not use WK_CONTACTS_UI_LDFLAGS?

I think we should move in the direction of replacing these with variables named things more like WK_PLATFORM_DEPENDENT_LDFLAGS, containing list of framework options. Doing that we could combine at least 9 currently-separate variables that depend on the platform in a consistent way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702444</commentid>
    <comment_count>7</comment_count>
      <attachid>412560</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-28 12:28:50 -0700</bug_when>
    <thetext>Created attachment 412560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702445</commentid>
    <comment_count>8</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-28 12:30:07 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 412554 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412554&amp;action=review
&gt; 
&gt; One small comment; didn’t get to review the whole patch (yet), an likely
&gt; won}t get to it until after someone else does.
&gt; 
&gt; &gt; Source/WebKit/Configurations/WebKit.xcconfig:65
&gt; &gt; +WK_CONTACTS_UI_LDFLAGS = $(WK_CONTACTS_UI_LDFLAGS_$(WK_PLATFORM_NAME));
&gt; &gt; +WK_CONTACTS_UI_LDFLAGS_iphoneos = -framework ContactsUI;
&gt; &gt; +WK_CONTACTS_UI_LDFLAGS_iphonesimulator = -framework ContactsUI;
&gt; &gt; +WK_CONTACTS_UI_LDFLAGS_maccatalyst = -framework ContactsUI;
&gt; 
&gt; Can we cut down on the proliferation of these variables? This gets to be a
&gt; bigger and bigger liability over time. I’m not sure we need a separate
&gt; variable for each framework; the variable’s job is to handle the
&gt; per-platform differences. For now, can this one join in with
&gt; WK_CONTACTS_LDFLAGS, or is there a place where we need to use
&gt; WK_CONTACTS_LDFLAGS and must not use WK_CONTACTS_UI_LDFLAGS?
&gt; 
&gt; I think we should move in the direction of replacing these with variables
&gt; named things more like WK_PLATFORM_DEPENDENT_LDFLAGS, containing list of
&gt; framework options. Doing that we could combine at least 9 currently-separate
&gt; variables that depend on the platform in a consistent way.

I&apos;ve merged WK_CONTACTS_UI_LDFLAGS with WK_CONTACTS_LDFLAGS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702489</commentid>
    <comment_count>9</comment_count>
      <attachid>412560</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-28 14:10:11 -0700</bug_when>
    <thetext>Comment on attachment 412560
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:311
&gt; +#if PLATFORM(IOS_FAMILY) &amp;&amp; !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

I guess you mean PLATFORM(IOS).

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.h:28
&gt; +#if !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

Ditto.

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:29
&gt; +#if !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)

Ditto.

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:38
&gt; +#if PLATFORM(IOS_FAMILY)

Ditto. And the same for other macros in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702491</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-28 14:16:20 -0700</bug_when>
    <thetext>(In reply to Peng Liu from comment #9)
&gt; Comment on attachment 412560 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412560&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:311
&gt; &gt; +#if PLATFORM(IOS_FAMILY) &amp;&amp; !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)
&gt; 
&gt; I guess you mean PLATFORM(IOS).
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.h:28
&gt; &gt; +#if !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:29
&gt; &gt; +#if !PLATFORM(WATCHOS) &amp;&amp; !PLATFORM(APPLETV)
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:38
&gt; &gt; +#if PLATFORM(IOS_FAMILY)
&gt; 
&gt; Ditto. And the same for other macros in this patch.

That would exclude macCatalyst.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702497</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-28 14:30:53 -0700</bug_when>
    <thetext>Please try to clean this up by introducing the appropriate ENABLE/HAVE/USE macros rather than sprinkling #if PLATFORM() everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703071</commentid>
    <comment_count>12</comment_count>
      <attachid>412748</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-30 08:53:44 -0700</bug_when>
    <thetext>Created attachment 412748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703073</commentid>
    <comment_count>13</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-30 08:54:52 -0700</bug_when>
    <thetext>The new patch introduces HAVE macros and goes back to soft linking the new frameworks to avoid dependency cycles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703098</commentid>
    <comment_count>14</comment_count>
      <attachid>412760</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-30 09:51:38 -0700</bug_when>
    <thetext>Created attachment 412760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704184</commentid>
    <comment_count>15</comment_count>
      <attachid>412760</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-11-03 13:11:17 -0800</bug_when>
    <thetext>Comment on attachment 412760
Patch

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

r=me, nice work :)

&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:199
&gt; +    Vector&lt;WebCore::ContactInfo&gt; info;
&gt; +    for (CNContact *contact in contacts)
&gt; +        info.append([self _contactInfoFromCNContact:contact]);

Is it possible to use `makeVector` instead?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6856
&gt; +    [_contactPicker presentWithRequestData:requestData completionHandler:WTFMove(completionHandler)];

the type of `completionHandler` doesn&apos;t match what&apos;s expected by `WKContactPicker` (i&apos;m surprised this even compiles)

&gt; LayoutTests/contact-picker/contacts-select-while-presenting-picker.html:27
&gt; +                const promise1 = new Promise((resolve, reject) =&gt; {
&gt; +                  navigator.contacts.select([&apos;name&apos;]).then(resolve)
&gt; +                                                     .catch(e =&gt; reject(e.message));
&gt; +                });

NIT: you could simplify this
```
    let promise1 = navigator.contacts.select([&apos;name&apos;]).catch((error) =&gt; { throw error.message; });
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704452</commentid>
    <comment_count>16</comment_count>
      <attachid>413168</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-04 08:54:29 -0800</bug_when>
    <thetext>Created attachment 413168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704454</commentid>
    <comment_count>17</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-04 09:00:54 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #15)
&gt; Comment on attachment 412760 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412760&amp;action=review
&gt; 
&gt; r=me, nice work :)

Thank you for the review :)
 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:199
&gt; &gt; +    Vector&lt;WebCore::ContactInfo&gt; info;
&gt; &gt; +    for (CNContact *contact in contacts)
&gt; &gt; +        info.append([self _contactInfoFromCNContact:contact]);
&gt; 
&gt; Is it possible to use `makeVector` instead?

The variant of `makeVector` that takes a mapping function currently expects the mapping function to return something that has a `value_type` (see VectorCocoa.h). For that reason, I can&apos;t use any currently available version of `makeVector`.

I&apos;m not sure if I should add another implementation of `makeVector` for my purpose, but for the time being I&apos;ve updated my code to use `reserveInitialCapacity` and `uncheckedAppend`.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6856
&gt; &gt; +    [_contactPicker presentWithRequestData:requestData completionHandler:WTFMove(completionHandler)];
&gt; 
&gt; the type of `completionHandler` doesn&apos;t match what&apos;s expected by
&gt; `WKContactPicker` (i&apos;m surprised this even compiles)

Fixed.
 
&gt; &gt; LayoutTests/contact-picker/contacts-select-while-presenting-picker.html:27
&gt; &gt; +                const promise1 = new Promise((resolve, reject) =&gt; {
&gt; &gt; +                  navigator.contacts.select([&apos;name&apos;]).then(resolve)
&gt; &gt; +                                                     .catch(e =&gt; reject(e.message));
&gt; &gt; +                });
&gt; 
&gt; NIT: you could simplify this
&gt; ```
&gt;     let promise1 = navigator.contacts.select([&apos;name&apos;]).catch((error) =&gt; {
&gt; throw error.message; });
&gt; ```

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704476</commentid>
    <comment_count>18</comment_count>
      <attachid>412760</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-04 10:01:51 -0800</bug_when>
    <thetext>Comment on attachment 412760
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:199
&gt;&gt;&gt; +        info.append([self _contactInfoFromCNContact:contact]);
&gt;&gt; 
&gt;&gt; Is it possible to use `makeVector` instead?
&gt; 
&gt; The variant of `makeVector` that takes a mapping function currently expects the mapping function to return something that has a `value_type` (see VectorCocoa.h). For that reason, I can&apos;t use any currently available version of `makeVector`.
&gt; 
&gt; I&apos;m not sure if I should add another implementation of `makeVector` for my purpose, but for the time being I&apos;ve updated my code to use `reserveInitialCapacity` and `uncheckedAppend`.

makeVector should work here. I don’t understand what you mean by &quot;a value_type&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704477</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-04 10:02:17 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #18)
&gt; makeVector should work here. I don’t understand what you mean by &quot;a
&gt; value_type&quot;.

I’ll follow up after you land with a patch that moves to use makeVector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704504</commentid>
    <comment_count>20</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-04 10:52:51 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #18)
&gt; Comment on attachment 412760 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412760&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKContactPicker.mm:199
&gt; &gt;&gt;&gt; +        info.append([self _contactInfoFromCNContact:contact]);
&gt; &gt;&gt; 
&gt; &gt;&gt; Is it possible to use `makeVector` instead?
&gt; &gt; 
&gt; &gt; The variant of `makeVector` that takes a mapping function currently expects the mapping function to return something that has a `value_type` (see VectorCocoa.h). For that reason, I can&apos;t use any currently available version of `makeVector`.
&gt; &gt; 
&gt; &gt; I&apos;m not sure if I should add another implementation of `makeVector` for my purpose, but for the time being I&apos;ve updated my code to use `reserveInitialCapacity` and `uncheckedAppend`.
&gt; 
&gt; makeVector should work here. I don’t understand what you mean by &quot;a
&gt; value_type&quot;.

Sorry, I should have been more specific. `makeVector` with a mapping function currently requires the mapping function to return an Optional.

```
// This overload of makeVector takes a function to map each Objective-C object to a vector element.
// Currently, the map function needs to return an Optional.
template&lt;typename MapFunctionType&gt; Vector&lt;typename std::invoke_result_t&lt;MapFunctionType, id&gt;::value_type&gt; makeVector(NSArray *, MapFunctionType&amp;&amp;);
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704510</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-04 10:55:53 -0800</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704513</commentid>
    <comment_count>22</comment_count>
      <attachid>413181</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-04 10:57:59 -0800</bug_when>
    <thetext>Created attachment 413181
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704609</commentid>
    <comment_count>23</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-04 14:36:52 -0800</bug_when>
    <thetext>Committed r269394: &lt;https://trac.webkit.org/changeset/269394&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704943</commentid>
    <comment_count>24</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2020-11-05 11:14:38 -0800</bug_when>
    <thetext>@Aditya Keerthi FYI, It seems bug 218547 happens landed more or less at the same as your patch. So your tests should not use experimental: anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705241</commentid>
    <comment_count>25</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-06 08:02:08 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #24)
&gt; @Aditya Keerthi FYI, It seems bug 218547 happens landed more or less at the
&gt; same as your patch. So your tests should not use experimental: anymore.

Thanks for the heads up. I&apos;ve put up a patch to remove them here: https://bugs.webkit.org/show_bug.cgi?id=218658.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412321</attachid>
            <date>2020-10-26 09:31:07 -0700</date>
            <delta_ts>2020-10-28 11:43:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218189-20201026123104.patch</filename>
            <type>text/plain</type>
            <size>66181</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMjYyZmE1YzYzYzg1N2M4
ZTA2ZTc3Y2JiM2FhOGRhMTQ2MjhhM2EuLjM4MDYzODdkODRhN2U5ZjBlMDEwZmJjZWExODdjYzY1
YTQ5MmZlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBB
UEldIEFkZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzY5ODYyMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKSBzaG91bGQgcHJlc2VudCBhIGNvbnRhY3Qg
cGlja2VyIG9uIHBsYXRmb3JtcworICAgICAgICB3aGljaCBzdXBwb3J0IG9uZS4gVGhpcyBwYXRj
aCBlbmFibGVzIHRoZSBlbmQtdG8tZW5kIGZ1bmN0aW9uYWxpdHkgb24KKyAgICAgICAgaU9TLCBw
cmVzZW50aW5nIGEgY29udGFjdCBwaWNrZXIgdXBvbiBhIGNhbGwgdG8gdGhlIEFQSSBhbmQgcmV0
dXJuaW5nCisgICAgICAgIHRoZSBzZWxlY3RlZCBjb250YWN0cyB1cG9uIGRpc21pc3NhbC4KKwor
ICAgICAgICBUZXN0czogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21p
c3NpbmctcGlja2VyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sCisgICAgICAgICAgICAgICBjb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbAorCisgICAgICAgICogUGxhdGZvcm0vc3Bp
L2lvcy9Db250YWN0c1VJU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGlu
Zy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX2RpZERpc21pc3NDb250YWN0UGlja2VyXSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tOiBBZGRlZC4KKworICAgICAgICBXS0NvbnRh
Y3RQaWNrZXIgaXMgV2ViS2l0IHdyYXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlclZpZXdDb250
cm9sbGVyLgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgaW5pdFdpdGhD
b250YWN0UGlja2VyRGVsZWdhdGU6XSk6CisKKyAgICAgICAgV0tDTkNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZSBpcyB3cmFwcGVyIGFyb3VuZCBDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZS4KKyAgICAgICAg
VGhpcyBpcyBuZWNlc3NhcnkgYXMgc2luZ2xlL211bHRpcGxlIHNlbGVjdGlvbiBpbiBhCisgICAg
ICAgIENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyIGlzIGRldGVybWluZWQgYnkgd2hpY2gg
ZGVsZWdhdGUgbWV0aG9kcworICAgICAgICBhcmUgaW1wbGVtZW50ZWQuIFRoZSB0d28gc3BlY2lh
bGl6YXRpb25zIG9mIHRoaXMgY2xhc3MgaW5jbHVkZSB0aGUKKyAgICAgICAgbWV0aG9kcyBuZWNl
c3NhcnkgdG8gcHJlc2VudCBhIHNpbmdsZS1zZWxlY3QgYW5kIG11bHRpLXNlbGVjdCBwaWNrZXIK
KyAgICAgICAgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVs
ZWdhdGUgY29udGFjdFBpY2tlckRpZENhbmNlbDpdKToKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQ
aWNrZXJTaW5nbGVTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRpZFNlbGVjdENvbnRhY3Q6
XSk6CisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBjb250
YWN0UGlja2VyOmRpZFNlbGVjdENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNr
ZXIgZGVsZWdhdGVdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIHNldERlbGVnYXRlOl0p
OgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAo
LVtXS0NvbnRhY3RQaWNrZXIgcHJlc2VudFdpdGhSZXF1ZXN0RGF0YTpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6
XSk6CisKKyAgICAgICAgVGhpcyBkZWxlZ2F0ZSBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHBp
Y2tlciBpcyBkaXNtaXNzZWQgYnkKKyAgICAgICAgdGFwcGluZyB0aGUgZG9uZSBidXR0b24gb3Ig
d2hlbiB0aGUgcGlja2VyIGlzIGRpc21pc3NlZCBieSBzd2lwaW5nCisgICAgICAgIGRvd24uCisK
KyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFj
dDpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0
Q29udGFjdHM6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdFBpY2tlckRp
ZERpc21pc3NXaXRoQ29udGFjdEluZm86XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBf
Y29udGFjdEluZm9Gcm9tQ05Db250YWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIg
ZGlzbWlzc1dpdGhDb250YWN0czpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250
YWN0c0Zyb21KU0NvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNrZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX3Nob3dDb250YWN0UGlja2VyOmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpd
KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0x
MC0yMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJUEMgdGVz
dGluZyBBUEkgc2hvdWxkIGV4cG9zZSBBcnJheUJ1ZmZlciBmb3IgYW4gdW5rbm93biBkZWNvZGVk
IGFyZ3VtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQ29u
dGFjdHNVSVNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0NvbnRhY3RzVUlT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NDJhZmE3NWIxN2QyYTczMDhlMjY0NDkwOTc2MWU0NmI5OGQ1NzVh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0NvbnRh
Y3RzVUlTUEkuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxDb250YWN0c1VJL0NOQ29u
dGFjdFBpY2tlclZpZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KKworI2Vsc2UKKworQGludGVyZmFj
ZSBDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAoKQorQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TU3RyaW5nICpwcm9tcHQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGY2OWEyZGQzOWIwZTFlMjBjMWJi
ZmMxM2E1ZDQ0MTU5Mzc5MjBiZmQuLjAzNzI4MGI4ZDAzM2RjOWI2NWVjMjJkZDVjYzJhYzFhOWU1
OTdmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5NCw2ICszOTQsNyBAQCBVSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQcm94eUNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29h
Lm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KK1VJUHJvY2Vzcy9Db2NvYS9XS0Nv
bnRhY3RQaWNrZXIubW0KIFVJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCiBVSVByb2Nl
c3MvQ29jb2EvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tCiBVSVByb2Nlc3MvQ29jb2Ev
V0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmgKaW5kZXggYjFjZGU3MDdhZDVhY2U1YzNiNzViYmVhMjM4ZTAyN2Y4ZjliMGE0MS4u
ODYyYjk0ODVlZjM4OTRlNDQ1ODc3ZjUxNjM1ZmE3OGQzY2NkODRmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmgKQEAgLTU4LDYgKzU4LDEwIEBAIHR5cGVkZWYgZW51bSB7CiAKIC0gKHZv
aWQpX3NldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uRm9yVGVz
dGluZzooQk9PTClyZXNvbHZlZDsKIAorLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXI7
CistICh2b2lkKV9kaWREaXNtaXNzQ29udGFjdFBpY2tlcjsKKy0gKHZvaWQpX2Rpc21pc3NDb250
YWN0UGlja2VyV2l0aENvbnRhY3RzOihOU0FycmF5ICopY29udGFjdHM7CisKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6
KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCiAtICh2b2lkKV9w
cm9jZXNzV2lsbFN1c3BlbmRGb3JUZXN0aW5nOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1Rlc3RpbmcubW0KaW5kZXggMWIyYzYyYzVkNDJjMjFkYWVlOTQzZDNmOWQ4MzBiYTc1Mjlk
NTA4OS4uNTIzYTM0OTU5NzNmNjNkN2E3MTFhMzllNGQ4N2FlMDk1YThjMDZlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KQEAgLTI5Niw0ICsyOTYsMjEgQEAgLSAoTlNOdW1iZXIgKilfc3VzcGVuZE1lZGlhUGxheWJh
Y2tDb3VudGVyCiAgICAgcmV0dXJuIEAoX3BhZ2UtPnN1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRl
cigpKTsKIH0KIAorLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXIKK3sKKyAgICAvLyBG
b3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClfZGlkRGlzbWlzc0NvbnRh
Y3RQaWNrZXIKK3sKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAo
dm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0
cworeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAh
UExBVEZPUk0oQVBQTEVUVikKKyAgICBbX2NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tl
cldpdGhDb250YWN0czpjb250YWN0c107CisjZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjY1
ZDBlMDkzNmUyZjc1NDIzZTUwM2QxZmViMWE4ZjNkOGFhOTBhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmgKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKworQGNsYXNzIFdL
V2ViVmlldzsKK0Bwcm90b2NvbCBXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IENvbnRhY3RJbmZvOworc3RydWN0IENvbnRhY3RzUmVxdWVzdERh
dGE7Cit9CisKK0BpbnRlcmZhY2UgV0tDb250YWN0UGlja2VyIDogTlNPYmplY3QKKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldzsKKworLSAodm9pZClwcmVz
ZW50V2l0aFJlcXVlc3REYXRhOihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJily
ZXF1ZXN0RGF0YSBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CisK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4g
ZGVsZWdhdGU7CisKK0BlbmQKKworQHByb3RvY29sIFdLQ29udGFjdFBpY2tlckRlbGVnYXRlIDxO
U09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZCljb250YWN0UGlja2VyRGlkRGlzbWlzczooV0tD
b250YWN0UGlja2VyICopY29udGFjdFBpY2tlcjsKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZFBy
ZXNlbnQ6KFdLQ29udGFjdFBpY2tlciAqKWNvbnRhY3RQaWNrZXI7CitAZW5kCisKK0BpbnRlcmZh
Y2UgV0tDb250YWN0UGlja2VyIChXS1Rlc3RpbmcpCistICh2b2lkKWRpc21pc3NXaXRoQ29udGFj
dHM6KE5TQXJyYXkgKiljb250YWN0czsKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTg0ZDEyYmM3NDE0YzI4ZmVhMTQyNzM3ODZkNjNhMjgwZmM4NDNjYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbQpAQCAt
MCwwICsxLDMwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXS0NvbnRhY3RQaWNrZXIuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
V0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisKKyNpbXBvcnQgPENvbnRhY3RzL0NvbnRh
Y3RzLmg+CisjaW1wb3J0IDxDb250YWN0c1VJL0NvbnRhY3RzVUkuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvQ29udGFjdEluZm8uaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5o
PgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCAiQ29udGFjdHNVSVNQSS5oIgor
I2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNlbmRpZgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKENvbnRh
Y3RzKQorU09GVF9MSU5LX0NMQVNTKENvbnRhY3RzLCBDTkNvbnRhY3RGb3JtYXR0ZXIpCitTT0ZU
X0xJTktfQ0xBU1MoQ29udGFjdHMsIENOTGFiZWxlZFZhbHVlKQorU09GVF9MSU5LX0NMQVNTKENv
bnRhY3RzLCBDTk11dGFibGVDb250YWN0KQorU09GVF9MSU5LX0NMQVNTKENvbnRhY3RzLCBDTlBo
b25lTnVtYmVyKQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK1NPRlRfTElOS19GUkFNRVdP
UksoQ29udGFjdHNVSSkKK1NPRlRfTElOS19DTEFTUyhDb250YWN0c1VJLCBDTkNvbnRhY3RQaWNr
ZXJWaWV3Q29udHJvbGxlcikKKyNlbmRpZgorCisjcHJhZ21hIG1hcmsgLSBEZWxlZ2F0ZSBXcmFw
cGVycworCitAaW50ZXJmYWNlIFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgOiBOU09iamVjdDxD
TkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4geworQHByb3RlY3RlZAorICAgIFdlYWtPYmpDUHRyPGlk
PENOQ29udGFjdFBpY2tlckRlbGVnYXRlPj4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKK30KKwor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOihpZDxDTkNvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZT4pY29udGFjdFBpY2tlckRlbGVnYXRlOworCitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBpY2tlckRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aENvbnRhY3RQaWNrZXJEZWxlZ2F0ZTooaWQ8Q05Db250YWN0UGlja2VyRGVsZWdhdGU+
KWNvbnRhY3RQaWNrZXJEZWxlZ2F0ZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0p
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9IGNv
bnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKworICAgIHJldHVybiBzZWxmOworfQorCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZENhbmNlbDooQ05Db250YWN0
UGlja2VyVmlld0NvbnRyb2xsZXIgKilwaWNrZXIKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxl
Z2F0ZSBjb250YWN0UGlja2VyRGlkQ2FuY2VsOnBpY2tlcl07Cit9CisjZW5kaWYKKworQGVuZAor
CitAaW50ZXJmYWNlIFdLQ05Db250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUgOiBXS0NO
Q29udGFjdFBpY2tlckRlbGVnYXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFj
dFBpY2tlclNpbmdsZVNlbGVjdERlbGVnYXRlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
LSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBp
Y2tlciBkaWRTZWxlY3RDb250YWN0OihDTkNvbnRhY3QgKiljb250YWN0Cit7CisgICAgW19jb250
YWN0UGlja2VyRGVsZWdhdGUgY29udGFjdFBpY2tlcjpwaWNrZXIgZGlkU2VsZWN0Q29udGFjdDpj
b250YWN0XTsKK30KKyNlbmRpZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNr
ZXJNdWx0aVNlbGVjdERlbGVnYXRlIDogV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZQorQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlCisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRh
Y3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0czooTlNBcnJh
eTxDTkNvbnRhY3QqPiAqKWNvbnRhY3RzCit7CisgICAgW19jb250YWN0UGlja2VyRGVsZWdhdGUg
Y29udGFjdFBpY2tlcjpwaWNrZXIgZGlkU2VsZWN0Q29udGFjdHM6Y29udGFjdHNdOworfQorI2Vu
ZGlmCisKK0BlbmQKKworI3ByYWdtYSBtYXJrIC0gV0tDb250YWN0UGlja2VyCisKK0BpbnRlcmZh
Y2UgV0tDb250YWN0UGlja2VyICgpIDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdLQ29udGFjdFBpY2tlciB7CisgICAgV2Vha09iakNQdHI8V0tXZWJW
aWV3PiBfd2ViVmlldzsKKyAgICBXZWFrT2JqQ1B0cjxpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0
ZT4+IF9kZWxlZ2F0ZTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpDb250YWN0UHJvcGVydHk+IF9w
cm9wZXJ0aWVzOworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6Q29udGFjdEluZm8+JiYpPiBfY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBSZXRhaW5QdHI8
V0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIFJldGFpblB0cjxDTkNvbnRhY3RQaWNrZXJWaWV3Q29u
dHJvbGxlcj4gX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorfQorCistIChp
ZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2RlbGVn
YXRlLmdldCgpLmdldCgpOworfQorCistICh2b2lkKXNldERlbGVnYXRlOihpZDxXS0NvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKK30K
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldworeworICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAg
X3dlYlZpZXcgPSB2aWV3OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcHJlc2Vu
dFdpdGhSZXF1ZXN0RGF0YTooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVx
dWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCit7Cisg
ICAgX3Byb3BlcnRpZXMgPSByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzOworICAgIF9jb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOworCisgICAgaWYgKHJlcXVlc3RE
YXRhLm11bHRpcGxlKQorICAgICAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gYWRvcHROUyhb
W1dLQ05Db250YWN0UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb250
YWN0UGlja2VyRGVsZWdhdGU6c2VsZl0pOworICAgIGVsc2UKKyAgICAgICAgX2NvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS0NOQ29udGFjdFBpY2tlclNpbmdsZVNlbGVjdERlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aENvbnRhY3RQaWNrZXJEZWxlZ2F0ZTpzZWxmXSk7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIF9jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgPSBh
ZG9wdE5TKFthbGxvY0NOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVySW5zdGFuY2UoKSBpbml0
XSk7CisgICAgW19jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6X2NvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW19jb250YWN0UGlja2VyVmlld0NvbnRyb2xs
ZXIgc2V0UHJvbXB0OnJlcXVlc3REYXRhLnVybF07CisKKyAgICBVSVZpZXdDb250cm9sbGVyICpw
cmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJv
bGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfd2ViVmlldy5nZXQoKS5nZXQo
KV07CisgICAgW3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyIHByZXNlbnRWaWV3Q29udHJvbGxl
cjpfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21wbGV0
aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGFjdFBpY2tlcj4oc2VsZildIHsKKyAg
ICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ry
b25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoW1tzdHJvbmdTZWxm
IGRlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRhY3RQaWNrZXJEaWRQ
cmVzZW50OildKQorICAgICAgICAgICAgW1tzdHJvbmdTZWxmIGRlbGVnYXRlXSBjb250YWN0UGlj
a2VyRGlkUHJlc2VudDpzdHJvbmdTZWxmLmdldCgpXTsKKyAgICB9XTsKKyNlbmRpZgorfQorCisj
cHJhZ21hIG1hcmsgLSBDb21wbGV0aW9uCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCist
ICh2b2lkKWNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9s
bGVyICopcGlja2VyCit7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiBpbmZvOwor
ICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250YWN0SW5mbzpXVEZNb3Zl
KGluZm8pXTsKK30KKworLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3
Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0OihDTkNvbnRhY3QgKiljb250YWN0
Cit7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiBpbmZvOworICAgIGluZm8uYXBw
ZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21DTkNvbnRhY3Q6Y29udGFjdF0pOworICAgIFtzZWxm
IF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsK
K30KKworLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxl
ciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0czooTlNBcnJheTxDTkNvbnRhY3QqPiAqKWNvbnRh
Y3RzCit7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiBpbmZvOworICAgIGZvciAo
Q05Db250YWN0ICpjb250YWN0IGluIGNvbnRhY3RzKQorICAgICAgICBpbmZvLmFwcGVuZChbc2Vs
ZiBfY29udGFjdEluZm9Gcm9tQ05Db250YWN0OmNvbnRhY3RdKTsKKyAgICBbc2VsZiBfY29udGFj
dFBpY2tlckRpZERpc21pc3NXaXRoQ29udGFjdEluZm86V1RGTW92ZShpbmZvKV07Cit9CisKKyNl
bmRpZgorCistICh2b2lkKV9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250YWN0SW5mbzoo
VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiYmKWluZm8KK3sKKyAgICBfY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShpbmZvKSk7CisKKyAgICBpZiAoW19kZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOildKQorICAgICAgICBbX2Rl
bGVnYXRlIGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOnNlbGZdOworfQorCistIChXZWJDb3JlOjpD
b250YWN0SW5mbylfY29udGFjdEluZm9Gcm9tQ05Db250YWN0OihDTkNvbnRhY3QgKiljb250YWN0
Cit7CisgICAgV2ViQ29yZTo6Q29udGFjdEluZm8gY29udGFjdEluZm87CisKKyAgICBpZiAoX3By
b3BlcnRpZXMuY29udGFpbnMoV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5OjpOYW1lKSkgeworICAg
ICAgICBOU1N0cmluZyAqY29udGFjdE5hbWUgPSBbZ2V0Q05Db250YWN0Rm9ybWF0dGVyQ2xhc3Mo
KSBzdHJpbmdGcm9tQ29udGFjdDpjb250YWN0IHN0eWxlOkNOQ29udGFjdEZvcm1hdHRlclN0eWxl
RnVsbE5hbWVdOworICAgICAgICBjb250YWN0SW5mby5uYW1lID0geyBjb250YWN0TmFtZSB9Owor
ICAgIH0KKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3JlOjpDb250YWN0UHJv
cGVydHk6OkVtYWlsKSkgeworICAgICAgICBmb3IgKENOTGFiZWxlZFZhbHVlPE5TU3RyaW5nICo+
ICplbWFpbEFkZHJlc3MgaW4gY29udGFjdC5lbWFpbEFkZHJlc3NlcykKKyAgICAgICAgICAgIGNv
bnRhY3RJbmZvLmVtYWlsLmFwcGVuZChlbWFpbEFkZHJlc3MudmFsdWUpOworICAgIH0KKworICAg
IGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3JlOjpDb250YWN0UHJvcGVydHk6OlRlbCkp
IHsKKyAgICAgICAgZm9yIChDTkxhYmVsZWRWYWx1ZTxDTlBob25lTnVtYmVyICo+ICpwaG9uZU51
bWJlciBpbiBjb250YWN0LnBob25lTnVtYmVycykKKyAgICAgICAgICAgIGNvbnRhY3RJbmZvLnRl
bC5hcHBlbmQocGhvbmVOdW1iZXIudmFsdWUuc3RyaW5nVmFsdWUpOworICAgIH0KKworICAgIHJl
dHVybiBjb250YWN0SW5mbzsKK30KKworI3ByYWdtYSBtYXJrIC0gVGVzdGluZworCistICh2b2lk
KWRpc21pc3NXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworeworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgW19jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgZGlzbWlzc1Zp
ZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpbc2VsZiwgd2Vha1NlbGYgPSBXZWFr
T2JqQ1B0cjxXS0NvbnRhY3RQaWNrZXI+KHNlbGYpLCBqc0NvbnRhY3RzID0gUmV0YWluUHRyPE5T
QXJyYXk+KGNvbnRhY3RzKV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5n
ZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIFtzdHJvbmdTZWxmIGNvbnRhY3RQaWNrZXI6X2NvbnRhY3RQaWNrZXJWaWV3Q29udHJv
bGxlci5nZXQoKSBkaWRTZWxlY3RDb250YWN0czpbc3Ryb25nU2VsZiBfY29udGFjdHNGcm9tSlND
b250YWN0czpqc0NvbnRhY3RzLmdldCgpXV07CisgICAgfV07CisjZW5kaWYKK30KKworLSAoTlNB
cnJheTxDTkNvbnRhY3QqPiAqKV9jb250YWN0c0Zyb21KU0NvbnRhY3RzOihOU0FycmF5ICopanND
b250YWN0cworeworICAgIGlmICghanNDb250YWN0cykKKyAgICAgICAgcmV0dXJuIFtOU0FycmF5
IGFycmF5XTsKKworICAgIE5TTXV0YWJsZUFycmF5PENOQ29udGFjdCo+ICpjb250YWN0cyA9IFtO
U011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0eTpqc0NvbnRhY3RzLmNvdW50XTsKKworICAg
IE5TUHJlZGljYXRlICpzdHJpbmdWYWx1ZVByZWRpY2F0ZSA9IFtOU1ByZWRpY2F0ZSBwcmVkaWNh
dGVXaXRoRm9ybWF0OkAic2VsZiBpc0tpbmRPZkNsYXNzOiAlQCIsIFtOU1N0cmluZyBjbGFzc11d
OworCisgICAgZm9yIChpZCBqc0NvbnRhY3QgaW4ganNDb250YWN0cykgeworICAgICAgICBpZiAo
IVtqc0NvbnRhY3QgaXNLaW5kT2ZDbGFzczpbTlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBDTk11dGFibGVDb250YWN0ICpjb250YWN0ID0gW1th
bGxvY0NOTXV0YWJsZUNvbnRhY3RJbnN0YW5jZSgpIGluaXRdIGF1dG9yZWxlYXNlXTsKKworICAg
ICAgICBpZCBuYW1lcyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0IG9iamVjdEZvcktleTpA
Im5hbWUiXTsKKyAgICAgICAgaWYgKFtuYW1lcyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNz
XV0pIHsKKyAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgaW4gW25hbWVzIGZpbHRlcmVk
QXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRpY2F0ZV0pIHsKKyAgICAgICAgICAg
ICAgICBjb250YWN0LmdpdmVuTmFtZSA9IG5hbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZCBlbWFpbHMgPSBbKE5TRGljdGlv
bmFyeSAqKWpzQ29udGFjdCBvYmplY3RGb3JLZXk6QCJlbWFpbCJdOworICAgICAgICBpZiAoW2Vt
YWlscyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5TTXV0
YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPE5TU3RyaW5nKj4qPiAqZW1haWxBZGRyZXNzZXMgPSBb
TlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqZW1haWwg
aW4gW2VtYWlscyBmaWx0ZXJlZEFycmF5VXNpbmdQcmVkaWNhdGU6c3RyaW5nVmFsdWVQcmVkaWNh
dGVdKSB7CisgICAgICAgICAgICAgICAgQ05MYWJlbGVkVmFsdWU8TlNTdHJpbmcqPiAqbGFiZWxl
ZFZhbHVlID0gW2dldENOTGFiZWxlZFZhbHVlQ2xhc3MoKSBsYWJlbGVkVmFsdWVXaXRoTGFiZWw6
bmlsIHZhbHVlOmVtYWlsXTsKKyAgICAgICAgICAgICAgICBbZW1haWxBZGRyZXNzZXMgYWRkT2Jq
ZWN0OmxhYmVsZWRWYWx1ZV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb250YWN0LmVt
YWlsQWRkcmVzc2VzID0gZW1haWxBZGRyZXNzZXM7CisgICAgICAgIH0KKworICAgICAgICBpZCBw
aG9uZU51bWJlcnMgPSBbKE5TRGljdGlvbmFyeSAqKWpzQ29udGFjdCBvYmplY3RGb3JLZXk6QCJ0
ZWwiXTsKKyAgICAgICAgaWYgKFtwaG9uZU51bWJlcnMgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBj
bGFzc11dKSB7CisgICAgICAgICAgICBOU011dGFibGVBcnJheTxDTkxhYmVsZWRWYWx1ZTxDTlBo
b25lTnVtYmVyKj4qPiAqbnVtYmVycyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgICAg
ICAgICBmb3IgKE5TU3RyaW5nICpwaG9uZU51bWJlciBpbiBbcGhvbmVOdW1iZXJzIGZpbHRlcmVk
QXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRpY2F0ZV0pIHsKKyAgICAgICAgICAg
ICAgICBDTlBob25lTnVtYmVyICpjblBob25lTnVtYmVyID0gW2dldENOUGhvbmVOdW1iZXJDbGFz
cygpIHBob25lTnVtYmVyV2l0aFN0cmluZ1ZhbHVlOnBob25lTnVtYmVyXTsKKyAgICAgICAgICAg
ICAgICBDTkxhYmVsZWRWYWx1ZTxDTlBob25lTnVtYmVyKj4gKmxhYmVsZWRWYWx1ZSA9IFtnZXRD
TkxhYmVsZWRWYWx1ZUNsYXNzKCkgbGFiZWxlZFZhbHVlV2l0aExhYmVsOm5pbCB2YWx1ZTpjblBo
b25lTnVtYmVyXTsKKyAgICAgICAgICAgICAgICBbbnVtYmVycyBhZGRPYmplY3Q6bGFiZWxlZFZh
bHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRhY3QucGhvbmVOdW1iZXJzID0g
bnVtYmVyczsKKyAgICAgICAgfQorCisgICAgICAgIFtjb250YWN0cyBhZGRPYmplY3Q6Y29udGFj
dF07CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRhY3RzOworfQorCitAZW5kCisKKyNlbmRpZiAv
LyBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aAppbmRleCA3N2FmY2FmYzQwNDBmYjllYzk4OGM3ZjFhZWQ2MmY2ZWQxODU0MmVlLi5iZTAzMDFm
YjdjYjE4YmFjN2NkZTM5MGVkM2NmMWE4NTU1Yjk4ZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTc3LDYgKzE3Nyw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIGhhbmRsZVJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJG
cmFtZVByb3h5KiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVy
cyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSBvdmVycmlkZTsKICAgICBib29s
IHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQg
c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFj
dEluZm8+PiYmKT4mJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBkaXNhYmxlRG91YmxlVGFw
R2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQpIG92ZXJyaWRl
OwogICAgIHZvaWQgaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRp
YWxUYXAodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlbmRl
clJlY3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBk
b3VibGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQppbmRleCBhZmNjNDVlOTM3NmQ3M2E2NGQxMmE2Y2E3OTA1ZmE3MjU1NmM1YWVkLi5iNmFiOTYy
YjczMzQzOTIzMmJmN2RkOTJjOTZhNmIyMTJjMWE4NmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC02MzksNiArNjM5LDExIEBA
IGJvb2wgUGFnZUNsaWVudEltcGw6OnNob3dTaGFyZVNoZWV0KGNvbnN0IFNoYXJlRGF0YVdpdGhQ
YXJzZWRVUkwmIHNoYXJlRGF0YSwgV1RGCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OnNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVx
dWVzdERhdGEmIHJlcXVlc3REYXRhLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgW21fY29udGVudFZpZXcgX3Nob3dDb250YWN0UGlja2VyOnJlcXVlc3REYXRhIGNv
bXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKK30KKwogdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpJbnNw
ZWN0b3JPdmVybGF5OjpIaWdobGlnaHQmIGhpZ2hsaWdodCkKIHsKICAgICBbbV9jb250ZW50Vmll
dyBfc2hvd0luc3BlY3RvckhpZ2hsaWdodDpoaWdobGlnaHRdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGE3
MDhhZWUyYzJlZGY2YTdkMTE1MTFkZGI0MjJhYWU3MGNkMzc5YjMuLmRjYTA2NzFiOWM5OGIwNTgw
YTVhODRmZWMyYjMwM2NmMDEwNTAwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTQzLDYgKzQzLDcgQEAK
ICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJXS0FjdGlvblNoZWV0QXNzaXN0YW50Lmgi
CiAjaW1wb3J0ICJXS0FpclBsYXlSb3V0ZVBpY2tlci5oIgorI2ltcG9ydCAiV0tDb250YWN0UGlj
a2VyLmgiCiAjaW1wb3J0ICJXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0
ICJXS0ZpbGVVcGxvYWRQYW5lbC5oIgogI2ltcG9ydCAiV0tGb3JtUGVyaXBoZXJhbC5oIgpAQCAt
NzksNiArODAsOCBAQCBjbGFzcyBDb2xvcjsKIGNsYXNzIEZsb2F0UXVhZDsKIGNsYXNzIEludFNp
emU7CiBjbGFzcyBTZWxlY3Rpb25SZWN0Oworc3RydWN0IENvbnRhY3RJbmZvOworc3RydWN0IENv
bnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5mbzsKIHN0cnVj
dCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogZW51bSBjbGFzcyBET01QYXN0ZUFjY2Vzc1Jlc3Bv
bnNlIDogdWludDhfdDsKQEAgLTI3NCw2ICsyNzcsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlv
bkRhdGEgewogICAgIFdlYktpdDo6RnJhbWVJbmZvRGF0YSBfZnJhbWVJbmZvRm9yRmlsZVVwbG9h
ZFBhbmVsOwogI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKICAg
ICBSZXRhaW5QdHI8V0tTaGFyZVNoZWV0PiBfc2hhcmVTaGVldDsKKyAgICBSZXRhaW5QdHI8V0tD
b250YWN0UGlja2VyPiBfY29udGFjdFBpY2tlcjsKICNlbmRpZgogICAgIFJldGFpblB0cjxVSUdl
c3R1cmVSZWNvZ25pemVyPiBfcHJldmlld0dlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0
cjxVSUdlc3R1cmVSZWNvZ25pemVyPiBfcHJldmlld1NlY29uZGFyeUdlc3R1cmVSZWNvZ25pemVy
OwpAQCAtNDI0LDYgKzQyOCw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKIEBp
bnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tJbnRlcmFjdGlvbikgPFVJR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZSwgVUlUZXh0QXV0b3Njcm9sbGluZywgVUlUZXh0SW5wdXRNdWx0aURvY3VtZW50
LCBVSVRleHRJbnB1dFByaXZhdGUsIFVJV2ViRm9ybUFjY2Vzc29yeURlbGVnYXRlLCBVSVdlYlRv
dWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1By
b3RvY29sLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUsIFdLRmlsZVVwbG9hZFBhbmVs
RGVsZWdhdGUsIFdLS2V5Ym9hcmRTY3JvbGxWaWV3QW5pbWF0b3JEZWxlZ2F0ZSwgV0tEZWZlcnJp
bmdHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQ
TEFURk9STShBUFBMRVRWKQorICAgICwgV0tDb250YWN0UGlja2VyRGVsZWdhdGUKICAgICAsIFdL
U2hhcmVTaGVldERlbGVnYXRlCiAjZW5kaWYKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAt
NTIwLDYgKzUyNSw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVD
TEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9zaG93UGxh
eWJhY2tUYXJnZXRQaWNrZXI6KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKWVsZW1lbnRSZWN0IHJvdXRlU2hhcmluZ1BvbGljeTooV2ViQ29yZTo6Um91dGVT
aGFyaW5nUG9saWN5KXBvbGljeSByb3V0aW5nQ29udGV4dFVJRDooTlNTdHJpbmcgKiljb250ZXh0
VUlEOwogLSAodm9pZClfc2hvd1J1bk9wZW5QYW5lbDooQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJz
KilwYXJhbWV0ZXJzIGZyYW1lSW5mbzooY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJilmcmFt
ZUluZm8gcmVzdWx0TGlzdGVuZXI6KFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eSopbGlzdGVuZXI7CiAtICh2b2lkKV9zaG93U2hhcmVTaGVldDooY29uc3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYpc2hhcmVEYXRhIGluUmVjdDooV1RGOjpPcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFJlY3Q+KXJlY3QgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpX3Nob3dD
b250YWN0UGlja2VyOihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJilyZXF1ZXN0
RGF0YSBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVy
OwogLSAodm9pZClkaXNtaXNzRmlsZVBpY2tlcjsKIC0gKHZvaWQpX2RpZEhhbmRsZUtleUV2ZW50
Oig6OldlYkV2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2ZW50V2FzSGFuZGxl
ZDsKIC0gKFZlY3RvcjxXZWJLaXQ6Ok9wdGlvbkl0ZW0+JikgZm9jdXNlZFNlbGVjdEVsZW1lbnRP
cHRpb25zOwpAQCAtNjI3LDYgKzYzMyw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklF
V19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtIChO
U0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVz
ZXJJbnRlcmZhY2VJdGVtOwogLSAodm9pZClfZG9BZnRlclJlc2V0dGluZ1NpbmdsZVRhcEdlc3R1
cmU6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOwogLSAodm9pZClfZG9BZnRlclJlY2VpdmluZ0Vk
aXREcmFnU25hcHNob3RGb3JUZXN0aW5nOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbjsKKy0gKHZv
aWQpX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOihOU0FycmF5ICopY29udGFjdHM7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRleHRDb250ZW50
VHlwZUZvclRlc3Rpbmc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5n
ICpzZWxlY3RGb3JtUG9wb3ZlclRpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZDdiZGIzZGQ1OTlm
YmVlYjBjNjNkYjQ0ZTUyYWNlZDZlMGNlNTBhMi4uMmM3MGQ0ZDg0NjUxNzAwNWNlODg3YTA0Zjli
OWNiZTBjNTliNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03Myw3ICs3Myw3IEBACiAjaW1wb3J0
ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SU9T
LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlLmgiCi0jaW1wb3J0ICJXS1dlYlZpZXdQcml2
YXRlRm9yVGVzdGluZ0lPUy5oIgorI2ltcG9ydCAiV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rpbmcu
aCIKICNpbXBvcnQgIldlYkF1dG9jb3JyZWN0aW9uQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViQXV0
b2NvcnJlY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MuaCIKQEAgLTY4NDgsNiArNjg0OCwzNCBAQCAtICh2b2lkKXNoYXJlU2hlZXQ6KFdLU2hh
cmVTaGVldCAqKXNoYXJlU2hlZXQgd2lsbFNob3dBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICopYQog
CiAjZW5kaWYKIAorLSAodm9pZClfc2hvd0NvbnRhY3RQaWNrZXI6KGNvbnN0IFdlYkNvcmU6OkNv
bnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZv
Pj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXIKK3sKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYg
IVBMQVRGT1JNKEFQUExFVFYpCisgICAgX2NvbnRhY3RQaWNrZXIgPSBhZG9wdE5TKFtbV0tDb250
YWN0UGlja2VyIGFsbG9jXSBpbml0V2l0aFZpZXc6c2VsZi53ZWJWaWV3XSk7CisgICAgW19jb250
YWN0UGlja2VyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtfY29udGFjdFBpY2tlciBwcmVzZW50
V2l0aFJlcXVlc3REYXRhOnJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXTsKKyNlbmRpZgorfQorCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYm
ICFQTEFURk9STShBUFBMRVRWKQorLSAodm9pZCljb250YWN0UGlja2VyRGlkUHJlc2VudDooV0tD
b250YWN0UGlja2VyICopY29udGFjdFBpY2tlcgoreworICAgIEFTU0VSVChfY29udGFjdFBpY2tl
ciA9PSBjb250YWN0UGlja2VyKTsKKworICAgIFtfd2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQ
aWNrZXJdOworfQorCistICh2b2lkKWNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOihXS0NvbnRhY3RQ
aWNrZXIgKiljb250YWN0UGlja2VyCit7CisgICAgQVNTRVJUKF9jb250YWN0UGlja2VyID09IGNv
bnRhY3RQaWNrZXIpOworCisgICAgW19jb250YWN0UGlja2VyIHNldERlbGVnYXRlOm5pbF07Cisg
ICAgX2NvbnRhY3RQaWNrZXIgPSBuaWw7CisKKyAgICBbX3dlYlZpZXcgX2RpZERpc21pc3NDb250
YWN0UGlja2VyXTsKK30KKyNlbmRpZgorCiAtIChOU1N0cmluZyAqKWlucHV0TGFiZWxUZXh0CiB7
CiAgICAgaWYgKCFfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5sYWJlbC5pc0VtcHR5KCkpCkBA
IC05MDk0LDYgKzkxMjIsMTYgQEAgLSAoTlNEaWN0aW9uYXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50
ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJmYWNlSXRlbQogICAgIHJldHVybiBuaWw7
CiB9CiAKKy0gKHZvaWQpX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOihOU0FycmF5
ICopY29udGFjdHMKK3sKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExF
VFYpCisgICAgaWYgKCFfY29udGFjdFBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgW19j
b250YWN0UGlja2VyIGRpc21pc3NXaXRoQ29udGFjdHM6Y29udGFjdHNdOworI2VuZGlmCit9CisK
IEBlbmQKIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmI2YTk2MDAwNzk2NzcwMDZkMzU3MDBi
MTYzNGJhYTU3OWE1NzY0NS4uZWRkYTI0Mzk0OTExOTRmNmEzMzQxYjVmMjY4MWQ0MzkyYTZiZGIw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xODQ4LDYgKzE4NDgsNyBAQAogCQlFNDlENDBENzFBRDNGQjE3MDA2NkI3QjkgLyogTmV0
d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0OUQ0MEQ2MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9i
U3RvcmFnZS5oICovOyB9OwogCQlFNEQ1NEQwNDIxRjFENzJEMDA3RTNDMzYgLyogU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwQzFGOTMyMUYwQjk2RTAwNTMwNzE4IC8qIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCAqLzsgfTsKIAkJRTRFNTdGNkIy
MUE4M0IxMjAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAv
KiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi87IH07CisJCUU1MDYyMDkyMjU0MjEwMjAwMEM0MzA5
MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTA2MjA5MTI1NDIxMDIwMDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oICov
OyB9OwogCQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9u
UGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmgg
Ki87IH07CiAJCUU1NDhFQkQxMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU0OEVCQ0Yy
MTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggKi87IH07CiAJCUU1NUNEMUY1
MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NUNEMUYzMjRDRjc0N0QwMDQyREI5QyAv
KiBXZWJEYXRlVGltZUNob29zZXIuaCAqLzsgfTsKQEAgLTE4NTUsNiArMTg1Niw3IEBACiAJCUU1
NUNEMjAzMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QyMDEyNEQwOUYxRjAw
NDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggKi87IH07CiAJCUU1NjhCOTFGMjBBM0FC
MkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NjhCOTFFMjBBM0FCMkYwMEUz
Qzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAqLzsgfTsKIAkJRTU2OEI5
MjIyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU2OEI5MjAy
MEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICov
OyB9OworCQlFNTk2REQ2QTI1MUU3MUQ0MDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTk2REQ2ODI1MUU3
MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi87IH07CiAJCUU1QkVGNjgyMjEzMEM0
ODAwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkVGNjgwMjEzMEM0N0Yw
MEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCAqLzsgfTsKIAkJ
RTVDQjA3REMyMEUxNjc4RjAwMjJDMTgzIC8qIFdLRm9ybUNvbG9yQ29udHJvbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDQjA3REEyMEUxNjc4RjAw
MjJDMTgzIC8qIFdLRm9ybUNvbG9yQ29udHJvbC5oICovOyB9OwogCQlFRDgyQTdGMjEyOEM2RkFG
MDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdLQnVu
ZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtNTQxMiw2ICs1NDE0LDcgQEAKIAkJRTQ5RDQwRDgxQUQzRkIyMTAwNjZCN0I5
IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTRFNTdGNjgyMUE4M0IwMzAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJl
ZU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVM
YXllclRyZWVOb2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2QTIx
QTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvbnRhY3RzVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBp
Y2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NTEyMEEzNUMzQTAwREFEQTI3IC8qIFdl
YkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tGb3JtQ29sb3JQaWNrZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0Zvcm1Db2xvclBp
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTQyNiw2ICs1NDI5LDggQEAK
IAkJRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MjAyMEEzQUM2QTAwRTNDODU2IC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJE
YXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTU2OEI5MjEyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTk2REQ2ODI1
MUU3MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLQ29udGFjdFBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFNTk2REQ2OTI1MUU3MUQ0MDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tDb250YWN0UGlja2VyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJFRjY4MDIxMzBDNDdGMDBGMzExMTEgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oOyBwYXRoID0g
aW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNUJFRjY4MTIxMzBDNDdGMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tOyBwYXRoID0gaW9zL1dl
YkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTVDQjA3REEyMEUxNjc4RjAwMjJDMTgzIC8qIFdLRm9ybUNvbG9yQ29udHJvbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvckNvbnRyb2wuaDsgcGF0aCA9IGlvcy9mb3Jtcy9X
S0Zvcm1Db2xvckNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0NTUs
NiArNjQ2MCw4IEBACiAJCQkJNTFEMTI0MzIxRTZERTUyMTAwMkIyODIwIC8qIFdlYlVSTFNjaGVt
ZUhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQkyREZDN0RCOTFCQ0NDMTk1MDBDMTU0OEMgLyogV2Vi
Vmlld0ltcGwuaCAqLywKIAkJCQkyREZDN0RCQTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0lt
cGwubW0gKi8sCisJCQkJRTU5NkRENjgyNTFFNzFEMzAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tl
ci5oICovLAorCQkJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIu
bW0gKi8sCiAJCQkJMkVDRjY2Q0MyMUQ2Qjc3RTAwOUU1QzNGIC8qIFdLRWRpdENvbW1hbmQuaCAq
LywKIAkJCQkyRUNGNjZDRDIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5tbSAqLywK
IAkJCQlFMUFFQTIyRDE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRj
aGVyLmggKi8sCkBAIC0xMDU2Nyw2ICsxMDU3NCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlD
REEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJ
CQk5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8sCisJCQkJRTUw
NjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLywKIAkJCQkyRDRBRjA4
ODIwNDRDM0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQTEz
QjNEQTEyMDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlTUEkuaCAqLywKIAkJCQkzMTc4QUY5
NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8sCkBAIC0xMDk1MCw2ICsxMDk1OCw3
IEBACiAJCQkJMzdCRUM0RTExOTQ5MTQ4NjAwOEI0Mjg2IC8qIENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzRFOUY2MTMxQzZFN0UwMDI5QkQ1QSAv
KiBjb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREFCMTBGNDM3RDEwMDU4QzE1QSAv
KiBDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTA2MjA5MjI1NDIxMDIwMDBDNDMw
OTEgLyogQ29udGFjdHNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0EwNTM5NzkyM0VFMzI0
NDAwQTU1M0RDIC8qIENvbnRlbnRBc1N0cmluZ0luY2x1ZGVzQ2hpbGRGcmFtZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMjlFQjEyMjNEMERFN0IwMEFGMUNENyAvKiBDb250ZW50V29ybGRTaGFy
ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDZEN0M0MThCREJFNzMwMDBBQjE2NiAvKiBDb250
ZXh0TWVudUNvbnRleHREYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjg1LDYgKzExNjk0LDcg
QEAKIAkJCQlCQ0EyODRENzE0OTJGMkM3MDAxRjkwNDIgLyogV0tDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzVDNzVDODE0OTU0REE2MDBCQzQ3NzUgLyogV0tDb25uZWN0aW9uSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNEE2Mjk3MTQ3MzEzQTAwMDZDNjgxQSAvKiBX
S0Nvbm5lY3Rpb25SZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCUU1OTZERDZBMjUxRTcxRDQwMEMy
NzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NjU0MUU3
MjM1QjEwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNEMjg2NTUxRTcyMzVCODAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDRDI4NjUxMUU3MjM1OTkwMDk0RkRDOCAvKiBXS0NvbnRlbnRS
dWxlTGlzdFN0b3JlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMjg2NTZmMGRhMTk0NGQ1ZGJiM2QyYjRiY2I5MjVi
Y2I1NWI4YWNmLi5jNDRkOWU4ZGU1MjJjZDY5NThjNjQ0ODg1YTk3ZWIxZTg5MjQyOWVhIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzggQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkg
b24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFVJU2NyaXB0Q29udHJvbGxl
ciBob29rcyB0byBvYnNlcnZlIHRoZSBwcmVzZW50YXRpb24gYW5kCisgICAgICAgIGRpc21pc3Nh
bCBvZiBhIGNvbnRhY3QgcGlja2VyLiBGdXJ0aGVybW9yZSwgdGhlCisgICAgICAgIGRpc21pc3ND
b250YWN0UGlja2VyV2l0aENvbnRhY3RzIG1ldGhvZCB3YXMgYWRkZWQgdG8gYWxsb3cgdGVzdHMg
dG8KKyAgICAgICAgZGlzbWlzcyB0aGUgcHJlc2VudGVkIGNvbnRhY3QgcGlja2VyIHdpdGggYSBz
ZXQgb2Ygc2VsZWN0ZWQgY29udGFjdHMuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgorICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oOgorICAg
ICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmlzU2hvd2luZ0NvbnRhY3RQ
aWNrZXIgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3ND
b250YWN0UGlja2VyV2l0aENvbnRhY3RzKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFNob3dDb250YWN0UGlja2VyQ2Fs
bGJhY2sgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEhp
ZGVDb250YWN0UGlja2VyQ2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2sgY29uc3QpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVz
dFJ1bm5lcldLV2ViVmlldyByZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzXSk6CisgICAgICAgICgt
W1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2RpZFByZXNlbnRDb250YWN0UGlja2VyXSk6CisgICAgICAg
ICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgX2RpZERpc21pc3NDb250YWN0UGlja2VyXSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2Eu
bW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRTaG93Q29u
dGFjdFBpY2tlckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29j
b2E6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXJDb2NvYTo6aXNTaG93aW5nQ29udGFjdFBpY2tlciBjb25zdCk6CisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpkaXNtaXNzQ29udGFjdFBpY2tlcldp
dGhDb250YWN0cyk6CisKIDIwMjAtMTAtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgSVBDIHRlc3RpbmcgQVBJIHNob3VsZCBleHBvc2UgQXJyYXlCdWZmZXIg
Zm9yIGFuIHVua25vd24gZGVjb2RlZCBhcmd1bWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2Ny
aXB0Q29udHJvbGxlci5pZGwKaW5kZXggM2Q1ODMyZDFkOTYyYzBjOTMyZjMyN2UzZWJjMDE4OWRh
MTBjNDg1Yy4uM2UwNWViMTMzMDJjMzI2MjE2OTg1M2Y4MTRlZDgzMzM4M2JiNmFhNSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlT
Y3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0zNDksNiArMzQ5LDEx
IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogICAgIG9iamVjdCBhdHRhY2htZW50
SW5mbyhET01TdHJpbmcgYXR0YWNobWVudElkZW50aWZpZXIpOwogICAgIHVuZGVmaW5lZCBpbnNl
cnRBdHRhY2htZW50Rm9yRmlsZVBhdGgoRE9NU3RyaW5nIGZpbGVQYXRoLCBET01TdHJpbmcgY29u
dGVudFR5cGUsIG9iamVjdCBjYWxsYmFjayk7CiAKKyAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFNo
b3dDb250YWN0UGlja2VyQ2FsbGJhY2s7CisgICAgYXR0cmlidXRlIG9iamVjdCBkaWRIaWRlQ29u
dGFjdFBpY2tlckNhbGxiYWNrOworICAgIHVuZGVmaW5lZCBkaXNtaXNzQ29udGFjdFBpY2tlcldp
dGhDb250YWN0cyhvYmplY3QgY29udGFjdHMpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGlzU2hvd2luZ0NvbnRhY3RQaWNrZXI7CisKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGxhc3RVbmRvTGFiZWw7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBm
aXJzdFJlZG9MYWJlbDsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCmluZGV4IGZiYTMyYzkzN2IyOTgzMWUw
MjZmOTkxMzg2MGIyZTA3MjFlMGYyNTQuLjJiNWY0YmY4MTZkMDE0NGIzMTliNjI2ZDEwNzA4NDgz
YzlkZjFlYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udGV4dC5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCkBAIC02NSw2ICs2NSw4IEBAIHR5cGVkZWYgZW51
bSAgewogICAgIENhbGxiYWNrVHlwZURpZERpc21pc3NDb250ZXh0TWVudSwKICAgICBDYWxsYmFj
a1R5cGVXaWxsQ3JlYXRlTmV3UGFnZSwKICAgICBDYWxsYmFja1R5cGVXaW5kb3dUYXBSZWNvZ25p
emVkLAorICAgIENhbGxiYWNrVHlwZURpZFNob3dDb250YWN0UGlja2VyLAorICAgIENhbGxiYWNr
VHlwZURpZEhpZGVDb250YWN0UGlja2VyLAogICAgIENhbGxiYWNrVHlwZU5vblBlcnNpc3RlbnQg
PSBmaXJzdE5vblBlcnNpc3RlbnRDYWxsYmFja0lECiB9IENhbGxiYWNrVHlwZTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuaAppbmRleCBiZTEzNmJkMDYwYjNiMzIyMTNjNTE0YjViNWQ1NmE4MWZiNGUz
ZmM4Li43ZTQ4MDdiMTU0ZmJhNDYzNmE5NjVlMmFlYTBiYjcwOWJiNWI2ZGE4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuaApAQCAtMjc3LDYgKzI3NywxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBK
U09iamVjdFJlZiBhdHRhY2htZW50SW5mbyhKU1N0cmluZ1JlZikgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRBdHRhY2htZW50Rm9y
RmlsZVBhdGgoSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KIAorICAgIC8vIENvbnRhY3QgUGlja2VyCisKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhKU1ZhbHVlUmVmKTsKKyAgICBKU1ZhbHVl
UmVmIGRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNTaG93aW5nQ29udGFjdFBpY2tlcigpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJD
YWxsYmFjayhKU1ZhbHVlUmVmKTsKKyAgICBKU1ZhbHVlUmVmIGRpZEhpZGVDb250YWN0UGlja2Vy
Q2FsbGJhY2soKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29udGFjdFBpY2tl
cldpdGhDb250YWN0cyhKU1ZhbHVlUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwogICAgIC8v
IENhbGxiYWNrcwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXREaWRTdGFydEZvcm1Db250cm9s
SW50ZXJhY3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAg
Yi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXJTaGFyZWQuY3BwCmluZGV4IGJmZjRmMzQzM2RiZDI5NTc1ZDYyNWI3Mzk0ZTZkOWQzODFjYWVj
MjYuLjllNDk0MGNlM2E4YjEwMjI3ZmVkZTFmZTJlMmY4MWYxOWE4ZGE2NDYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
clNoYXJlZC5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcApAQCAtMjEzLDYgKzIxMywyNiBAQCBKU1ZhbHVl
UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlz
bWlzc1BvcG92ZXIpOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0Nv
bnRhY3RQaWNrZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4
dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRhY3RQ
aWNrZXIpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hvd0NvbnRh
Y3RQaWNrZXJDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJh
Y2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRhY3RQaWNrZXIpOworfQorCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFj
aywgQ2FsbGJhY2tUeXBlRGlkSGlkZUNvbnRhY3RQaWNrZXIpOworfQorCitKU1ZhbHVlUmVmIFVJ
U2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkSGlk
ZUNvbnRhY3RQaWNrZXIpOworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6dWlTY3JpcHRD
b21wbGV0ZShKU1N0cmluZ1JlZiByZXN1bHQpCiB7CiAgICAgbV9jb250ZXh0LT5yZXF1ZXN0VUlT
Y3JpcHRDb21wbGV0aW9uKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCmluZGV4IGY1NTRlMTIzZWEzZTU0MWExMDdjN2Rk
Njc2ZmU0YzVmZTcxZTZkNjguLmY1NzFlNGRkZDhmYzg5YjMyMzFhZDYwODc4ODRkYzI5MTEwZWM1
YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5oCkBAIC03Myw2ICs3Myw5IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGdldHRlcj1pc1Nob3dpbmdNZW51KSBCT09MIHNob3dpbmdNZW51OwogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRTaG93TWVudUNhbGxiYWNrKSh2b2lkKTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkSGlkZU1lbnVDYWxsYmFjaykodm9pZCk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1Nob3dpbmdDb250YWN0
UGlja2VyKSBCT09MIHNob3dpbmdDb250YWN0UGlja2VyOworQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIHZvaWQgKF5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFj
aykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluLCBzZXR0ZXI9X3NldFN0YWJs
ZVN0YXRlT3ZlcnJpZGU6KSBOU051bWJlciAqX3N0YWJsZVN0YXRlT3ZlcnJpZGU7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0
aW5nOikgQk9PTCBfc2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGluZzsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCmlu
ZGV4IDkxNWY0NzZjNjE1YWU2MTA5MGQ5MGNhNzk3NmJmOGYyYzk5YjU2NmIuLjU3MDZhN2IxMTVi
NTE0MjRmMmI2NWM4NGNhODFjODA4NDIwMzc4YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KQEAgLTc4LDYgKzc4LDcgQEAg
QHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdNZW51LCBzZXR0ZXI9c2V0SXNT
aG93aW5nTWVudTopIEJPT0wgc2hvd2kKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNE
aXNtaXNzaW5nTWVudSwgc2V0dGVyPXNldElzRGlzbWlzc2luZ01lbnU6KSBCT09MIGRpc21pc3Np
bmdNZW51OwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdQb3BvdmVyLCBz
ZXR0ZXI9c2V0SXNTaG93aW5nUG9wb3ZlcjopIEJPT0wgc2hvd2luZ1BvcG92ZXI7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ0NvbnRleHRNZW51LCBzZXR0ZXI9c2V0SXNT
aG93aW5nQ29udGV4dE1lbnU6KSBCT09MIHNob3dpbmdDb250ZXh0TWVudTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nQ29udGFjdFBpY2tlciwgc2V0dGVyPXNldElzU2hv
d2luZ0NvbnRhY3RQaWNrZXI6KSBCT09MIHNob3dpbmdDb250YWN0UGlja2VyOwogCiBAZW5kCiAK
QEAgLTE3MSw2ICsxNzIsOCBAQCAtICh2b2lkKXJlc2V0SW50ZXJhY3Rpb25DYWxsYmFja3MKIHsK
ICAgICBzZWxmLmRpZFNob3dNZW51Q2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRIaWRlTWVu
dUNhbGxiYWNrID0gbmlsOworICAgIHNlbGYuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayA9
IG5pbDsKKyAgICBzZWxmLmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2sgPSBuaWw7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzZWxmLmRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFj
dGlvbkNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlv
bkNhbGxiYWNrID0gbmlsOwpAQCAtNTQ1LDQgKzU0OCwyNCBAQCAtIChCT09MKWdlc3R1cmVSZWNv
Z25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVj
b2duaQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorLSAodm9pZClfZGlkUHJl
c2VudENvbnRhY3RQaWNrZXIKK3sKKyAgICBpZiAoc2VsZi5zaG93aW5nQ29udGFjdFBpY2tlcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGFjdFBpY2tlciA9IFlFUzsK
KyAgICBpZiAoc2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKQorICAgICAgICBzZWxm
LmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soKTsKK30KKworLSAodm9pZClfZGlkRGlzbWlz
c0NvbnRhY3RQaWNrZXIKK3sKKyAgICBpZiAoIXNlbGYuc2hvd2luZ0NvbnRhY3RQaWNrZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNlbGYuc2hvd2luZ0NvbnRhY3RQaWNrZXIgPSBOTzsKKyAg
ICBpZiAoc2VsZi5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKQorICAgICAgICBzZWxmLmRp
ZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soKTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCmluZGV4
IGNjOTgxMzk0MjRmMjg4MDY0NDM5ODk4MzQ1YzNlN2Q0ZWE1NTMzNzguLmU4Y2RjM2NmMGMxMTU0
MWE4N2RhYzg1MDFlNzA4ZjY4OGVhY2IxODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKQEAgLTY0LDYgKzY0LDEx
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChKU1N0
cmluZ1JlZiBmaWxlUGF0aCwgSlNTdHJpbmdSZWYgY29udGVudFR5cGUsIEpTVmFsdWVSZWYgY2Fs
bGJhY2spIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxi
YWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RGlkSGlkZUNvbnRhY3RQaWNr
ZXJDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKyAgICBib29sIGlzU2hvd2luZ0NvbnRh
Y3RQaWNrZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGRpc21pc3NDb250YWN0UGlja2Vy
V2l0aENvbnRhY3RzKEpTVmFsdWVSZWYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBjb21wbGV0ZVRh
c2tBc3luY2hyb25vdXNseUFmdGVyQWN0aXZpdHlTdGF0ZVVwZGF0ZSh1bnNpZ25lZCBjYWxsYmFj
a0lEKTsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJ
U2NyaXB0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDU4NDc5NzZmMjE4NTdmNTNmNDg1ZWNiMWZi
MWViOTExNzIxYTU2ZGEuLmJiNTRhMmExNjRiYTU4ZGNkYzQ4ZDE2NzZkNDVhOWFjOGNiNDc2NGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9s
bGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENv
bnRyb2xsZXJDb2NvYS5tbQpAQCAtMjI1LDQgKzIyNSwzNiBAQCB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlckNvY29hOjppbnNlcnRBdHRhY2htZW50Rm9yRmlsZVBhdGgoSlNTdHJpbmdSZWYgZmlsZVBh
dGgsCiAgICAgfV07CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZFNo
b3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBVSVNj
cmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soY2FsbGJhY2sp
OworICAgIHdlYlZpZXcoKS5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gXnsKKyAgICAg
ICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4
dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZFNob3dDb250YWN0UGlja2VyKTsKKyAgICB9
OworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRIaWRlQ29udGFjdFBp
Y2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKGNhbGxiYWNrKTsKKyAgICB3ZWJW
aWV3KCkuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayA9IF57CisgICAgICAgIGlmICghbV9j
b250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxs
YmFjayhDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBpY2tlcik7CisgICAgfTsKK30KKworYm9v
bCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6aXNTaG93aW5nQ29udGFjdFBpY2tlcigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHdlYlZpZXcoKS5zaG93aW5nQ29udGFjdFBpY2tlcjsKK30KKwordm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFj
dHMoSlNWYWx1ZVJlZiBjb250YWN0cykKK3sKKyAgICBKU0NvbnRleHQgKmNvbnRleHQgPSBbSlND
b250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOm1fY29udGV4dC0+anNDb250ZXh0
KCldOworICAgIEpTVmFsdWUgKnZhbHVlID0gW0pTVmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjpj
b250YWN0cyBpbkNvbnRleHQ6Y29udGV4dF07CisgICAgW3dlYlZpZXcoKSBfZGlzbWlzc0NvbnRh
Y3RQaWNrZXJXaXRoQ29udGFjdHM6W3ZhbHVlIHRvQXJyYXldXTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYjczYmU5ZjlhOWMyZTVhMjU2YTQ0OTRhNWUwNzA0OWM1YmNiYTM2MS4u
M2YxN2UxOTgwOGM2NTM1YzQ3YWFlMDk3OGEyZWRmNjM2MjUxNDhlMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMwIEBACisyMDIwLTEwLTI2ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4K
KworICAgICAgICBbQ29udGFjdCBQaWNrZXIgQVBJXSBBZGQgc3VwcG9ydCBmb3IgcGlja2VyIFVJ
IG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4MTg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjI3Nz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2ZXJpZnkg
dGhlIHByZXNlbnRhdGlvbiBhbmQgZGlzbWlzc2FsIG9mIGEgY29udGFjdAorICAgICAgICBwaWNr
ZXIgb24gaU9TLiBUaGUgbmV3IHRlc3RzIGFyZSBvbmx5IHJ1biBvbiBpT1MgV0syLCBzaW5jZSB0
aGF0IGlzIHRoZQorICAgICAgICBvbmx5IHBsYXRmb3JtIHdoaWNoIGN1cnJlbnRseSBzdXBwb3J0
cyB0aGUgcHJlc2VudGF0aW9uIG9mIGEgY29udGFjdAorICAgICAgICBwaWNrZXIuIE5vdGUgdGhh
dCB0aGVzZSB0ZXN0cyB3aWxsIGJlIGVuYWJsZWQgb24gbWFjT1MgV0syIG9uY2Ugc3VwcG9ydAor
ICAgICAgICBpcyBhZGRlZCBpbiBhIGZvcnRoY29taW5nIHBhdGNoLgorCisgICAgICAgICogVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qt
YWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRt
bDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBl
ci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdyk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIu
d2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLmRp
c21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKToKKwogMjAyMC0xMC0yNSAgRW1pbGlvIENv
Ym9zIMOBbHZhcmV6ICA8ZW1pbGlvQGNyaXNhbC5pbz4KIAogICAgICAgICBVcGRhdGUgQ1NTT00g
V1BUIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTgxNmVhN2NmNjIwZDY4Y2EzYzA1ZGUz
MjNiYmQ5YmJhZTY2MjI0MS4uZGI1NjkyN2U1MzkwNjk5ZGExMTQ4ZDViMjc4ZDdjOTk4MzE4Mjg3
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC05MCw2ICs5MCwxMSBAQCBmYXN0L2Zvcm1zL2VudGVy
a2V5aGludC1hdHRyaWJ1dGUtdmFsdWVzLmh0bWwgWyBTa2lwIF0KICMgSGlnaGxpZ2h0aW5nIG1h
cmtlZCB0ZXh0IHJhbmdlcyBmcm9tIGxheW91dCB0ZXN0cyBpcyBvbmx5IHN1cHBvcnRlZCBpbiBX
ZWJLaXQyLgogZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi1oaWdobGlnaHRzLmh0bWwgWyBTa2lw
IF0KIAorIyBDb2NvYSBXSzIgb25seS4gT3RoZXIgcGxhdGZvcm1zIGRvIG5vdCBwcmVzZW50IGEg
Y29udGFjdCBwaWNrZXIgVUkuCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXIt
ZGlzbWlzc2luZy1waWNrZXIuaHRtbCBbIFNraXAgXQorY29udGFjdC1waWNrZXIvY29udGFjdHMt
c2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwgWyBTa2lwIF0KK2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsgU2tpcCBdCisKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzLURFTklFRC14c2wtZXh0ZXJuYWwtZW50aXR5LW5vLWxvZ2dpbmcueG1sIFsgU2tpcCBdCiAK
ICMgd2luZG93LnNob3dNb2RhbERpYWxvZyBpcyBvbmx5IHRlc3RlZCBpbiBEdW1wUmVuZGVyVHJl
ZSBvbiBNYWMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0
cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzE4NGFmNjYyNTY3ZjBiNTBmMWI0NWNlMzY0ZTg5
YzNlYTg4YzE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMxIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMu
c2VsZWN0IHN1Y2NlZWRzIGFmdGVyIGFub3RoZXIgY2FsbCB0byBuYXZpZ2F0b3IuY29udGFjdHMu
c2VsZWN0IHdhcyBjb21wbGV0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
ZXJmb3JtaW5nIGZpcnN0IGNvbnRhY3RzIHJlcXVlc3QuCitQQVNTIGFyZUFycmF5c0VxdWFsKGNv
bnRhY3QxLm5hbWUsIGFkZHJlc3NCb29rWzBdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSBpcyB0cnVlCitQQVNT
IGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSBpcyB0cnVl
CitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUp
IGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29r
WzFdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBh
cmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVl
CitQQVNTIGNvbnRhY3QzLmVtYWlsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNv
bnRhY3QzLnRlbCwgYWRkcmVzc0Jvb2tbMl0udGVsKSBpcyB0cnVlCitQQVNTIGZpbmlzaGVkQ29u
dGFjdFNlbGVjdGlvbiBiZWNhbWUgdHJ1ZQorCitQZXJmb3JtaW5nIHNlY29uZCBjb250YWN0cyBy
ZXF1ZXN0LgorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1sw
XS5uYW1lKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRy
ZXNzQm9va1swXS5lbWFpbCkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS50
ZWwsIGFkZHJlc3NCb29rWzBdLnRlbCkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250
YWN0Mi5uYW1lLCBhZGRyZXNzQm9va1sxXS5uYW1lKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0Vx
dWFsKGNvbnRhY3QyLmVtYWlsLCBhZGRyZXNzQm9va1sxXS5lbWFpbCkgaXMgdHJ1ZQorUEFTUyBj
b250YWN0Mi50ZWwubGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMubmFt
ZSwgYWRkcmVzc0Jvb2tbMl0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBjb250YWN0My5lbWFpbC5sZW5n
dGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0My50ZWwsIGFkZHJlc3NCb29rWzJd
LnRlbCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitTaG93IGNvbnRhY3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBp
Y2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRtbCBiL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBp
Y2tlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNGM4ZWQzMzg5YTE4MmI3ZTBiOWI5Njg2ZmNhMWU0MDg4
M2M5OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250
YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRtbApAQCAtMCwwICsxLDc3IEBA
Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6
Q29udGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7
CisgICAgICAgIGZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbiA9IGZhbHNlOworCisgICAgICAgIGNv
bnN0IGFkZHJlc3NCb29rID0gWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogWyJQZXJzb24gQSJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmFAd2Vi
a2l0Lm9yZyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjU1NS01NTU1Il0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBC
Il0sCisgICAgICAgICAgICAgICAgImVtYWlsIjogWyJwZXJzb24uYkB3ZWJraXQub3JnIiwgInBl
cnNvbi5iLmFsdEB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24gQyJdLAorICAgICAgICAgICAgICAgICJ0
ZWwiOiBbIjc3Ny03Nzc3Il0sCisgICAgICAgICAgICB9CisgICAgICAgIF07CisKKyAgICAgICAg
YXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IHN1
Y2NlZWRzIGFmdGVyIGFub3RoZXIgY2FsbCB0byBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IHdh
cyBjb21wbGV0ZWQuXG4iKTsKKworICAgICAgICAgICAgY29uc3QgY29udGFjdHNCdXR0b24gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFjdHMiKTsKKyAgICAgICAgICAgIGNvbnRhY3Rz
QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4geworICAgICAgICAg
ICAgICAgIGlmIChmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAg
ICAgZGVidWcoIlxuUGVyZm9ybWluZyBzZWNvbmQgY29udGFjdHMgcmVxdWVzdC4iKQorICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJQZXJmb3JtaW5n
IGZpcnN0IGNvbnRhY3RzIHJlcXVlc3QuIikKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBjb25zdCByZXF1ZXN0ID0gbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbIm5hbWUi
LCAiZW1haWwiLCAidGVsIl0pOworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2Fp
dEZvckNvbnRhY3RQaWNrZXJUb1Nob3coKTsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5kaXNt
aXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisgICAgICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUoKTsKKworICAgICAg
ICAgICAgICAgIGNvbnRhY3RzID0gYXdhaXQgcmVxdWVzdDsKKworICAgICAgICAgICAgICAgIGNv
bnRhY3QxID0gY29udGFjdHNbMF07CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVB
cnJheXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFk
ZHJlc3NCb29rWzBdLmVtYWlsKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJl
QXJyYXlzRXF1YWwoY29udGFjdDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwpIik7CisKKyAgICAg
ICAgICAgICAgICBjb250YWN0MiA9IGNvbnRhY3RzWzFdOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFt
ZSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRh
Y3QyLmVtYWlsLCBhZGRyZXNzQm9va1sxXS5lbWFpbCkiKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9OdW1iZXIoImNvbnRhY3QyLnRlbC5sZW5ndGgiLCAwKTsKKworICAgICAgICAg
ICAgICAgIGNvbnRhY3QzID0gY29udGFjdHNbMl07CisgICAgICAgICAgICAgICAgc2hvdWxkQmVU
cnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSIp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMuZW1haWwu
bGVuZ3RoIiwgMCk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVh
bChjb250YWN0My50ZWwsIGFkZHJlc3NCb29rWzJdLnRlbCkiKTsKKworICAgICAgICAgICAgICAg
IGlmIChmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVt
ZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbiIsICJ0cnVl
IiwgcmVzb2x2ZSkpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50
KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9u
bG9hZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRh
Y3RzPC9idXR0b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODhhYzdjNTE0YWE2N2Q1MzJkYTYwYjIzZjQyZjM3YmZjNjBiNzNlYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9y
LmNvbnRhY3RzLnNlbGVjdCBwcmVzZW50cyBhIGNvbnRhY3QgcGlja2VyIGFuZCByZXR1cm5zIHRo
ZSBzZWxlY3RlZCBjb250YWN0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgY29udGFjdHMubGVuZ3RoIGlzIDMKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFt
ZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250
YWN0MS5lbWFpbCwgYWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29udGFjdDEu
dGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJl
c3NCb29rWzFdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1h
aWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QyLnRlbC5sZW5n
dGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1sy
XS5uYW1lKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QzLmVtYWlsLmxlbmd0aCBpcyAwCitQQVNTIGNv
bnRhY3QzLnRlbC5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitTaG93IGNvbnRhY3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdo
aWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDY3YjU5Y2Zl
NDhiNzk1MGQ4ZTAyMTg4MDA5YWNmYjFlZDA3NDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlj
a2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhh
dCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIHdoZW4gYSBjb250YWN0IHBpY2tlciBp
cyBhbHJlYWR5IGJlaW5nIGRpc3BsYXllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgY29udGFjdHMubGVuZ3RoIGlzIDEKK1BBU1MgY29udGFjdC5uYW1lWzBdIGlzICJQ
ZXJzb24gQSIKK1BBU1MgcmVzdWx0c1sxXSBpcyAiSW52YWxpZFN0YXRlRXJyb3IiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13
aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODdhYTc3MzMwNDBlZTRjMzVlZWY3OWUyMjNmNDQwNTc1ZmRiYmM2MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVz
ZW50aW5nLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxl
ZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBhZGRy
ZXNzQm9vayA9IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVy
c29uIEEiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBlcnNvbi5hQHdlYmtpdC5vcmci
XSwKKyAgICAgICAgICAgICAgICAidGVsIjogWyI1NTUtNTU1NSJdCisgICAgICAgICAgICB9LAor
ICAgICAgICBdOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7
CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdh
dG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyB3aGVuIGEgY29udGFjdCBwaWNrZXIgaXMgYWxyZWFk
eSBiZWluZyBkaXNwbGF5ZWQuXG4iKTsKKworICAgICAgICAgICAgY29uc3QgY29udGFjdHNCdXR0
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFjdHMiKTsKKyAgICAgICAgICAgIGNv
bnRhY3RzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4geworICAg
ICAgICAgICAgICAgIGNvbnN0IHByb21pc2UxID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbJ25h
bWUnXSkudGhlbihyZXNvbHZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3QoZS5tZXNzYWdlKSk7CisgICAgICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlMiA9IG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5j
b250YWN0cy5zZWxlY3QoWyduYW1lJ10pLnRoZW4oY29udGFjdHMgPT4gcmVqZWN0KCJFeHBlY3Rl
ZCBmYWlsdXJlLiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAuY2F0Y2goZSA9PiByZXNvbHZlKGUubmFtZSkpOworICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNr
ZXJUb1Nob3coKTsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFjdFBpY2tl
cldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUoKTsKKworICAgICAgICAgICAgICAgIHJlc3Vs
dHMgPSBhd2FpdCBQcm9taXNlLmFsbChbcHJvbWlzZTEsIHByb21pc2UyXSk7CisgICAgICAgICAg
ICAgICAgY29udGFjdHMgPSByZXN1bHRzWzBdOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb051bWJlcigiY29udGFjdHMubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICAgICAgY29udGFj
dCA9IGNvbnRhY3RzWzBdOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
Y29udGFjdC5uYW1lWzBdIiwgIlBlcnNvbiBBIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZXN1bHRzWzFdIiwgIkludmFsaWRTdGF0ZUVycm9yIik7CisKKyAgICAg
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9
KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3Rz
QnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5U
ZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0
b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFj
dC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmYzODdmNTZlMGJlYzcwODIxMWI3
ZjZkYjNlYmQyM2Y4MjExY2JkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFj
dC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNr
ZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAg
IGNvbnN0IGFkZHJlc3NCb29rID0gWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogWyJQZXJzb24gQSJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmFA
d2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjU1NS01NTU1Il0KKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNv
biBCIl0sCisgICAgICAgICAgICAgICAgImVtYWlsIjogWyJwZXJzb24uYkB3ZWJraXQub3JnIiwg
InBlcnNvbi5iLmFsdEB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24gQyJdLAorICAgICAgICAgICAgICAg
ICJ0ZWwiOiBbIjc3Ny03Nzc3Il0sCisgICAgICAgICAgICB9CisgICAgICAgIF07CisKKyAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0
IHByZXNlbnRzIGEgY29udGFjdCBwaWNrZXIgYW5kIHJldHVybnMgdGhlIHNlbGVjdGVkIGNvbnRh
Y3RzLlxuIik7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRhY3RzIik7CisgICAgICAgICAgICBjb250YWN0c0J1dHRvbi5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICBj
b25zdCBjb250YWN0c1JlcXVlc3QgPSBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFtZSIs
ICJlbWFpbCJdLCB7IG11bHRpcGxlOiB0cnVlIH0pOworICAgICAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KCk7CisKKyAgICAgICAgICAgICAgICBV
SUhlbHBlci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisK
KyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlk
ZSgpOworCisgICAgICAgICAgICAgICAgY29udGFjdHMgPSBhd2FpdCBjb250YWN0c1JlcXVlc3Q7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0cy5sZW5ndGgi
LCAzKTsKKworICAgICAgICAgICAgICAgIGNvbnRhY3QxID0gY29udGFjdHNbMF07CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRy
ZXNzQm9va1swXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJy
YXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDEudGVsLmxlbmd0aCIsIDAp
OworCisgICAgICAgICAgICAgICAgY29udGFjdDIgPSBjb250YWN0c1sxXTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NC
b29rWzFdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNF
cXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIik7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0Mi50ZWwubGVuZ3RoIiwgMCk7CisK
KyAgICAgICAgICAgICAgICBjb250YWN0MyA9IGNvbnRhY3RzWzJdOworICAgICAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDMubmFtZSwgYWRkcmVzc0Jvb2tb
Ml0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImNvbnRh
Y3QzLmVtYWlsLmxlbmd0aCIsIDApOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051
bWJlcigiY29udGFjdDMudGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChjb250YWN0c0J1dHRvbik7CisgICAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBvbmxvYWQ9cnVuVGVzdCgpPgorICAgICAgICA8
YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBjb250YWN0czwvYnV0dG9uPgorICAgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAzOGUyNTE5YjBlOTE2ZTdmN2JjY2QxNWQ2MGIwMmNlMTAxNjY2ZDE4Li4xMzQ0OTQ4
MWIyZmEwYjRlMThkNjNkMjE2YTI4MmVkM2MwNWI3MTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw5IEBAIGNvbXBvc2l0
aW5nL3NoYXJlZC1iYWNraW5nL292ZXJmbG93LXNjcm9sbCBbIFBhc3MgXQogY29tcG9zaXRpbmcv
c2Nyb2xsaW5nL2FzeW5jLW92ZXJmbG93LXNjcm9sbGluZyBbIFBhc3MgXQogY29tcG9zaXRpbmcv
c2Nyb2xsaW5nL2FzeW5jLW92ZXJmbG93LXNjcm9sbGluZy9tYWMgWyBTa2lwIF0KIGNvbXBvc2l0
aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlIFsgUGFzcyBdCitjb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRtbCBbIFBhc3MgXQor
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0
bWwgWyBQYXNzIF0KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsgUGFzcyBd
CiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lvcyBbIFBh
c3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcwppbmRleCA1ZDgxYjc1MGQ2NTg4NDk2ZWQ2MTdmNzZkZDEyYmM2NGUzYThkMDc4Li5mZjNl
NTE3Njc3M2IxZWY1N2NhNmRhZDkyMmQ1YWYzMjhjODNlZTFhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91
aS1oZWxwZXIuanMKQEAgLTEzODYsNiArMTM4Niw0NCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFz
cyBVSUhlbHBlciB7CiAgICAgICAgICAgICAgICAgfSkoKTtgLCByZXN1bHQgPT4gcmVzb2x2ZShy
ZXN1bHQgPT09ICJ0cnVlIikpOwogICAgICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgd2Fp
dEZvckNvbnRhY3RQaWNrZXJUb1Nob3coKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2Vi
S2l0MigpKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCF1aUNvbnRyb2xsZXIuaXNTaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxi
YWNrID0gKCkgPT4gdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2Ny
aXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIHN0YXRpYyB3YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpCisg
ICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkpCisgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUg
PT4geworICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAg
ICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlz
U2hvd2luZ0NvbnRhY3RQaWNrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNj
cmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAg
ICAgfSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlz
bWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoY29udGFjdHMpCisgICAgeworICAgICAgIGNv
bnN0IHNjcmlwdCA9IGAoKCkgPT4gdWlDb250cm9sbGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0
aENvbnRhY3RzKCR7SlNPTi5zdHJpbmdpZnkoY29udGFjdHMpfSkpKClgOworICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCBy
ZXNvbHZlKSk7CisgICAgfQogfQogCiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFz
cyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412554</attachid>
            <date>2020-10-28 11:43:44 -0700</date>
            <delta_ts>2020-10-28 12:28:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218189-20201028144343.patch</filename>
            <type>text/plain</type>
            <size>70783</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2N2QyMmEwMTdmODAwNzI1
YTlhYWMwYjM1ZTM3NDFjYTZjOTRkNjIuLjZjMjRhNWNjOTk1MWZjNTg2ZmZkYzA4NzU0ODllMGJj
YjMxYTg3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBB
UEldIEFkZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzY5ODYyMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKSBzaG91bGQgcHJlc2VudCBhIGNvbnRhY3Qg
cGlja2VyIG9uIHBsYXRmb3JtcworICAgICAgICB3aGljaCBzdXBwb3J0IG9uZS4gVGhpcyBwYXRj
aCBlbmFibGVzIHRoZSBlbmQtdG8tZW5kIGZ1bmN0aW9uYWxpdHkgb24KKyAgICAgICAgaU9TLCBw
cmVzZW50aW5nIGEgY29udGFjdCBwaWNrZXIgdXBvbiBhIGNhbGwgdG8gdGhlIEFQSSBhbmQgcmV0
dXJuaW5nCisgICAgICAgIHRoZSBzZWxlY3RlZCBjb250YWN0cyB1cG9uIGRpc21pc3NhbC4KKwor
ICAgICAgICBUZXN0czogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21p
c3NpbmctcGlja2VyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sCisgICAgICAgICAgICAgICBjb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbAorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQ29udGFjdHNV
SVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9kaWREaXNtaXNzQ29udGFjdFBpY2tlcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc21p
c3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XS0NvbnRhY3RQaWNrZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dL
Q29udGFjdFBpY2tlci5tbTogQWRkZWQuCisKKyAgICAgICAgV0tDb250YWN0UGlja2VyIGlzIGEg
V2ViS2l0IHdyYXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLgorCisg
ICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgaW5pdFdpdGhDb250YWN0UGlja2Vy
RGVsZWdhdGU6XSk6CisKKyAgICAgICAgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBpcyB3cmFw
cGVyIGFyb3VuZCBDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZS4KKyAgICAgICAgVGhpcyBpcyBuZWNl
c3NhcnkgYXMgc2luZ2xlL211bHRpcGxlIHNlbGVjdGlvbiBpbiBhCisgICAgICAgIENOQ29udGFj
dFBpY2tlclZpZXdDb250cm9sbGVyIGlzIGRldGVybWluZWQgYnkgd2hpY2ggZGVsZWdhdGUgbWV0
aG9kcworICAgICAgICBhcmUgaW1wbGVtZW50ZWQuIFRoZSB0d28gc3BlY2lhbGl6YXRpb25zIG9m
IHRoaXMgY2xhc3MgaW5jbHVkZSB0aGUKKyAgICAgICAgbWV0aG9kcyBuZWNlc3NhcnkgdG8gcHJl
c2VudCBhIHNpbmdsZS1zZWxlY3QgYW5kIG11bHRpLXNlbGVjdCBwaWNrZXIKKyAgICAgICAgcmVz
cGVjdGl2ZWx5LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgY29udGFj
dFBpY2tlckRpZENhbmNlbDpdKToKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJTaW5nbGVT
ZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRpZFNlbGVjdENvbnRhY3Q6XSk6CisgICAgICAg
ICgtW1dLQ05Db250YWN0UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRp
ZFNlbGVjdENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIHNldERlbGVnYXRlOl0pOgorICAgICAgICAo
LVtXS0NvbnRhY3RQaWNrZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQ
aWNrZXIgcHJlc2VudFdpdGhSZXF1ZXN0RGF0YTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6XSk6CisKKyAgICAg
ICAgVGhpcyBkZWxlZ2F0ZSBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHBpY2tlciBpcyBkaXNt
aXNzZWQgYnkKKyAgICAgICAgdGFwcGluZyB0aGUgZG9uZSBidXR0b24gb3Igd2hlbiB0aGUgcGlj
a2VyIGlzIGRpc21pc3NlZCBieSBzd2lwaW5nCisgICAgICAgIGRvd24uCisKKyAgICAgICAgKC1b
V0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdDpdKToKKyAgICAg
ICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdHM6XSk6
CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdFBpY2tlckRpZERpc21pc3NXaXRo
Q29udGFjdEluZm86XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdEluZm9G
cm9tQ05Db250YWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhD
b250YWN0czpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0c0Zyb21KU0Nv
bnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3Nob3dDb250YWN0UGlja2VyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50Ol0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpdKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0yOCAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUg
c29mdCBsaW5raW5nIG9mIENvbnRhY3RzLmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCA1YzlhZWQ0NDczOTNjMjc1NDEzN2FhMmQ0
ZWIzNzQ1MzQxYTgzMTYwLi5jNmJlMmViZjRiN2NlODliMGIzYTQ4YjllYTgxMzE4MDRlOGQyM2U4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAt
NTYsOCArNTYsMTQgQEAgV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfaXBob25lc2ltdWxh
dG9yID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsKIFdLX0NPTlRBQ1RTX0xERkxBR1Mg
PSAkKFdLX0NPTlRBQ1RTX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19DT05UQUNU
U19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBDb250YWN0czsKIFdLX0NPTlRBQ1RTX0xE
RkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWZyYW1ld29yayBDb250YWN0czsKK1dLX0NPTlRBQ1RT
X0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIENvbnRhY3RzOwogV0tfQ09OVEFDVFNf
TERGTEFHU19tYWNvc3ggPSAtd2Vha19mcmFtZXdvcmsgQ29udGFjdHM7CiAKK1dLX0NPTlRBQ1RT
X1VJX0xERkxBR1MgPSAkKFdLX0NPTlRBQ1RTX1VJX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1F
KSk7CitXS19DT05UQUNUU19VSV9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBDb250YWN0
c1VJOworV0tfQ09OVEFDVFNfVUlfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3Jr
IENvbnRhY3RzVUk7CitXS19DT05UQUNUU19VSV9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1l
d29yayBDb250YWN0c1VJOworCiBXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUyA9ICQo
V0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOwogV0tf
UlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUnVu
bmluZ0JvYXJkU2VydmljZXM7CiAKQEAgLTEyMyw3ICsxMjksNyBAQCBXS19BVVRIS0lUX0xERkxB
R1NfSU9TX1NJTkNFXzEzID0gLWZyYW1ld29yayBBdXRoS2l0OwogV0tfQVVUSEtJVF9MREZMQUdT
X21hY29zeCA9ICQoV0tfQVVUSEtJVF9MREZMQUdTJChXS19NQUNPU18xMDE1KSk7CiBXS19BVVRI
S0lUX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTAxNSA9IC1mcmFtZXdvcmsgQXV0aEtpdDsKIAotRlJB
TUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsg
LWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAt
ZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxB
R1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfQ09OVEFDVFNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFH
UykgJChXS19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9Q
UkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldF
QlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9C
SUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dT
SU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRf
TERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJ
X0xERkxBR1MpOworRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1l
d29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRh
dGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3
b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NF
U1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERGTEFHUykgJChXS19DT05UQUNUU19VSV9M
REZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRf
TERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFH
UykgJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERG
TEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQo
V0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZM
QUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChX
S19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7CiAKIC8v
IFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRv
ciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWlu
ZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53
bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJD
b3JlMTJQb2xpY3lBY3Rpb25FRUVDMkVPUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
Wk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRU9TNF8gLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEy
UG9saWN5QWN0aW9uRUVFYVNFRG4gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTktTdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWNsRVMyXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lB
Y3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRVJLUzRfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFj
dGlvbkVFRUMyRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVu
Y3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVF
RDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdX
ZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0lj
RUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzE0YmFzaWNfaW9zdHJlYW1J
Y1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3Ry
aW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9OU18x
M2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRUTlN0
M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0
b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTViYXNpY19z
dHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNf
MTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRz
SWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQ29udGFjdHNVSVNQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0NvbnRhY3RzVUlTUEkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NDJhZmE3NWIxN2QyYTczMDhlMjY0NDkwOTc2MWU0NmI5OGQ1NzVhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0NvbnRhY3RzVUlTUEkuaApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxDb250YWN0c1VJL0NOQ29udGFjdFBpY2tlclZpZXdD
b250cm9sbGVyX1ByaXZhdGUuaD4KKworI2Vsc2UKKworQGludGVyZmFjZSBDTkNvbnRhY3RQaWNr
ZXJWaWV3Q29udHJvbGxlciAoKQorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5n
ICpwcm9tcHQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CmluZGV4IGY2OWEyZGQzOWIwZTFlMjBjMWJiZmMxM2E1ZDQ0MTU5Mzc5
MjBiZmQuLjAzNzI4MGI4ZDAzM2RjOWI2NWVjMjJkZDVjYzJhYzFhOWU1OTdmNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKQEAgLTM5NCw2ICszOTQsNyBAQCBVSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KK1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIubW0K
IFVJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tGdWxs
S2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVy
cm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKaW5kZXgg
YjFjZGU3MDdhZDVhY2U1YzNiNzViYmVhMjM4ZTAyN2Y4ZjliMGE0MS4uODYyYjk0ODVlZjM4OTRl
NDQ1ODc3ZjUxNjM1ZmE3OGQzY2NkODRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgK
QEAgLTU4LDYgKzU4LDEwIEBAIHR5cGVkZWYgZW51bSB7CiAKIC0gKHZvaWQpX3NldFNoYXJlU2hl
ZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uRm9yVGVzdGluZzooQk9PTClyZXNv
bHZlZDsKIAorLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXI7CistICh2b2lkKV9kaWRE
aXNtaXNzQ29udGFjdFBpY2tlcjsKKy0gKHZvaWQpX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENv
bnRhY3RzOihOU0FycmF5ICopY29udGFjdHM7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9zY3JvbGxp
bmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCiAtICh2b2lkKV9wcm9jZXNzV2lsbFN1c3Bl
bmRGb3JUZXN0aW5nOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0K
aW5kZXggMWIyYzYyYzVkNDJjMjFkYWVlOTQzZDNmOWQ4MzBiYTc1MjlkNTA4OS4uNTIzYTM0OTU5
NzNmNjNkN2E3MTFhMzllNGQ4N2FlMDk1YThjMDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAgLTI5Niw0ICsy
OTYsMjEgQEAgLSAoTlNOdW1iZXIgKilfc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyCiAgICAg
cmV0dXJuIEAoX3BhZ2UtPnN1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlcigpKTsKIH0KIAorLSAo
dm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXIKK3sKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0
byBvdmVycmlkZS4KK30KKworLSAodm9pZClfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXIKK3sKKyAg
ICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClfZGlzbWlzc0Nv
bnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworeworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVU
VikKKyAgICBbX2NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpj
b250YWN0c107CisjZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODVmZDFhZjI4YjM0NTQ5MWM5
ZGM0OTBjNjQ2ZTgwMTY2M2MzNzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9S
TShBUFBMRVRWKQorCitAY2xhc3MgV0tXZWJWaWV3OworQHByb3RvY29sIFdLQ29udGFjdFBpY2tl
ckRlbGVnYXRlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQ29udGFjdEluZm87Citz
dHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKK30KKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNr
ZXIgOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS1dlYlZpZXcg
Kil2aWV3OworCistICh2b2lkKXByZXNlbnRXaXRoUmVxdWVzdERhdGE6KGNvbnN0IFdlYkNvcmU6
OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiYmKT4m
Jiljb21wbGV0aW9uSGFuZGxlcjsKKworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkPFdL
Q29udGFjdFBpY2tlckRlbGVnYXRlPiBkZWxlZ2F0ZTsKKworQGVuZAorCitAcHJvdG9jb2wgV0tD
b250YWN0UGlja2VyRGVsZWdhdGUgPE5TT2JqZWN0PgorQG9wdGlvbmFsCistICh2b2lkKWNvbnRh
Y3RQaWNrZXJEaWRQcmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKiljb250YWN0UGlja2VyOworLSAo
dm9pZCljb250YWN0UGlja2VyRGlkRGlzbWlzczooV0tDb250YWN0UGlja2VyICopY29udGFjdFBp
Y2tlcjsKK0BlbmQKKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgKFdLVGVzdGluZykKKy0g
KHZvaWQpZGlzbWlzc1dpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRhY3RzOworQGVuZAorCisj
ZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRkMWRhMWNlMGQ1YjM0MjU3YzVkYTM1ZDdjY2FjYzdhYjA2NWEwZmEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIubW0K
QEAgLTAsMCArMSwyOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV0tDb250YWN0UGlja2VyLmgiCisKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBM
QVRGT1JNKEFQUExFVFYpCisKKyNpbXBvcnQgPENvbnRhY3RzL0NvbnRhY3RzLmg+CisjaW1wb3J0
IDxDb250YWN0c1VJL0NvbnRhY3RzVUkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29udGFjdEluZm8u
aD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorI2ltcG9ydCAiQ29udGFjdHNVSVNQSS5oIgorI2ltcG9ydCAiVUlLaXRT
UEkuaCIKKyNlbmRpZgorCisjcHJhZ21hIG1hcmsgLSBEZWxlZ2F0ZSBXcmFwcGVycworCitAaW50
ZXJmYWNlIFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgOiBOU09iamVjdDxDTkNvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZT4geworQHByb3RlY3RlZAorICAgIFdlYWtPYmpDUHRyPGlkPENOQ29udGFjdFBp
Y2tlckRlbGVnYXRlPj4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOihpZDxDTkNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZT4pY29udGFjdFBpY2tlckRlbGVnYXRlOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
S0NOQ29udGFjdFBpY2tlckRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZTooaWQ8Q05Db250YWN0UGlja2VyRGVsZWdhdGU+KWNvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICBy
ZXR1cm4gbmlsOworCisgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9IGNvbnRhY3RQaWNrZXJE
ZWxlZ2F0ZTsKKworICAgIHJldHVybiBzZWxmOworfQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZENhbmNlbDooQ05Db250YWN0UGlja2VyVmlld0Nv
bnRyb2xsZXIgKilwaWNrZXIKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0
UGlja2VyRGlkQ2FuY2VsOnBpY2tlcl07Cit9CisjZW5kaWYKKworQGVuZAorCitAaW50ZXJmYWNl
IFdLQ05Db250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUgOiBXS0NOQ29udGFjdFBpY2tl
ckRlbGVnYXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBpY2tlclNpbmds
ZVNlbGVjdERlbGVnYXRlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorLSAodm9pZCljb250
YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxl
Y3RDb250YWN0OihDTkNvbnRhY3QgKiljb250YWN0Cit7CisgICAgW19jb250YWN0UGlja2VyRGVs
ZWdhdGUgY29udGFjdFBpY2tlcjpwaWNrZXIgZGlkU2VsZWN0Q29udGFjdDpjb250YWN0XTsKK30K
KyNlbmRpZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVj
dERlbGVnYXRlIDogV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZQorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlCisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3
Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0czooTlNBcnJheTxDTkNvbnRhY3Qq
PiAqKWNvbnRhY3RzCit7CisgICAgW19jb250YWN0UGlja2VyRGVsZWdhdGUgY29udGFjdFBpY2tl
cjpwaWNrZXIgZGlkU2VsZWN0Q29udGFjdHM6Y29udGFjdHNdOworfQorI2VuZGlmCisKK0BlbmQK
KworI3ByYWdtYSBtYXJrIC0gV0tDb250YWN0UGlja2VyCisKK0BpbnRlcmZhY2UgV0tDb250YWN0
UGlja2VyICgpIDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdLQ29udGFjdFBpY2tlciB7CisgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBfd2ViVmll
dzsKKyAgICBXZWFrT2JqQ1B0cjxpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0
ZTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpDb250YWN0UHJvcGVydHk+IF9wcm9wZXJ0aWVzOwor
ICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+JiYpPiBfY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBSZXRhaW5QdHI8V0tDTkNvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZT4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIFJldGFpblB0cjxDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcj4gX2Nv
bnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorfQorCistIChpZDxXS0NvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2RlbGVnYXRlLmdldCgpLmdl
dCgpOworfQorCistICh2b2lkKXNldERlbGVnYXRlOihpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0
ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldworeworICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlZpZXcgPSB2
aWV3OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcHJlc2VudFdpdGhSZXF1ZXN0
RGF0YTooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERhdGEgY29t
cGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6Q29udGFjdEluZm8+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3Byb3BlcnRp
ZXMgPSByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzOworICAgIF9jb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOworCisgICAgaWYgKHJlcXVlc3REYXRhLm11bHRpcGxl
KQorICAgICAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gYWRvcHROUyhbW1dLQ05Db250YWN0
UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb250YWN0UGlja2VyRGVs
ZWdhdGU6c2VsZl0pOworICAgIGVsc2UKKyAgICAgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tXS0NOQ29udGFjdFBpY2tlclNpbmdsZVNlbGVjdERlbGVnYXRlIGFsbG9jXSBp
bml0V2l0aENvbnRhY3RQaWNrZXJEZWxlZ2F0ZTpzZWxmXSk7CisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIF9jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbQ05D
b250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbX2NvbnRhY3RQ
aWNrZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpfY29udGFjdFBpY2tlckRlbGVnYXRlLmdl
dCgpXTsKKyAgICBbX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciBzZXRQcm9tcHQ6cmVxdWVz
dERhdGEudXJsXTsKKworICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRhdGlvblZpZXdDb250
cm9sbGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblBy
ZXNlbnRhdGlvbkZyb21WaWV3Ol93ZWJWaWV3LmdldCgpLmdldCgpXTsKKyAgICBbcHJlc2VudGF0
aW9uVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOl9jb250YWN0UGlja2VyVmll
d0NvbnRyb2xsZXIuZ2V0KCkgYW5pbWF0ZWQ6WUVTIGNvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vh
a09iakNQdHI8V0tDb250YWN0UGlja2VyPihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9uZ1Nl
bGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGlmIChbW3N0cm9uZ1NlbGYgZGVsZWdhdGVdIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGFjdFBpY2tlckRpZFByZXNlbnQ6KV0pCisgICAgICAg
ICAgICBbW3N0cm9uZ1NlbGYgZGVsZWdhdGVdIGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50OnN0cm9u
Z1NlbGYuZ2V0KCldOworICAgIH1dOworI2VuZGlmCit9CisKKyNwcmFnbWEgbWFyayAtIENvbXBs
ZXRpb24KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy0gKHZvaWQpY29udGFjdFBpY2tl
ckRpZENhbmNlbDooQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgKilwaWNrZXIKK3sKKyAg
ICBWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+IGluZm87CisgICAgW3NlbGYgX2NvbnRhY3RQ
aWNrZXJEaWREaXNtaXNzV2l0aENvbnRhY3RJbmZvOldURk1vdmUoaW5mbyldOworfQorCistICh2
b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyICopcGlja2Vy
IGRpZFNlbGVjdENvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6Q29udGFjdEluZm8+IGluZm87CisgICAgaW5mby5hcHBlbmQoW3NlbGYgX2NvbnRhY3RJ
bmZvRnJvbUNOQ29udGFjdDpjb250YWN0XSk7CisgICAgW3NlbGYgX2NvbnRhY3RQaWNrZXJEaWRE
aXNtaXNzV2l0aENvbnRhY3RJbmZvOldURk1vdmUoaW5mbyldOworfQorCistICh2b2lkKWNvbnRh
Y3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNlbGVj
dENvbnRhY3RzOihOU0FycmF5PENOQ29udGFjdCo+ICopY29udGFjdHMKK3sKKyAgICBWZWN0b3I8
V2ViQ29yZTo6Q29udGFjdEluZm8+IGluZm87CisgICAgZm9yIChDTkNvbnRhY3QgKmNvbnRhY3Qg
aW4gY29udGFjdHMpCisgICAgICAgIGluZm8uYXBwZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21D
TkNvbnRhY3Q6Y29udGFjdF0pOworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dp
dGhDb250YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworI2VuZGlmCisKKy0gKHZvaWQpX2Nv
bnRhY3RQaWNrZXJEaWREaXNtaXNzV2l0aENvbnRhY3RJbmZvOihWZWN0b3I8V2ViQ29yZTo6Q29u
dGFjdEluZm8+JiYpaW5mbworeworICAgIF9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluZm8p
KTsKKworICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29u
dGFjdFBpY2tlckRpZERpc21pc3M6KV0pCisgICAgICAgIFtfZGVsZWdhdGUgY29udGFjdFBpY2tl
ckRpZERpc21pc3M6c2VsZl07Cit9CisKKy0gKFdlYkNvcmU6OkNvbnRhY3RJbmZvKV9jb250YWN0
SW5mb0Zyb21DTkNvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBXZWJDb3JlOjpD
b250YWN0SW5mbyBjb250YWN0SW5mbzsKKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhX
ZWJDb3JlOjpDb250YWN0UHJvcGVydHk6Ok5hbWUpKSB7CisgICAgICAgIE5TU3RyaW5nICpjb250
YWN0TmFtZSA9IFtDTkNvbnRhY3RGb3JtYXR0ZXIgc3RyaW5nRnJvbUNvbnRhY3Q6Y29udGFjdCBz
dHlsZTpDTkNvbnRhY3RGb3JtYXR0ZXJTdHlsZUZ1bGxOYW1lXTsKKyAgICAgICAgY29udGFjdElu
Zm8ubmFtZSA9IHsgY29udGFjdE5hbWUgfTsKKyAgICB9CisKKyAgICBpZiAoX3Byb3BlcnRpZXMu
Y29udGFpbnMoV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5OjpFbWFpbCkpIHsKKyAgICAgICAgZm9y
IChDTkxhYmVsZWRWYWx1ZTxOU1N0cmluZyAqPiAqZW1haWxBZGRyZXNzIGluIGNvbnRhY3QuZW1h
aWxBZGRyZXNzZXMpCisgICAgICAgICAgICBjb250YWN0SW5mby5lbWFpbC5hcHBlbmQoZW1haWxB
ZGRyZXNzLnZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAoX3Byb3BlcnRpZXMuY29udGFpbnMoV2Vi
Q29yZTo6Q29udGFjdFByb3BlcnR5OjpUZWwpKSB7CisgICAgICAgIGZvciAoQ05MYWJlbGVkVmFs
dWU8Q05QaG9uZU51bWJlciAqPiAqcGhvbmVOdW1iZXIgaW4gY29udGFjdC5waG9uZU51bWJlcnMp
CisgICAgICAgICAgICBjb250YWN0SW5mby50ZWwuYXBwZW5kKHBob25lTnVtYmVyLnZhbHVlLnN0
cmluZ1ZhbHVlKTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGFjdEluZm87Cit9CisKKyNwcmFn
bWEgbWFyayAtIFRlc3RpbmcKKworLSAodm9pZClkaXNtaXNzV2l0aENvbnRhY3RzOihOU0FycmF5
ICopY29udGFjdHMKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFtfY29udGFjdFBp
Y2tlclZpZXdDb250cm9sbGVyIGRpc21pc3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBs
ZXRpb246W3NlbGYsIHdlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250YWN0UGlja2VyPihzZWxm
KSwganNDb250YWN0cyA9IFJldGFpblB0cjxOU0FycmF5Pihjb250YWN0cyldIHsKKyAgICAgICAg
YXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2Vs
ZikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBbc3Ryb25nU2VsZiBjb250YWN0UGlj
a2VyOl9jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIuZ2V0KCkgZGlkU2VsZWN0Q29udGFjdHM6
W3N0cm9uZ1NlbGYgX2NvbnRhY3RzRnJvbUpTQ29udGFjdHM6anNDb250YWN0cy5nZXQoKV1dOwor
ICAgIH1dOworI2VuZGlmCit9CisKKy0gKE5TQXJyYXk8Q05Db250YWN0Kj4gKilfY29udGFjdHNG
cm9tSlNDb250YWN0czooTlNBcnJheSAqKWpzQ29udGFjdHMKK3sKKyAgICBpZiAoIWpzQ29udGFj
dHMpCisgICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheV07CisKKyAgICBOU011dGFibGVBcnJh
eTxDTkNvbnRhY3QqPiAqY29udGFjdHMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNp
dHk6anNDb250YWN0cy5jb3VudF07CisKKyAgICBOU1ByZWRpY2F0ZSAqc3RyaW5nVmFsdWVQcmVk
aWNhdGUgPSBbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInNlbGYgaXNLaW5kT2ZD
bGFzczogJUAiLCBbTlNTdHJpbmcgY2xhc3NdXTsKKworICAgIGZvciAoaWQganNDb250YWN0IGlu
IGpzQ29udGFjdHMpIHsKKyAgICAgICAgaWYgKCFbanNDb250YWN0IGlzS2luZE9mQ2xhc3M6W05T
RGljdGlvbmFyeSBjbGFzc11dKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgQ05N
dXRhYmxlQ29udGFjdCAqY29udGFjdCA9IFtbW0NOTXV0YWJsZUNvbnRhY3QgYWxsb2NdIGluaXRd
IGF1dG9yZWxlYXNlXTsKKworICAgICAgICBpZCBuYW1lcyA9IFsoTlNEaWN0aW9uYXJ5ICopanND
b250YWN0IG9iamVjdEZvcktleTpAIm5hbWUiXTsKKyAgICAgICAgaWYgKFtuYW1lcyBpc0tpbmRP
ZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKm5h
bWUgaW4gW25hbWVzIGZpbHRlcmVkQXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRp
Y2F0ZV0pIHsKKyAgICAgICAgICAgICAgICBjb250YWN0LmdpdmVuTmFtZSA9IG5hbWU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBp
ZCBlbWFpbHMgPSBbKE5TRGljdGlvbmFyeSAqKWpzQ29udGFjdCBvYmplY3RGb3JLZXk6QCJlbWFp
bCJdOworICAgICAgICBpZiAoW2VtYWlscyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0p
IHsKKyAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPE5TU3RyaW5nKj4q
PiAqZW1haWxBZGRyZXNzZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgICAgICAgICAg
Zm9yIChOU1N0cmluZyAqZW1haWwgaW4gW2VtYWlscyBmaWx0ZXJlZEFycmF5VXNpbmdQcmVkaWNh
dGU6c3RyaW5nVmFsdWVQcmVkaWNhdGVdKSB7CisgICAgICAgICAgICAgICAgQ05MYWJlbGVkVmFs
dWU8TlNTdHJpbmcqPiAqbGFiZWxlZFZhbHVlID0gW0NOTGFiZWxlZFZhbHVlIGxhYmVsZWRWYWx1
ZVdpdGhMYWJlbDpuaWwgdmFsdWU6ZW1haWxdOworICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJl
c3NlcyBhZGRPYmplY3Q6bGFiZWxlZFZhbHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNvbnRhY3QuZW1haWxBZGRyZXNzZXMgPSBlbWFpbEFkZHJlc3NlczsKKyAgICAgICAgfQorCisg
ICAgICAgIGlkIHBob25lTnVtYmVycyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0IG9iamVj
dEZvcktleTpAInRlbCJdOworICAgICAgICBpZiAoW3Bob25lTnVtYmVycyBpc0tpbmRPZkNsYXNz
OltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxl
ZFZhbHVlPENOUGhvbmVOdW1iZXIqPio+ICpudW1iZXJzID0gW05TTXV0YWJsZUFycmF5IGFycmF5
XTsKKyAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKnBob25lTnVtYmVyIGluIFtwaG9uZU51bWJl
cnMgZmlsdGVyZWRBcnJheVVzaW5nUHJlZGljYXRlOnN0cmluZ1ZhbHVlUHJlZGljYXRlXSkgewor
ICAgICAgICAgICAgICAgIENOUGhvbmVOdW1iZXIgKmNuUGhvbmVOdW1iZXIgPSBbQ05QaG9uZU51
bWJlciBwaG9uZU51bWJlcldpdGhTdHJpbmdWYWx1ZTpwaG9uZU51bWJlcl07CisgICAgICAgICAg
ICAgICAgQ05MYWJlbGVkVmFsdWU8Q05QaG9uZU51bWJlcio+ICpsYWJlbGVkVmFsdWUgPSBbQ05M
YWJlbGVkVmFsdWUgbGFiZWxlZFZhbHVlV2l0aExhYmVsOm5pbCB2YWx1ZTpjblBob25lTnVtYmVy
XTsKKyAgICAgICAgICAgICAgICBbbnVtYmVycyBhZGRPYmplY3Q6bGFiZWxlZFZhbHVlXTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRhY3QucGhvbmVOdW1iZXJzID0gbnVtYmVyczsK
KyAgICAgICAgfQorCisgICAgICAgIFtjb250YWN0cyBhZGRPYmplY3Q6Y29udGFjdF07CisgICAg
fQorCisgICAgcmV0dXJuIGNvbnRhY3RzOworfQorCitAZW5kCisKKyNlbmRpZiAvLyAhUExBVEZP
Uk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDc3YWZjYWZjNDA0MGZiOWVjOTg4
YzdmMWFlZDYyZjZlZDE4NTQyZWUuLmJlMDMwMWZiN2NiMThiYWM3Y2RlMzkwZWQzY2YxYTg1NTVi
OThkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCkBAIC0xNzcsNiArMTc3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFuZGxlUnVu
T3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBGcmFtZUluZm9E
YXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXJQcm94eSopIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29y
ZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJD
b3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKSBvdmVycmlkZTsKICAg
ICAKICAgICB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5
KHVpbnQ2NF90IHJlcXVlc3RJRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVTbWFydE1hZ25p
ZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBk
b3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwg
Ym9vbCBub2RlSXNSb290TGV2ZWwpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGFmY2M0NWU5Mzc2ZDczYTY0ZDEy
YTZjYTc5MDVmYTcyNTU2YzVhZWQuLmI2YWI5NjJiNzMzNDM5MjMyYmY3ZGQ5MmM5NmE2YjIxMmMx
YTg2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0KQEAgLTYzOSw2ICs2MzksMTEgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6c2hvd1No
YXJlU2hlZXQoY29uc3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBXVEYKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNr
ZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBbbV9jb250ZW50VmlldyBfc2hv
d0NvbnRhY3RQaWNrZXI6cmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93SW5zcGVjdG9y
SGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OkhpZ2hsaWdodCYgaGln
aGxpZ2h0KQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0Omhp
Z2hsaWdodF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYTcwOGFlZTJjMmVkZjZhN2QxMTUxMWRkYjQyMmFh
ZTcwY2QzNzliMy4uZGNhMDY3MWI5Yzk4YjA1ODBhNWE4NGZlYzJiMzAzY2YwMTA1MDA5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaApAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBv
cnQgIldLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCIKICNpbXBvcnQgIldLQWlyUGxheVJvdXRlUGlj
a2VyLmgiCisjaW1wb3J0ICJXS0NvbnRhY3RQaWNrZXIuaCIKICNpbXBvcnQgIldLRGVmZXJyaW5n
R2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLRmlsZVVwbG9hZFBhbmVsLmgiCiAjaW1w
b3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgiCkBAIC03OSw2ICs4MCw4IEBAIGNsYXNzIENvbG9yOwog
Y2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7Citz
dHJ1Y3QgQ29udGFjdEluZm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBQ
cm9taXNlZEF0dGFjaG1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBl
bnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwpAQCAtMjc0LDYgKzI3
Nyw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgV2ViS2l0OjpGcmFtZUlu
Zm9EYXRhIF9mcmFtZUluZm9Gb3JGaWxlVXBsb2FkUGFuZWw7CiAjaWYgIVBMQVRGT1JNKFdBVENI
T1MpICYmICFQTEFURk9STShBUFBMRVRWKQogICAgIFJldGFpblB0cjxXS1NoYXJlU2hlZXQ+IF9z
aGFyZVNoZWV0OworICAgIFJldGFpblB0cjxXS0NvbnRhY3RQaWNrZXI+IF9jb250YWN0UGlja2Vy
OwogI2VuZGlmCiAgICAgUmV0YWluUHRyPFVJR2VzdHVyZVJlY29nbml6ZXI+IF9wcmV2aWV3R2Vz
dHVyZVJlY29nbml6ZXI7CiAgICAgUmV0YWluUHRyPFVJR2VzdHVyZVJlY29nbml6ZXI+IF9wcmV2
aWV3U2Vjb25kYXJ5R2VzdHVyZVJlY29nbml6ZXI7CkBAIC00MjQsNiArNDI4LDcgQEAgc3RydWN0
IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0lu
dGVyYWN0aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVRleHRBdXRvc2Nyb2xs
aW5nLCBVSVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJVGV4dElucHV0UHJpdmF0ZSwgVUlXZWJG
b3JtQWNjZXNzb3J5RGVsZWdhdGUsIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplckRl
bGVnYXRlLCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnREZWxlZ2F0ZSwgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSwgV0tLZXlib2FyZFNjcm9sbFZp
ZXdBbmltYXRvckRlbGVnYXRlLCBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUK
ICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisgICAgLCBXS0Nv
bnRhY3RQaWNrZXJEZWxlZ2F0ZQogICAgICwgV0tTaGFyZVNoZWV0RGVsZWdhdGUKICNlbmRpZgog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC01MjAsNiArNTI1LDcgQEAgRk9SX0VBQ0hfUFJJ
VkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZP
Ul9XRUJfVklFVykKIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooQk9PTCloYXNW
aWRlbyBmcm9tUmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgcm91dGVT
aGFyaW5nUG9saWN5OihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpcG9saWN5IHJvdXRpbmdD
b250ZXh0VUlEOihOU1N0cmluZyAqKWNvbnRleHRVSUQ7CiAtICh2b2lkKV9zaG93UnVuT3BlblBh
bmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMgZnJhbWVJbmZvOihjb25z
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmKWZyYW1lSW5mbyByZXN1bHRMaXN0ZW5lcjooV2ViS2l0
OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5lcjsKIC0gKHZvaWQpX3No
b3dTaGFyZVNoZWV0Oihjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJilzaGFy
ZURhdGEgaW5SZWN0OihXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pcmVjdCBjb21w
bGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKWNvbXBs
ZXRpb25IYW5kbGVyOworLSAodm9pZClfc2hvd0NvbnRhY3RQaWNrZXI6KGNvbnN0IFdlYkNvcmU6
OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJ
bmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWRpc21pc3NGaWxlUGlja2Vy
OwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdh
c0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9u
SXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC02MjcsNiArNjMzLDcgQEAg
Rk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNl
ckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW07CiAtICh2b2lkKV9k
b0FmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247
CiAtICh2b2lkKV9kb0FmdGVyUmVjZWl2aW5nRWRpdERyYWdTbmFwc2hvdEZvclRlc3Rpbmc6KGRp
c3BhdGNoX2Jsb2NrX3QpYWN0aW9uOworLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRo
Q29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlRm9yVGVzdGluZzsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnNlbGVjdEZvcm1Qb3BvdmVyVGl0bGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCBkN2JkYjNkZDU5OWZiZWViMGM2M2RiNDRlNTJhY2VkNmUwY2U1MGEy
Li4yM2ExYTBkYjdhMTM2YTlmMDFhOTBjZjA2ZTFkMGMxZDJjMWUwM2Y2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTczLDcgKzczLDcgQEAKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJT1MuaCIKICNpbXBvcnQgIldLV2ViVmlld1ByaXZh
dGUuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgiCisjaW1wb3J0
ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rp
b25Db250ZXh0LmgiCiAjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCIKICNpbXBvcnQg
IldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgpAQCAtNjg0OCw2ICs2ODQ4LDM2
IEBAIC0gKHZvaWQpc2hhcmVTaGVldDooV0tTaGFyZVNoZWV0ICopc2hhcmVTaGVldCB3aWxsU2hv
d0FjdGl2aXR5SXRlbXM6KE5TQXJyYXkgKilhCiAKICNlbmRpZgogCistICh2b2lkKV9zaG93Q29u
dGFjdFBpY2tlcjooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERh
dGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcgor
eworI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKyAgICBfY29u
dGFjdFBpY2tlciA9IGFkb3B0TlMoW1tXS0NvbnRhY3RQaWNrZXIgYWxsb2NdIGluaXRXaXRoVmll
dzpzZWxmLndlYlZpZXddKTsKKyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6c2VsZl07
CisgICAgW19jb250YWN0UGlja2VyIHByZXNlbnRXaXRoUmVxdWVzdERhdGE6cmVxdWVzdERhdGEg
Y29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworI2Vsc2UKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworI2VuZGlmCit9CisKKyNpZiAhUExB
VEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCistICh2b2lkKWNvbnRhY3RQaWNr
ZXJEaWRQcmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKiljb250YWN0UGlja2VyCit7CisgICAgQVNT
RVJUKF9jb250YWN0UGlja2VyID09IGNvbnRhY3RQaWNrZXIpOworCisgICAgW193ZWJWaWV3IF9k
aWRQcmVzZW50Q29udGFjdFBpY2tlcl07Cit9CisKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZERp
c21pc3M6KFdLQ29udGFjdFBpY2tlciAqKWNvbnRhY3RQaWNrZXIKK3sKKyAgICBBU1NFUlQoX2Nv
bnRhY3RQaWNrZXIgPT0gY29udGFjdFBpY2tlcik7CisKKyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0
RGVsZWdhdGU6bmlsXTsKKyAgICBfY29udGFjdFBpY2tlciA9IG5pbDsKKworICAgIFtfd2ViVmll
dyBfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXJdOworfQorI2VuZGlmCisKIC0gKE5TU3RyaW5nICop
aW5wdXRMYWJlbFRleHQKIHsKICAgICBpZiAoIV9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmxh
YmVsLmlzRW1wdHkoKSkKQEAgLTkwOTQsNiArOTEyNCwxMyBAQCAtIChOU0RpY3Rpb25hcnkgKilf
Y29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVt
CiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRo
Q29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworeworI2lmICFQTEFURk9STShXQVRDSE9TKSAm
JiAhUExBVEZPUk0oQVBQTEVUVikKKyAgICBbX2NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhDb250
YWN0czpjb250YWN0c107CisjZW5kaWYKK30KKwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BSRVZJ
RVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA2YjZhOTYwMDA3OTY3NzAwNmQzNTcwMGIxNjM0YmFhNTc5YTU3NjQ1Li5lZGRhMjQzOTQ5
MTE5NGY2YTMzNDFiNWYyNjgxZDQzOTJhNmJkYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NDgsNiArMTg0OCw3IEBACiAJCUU0
OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIx
NzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0
MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBD
MUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5
ZXJUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsg
fTsKKwkJRTUwNjIwOTIyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MDYyMDkxMjU0MjEwMjAw
MEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERB
REEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAw
QkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29s
b3JQaWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVU
aW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9
OwpAQCAtMTg1NSw2ICsxODU2LDcgQEAKIAkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdl
YkRhdGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJN
YWMuaCAqLzsgfTsKIAkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5oICovOyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi87IH07CisJCUU1OTZERDZBMjUxRTcxRDQwMEMy
NzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNr
ZXIuaCAqLzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5oICovOyB9OwogCQlFNUNCMDdEQzIwRTE2NzhGMDAyMkMxODMgLyog
V0tGb3JtQ29sb3JDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9s
LmggKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVy
bGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIy
RjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDEyLDYgKzU0MTQsNyBA
QAogCQlFNDlENDBEODFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxv
YlN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgz
QjAzMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXll
clRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVy
VHJlZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUwNjIwOTEyNTQyMTAy
MDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFjdHNVSVNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURB
MjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBX
S0Zvcm1Db2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBw
YXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01NDI2LDYgKzU0MjksOCBAQAogCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQ
aWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250YWN0UGlja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVB
NyAvKiBXS0NvbnRhY3RQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS0NvbnRhY3RQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1QkVGNjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duSU9TLmg7IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVGNjgxMjEzMEM0
N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25JT1MubW07IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQTIwRTE2NzhGMDAy
MkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNvbG9y
Q29udHJvbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ1NSw2ICs2NDYwLDggQEAKIAkJCQk1MUQxMjQzMjFF
NkRFNTIxMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tICovLAogCQkJCTJE
RkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovLAogCQkJCTJERkM3REJB
MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKKwkJCQlFNTk2REQ2ODI1MUU3
MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi8sCisJCQkJRTU5NkRENjkyNTFFNzFE
NDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5tbSAqLywKIAkJCQkyRUNGNjZDQzIxRDZCNzdF
MDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5oICovLAogCQkJCTJFQ0Y2NkNEMjFENkI3N0UwMDlF
NUMzRiAvKiBXS0VkaXRDb21tYW5kLm1tICovLAogCQkJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2
OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKQEAgLTEwNTY3LDYgKzEwNTc0
LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBC
YWNrQm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAv
KiBCYXNlQm9hcmRTUEkuaCAqLywKKwkJCQlFNTA2MjA5MTI1NDIxMDIwMDBDNDMwOTEgLyogQ29u
dGFjdHNVSVNQSS5oICovLAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJv
YXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9i
aWxlV2lGaVNQSS5oICovLAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRT
UEkuaCAqLywKQEAgLTEwOTUwLDYgKzEwOTU4LDcgQEAKIAkJCQkzN0JFQzRFMTE5NDkxNDg2MDA4
QjQyODYgLyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMwMzJEQUIxMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCUU1MDYyMDkyMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDQTA1Mzk3OTIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5n
SW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOUVCMTIyM0QwREU3
QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEw
NkQ3QzQxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTE2ODUsNiArMTE2OTQsNyBAQAogCQkJCUJDQTI4NEQ3MTQ5MkYyQzcwMDFG
OTA0MiAvKiBXS0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUM3NUM4MTQ5NTRE
QTYwMEJDNDc3NSAvKiBXS0Nvbm5lY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM0QTYyOTcxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTU5NkRENkEyNTFFNzFENDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2NTQxRTcyMzVCMTAwOTRGREM4IC8qIFdLQ29udGVudFJ1
bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1NTFFNzIzNUI4MDA5NEZEQzggLyog
V0tDb250ZW50UnVsZUxpc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2NTEx
RTcyMzU5OTAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmUuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEy
ODY1NmYwZGExOTQ0ZDVkYmIzZDJiNGJjYjkyNWJjYjU1YjhhY2YuLmM0NGQ5ZThkZTUyMmNkNjk1
OGM2NDQ4ODVhOTdlYjFlODkyNDI5ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0xMC0yNiAgQWRpdHlhIEtl
ZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQ
SV0gQWRkIHN1cHBvcnQgZm9yIHBpY2tlciBVSSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODE4OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjk4NjIyNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgVUlTY3JpcHRDb250cm9sbGVyIGhvb2tzIHRvIG9ic2VydmUgdGhlIHByZXNl
bnRhdGlvbiBhbmQKKyAgICAgICAgZGlzbWlzc2FsIG9mIGEgY29udGFjdCBwaWNrZXIuIEZ1cnRo
ZXJtb3JlLCB0aGUKKyAgICAgICAgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMgbWV0
aG9kIHdhcyBhZGRlZCB0byBhbGxvdyB0ZXN0cyB0bworICAgICAgICBkaXNtaXNzIHRoZSBwcmVz
ZW50ZWQgY29udGFjdCBwaWNrZXIgd2l0aCBhIHNldCBvZiBzZWxlY3RlZCBjb250YWN0cy4KKwor
ICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2Ny
aXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250ZXh0Lmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6aXNTaG93aW5nQ29udGFjdFBpY2tlciBjb25zdCk6CisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgor
ICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlclNoYXJlZC5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlk
U2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcjo6ZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayBjb25zdCk6CisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayk6Cisg
ICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxs
YmFjayBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVy
V0tXZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVy
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IHJlc2V0SW50ZXJh
Y3Rpb25DYWxsYmFja3NdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkUHJl
c2VudENvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlk
RGlzbWlzc0NvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29h
L1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyQ29jb2E6OnNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJD
YWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dp
bmdDb250YWN0UGlja2VyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
Q29jb2E6OmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKToKKwogMjAyMC0xMC0yMiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJUEMgdGVzdGluZyBB
UEkgc2hvdWxkIGV4cG9zZSBBcnJheUJ1ZmZlciBmb3IgYW4gdW5rbm93biBkZWNvZGVkIGFyZ3Vt
ZW50CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9C
aW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAzZDU4
MzJkMWQ5NjJjMGM5MzJmMzI3ZTNlYmMwMTg5ZGExMGM0ODVjLi4zZTA1ZWIxMzMwMmMzMjYyMTY5
ODUzZjgxNGVkODMzMzgzYmI2YWE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGwKQEAgLTM0OSw2ICszNDksMTEgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJv
bGxlciB7CiAgICAgb2JqZWN0IGF0dGFjaG1lbnRJbmZvKERPTVN0cmluZyBhdHRhY2htZW50SWRl
bnRpZmllcik7CiAgICAgdW5kZWZpbmVkIGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChET01T
dHJpbmcgZmlsZVBhdGgsIERPTVN0cmluZyBjb250ZW50VHlwZSwgb2JqZWN0IGNhbGxiYWNrKTsK
IAorICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjazsKKyAg
ICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2s7CisgICAgdW5k
ZWZpbmVkIGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKG9iamVjdCBjb250YWN0cyk7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5nQ29udGFjdFBpY2tlcjsK
KwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdFVuZG9MYWJlbDsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZpcnN0UmVkb0xhYmVsOwogfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4
dC5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
ZXh0LmgKaW5kZXggZmJhMzJjOTM3YjI5ODMxZTAyNmY5OTEzODYwYjJlMDcyMWUwZjI1NC4uMmI1
ZjRiZjgxNmQwMTQ0YjMxOWI2MjZkMTA3MDg0ODNjOWRmMWViOCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgK
QEAgLTY1LDYgKzY1LDggQEAgdHlwZWRlZiBlbnVtICB7CiAgICAgQ2FsbGJhY2tUeXBlRGlkRGlz
bWlzc0NvbnRleHRNZW51LAogICAgIENhbGxiYWNrVHlwZVdpbGxDcmVhdGVOZXdQYWdlLAogICAg
IENhbGxiYWNrVHlwZVdpbmRvd1RhcFJlY29nbml6ZWQsCisgICAgQ2FsbGJhY2tUeXBlRGlkU2hv
d0NvbnRhY3RQaWNrZXIsCisgICAgQ2FsbGJhY2tUeXBlRGlkSGlkZUNvbnRhY3RQaWNrZXIsCiAg
ICAgQ2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCA9IGZpcnN0Tm9uUGVyc2lzdGVudENhbGxiYWNr
SUQKIH0gQ2FsbGJhY2tUeXBlOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGJlMTM2YmQw
NjBiM2IzMjIxM2M1MTRiNWI1ZDU2YTgxZmI0ZTNmYzguLjdlNDgwN2IxNTRmYmE0NjM2YTk2NWUy
YWVhMGJiNzA5YmI1YjZkYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNzcsNiArMjc3
LDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTT2JqZWN0UmVmIGF0dGFjaG1lbnRJbmZvKEpT
U3RyaW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmly
dHVhbCB2b2lkIGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChKU1N0cmluZ1JlZiwgSlNTdHJp
bmdSZWYsIEpTVmFsdWVSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgLy8gQ29udGFj
dCBQaWNrZXIKKworICAgIHZpcnR1YWwgdm9pZCBzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxi
YWNrKEpTVmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxs
YmFjaygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb250YWN0UGlja2VyKCkg
Y29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwg
dm9pZCBzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpOworICAgIEpT
VmFsdWVSZWYgZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygpIGNvbnN0OworCisgICAgdmly
dHVhbCB2b2lkIGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKEpTVmFsdWVSZWYpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQorCiAgICAgLy8gQ2FsbGJhY2tzCiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVS
ZWYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKaW5kZXggYmZmNGYzNDMz
ZGJkMjk1NzVkNjI1YjczOTRlNmQ5ZDM4MWNhZWMyNi4uOWU0OTQwY2UzYThiMTAyMjdmZWRlMWZl
MmUyZjgxZjE5YThkYTY0NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3Bw
CkBAIC0yMTMsNiArMjEzLDI2IEBAIEpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRE
aXNtaXNzUG9wb3ZlckNhbGxiYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxs
YmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWREaXNtaXNzUG9wb3Zlcik7CiB9CiAKK3ZvaWQgVUlT
Y3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVS
ZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNr
LCBDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7Cit9CisKK0pTVmFsdWVSZWYgVUlT
Y3JpcHRDb250cm9sbGVyOjpkaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93
Q29udGFjdFBpY2tlcik7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRl
Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250
ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFj
dFBpY2tlcik7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlQ29u
dGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxs
YmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBpY2tlcik7Cit9CisKIHZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjp1aVNjcmlwdENvbXBsZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkK
IHsKICAgICBtX2NvbnRleHQtPnJlcXVlc3RVSVNjcmlwdENvbXBsZXRpb24ocmVzdWx0KTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmll
dy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
aW5kZXggZjU1NGUxMjNlYTNlNTQxYTEwN2M3ZGQ2NzZmZTRjNWZlNzFlNmQ2OC4uZjU3MWU0ZGRk
OGZjODliMzIzMWFkNjA4Nzg4NGRjMjkxMTBlYzVhZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKQEAgLTczLDYgKzczLDkgQEAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ01lbnUpIEJP
T0wgc2hvd2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNo
b3dNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQg
KF5kaWRIaWRlTWVudUNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgZ2V0dGVyPWlzU2hvd2luZ0NvbnRhY3RQaWNrZXIpIEJPT0wgc2hvd2luZ0NvbnRhY3RQ
aWNrZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dDb250YWN0
UGlja2VyQ2FsbGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQg
KF5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZXRhaW4sIHNldHRlcj1fc2V0U3RhYmxlU3RhdGVPdmVycmlkZTopIE5TTnVtYmVyICpf
c3RhYmxlU3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNj
cm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVz
RGlzYWJsZWRGb3JUZXN0aW5nOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KaW5kZXggOTE1ZjQ3NmM2MTVhZTYxMDkwZDkwY2E3
OTc2YmY4ZjJjOTliNTY2Yi4uNTcwNmE3YjExNWI1MTQyNGYyYjY1Yzg0Y2E4MWM4MDg0MjAzNzhj
OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tX
ZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldL
V2ViVmlldy5tbQpAQCAtNzgsNiArNzgsNyBAQCBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVy
PWlzU2hvd2luZ01lbnUsIHNldHRlcj1zZXRJc1Nob3dpbmdNZW51OikgQk9PTCBzaG93aQogQHBy
b3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0Rpc21pc3NpbmdNZW51LCBzZXR0ZXI9c2V0SXNE
aXNtaXNzaW5nTWVudTopIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzU2hvd2luZ1BvcG92ZXIsIHNldHRlcj1zZXRJc1Nob3dpbmdQb3BvdmVyOikg
Qk9PTCBzaG93aW5nUG9wb3ZlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93
aW5nQ29udGV4dE1lbnUsIHNldHRlcj1zZXRJc1Nob3dpbmdDb250ZXh0TWVudTopIEJPT0wgc2hv
d2luZ0NvbnRleHRNZW51OworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdD
b250YWN0UGlja2VyLCBzZXR0ZXI9c2V0SXNTaG93aW5nQ29udGFjdFBpY2tlcjopIEJPT0wgc2hv
d2luZ0NvbnRhY3RQaWNrZXI7CiAKIEBlbmQKIApAQCAtMTcxLDYgKzE3Miw4IEBAIC0gKHZvaWQp
cmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcwogewogICAgIHNlbGYuZGlkU2hvd01lbnVDYWxsYmFj
ayA9IG5pbDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5k
aWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOworICAgIHNlbGYuZGlkSGlkZUNvbnRh
Y3RQaWNrZXJDYWxsYmFjayA9IG5pbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHNl
bGYuZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2Vs
Zi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7CkBAIC01NDUsNCAr
NTQ4LDI0IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIg
KilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgoreworICAgIGlm
IChzZWxmLnNob3dpbmdDb250YWN0UGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxm
LnNob3dpbmdDb250YWN0UGlja2VyID0gWUVTOworICAgIGlmIChzZWxmLmRpZFNob3dDb250YWN0
UGlja2VyQ2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFj
aygpOworfQorCistICh2b2lkKV9kaWREaXNtaXNzQ29udGFjdFBpY2tlcgoreworICAgIGlmICgh
c2VsZi5zaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5z
aG93aW5nQ29udGFjdFBpY2tlciA9IE5POworICAgIGlmIChzZWxmLmRpZEhpZGVDb250YWN0UGlj
a2VyQ2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygp
OworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJ
U2NyaXB0Q29udHJvbGxlckNvY29hLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJ
U2NyaXB0Q29udHJvbGxlckNvY29hLmgKaW5kZXggY2M5ODEzOTQyNGYyODgwNjQ0Mzk4OTgzNDVj
M2U3ZDRlYTU1MzM3OC4uZThjZGMzY2YwYzExNTQxYTg3ZGFjODUwMWU3MDhmNjg4ZWFjYjE4NCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xs
ZXJDb2NvYS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250
cm9sbGVyQ29jb2EuaApAQCAtNjQsNiArNjQsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5z
ZXJ0QXR0YWNobWVudEZvckZpbGVQYXRoKEpTU3RyaW5nUmVmIGZpbGVQYXRoLCBKU1N0cmluZ1Jl
ZiBjb250ZW50VHlwZSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykgb3ZlcnJpZGU7CiAKKyAgICB2b2lk
IHNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJy
aWRlOworICAgIGJvb2wgaXNTaG93aW5nQ29udGFjdFBpY2tlcigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoSlNWYWx1ZVJlZikgb3Zl
cnJpZGU7CisKICAgICB2b2lkIGNvbXBsZXRlVGFza0FzeW5jaHJvbm91c2x5QWZ0ZXJBY3Rpdml0
eVN0YXRlVXBkYXRlKHVuc2lnbmVkIGNhbGxiYWNrSUQpOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5k
ZXggNTg0Nzk3NmYyMTg1N2Y1M2Y0ODVlY2IxZmIxZWI5MTE3MjFhNTZkYS4uYmI1NGEyYTE2NGJh
NThkY2RjNDhkMTY3NmQ0NWE5YWM4Y2I0NzY0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC0yMjUsNCAr
MjI1LDM2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6Omluc2VydEF0dGFjaG1lbnRG
b3JGaWxlUGF0aChKU1N0cmluZ1JlZiBmaWxlUGF0aCwKICAgICB9XTsKIH0KIAordm9pZCBVSVNj
cmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhKU1Zh
bHVlUmVmIGNhbGxiYWNrKQoreworICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0Nv
bnRhY3RQaWNrZXJDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmlldygpLmRpZFNob3dDb250
YWN0UGlja2VyQ2FsbGJhY2sgPSBeeworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBl
RGlkU2hvd0NvbnRhY3RQaWNrZXIpOworICAgIH07Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9s
bGVyQ29jb2E6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEhpZGVDb250YWN0UGlja2Vy
Q2FsbGJhY2soY2FsbGJhY2spOworICAgIHdlYlZpZXcoKS5kaWRIaWRlQ29udGFjdFBpY2tlckNh
bGxiYWNrID0gXnsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZEhpZGVDb250
YWN0UGlja2VyKTsKKyAgICB9OworfQorCitib29sIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpp
c1Nob3dpbmdDb250YWN0UGlja2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2ViVmlldygpLnNo
b3dpbmdDb250YWN0UGlja2VyOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpk
aXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhKU1ZhbHVlUmVmIGNvbnRhY3RzKQorewor
ICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtKU0NvbnRleHQgY29udGV4dFdpdGhKU0dsb2JhbENv
bnRleHRSZWY6bV9jb250ZXh0LT5qc0NvbnRleHQoKV07CisgICAgSlNWYWx1ZSAqdmFsdWUgPSBb
SlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmNvbnRhY3RzIGluQ29udGV4dDpjb250ZXh0XTsK
KyAgICBbd2ViVmlldygpIF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpbdmFsdWUg
dG9BcnJheV1dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNzNiZTlmOWE5YzJl
NWEyNTZhNDQ5NGE1ZTA3MDQ5YzViY2JhMzYxLi4zZjE3ZTE5ODA4YzY1MzVjNDdhYWUwOTc4YTJl
ZGY2MzYyNTE0OGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBB
UEldIEFkZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzY5ODYyMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHRlc3RzIHRvIHZlcmlmeSB0aGUgcHJlc2VudGF0aW9uIGFuZCBkaXNtaXNz
YWwgb2YgYSBjb250YWN0CisgICAgICAgIHBpY2tlciBvbiBpT1MuIFRoZSBuZXcgdGVzdHMgYXJl
IG9ubHkgcnVuIG9uIGlPUyBXSzIsIHNpbmNlIHRoYXQgaXMgdGhlCisgICAgICAgIG9ubHkgcGxh
dGZvcm0gd2hpY2ggY3VycmVudGx5IHN1cHBvcnRzIHRoZSBwcmVzZW50YXRpb24gb2YgYSBjb250
YWN0CisgICAgICAgIHBpY2tlci4gTm90ZSB0aGF0IHRoZXNlIHRlc3RzIHdpbGwgYmUgZW5hYmxl
ZCBvbiBtYWNPUyBXSzIgb25jZSBzdXBwb3J0CisgICAgICAgIGlzIGFkZGVkIGluIGEgZm9ydGhj
b21pbmcgcGF0Y2guCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGNv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVj
dC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBj
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGFj
dC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVy
LmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93
KToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSk6
CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFj
dHMpOgorCiAyMDIwLTEwLTI1ICBFbWlsaW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jpc2Fs
LmlvPgogCiAgICAgICAgIFVwZGF0ZSBDU1NPTSBXUFQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBhODE2ZWE3Y2Y2MjBkNjhjYTNjMDVkZTMyM2JiZDliYmFlNjYyMjQxLi5kYjU2OTI3ZTUz
OTA2OTlkYTExNDhkNWIyNzhkN2M5OTgzMTgyODcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkw
LDYgKzkwLDExIEBAIGZhc3QvZm9ybXMvZW50ZXJrZXloaW50LWF0dHJpYnV0ZS12YWx1ZXMuaHRt
bCBbIFNraXAgXQogIyBIaWdobGlnaHRpbmcgbWFya2VkIHRleHQgcmFuZ2VzIGZyb20gbGF5b3V0
IHRlc3RzIGlzIG9ubHkgc3VwcG9ydGVkIGluIFdlYktpdDIuCiBlZGl0aW5nL2lucHV0L2NvbXBv
c2l0aW9uLWhpZ2hsaWdodHMuaHRtbCBbIFNraXAgXQogCisjIENvY29hIFdLMiBvbmx5LiBPdGhl
ciBwbGF0Zm9ybXMgZG8gbm90IHByZXNlbnQgYSBjb250YWN0IHBpY2tlciBVSS4KK2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sIFsgU2tp
cCBdCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNr
ZXIuaHRtbCBbIFNraXAgXQorY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgWyBT
a2lwIF0KKwogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1leHRlcm5hbC1lbnRp
dHktbm8tbG9nZ2luZy54bWwgWyBTa2lwIF0KIAogIyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlz
IG9ubHkgdGVzdGVkIGluIER1bXBSZW5kZXJUcmVlIG9uIE1hYy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBp
Y2tlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3
MTg0YWY2NjI1NjdmMGI1MGYxYjQ1Y2UzNjRlODljM2VhODhjMTkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlz
c2luZy1waWNrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKK1RoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhl
ciBjYWxsIHRvIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgd2FzIGNvbXBsZXRlZC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BlcmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVx
dWVzdC4KK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0u
bmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVz
c0Jvb2tbMF0uZW1haWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEudGVs
LCBhZGRyZXNzQm9va1swXS50ZWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFj
dDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVh
bChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29u
dGFjdDIudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUs
IGFkZHJlc3NCb29rWzJdLm5hbWUpIGlzIHRydWUKK1BBU1MgY29udGFjdDMuZW1haWwubGVuZ3Ro
IGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMudGVsLCBhZGRyZXNzQm9va1syXS50
ZWwpIGlzIHRydWUKK1BBU1MgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uIGJlY2FtZSB0cnVlCisK
K1BlcmZvcm1pbmcgc2Vjb25kIGNvbnRhY3RzIHJlcXVlc3QuCitQQVNTIGFyZUFycmF5c0VxdWFs
KGNvbnRhY3QxLm5hbWUsIGFkZHJlc3NCb29rWzBdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJy
YXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSBpcyB0cnVlCitQ
QVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSBpcyB0
cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5h
bWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NC
b29rWzFdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFT
UyBhcmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0
cnVlCitQQVNTIGNvbnRhY3QzLmVtYWlsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFs
KGNvbnRhY3QzLnRlbCwgYWRkcmVzc0Jvb2tbMl0udGVsKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1k
aXNtaXNzaW5nLXBpY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MxNTE0
YzgwNmMzZWM1MDM5YzcwNmU4M2RiM2VjMWI2YTQzYzNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5n
LXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVl
IF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgZmluaXNoZWRDb250YWN0U2Vs
ZWN0aW9uID0gZmFsc2U7CisKKyAgICAgICAgY29uc3QgYWRkcmVzc0Jvb2sgPSBbCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBBIl0sCisgICAgICAgICAg
ICAgICAgImVtYWlsIjogWyJwZXJzb24uYUB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICAgICAg
InRlbCI6IFsiNTU1LTU1NTUiXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAibmFtZSI6IFsiUGVyc29uIEIiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwi
OiBbInBlcnNvbi5iQHdlYmtpdC5vcmciLCAicGVyc29uLmIuYWx0QHdlYmtpdC5vcmciXSwKKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBl
cnNvbiBDIl0sCisgICAgICAgICAgICAgICAgInRlbCI6IFsiNzc3LTc3NzciXSwKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgXTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAg
ICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxsIHRv
IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgd2FzIGNvbXBsZXRlZC5cbiIpOworCisgICAgICAg
ICAgICBjb25zdCBjb250YWN0c0J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250
YWN0cyIpOworICAgICAgICAgICAgY29udGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkQ29udGFjdFNl
bGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiXG5QZXJmb3JtaW5nIHNlY29u
ZCBjb250YWN0cyByZXF1ZXN0LiIpCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgZGVidWcoIlBlcmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4iKQor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuYXZp
Z2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFtZSIsICJlbWFpbCIsICJ0ZWwiXSk7CisKKyAgICAg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpOwor
ICAgICAgICAgICAgICAgIFVJSGVscGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3Rz
KGFkZHJlc3NCb29rKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29u
dGFjdFBpY2tlclRvSGlkZSgpOworCisgICAgICAgICAgICAgICAgW2NvbnRhY3QxLCBjb250YWN0
MiwgY29udGFjdDNdID0gYXdhaXQgcmVxdWVzdDsKKworICAgICAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSki
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3Qx
LmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFpbCkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSIp
OworCisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0
Mi5uYW1lLCBhZGRyZXNzQm9va1sxXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
VHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWls
KSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDIudGVs
Lmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNF
cXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSIpOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMuZW1haWwubGVuZ3RoIiwgMCk7Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0My50ZWws
IGFkZHJlc3NCb29rWzJdLnRlbCkiKTsKKworICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZENv
bnRhY3RTZWxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRDb250
YWN0U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0
dG9uKTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVj
b21lRXF1YWwoImZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbiIsICJ0cnVlIiwgcmVzb2x2ZSkpOwor
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9u
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+
CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNr
ZXIvY29udGFjdHMtc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhhYzdjNTE0YWE2
N2Q1MzJkYTYwYjIzZjQyZjM3YmZjNjBiNzNlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dCBwcmVzZW50cyBhIGNvbnRhY3QgcGlja2VyIGFuZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250
YWN0cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVu
Z3RoIGlzIDMKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tb
MF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRk
cmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29udGFjdDEudGVsLmxlbmd0aCBpcyAw
CitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUp
IGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29r
WzFdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBh
cmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVl
CitQQVNTIGNvbnRhY3QzLmVtYWlsLmxlbmd0aCBpcyAwCitQQVNTIGNvbnRhY3QzLnRlbC5sZW5n
dGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitTaG93IGNvbnRhY3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9j
b250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmct
cGlja2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDY3YjU5Y2ZlNDhiNzk1MGQ4ZTAyMTg4
MDA5YWNmYjFlZDA3NDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29u
dGFjdHMuc2VsZWN0IGZhaWxzIHdoZW4gYSBjb250YWN0IHBpY2tlciBpcyBhbHJlYWR5IGJlaW5n
IGRpc3BsYXllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFj
dHMubGVuZ3RoIGlzIDEKK1BBU1MgY29udGFjdC5uYW1lWzBdIGlzICJQZXJzb24gQSIKK1BBU1Mg
cmVzdWx0c1sxXSBpcyAiSW52YWxpZFN0YXRlRXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5n
LXBpY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhYTc3MzMwNDBlZTRj
MzVlZWY3OWUyMjNmNDQwNTc1ZmRiYmM2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5o
dG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAg
ICAgICAgICAgICAiZW1haWwiOiBbInBlcnNvbi5hQHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAg
ICAgICAidGVsIjogWyI1NTUtNTU1NSJdCisgICAgICAgICAgICB9LAorICAgICAgICBdOworCisg
ICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNl
bGVjdCBmYWlscyB3aGVuIGEgY29udGFjdCBwaWNrZXIgaXMgYWxyZWFkeSBiZWluZyBkaXNwbGF5
ZWQuXG4iKTsKKworICAgICAgICAgICAgY29uc3QgY29udGFjdHNCdXR0b24gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29udGFjdHMiKTsKKyAgICAgICAgICAgIGNvbnRhY3RzQnV0dG9uLmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGNv
bnN0IHByb21pc2UxID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgICAgICAgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbJ25hbWUnXSkudGhlbihyZXNv
bHZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAuY2F0Y2goZSA9PiByZWplY3QoZS5tZXNzYWdlKSk7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgICAgICBjb25zdCBwcm9taXNlMiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qo
WyduYW1lJ10pLnRoZW4oY29udGFjdHMgPT4gcmVqZWN0KCJFeHBlY3RlZCBmYWlsdXJlLiIpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0
Y2goZSA9PiByZXNvbHZlKGUubmFtZSkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb1Nob3coKTsKKyAg
ICAgICAgICAgICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhh
ZGRyZXNzQm9vayk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRh
Y3RQaWNrZXJUb0hpZGUoKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBhd2FpdCBQcm9t
aXNlLmFsbChbcHJvbWlzZTEsIHByb21pc2UyXSk7CisgICAgICAgICAgICAgICAgY29udGFjdHMg
PSByZXN1bHRzWzBdOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29u
dGFjdHMubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICAgICAgY29udGFjdCA9IGNvbnRhY3RzWzBd
OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY29udGFjdC5uYW1lWzBd
IiwgIlBlcnNvbiBBIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZXN1bHRzWzFdIiwgIkludmFsaWRTdGF0ZUVycm9yIik7CisKKyAgICAgICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAg
IDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iZmYzODdmNTZlMGJlYzcwODIxMWI3ZjZkYjNlYmQyM2Y4MjEx
Y2JkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0Lmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRy
dWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGFkZHJlc3NC
b29rID0gWworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24g
QSJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmFAd2Via2l0Lm9yZyJdLAor
ICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjU1NS01NTU1Il0KKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBCIl0sCisgICAgICAg
ICAgICAgICAgImVtYWlsIjogWyJwZXJzb24uYkB3ZWJraXQub3JnIiwgInBlcnNvbi5iLmFsdEB3
ZWJraXQub3JnIl0sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogWyJQZXJzb24gQyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjc3Ny03
Nzc3Il0sCisgICAgICAgICAgICB9CisgICAgICAgIF07CisKKyAgICAgICAgYXN5bmMgZnVuY3Rp
b24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IHByZXNlbnRzIGEgY29u
dGFjdCBwaWNrZXIgYW5kIHJldHVybnMgdGhlIHNlbGVjdGVkIGNvbnRhY3RzLlxuIik7CisKKyAg
ICAgICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnRhY3RzIik7CisgICAgICAgICAgICBjb250YWN0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0c1Jl
cXVlc3QgPSBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFtZSIsICJlbWFpbCJdLCB7IG11
bHRpcGxlOiB0cnVlIH0pOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JD
b250YWN0UGlja2VyVG9TaG93KCk7CisKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5kaXNtaXNz
Q29udGFjdFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisKKyAgICAgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpOworCisgICAgICAg
ICAgICAgICAgY29udGFjdHMgPSBhd2FpdCBjb250YWN0c1JlcXVlc3Q7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0cy5sZW5ndGgiLCAzKTsKKworICAgICAg
ICAgICAgICAgIGNvbnRhY3QxID0gY29udGFjdHNbMF07CisgICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1l
KSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFj
dDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb051bWJlcigiY29udGFjdDEudGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAg
ICAgICAgY29udGFjdDIgPSBjb250YWN0c1sxXTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRy
dWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIik7
CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5l
bWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvTnVtYmVyKCJjb250YWN0Mi50ZWwubGVuZ3RoIiwgMCk7CisKKyAgICAgICAgICAgICAg
ICBjb250YWN0MyA9IGNvbnRhY3RzWzJdOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
YXJlQXJyYXlzRXF1YWwoY29udGFjdDMubmFtZSwgYWRkcmVzc0Jvb2tbMl0ubmFtZSkiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImNvbnRhY3QzLmVtYWlsLmxlbmd0
aCIsIDApOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMu
dGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LmFjdGl2YXRlRWxlbWVudChjb250YWN0c0J1dHRvbik7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKyAgICA8Ym9keSBvbmxvYWQ9cnVuVGVzdCgpPgorICAgICAgICA8YnV0dG9uIGlkPSJjb250
YWN0cyI+U2hvdyBjb250YWN0czwvYnV0dG9uPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzOGUyNTE5
YjBlOTE2ZTdmN2JjY2QxNWQ2MGIwMmNlMTAxNjY2ZDE4Li4xMzQ0OTQ4MWIyZmEwYjRlMThkNjNk
MjE2YTI4MmVkM2MwNWI3MTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw5IEBAIGNvbXBvc2l0aW5nL3NoYXJlZC1iYWNr
aW5nL292ZXJmbG93LXNjcm9sbCBbIFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5j
LW92ZXJmbG93LXNjcm9sbGluZyBbIFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5j
LW92ZXJmbG93LXNjcm9sbGluZy9tYWMgWyBTa2lwIF0KIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0
aW9uL2NsaXBwaW5nLXNjb3BlIFsgUGFzcyBdCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRtbCBbIFBhc3MgXQorY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwgWyBQYXNzIF0KK2Nv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1v
cmllbnRhdGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3Jv
bGxpbmcvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA1ZDgx
Yjc1MGQ2NTg4NDk2ZWQ2MTdmNzZkZDEyYmM2NGUzYThkMDc4Li5mZjNlNTE3Njc3M2IxZWY1N2Nh
NmRhZDkyMmQ1YWYzMjhjODNlZTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
dWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAg
LTEzODYsNiArMTM4Niw0NCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAg
ICAgICAgICAgICAgICAgfSkoKTtgLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVl
IikpOwogICAgICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgd2FpdEZvckNvbnRhY3RQaWNr
ZXJUb1Nob3coKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpKQorICAgICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAor
ICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF1
aUNvbnRyb2xsZXIuaXNTaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gKCkgPT4gdWlD
b250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsK
KyAgICAgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIHN0YXRpYyB3YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpCisgICAgeworICAgICAgICBp
ZiAoIXRoaXMuaXNXZWJLaXQyKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZl
KCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ0NvbnRhY3RQ
aWNrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkSGlkZUNvbnRh
Y3RQaWNrZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7
CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29s
dmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzbWlzc0NvbnRhY3RQaWNr
ZXJXaXRoQ29udGFjdHMoY29udGFjdHMpCisgICAgeworICAgICAgIGNvbnN0IHNjcmlwdCA9IGAo
KCkgPT4gdWlDb250cm9sbGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKCR7SlNP
Ti5zdHJpbmdpZnkoY29udGFjdHMpfSkpKClgOworICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCByZXNvbHZlKSk7CisgICAg
fQogfQogCiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFzcyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412560</attachid>
            <date>2020-10-28 12:28:50 -0700</date>
            <delta_ts>2020-10-30 08:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218189-20201028152849.patch</filename>
            <type>text/plain</type>
            <size>66673</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4OTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2N2QyMmEwMTdmODAwNzI1
YTlhYWMwYjM1ZTM3NDFjYTZjOTRkNjIuLjZjMjRhNWNjOTk1MWZjNTg2ZmZkYzA4NzU0ODllMGJj
YjMxYTg3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBB
UEldIEFkZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzY5ODYyMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKSBzaG91bGQgcHJlc2VudCBhIGNvbnRhY3Qg
cGlja2VyIG9uIHBsYXRmb3JtcworICAgICAgICB3aGljaCBzdXBwb3J0IG9uZS4gVGhpcyBwYXRj
aCBlbmFibGVzIHRoZSBlbmQtdG8tZW5kIGZ1bmN0aW9uYWxpdHkgb24KKyAgICAgICAgaU9TLCBw
cmVzZW50aW5nIGEgY29udGFjdCBwaWNrZXIgdXBvbiBhIGNhbGwgdG8gdGhlIEFQSSBhbmQgcmV0
dXJuaW5nCisgICAgICAgIHRoZSBzZWxlY3RlZCBjb250YWN0cyB1cG9uIGRpc21pc3NhbC4KKwor
ICAgICAgICBUZXN0czogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21p
c3NpbmctcGlja2VyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sCisgICAgICAgICAgICAgICBjb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbAorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQ29udGFjdHNV
SVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9kaWREaXNtaXNzQ29udGFjdFBpY2tlcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rpc21p
c3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XS0NvbnRhY3RQaWNrZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dL
Q29udGFjdFBpY2tlci5tbTogQWRkZWQuCisKKyAgICAgICAgV0tDb250YWN0UGlja2VyIGlzIGEg
V2ViS2l0IHdyYXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLgorCisg
ICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgaW5pdFdpdGhDb250YWN0UGlja2Vy
RGVsZWdhdGU6XSk6CisKKyAgICAgICAgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBpcyB3cmFw
cGVyIGFyb3VuZCBDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZS4KKyAgICAgICAgVGhpcyBpcyBuZWNl
c3NhcnkgYXMgc2luZ2xlL211bHRpcGxlIHNlbGVjdGlvbiBpbiBhCisgICAgICAgIENOQ29udGFj
dFBpY2tlclZpZXdDb250cm9sbGVyIGlzIGRldGVybWluZWQgYnkgd2hpY2ggZGVsZWdhdGUgbWV0
aG9kcworICAgICAgICBhcmUgaW1wbGVtZW50ZWQuIFRoZSB0d28gc3BlY2lhbGl6YXRpb25zIG9m
IHRoaXMgY2xhc3MgaW5jbHVkZSB0aGUKKyAgICAgICAgbWV0aG9kcyBuZWNlc3NhcnkgdG8gcHJl
c2VudCBhIHNpbmdsZS1zZWxlY3QgYW5kIG11bHRpLXNlbGVjdCBwaWNrZXIKKyAgICAgICAgcmVz
cGVjdGl2ZWx5LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgY29udGFj
dFBpY2tlckRpZENhbmNlbDpdKToKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJTaW5nbGVT
ZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRpZFNlbGVjdENvbnRhY3Q6XSk6CisgICAgICAg
ICgtW1dLQ05Db250YWN0UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRp
ZFNlbGVjdENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGVsZWdhdGVd
KToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIHNldERlbGVnYXRlOl0pOgorICAgICAgICAo
LVtXS0NvbnRhY3RQaWNrZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQ
aWNrZXIgcHJlc2VudFdpdGhSZXF1ZXN0RGF0YTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6XSk6CisKKyAgICAg
ICAgVGhpcyBkZWxlZ2F0ZSBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHBpY2tlciBpcyBkaXNt
aXNzZWQgYnkKKyAgICAgICAgdGFwcGluZyB0aGUgZG9uZSBidXR0b24gb3Igd2hlbiB0aGUgcGlj
a2VyIGlzIGRpc21pc3NlZCBieSBzd2lwaW5nCisgICAgICAgIGRvd24uCisKKyAgICAgICAgKC1b
V0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdDpdKToKKyAgICAg
ICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdHM6XSk6
CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdFBpY2tlckRpZERpc21pc3NXaXRo
Q29udGFjdEluZm86XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdEluZm9G
cm9tQ05Db250YWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhD
b250YWN0czpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0c0Zyb21KU0Nv
bnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX3Nob3dDb250YWN0UGlja2VyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50Ol0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpdKToKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0yOCAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUg
c29mdCBsaW5raW5nIG9mIENvbnRhY3RzLmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCA1YzlhZWQ0NDczOTNjMjc1NDEzN2FhMmQ0
ZWIzNzQ1MzQxYTgzMTYwLi5lNzA1MmYwOGU0ZDBjZDZlOGIyMGFhNmU0NzRkZGY2N2MyYmIxMDBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAt
NTQsOCArNTQsOSBAQCBXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU19pcGhvbmVvcyA9IC1m
cmFtZXdvcmsgQmFja0JvYXJkU2VydmljZXM7CiBXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFH
U19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3JrIEJhY2tCb2FyZFNlcnZpY2VzOwogCiBXS19D
T05UQUNUU19MREZMQUdTID0gJChXS19DT05UQUNUU19MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFN
RSkpOwotV0tfQ09OVEFDVFNfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgQ29udGFjdHM7
Ci1XS19DT05UQUNUU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQ29udGFj
dHM7CitXS19DT05UQUNUU19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBDb250YWN0cyAt
ZnJhbWV3b3JrIENvbnRhY3RzVUk7CitXS19DT05UQUNUU19MREZMQUdTX2lwaG9uZXNpbXVsYXRv
ciA9IC1mcmFtZXdvcmsgQ29udGFjdHMgLWZyYW1ld29yayBDb250YWN0c1VJOworV0tfQ09OVEFD
VFNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgQ29udGFjdHMgLWZyYW1ld29yayBD
b250YWN0c1VJOwogV0tfQ09OVEFDVFNfTERGTEFHU19tYWNvc3ggPSAtd2Vha19mcmFtZXdvcmsg
Q29udGFjdHM7CiAKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChXS19SVU5O
SU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQ29udGFjdHNVSVNQSS5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0NvbnRhY3RzVUlTUEkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDJh
ZmE3NWIxN2QyYTczMDhlMjY0NDkwOTc2MWU0NmI5OGQ1NzVhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0NvbnRhY3RzVUlTUEkuaApAQCAtMCwwICsx
LDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorCisjaW1wb3J0IDxDb250YWN0c1VJL0NOQ29udGFjdFBpY2tlclZpZXdDb250cm9s
bGVyX1ByaXZhdGUuaD4KKworI2Vsc2UKKworQGludGVyZmFjZSBDTkNvbnRhY3RQaWNrZXJWaWV3
Q29udHJvbGxlciAoKQorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpwcm9t
cHQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IGY2OWEyZGQzOWIwZTFlMjBjMWJiZmMxM2E1ZDQ0MTU5Mzc5MjBiZmQu
LjAzNzI4MGI4ZDAzM2RjOWI2NWVjMjJkZDVjYzJhYzFhOWU1OTdmNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTM5NCw2ICszOTQsNyBAQCBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCiBVSVBy
b2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KK1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tGdWxsS2V5Ym9h
cmRBY2Nlc3NXYXRjaGVyLm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVj
b3ZlcnlBdHRlbXB0ZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKaW5kZXggYjFjZGU3
MDdhZDVhY2U1YzNiNzViYmVhMjM4ZTAyN2Y4ZjliMGE0MS4uODYyYjk0ODVlZjM4OTRlNDQ1ODc3
ZjUxNjM1ZmE3OGQzY2NkODRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTU4
LDYgKzU4LDEwIEBAIHR5cGVkZWYgZW51bSB7CiAKIC0gKHZvaWQpX3NldFNoYXJlU2hlZXRDb21w
bGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uRm9yVGVzdGluZzooQk9PTClyZXNvbHZlZDsK
IAorLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXI7CistICh2b2lkKV9kaWREaXNtaXNz
Q29udGFjdFBpY2tlcjsKKy0gKHZvaWQpX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3Rz
OihOU0FycmF5ICopY29udGFjdHM7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRh
dGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCiAtICh2b2lkKV9wcm9jZXNzV2lsbFN1c3BlbmRGb3JU
ZXN0aW5nOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KaW5kZXgg
MWIyYzYyYzVkNDJjMjFkYWVlOTQzZDNmOWQ4MzBiYTc1MjlkNTA4OS4uNTIzYTM0OTU5NzNmNjNk
N2E3MTFhMzllNGQ4N2FlMDk1YThjMDZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAgLTI5Niw0ICsyOTYsMjEg
QEAgLSAoTlNOdW1iZXIgKilfc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyCiAgICAgcmV0dXJu
IEAoX3BhZ2UtPnN1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlcigpKTsKIH0KIAorLSAodm9pZClf
ZGlkUHJlc2VudENvbnRhY3RQaWNrZXIKK3sKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVy
cmlkZS4KK30KKworLSAodm9pZClfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXIKK3sKKyAgICAvLyBG
b3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQ
aWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworeworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKyAg
ICBbX2NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpjb250YWN0
c107CisjZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XS0NvbnRhY3RQaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODVmZDFhZjI4YjM0NTQ5MWM5ZGM0OTBj
NjQ2ZTgwMTY2M2MzNzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQorCitAY2xhc3MgV0tXZWJWaWV3OworQHByb3RvY29sIFdLQ29udGFjdFBpY2tlckRlbGVn
YXRlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQ29udGFjdEluZm87CitzdHJ1Y3Qg
Q29udGFjdHNSZXF1ZXN0RGF0YTsKK30KKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgOiBO
U09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS1dlYlZpZXcgKil2aWV3
OworCistICh2b2lkKXByZXNlbnRXaXRoUmVxdWVzdERhdGE6KGNvbnN0IFdlYkNvcmU6OkNvbnRh
Y3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiYmKT4mJiljb21w
bGV0aW9uSGFuZGxlcjsKKworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkPFdLQ29udGFj
dFBpY2tlckRlbGVnYXRlPiBkZWxlZ2F0ZTsKKworQGVuZAorCitAcHJvdG9jb2wgV0tDb250YWN0
UGlja2VyRGVsZWdhdGUgPE5TT2JqZWN0PgorQG9wdGlvbmFsCistICh2b2lkKWNvbnRhY3RQaWNr
ZXJEaWRQcmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKiljb250YWN0UGlja2VyOworLSAodm9pZClj
b250YWN0UGlja2VyRGlkRGlzbWlzczooV0tDb250YWN0UGlja2VyICopY29udGFjdFBpY2tlcjsK
K0BlbmQKKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgKFdLVGVzdGluZykKKy0gKHZvaWQp
ZGlzbWlzc1dpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRhY3RzOworQGVuZAorCisjZW5kaWYg
Ly8gIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRk
MWRhMWNlMGQ1YjM0MjU3YzVkYTM1ZDdjY2FjYzdhYjA2NWEwZmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIubW0KQEAgLTAs
MCArMSwyOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V0tDb250YWN0UGlja2VyLmgiCisKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JN
KEFQUExFVFYpCisKKyNpbXBvcnQgPENvbnRhY3RzL0NvbnRhY3RzLmg+CisjaW1wb3J0IDxDb250
YWN0c1VJL0NvbnRhY3RzVUkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29udGFjdEluZm8uaD4KKyNp
bXBvcnQgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2ltcG9ydCAiQ29udGFjdHNVSVNQSS5oIgorI2ltcG9ydCAiVUlLaXRTUEkuaCIK
KyNlbmRpZgorCisjcHJhZ21hIG1hcmsgLSBEZWxlZ2F0ZSBXcmFwcGVycworCitAaW50ZXJmYWNl
IFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgOiBOU09iamVjdDxDTkNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZT4geworQHByb3RlY3RlZAorICAgIFdlYWtPYmpDUHRyPGlkPENOQ29udGFjdFBpY2tlckRl
bGVnYXRlPj4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOihpZDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4p
Y29udGFjdFBpY2tlckRlbGVnYXRlOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29u
dGFjdFBpY2tlckRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZTooaWQ8Q05Db250YWN0UGlja2VyRGVsZWdhdGU+KWNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9IGNvbnRhY3RQaWNrZXJEZWxlZ2F0
ZTsKKworICAgIHJldHVybiBzZWxmOworfQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKy0g
KHZvaWQpY29udGFjdFBpY2tlckRpZENhbmNlbDooQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xs
ZXIgKilwaWNrZXIKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2Vy
RGlkQ2FuY2VsOnBpY2tlcl07Cit9CisjZW5kaWYKKworQGVuZAorCitAaW50ZXJmYWNlIFdLQ05D
b250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUgOiBXS0NOQ29udGFjdFBpY2tlckRlbGVn
YXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBpY2tlclNpbmdsZVNlbGVj
dERlbGVnYXRlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorLSAodm9pZCljb250YWN0UGlj
a2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250
YWN0OihDTkNvbnRhY3QgKiljb250YWN0Cit7CisgICAgW19jb250YWN0UGlja2VyRGVsZWdhdGUg
Y29udGFjdFBpY2tlcjpwaWNrZXIgZGlkU2VsZWN0Q29udGFjdDpjb250YWN0XTsKK30KKyNlbmRp
ZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVn
YXRlIDogV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZQorQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJv
bGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0czooTlNBcnJheTxDTkNvbnRhY3QqPiAqKWNv
bnRhY3RzCit7CisgICAgW19jb250YWN0UGlja2VyRGVsZWdhdGUgY29udGFjdFBpY2tlcjpwaWNr
ZXIgZGlkU2VsZWN0Q29udGFjdHM6Y29udGFjdHNdOworfQorI2VuZGlmCisKK0BlbmQKKworI3By
YWdtYSBtYXJrIC0gV0tDb250YWN0UGlja2VyCisKK0BpbnRlcmZhY2UgV0tDb250YWN0UGlja2Vy
ICgpIDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdL
Q29udGFjdFBpY2tlciB7CisgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBfd2ViVmlldzsKKyAg
ICBXZWFrT2JqQ1B0cjxpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKKwor
ICAgIFZlY3RvcjxXZWJDb3JlOjpDb250YWN0UHJvcGVydHk+IF9wcm9wZXJ0aWVzOworICAgIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+JiYp
PiBfY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBSZXRhaW5QdHI8V0tDTkNvbnRhY3RQaWNrZXJE
ZWxlZ2F0ZT4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIFJldGFpblB0cjxDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcj4gX2NvbnRhY3RQ
aWNrZXJWaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorfQorCistIChpZDxXS0NvbnRhY3RQaWNrZXJE
ZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2RlbGVnYXRlLmdldCgpLmdldCgpOwor
fQorCistICh2b2lkKXNldERlbGVnYXRlOihpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pZGVs
ZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldworeworICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlZpZXcgPSB2aWV3Owor
CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcHJlc2VudFdpdGhSZXF1ZXN0RGF0YToo
Y29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERhdGEgY29tcGxldGlv
bkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29u
dGFjdEluZm8+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3Byb3BlcnRpZXMgPSBy
ZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzOworICAgIF9jb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpOworCisgICAgaWYgKHJlcXVlc3REYXRhLm11bHRpcGxlKQorICAg
ICAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gYWRvcHROUyhbW1dLQ05Db250YWN0UGlja2Vy
TXVsdGlTZWxlY3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdhdGU6
c2VsZl0pOworICAgIGVsc2UKKyAgICAgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tXS0NOQ29udGFjdFBpY2tlclNpbmdsZVNlbGVjdERlbGVnYXRlIGFsbG9jXSBpbml0V2l0
aENvbnRhY3RQaWNrZXJEZWxlZ2F0ZTpzZWxmXSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIF9jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtbQ05Db250YWN0
UGlja2VyVmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbX2NvbnRhY3RQaWNrZXJW
aWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpfY29udGFjdFBpY2tlckRlbGVnYXRlLmdldCgpXTsK
KyAgICBbX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciBzZXRQcm9tcHQ6cmVxdWVzdERhdGEu
dXJsXTsKKworICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRhdGlvblZpZXdDb250cm9sbGVy
ID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRh
dGlvbkZyb21WaWV3Ol93ZWJWaWV3LmdldCgpLmdldCgpXTsKKyAgICBbcHJlc2VudGF0aW9uVmll
d0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOl9jb250YWN0UGlja2VyVmlld0NvbnRy
b2xsZXIuZ2V0KCkgYW5pbWF0ZWQ6WUVTIGNvbXBsZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQ
dHI8V0tDb250YWN0UGlja2VyPihzZWxmKV0geworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3
ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGlmIChbW3N0cm9uZ1NlbGYgZGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoY29udGFjdFBpY2tlckRpZFByZXNlbnQ6KV0pCisgICAgICAgICAgICBb
W3N0cm9uZ1NlbGYgZGVsZWdhdGVdIGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50OnN0cm9uZ1NlbGYu
Z2V0KCldOworICAgIH1dOworI2VuZGlmCit9CisKKyNwcmFnbWEgbWFyayAtIENvbXBsZXRpb24K
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZENh
bmNlbDooQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgKilwaWNrZXIKK3sKKyAgICBWZWN0
b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+IGluZm87CisgICAgW3NlbGYgX2NvbnRhY3RQaWNrZXJE
aWREaXNtaXNzV2l0aENvbnRhY3RJbmZvOldURk1vdmUoaW5mbyldOworfQorCistICh2b2lkKWNv
bnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNl
bGVjdENvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6
Q29udGFjdEluZm8+IGluZm87CisgICAgaW5mby5hcHBlbmQoW3NlbGYgX2NvbnRhY3RJbmZvRnJv
bUNOQ29udGFjdDpjb250YWN0XSk7CisgICAgW3NlbGYgX2NvbnRhY3RQaWNrZXJEaWREaXNtaXNz
V2l0aENvbnRhY3RJbmZvOldURk1vdmUoaW5mbyldOworfQorCistICh2b2lkKWNvbnRhY3RQaWNr
ZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNlbGVjdENvbnRh
Y3RzOihOU0FycmF5PENOQ29udGFjdCo+ICopY29udGFjdHMKK3sKKyAgICBWZWN0b3I8V2ViQ29y
ZTo6Q29udGFjdEluZm8+IGluZm87CisgICAgZm9yIChDTkNvbnRhY3QgKmNvbnRhY3QgaW4gY29u
dGFjdHMpCisgICAgICAgIGluZm8uYXBwZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21DTkNvbnRh
Y3Q6Y29udGFjdF0pOworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250
YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworI2VuZGlmCisKKy0gKHZvaWQpX2NvbnRhY3RQ
aWNrZXJEaWREaXNtaXNzV2l0aENvbnRhY3RJbmZvOihWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+JiYpaW5mbworeworICAgIF9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluZm8pKTsKKwor
ICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGFjdFBp
Y2tlckRpZERpc21pc3M6KV0pCisgICAgICAgIFtfZGVsZWdhdGUgY29udGFjdFBpY2tlckRpZERp
c21pc3M6c2VsZl07Cit9CisKKy0gKFdlYkNvcmU6OkNvbnRhY3RJbmZvKV9jb250YWN0SW5mb0Zy
b21DTkNvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBXZWJDb3JlOjpDb250YWN0
SW5mbyBjb250YWN0SW5mbzsKKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3Jl
OjpDb250YWN0UHJvcGVydHk6Ok5hbWUpKSB7CisgICAgICAgIE5TU3RyaW5nICpjb250YWN0TmFt
ZSA9IFtDTkNvbnRhY3RGb3JtYXR0ZXIgc3RyaW5nRnJvbUNvbnRhY3Q6Y29udGFjdCBzdHlsZTpD
TkNvbnRhY3RGb3JtYXR0ZXJTdHlsZUZ1bGxOYW1lXTsKKyAgICAgICAgY29udGFjdEluZm8ubmFt
ZSA9IHsgY29udGFjdE5hbWUgfTsKKyAgICB9CisKKyAgICBpZiAoX3Byb3BlcnRpZXMuY29udGFp
bnMoV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5OjpFbWFpbCkpIHsKKyAgICAgICAgZm9yIChDTkxh
YmVsZWRWYWx1ZTxOU1N0cmluZyAqPiAqZW1haWxBZGRyZXNzIGluIGNvbnRhY3QuZW1haWxBZGRy
ZXNzZXMpCisgICAgICAgICAgICBjb250YWN0SW5mby5lbWFpbC5hcHBlbmQoZW1haWxBZGRyZXNz
LnZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAoX3Byb3BlcnRpZXMuY29udGFpbnMoV2ViQ29yZTo6
Q29udGFjdFByb3BlcnR5OjpUZWwpKSB7CisgICAgICAgIGZvciAoQ05MYWJlbGVkVmFsdWU8Q05Q
aG9uZU51bWJlciAqPiAqcGhvbmVOdW1iZXIgaW4gY29udGFjdC5waG9uZU51bWJlcnMpCisgICAg
ICAgICAgICBjb250YWN0SW5mby50ZWwuYXBwZW5kKHBob25lTnVtYmVyLnZhbHVlLnN0cmluZ1Zh
bHVlKTsKKyAgICB9CisKKyAgICByZXR1cm4gY29udGFjdEluZm87Cit9CisKKyNwcmFnbWEgbWFy
ayAtIFRlc3RpbmcKKworLSAodm9pZClkaXNtaXNzV2l0aENvbnRhY3RzOihOU0FycmF5ICopY29u
dGFjdHMKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFtfY29udGFjdFBpY2tlclZp
ZXdDb250cm9sbGVyIGRpc21pc3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBsZXRpb246
W3NlbGYsIHdlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250YWN0UGlja2VyPihzZWxmKSwganND
b250YWN0cyA9IFJldGFpblB0cjxOU0FycmF5Pihjb250YWN0cyldIHsKKyAgICAgICAgYXV0byBz
dHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBbc3Ryb25nU2VsZiBjb250YWN0UGlja2VyOl9j
b250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIuZ2V0KCkgZGlkU2VsZWN0Q29udGFjdHM6W3N0cm9u
Z1NlbGYgX2NvbnRhY3RzRnJvbUpTQ29udGFjdHM6anNDb250YWN0cy5nZXQoKV1dOworICAgIH1d
OworI2VuZGlmCit9CisKKy0gKE5TQXJyYXk8Q05Db250YWN0Kj4gKilfY29udGFjdHNGcm9tSlND
b250YWN0czooTlNBcnJheSAqKWpzQ29udGFjdHMKK3sKKyAgICBpZiAoIWpzQ29udGFjdHMpCisg
ICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheV07CisKKyAgICBOU011dGFibGVBcnJheTxDTkNv
bnRhY3QqPiAqY29udGFjdHMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6anND
b250YWN0cy5jb3VudF07CisKKyAgICBOU1ByZWRpY2F0ZSAqc3RyaW5nVmFsdWVQcmVkaWNhdGUg
PSBbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInNlbGYgaXNLaW5kT2ZDbGFzczog
JUAiLCBbTlNTdHJpbmcgY2xhc3NdXTsKKworICAgIGZvciAoaWQganNDb250YWN0IGluIGpzQ29u
dGFjdHMpIHsKKyAgICAgICAgaWYgKCFbanNDb250YWN0IGlzS2luZE9mQ2xhc3M6W05TRGljdGlv
bmFyeSBjbGFzc11dKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgQ05NdXRhYmxl
Q29udGFjdCAqY29udGFjdCA9IFtbW0NOTXV0YWJsZUNvbnRhY3QgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXTsKKworICAgICAgICBpZCBuYW1lcyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0
IG9iamVjdEZvcktleTpAIm5hbWUiXTsKKyAgICAgICAgaWYgKFtuYW1lcyBpc0tpbmRPZkNsYXNz
OltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKm5hbWUgaW4g
W25hbWVzIGZpbHRlcmVkQXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRpY2F0ZV0p
IHsKKyAgICAgICAgICAgICAgICBjb250YWN0LmdpdmVuTmFtZSA9IG5hbWU7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZCBlbWFp
bHMgPSBbKE5TRGljdGlvbmFyeSAqKWpzQ29udGFjdCBvYmplY3RGb3JLZXk6QCJlbWFpbCJdOwor
ICAgICAgICBpZiAoW2VtYWlscyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAg
ICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPE5TU3RyaW5nKj4qPiAqZW1h
aWxBZGRyZXNzZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgICAgICAgICAgZm9yIChO
U1N0cmluZyAqZW1haWwgaW4gW2VtYWlscyBmaWx0ZXJlZEFycmF5VXNpbmdQcmVkaWNhdGU6c3Ry
aW5nVmFsdWVQcmVkaWNhdGVdKSB7CisgICAgICAgICAgICAgICAgQ05MYWJlbGVkVmFsdWU8TlNT
dHJpbmcqPiAqbGFiZWxlZFZhbHVlID0gW0NOTGFiZWxlZFZhbHVlIGxhYmVsZWRWYWx1ZVdpdGhM
YWJlbDpuaWwgdmFsdWU6ZW1haWxdOworICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3NlcyBh
ZGRPYmplY3Q6bGFiZWxlZFZhbHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRh
Y3QuZW1haWxBZGRyZXNzZXMgPSBlbWFpbEFkZHJlc3NlczsKKyAgICAgICAgfQorCisgICAgICAg
IGlkIHBob25lTnVtYmVycyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0IG9iamVjdEZvcktl
eTpAInRlbCJdOworICAgICAgICBpZiAoW3Bob25lTnVtYmVycyBpc0tpbmRPZkNsYXNzOltOU0Fy
cmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVl
PENOUGhvbmVOdW1iZXIqPio+ICpudW1iZXJzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAg
ICAgICAgICAgIGZvciAoTlNTdHJpbmcgKnBob25lTnVtYmVyIGluIFtwaG9uZU51bWJlcnMgZmls
dGVyZWRBcnJheVVzaW5nUHJlZGljYXRlOnN0cmluZ1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAg
ICAgICAgICAgIENOUGhvbmVOdW1iZXIgKmNuUGhvbmVOdW1iZXIgPSBbQ05QaG9uZU51bWJlciBw
aG9uZU51bWJlcldpdGhTdHJpbmdWYWx1ZTpwaG9uZU51bWJlcl07CisgICAgICAgICAgICAgICAg
Q05MYWJlbGVkVmFsdWU8Q05QaG9uZU51bWJlcio+ICpsYWJlbGVkVmFsdWUgPSBbQ05MYWJlbGVk
VmFsdWUgbGFiZWxlZFZhbHVlV2l0aExhYmVsOm5pbCB2YWx1ZTpjblBob25lTnVtYmVyXTsKKyAg
ICAgICAgICAgICAgICBbbnVtYmVycyBhZGRPYmplY3Q6bGFiZWxlZFZhbHVlXTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNvbnRhY3QucGhvbmVOdW1iZXJzID0gbnVtYmVyczsKKyAgICAg
ICAgfQorCisgICAgICAgIFtjb250YWN0cyBhZGRPYmplY3Q6Y29udGFjdF07CisgICAgfQorCisg
ICAgcmV0dXJuIGNvbnRhY3RzOworfQorCitAZW5kCisKKyNlbmRpZiAvLyAhUExBVEZPUk0oV0FU
Q0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDc3YWZjYWZjNDA0MGZiOWVjOTg4YzdmMWFl
ZDYyZjZlZDE4NTQyZWUuLmJlMDMwMWZiN2NiMThiYWM3Y2RlMzkwZWQzY2YxYTg1NTViOThkN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CkBAIC0xNzcsNiArMTc3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFuZGxlUnVuT3BlblBh
bmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBGcmFtZUluZm9EYXRhJiwg
QVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94
eSopIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6U2hh
cmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpD
b250YWN0c1JlcXVlc3REYXRhJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKSBvdmVycmlkZTsKICAgICAKICAg
ICB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2
NF90IHJlcXVlc3RJRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVTbWFydE1hZ25pZmljYXRp
b25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUg
dmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBu
b2RlSXNSb290TGV2ZWwpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGFmY2M0NWU5Mzc2ZDczYTY0ZDEyYTZjYTc5
MDVmYTcyNTU2YzVhZWQuLmI2YWI5NjJiNzMzNDM5MjMyYmY3ZGQ5MmM5NmE2YjIxMmMxYTg2ZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KQEAgLTYzOSw2ICs2MzksMTEgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6c2hvd1NoYXJlU2hl
ZXQoY29uc3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBXVEYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNrZXIoY29u
c3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBbbV9jb250ZW50VmlldyBfc2hvd0NvbnRh
Y3RQaWNrZXI6cmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93SW5zcGVjdG9ySGlnaGxp
Z2h0KGNvbnN0IFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6OkhpZ2hsaWdodCYgaGlnaGxpZ2h0
KQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zaG93SW5zcGVjdG9ySGlnaGxpZ2h0OmhpZ2hsaWdo
dF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKaW5kZXggYTcwOGFlZTJjMmVkZjZhN2QxMTUxMWRkYjQyMmFhZTcwY2Qz
NzliMy4uZGNhMDY3MWI5Yzk4YjA1ODBhNWE4NGZlYzJiMzAzY2YwMTA1MDA5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaApAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIldL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaCIKICNpbXBvcnQgIldLQWlyUGxheVJvdXRlUGlja2VyLmgi
CisjaW1wb3J0ICJXS0NvbnRhY3RQaWNrZXIuaCIKICNpbXBvcnQgIldLRGVmZXJyaW5nR2VzdHVy
ZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLRmlsZVVwbG9hZFBhbmVsLmgiCiAjaW1wb3J0ICJX
S0Zvcm1QZXJpcGhlcmFsLmgiCkBAIC03OSw2ICs4MCw4IEBAIGNsYXNzIENvbG9yOwogY2xhc3Mg
RmxvYXRRdWFkOwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CitzdHJ1Y3Qg
Q29udGFjdEluZm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBQcm9taXNl
ZEF0dGFjaG1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBlbnVtIGNs
YXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90OwpAQCAtMjc0LDYgKzI3Nyw3IEBA
IHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgV2ViS2l0OjpGcmFtZUluZm9EYXRh
IF9mcmFtZUluZm9Gb3JGaWxlVXBsb2FkUGFuZWw7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYm
ICFQTEFURk9STShBUFBMRVRWKQogICAgIFJldGFpblB0cjxXS1NoYXJlU2hlZXQ+IF9zaGFyZVNo
ZWV0OworICAgIFJldGFpblB0cjxXS0NvbnRhY3RQaWNrZXI+IF9jb250YWN0UGlja2VyOwogI2Vu
ZGlmCiAgICAgUmV0YWluUHRyPFVJR2VzdHVyZVJlY29nbml6ZXI+IF9wcmV2aWV3R2VzdHVyZVJl
Y29nbml6ZXI7CiAgICAgUmV0YWluUHRyPFVJR2VzdHVyZVJlY29nbml6ZXI+IF9wcmV2aWV3U2Vj
b25kYXJ5R2VzdHVyZVJlY29nbml6ZXI7CkBAIC00MjQsNiArNDI4LDcgQEAgc3RydWN0IFdLQXV0
b0NvcnJlY3Rpb25EYXRhIHsKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0
aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVRleHRBdXRvc2Nyb2xsaW5nLCBV
SVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJVGV4dElucHV0UHJpdmF0ZSwgVUlXZWJGb3JtQWNj
ZXNzb3J5RGVsZWdhdGUsIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRl
LCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxl
Z2F0ZSwgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSwgV0tLZXlib2FyZFNjcm9sbFZpZXdBbmlt
YXRvckRlbGVnYXRlLCBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKICNpZiAh
UExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisgICAgLCBXS0NvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZQogICAgICwgV0tTaGFyZVNoZWV0RGVsZWdhdGUKICNlbmRpZgogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCkBAIC01MjAsNiArNTI1LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9X
S0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJf
VklFVykKIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooQk9PTCloYXNWaWRlbyBm
cm9tUmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgcm91dGVTaGFyaW5n
UG9saWN5OihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpcG9saWN5IHJvdXRpbmdDb250ZXh0
VUlEOihOU1N0cmluZyAqKWNvbnRleHRVSUQ7CiAtICh2b2lkKV9zaG93UnVuT3BlblBhbmVsOihB
UEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMgZnJhbWVJbmZvOihjb25zdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEmKWZyYW1lSW5mbyByZXN1bHRMaXN0ZW5lcjooV2ViS2l0OjpXZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5lcjsKIC0gKHZvaWQpX3Nob3dTaGFy
ZVNoZWV0Oihjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJilzaGFyZURhdGEg
aW5SZWN0OihXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pcmVjdCBjb21wbGV0aW9u
SGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKWNvbXBsZXRpb25I
YW5kbGVyOworLSAodm9pZClfc2hvd0NvbnRhY3RQaWNrZXI6KGNvbnN0IFdlYkNvcmU6OkNvbnRh
Y3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4m
Jik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWRpc21pc3NGaWxlUGlja2VyOwogLSAo
dm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRs
ZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9uSXRlbT4m
KSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC02MjcsNiArNjMzLDcgQEAgRk9SX0VB
Q0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNU
SU9OX0ZPUl9XRUJfVklFVykKIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNlckludGVy
ZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW07CiAtICh2b2lkKV9kb0FmdGVy
UmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAtICh2
b2lkKV9kb0FmdGVyUmVjZWl2aW5nRWRpdERyYWdTbmFwc2hvdEZvclRlc3Rpbmc6KGRpc3BhdGNo
X2Jsb2NrX3QpYWN0aW9uOworLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFj
dHM6KE5TQXJyYXkgKiljb250YWN0czsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlRm9yVGVzdGluZzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNTdHJpbmcgKnNlbGVjdEZvcm1Qb3BvdmVyVGl0bGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQppbmRleCBkN2JkYjNkZDU5OWZiZWViMGM2M2RiNDRlNTJhY2VkNmUwY2U1MGEyLi4yM2Ex
YTBkYjdhMTM2YTlmMDFhOTBjZjA2ZTFkMGMxZDJjMWUwM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAg
LTczLDcgKzczLDcgQEAKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgi
CiAjaW1wb3J0ICJXS1dlYlZpZXdJT1MuaCIKICNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGUuaCIK
LSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgiCisjaW1wb3J0ICJXS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25Db250
ZXh0LmgiCiAjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCIKICNpbXBvcnQgIldlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgpAQCAtNjg0OCw2ICs2ODQ4LDM2IEBAIC0g
KHZvaWQpc2hhcmVTaGVldDooV0tTaGFyZVNoZWV0ICopc2hhcmVTaGVldCB3aWxsU2hvd0FjdGl2
aXR5SXRlbXM6KE5TQXJyYXkgKilhCiAKICNlbmRpZgogCistICh2b2lkKV9zaG93Q29udGFjdFBp
Y2tlcjooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERhdGEgY29t
cGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcgoreworI2lm
ICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKyAgICBfY29udGFjdFBp
Y2tlciA9IGFkb3B0TlMoW1tXS0NvbnRhY3RQaWNrZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxm
LndlYlZpZXddKTsKKyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAg
W19jb250YWN0UGlja2VyIHByZXNlbnRXaXRoUmVxdWVzdERhdGE6cmVxdWVzdERhdGEgY29tcGxl
dGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworI2Vsc2UKKyAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworI2VuZGlmCit9CisKKyNpZiAhUExBVEZPUk0o
V0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCistICh2b2lkKWNvbnRhY3RQaWNrZXJEaWRQ
cmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKiljb250YWN0UGlja2VyCit7CisgICAgQVNTRVJUKF9j
b250YWN0UGlja2VyID09IGNvbnRhY3RQaWNrZXIpOworCisgICAgW193ZWJWaWV3IF9kaWRQcmVz
ZW50Q29udGFjdFBpY2tlcl07Cit9CisKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZERpc21pc3M6
KFdLQ29udGFjdFBpY2tlciAqKWNvbnRhY3RQaWNrZXIKK3sKKyAgICBBU1NFUlQoX2NvbnRhY3RQ
aWNrZXIgPT0gY29udGFjdFBpY2tlcik7CisKKyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdh
dGU6bmlsXTsKKyAgICBfY29udGFjdFBpY2tlciA9IG5pbDsKKworICAgIFtfd2ViVmlldyBfZGlk
RGlzbWlzc0NvbnRhY3RQaWNrZXJdOworfQorI2VuZGlmCisKIC0gKE5TU3RyaW5nICopaW5wdXRM
YWJlbFRleHQKIHsKICAgICBpZiAoIV9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmxhYmVsLmlz
RW1wdHkoKSkKQEAgLTkwOTQsNiArOTEyNCwxMyBAQCAtIChOU0RpY3Rpb25hcnkgKilfY29udGVu
dHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCiAgICAg
cmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFj
dHM6KE5TQXJyYXkgKiljb250YWN0cworeworI2lmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExB
VEZPUk0oQVBQTEVUVikKKyAgICBbX2NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhDb250YWN0czpj
b250YWN0c107CisjZW5kaWYKK30KKwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2
YjZhOTYwMDA3OTY3NzAwNmQzNTcwMGIxNjM0YmFhNTc5YTU3NjQ1Li5lZGRhMjQzOTQ5MTE5NGY2
YTMzNDFiNWYyNjgxZDQzOTJhNmJkYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NDgsNiArMTg0OCw3IEBACiAJCUU0OUQ0MEQ3
MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZC
N0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0MjFGMUQ3
MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIx
RjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlP
Uy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVl
Tm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRF
NTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsKKwkJ
RTUwNjIwOTIyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5
MSAvKiBDb250YWN0c1VJU1BJLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAv
KiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUzQzMy
IC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNr
ZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hv
b3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1
Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9OwpAQCAt
MTg1NSw2ICsxODU2LDcgQEAKIAkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVU
aW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAq
LzsgfTsKIAkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bi5oICovOyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi87IH07CisJCUU1OTZERDZBMjUxRTcxRDQwMEMyNzVBNyAv
KiBXS0NvbnRhY3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCAq
LzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bklPUy5oICovOyB9OwogCQlFNUNCMDdEQzIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3Jt
Q29sb3JDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi87
IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEy
ODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDEyLDYgKzU0MTQsNyBAQAogCQlF
NDlENDBEODFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxvYlN0b3Jh
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgzQjAzMDAz
NDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUwNjIwOTEyNTQyMTAyMDAwQzQz
MDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFjdHNVSVNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1
MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1D
b2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBwYXRoID0g
aW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01NDI2LDYgKzU0MjksOCBAQAogCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4
QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4NTYgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250YWN0UGlja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVBNyAvKiBX
S0NvbnRhY3RQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0NvbnRhY3RQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVG
NjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duSU9TLmg7IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVGNjgxMjEzMEM0N0YwMEYz
MTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MubW07IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMg
LyogV0tGb3JtQ29sb3JDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNvbG9yQ29udHJv
bC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNjQ1NSw2ICs2NDYwLDggQEAKIAkJCQk1MUQxMjQzMjFFNkRFNTIx
MDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tICovLAogCQkJCTJERkM3REI5
MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovLAogCQkJCTJERkM3REJBMUJDQ0Mx
OTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKKwkJCQlFNTk2REQ2ODI1MUU3MUQzMDBD
Mjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi8sCisJCQkJRTU5NkRENjkyNTFFNzFENDAwQzI3
NUE3IC8qIFdLQ29udGFjdFBpY2tlci5tbSAqLywKIAkJCQkyRUNGNjZDQzIxRDZCNzdFMDA5RTVD
M0YgLyogV0tFZGl0Q29tbWFuZC5oICovLAogCQkJCTJFQ0Y2NkNEMjFENkI3N0UwMDlFNUMzRiAv
KiBXS0VkaXRDb21tYW5kLm1tICovLAogCQkJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2OSAvKiBX
S0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKQEAgLTEwNTY3LDYgKzEwNTc0LDcgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9h
cmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNl
Qm9hcmRTUEkuaCAqLywKKwkJCQlFNTA2MjA5MTI1NDIxMDIwMDBDNDMwOTEgLyogQ29udGFjdHNV
SVNQSS5oICovLAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJkU2Vy
dmljZXNTUEkuaCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9iaWxlV2lG
aVNQSS5oICovLAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRTUEkuaCAq
LywKQEAgLTEwOTUwLDYgKzEwOTU4LDcgQEAKIAkJCQkzN0JFQzRFMTE5NDkxNDg2MDA4QjQyODYg
LyogQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdD
NEU5RjYxMzFDNkU3RTAwMjlCRDVBIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
MzJEQUIxMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUU1MDYyMDkyMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDQTA1Mzk3OTIzRUUzMjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVk
ZXNDaGlsZEZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyOUVCMTIyM0QwREU3QjAwQUYx
Q0Q3IC8qIENvbnRlbnRXb3JsZFNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwNkQ3QzQx
OEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuaCBpbiBIZWFkZXJzICov
LApAQCAtMTE2ODUsNiArMTE2OTQsNyBAQAogCQkJCUJDQTI4NEQ3MTQ5MkYyQzcwMDFGOTA0MiAv
KiBXS0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUM3NUM4MTQ5NTREQTYwMEJD
NDc3NSAvKiBXS0Nvbm5lY3Rpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0QTYy
OTcxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTU5NkRENkEyNTFFNzFENDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNEMjg2NTQxRTcyMzVCMTAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1NTFFNzIzNUI4MDA5NEZEQzggLyogV0tDb250
ZW50UnVsZUxpc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2NTExRTcyMzU5
OTAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEyODY1NmYw
ZGExOTQ0ZDVkYmIzZDJiNGJjYjkyNWJjYjU1YjhhY2YuLmM0NGQ5ZThkZTUyMmNkNjk1OGM2NDQ4
ODVhOTdlYjFlODkyNDI5ZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAyMC0xMC0yNiAgQWRpdHlhIEtlZXJ0aGkg
IDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRk
IHN1cHBvcnQgZm9yIHBpY2tlciBVSSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODE4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4
NjIyNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgVUlTY3JpcHRDb250cm9sbGVyIGhvb2tzIHRvIG9ic2VydmUgdGhlIHByZXNlbnRhdGlv
biBhbmQKKyAgICAgICAgZGlzbWlzc2FsIG9mIGEgY29udGFjdCBwaWNrZXIuIEZ1cnRoZXJtb3Jl
LCB0aGUKKyAgICAgICAgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMgbWV0aG9kIHdh
cyBhZGRlZCB0byBhbGxvdyB0ZXN0cyB0bworICAgICAgICBkaXNtaXNzIHRoZSBwcmVzZW50ZWQg
Y29udGFjdCBwaWNrZXIgd2l0aCBhIHNldCBvZiBzZWxlY3RlZCBjb250YWN0cy4KKworICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250ZXh0Lmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcjo6aXNTaG93aW5nQ29udGFjdFBpY2tlciBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgorICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNo
YXJlZC5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0Nv
bnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
ZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayBj
b25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IHJlc2V0SW50ZXJhY3Rpb25D
YWxsYmFja3NdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkUHJlc2VudENv
bnRhY3RQaWNrZXJdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkRGlzbWlz
c0NvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2Ny
aXB0Q29udHJvbGxlckNvY29hLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9V
SVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyQ29jb2E6OnNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFj
ayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dpbmdDb250
YWN0UGlja2VyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6
OmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKToKKwogMjAyMC0xMC0yMiAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBJUEMgdGVzdGluZyBBUEkgc2hv
dWxkIGV4cG9zZSBBcnJheUJ1ZmZlciBmb3IgYW4gdW5rbm93biBkZWNvZGVkIGFyZ3VtZW50CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAzZDU4MzJkMWQ5
NjJjMGM5MzJmMzI3ZTNlYmMwMTg5ZGExMGM0ODVjLi4zZTA1ZWIxMzMwMmMzMjYyMTY5ODUzZjgx
NGVkODMzMzgzYmI2YWE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwKQEAgLTM0OSw2ICszNDksMTEgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7
CiAgICAgb2JqZWN0IGF0dGFjaG1lbnRJbmZvKERPTVN0cmluZyBhdHRhY2htZW50SWRlbnRpZmll
cik7CiAgICAgdW5kZWZpbmVkIGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChET01TdHJpbmcg
ZmlsZVBhdGgsIERPTVN0cmluZyBjb250ZW50VHlwZSwgb2JqZWN0IGNhbGxiYWNrKTsKIAorICAg
IGF0dHJpYnV0ZSBvYmplY3QgZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjazsKKyAgICBhdHRy
aWJ1dGUgb2JqZWN0IGRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2s7CisgICAgdW5kZWZpbmVk
IGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKG9iamVjdCBjb250YWN0cyk7CisgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5nQ29udGFjdFBpY2tlcjsKKwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdFVuZG9MYWJlbDsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZpcnN0UmVkb0xhYmVsOwogfTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgK
aW5kZXggZmJhMzJjOTM3YjI5ODMxZTAyNmY5OTEzODYwYjJlMDcyMWUwZjI1NC4uMmI1ZjRiZjgx
NmQwMTQ0YjMxOWI2MjZkMTA3MDg0ODNjOWRmMWViOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKKysrIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKQEAgLTY1
LDYgKzY1LDggQEAgdHlwZWRlZiBlbnVtICB7CiAgICAgQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0Nv
bnRleHRNZW51LAogICAgIENhbGxiYWNrVHlwZVdpbGxDcmVhdGVOZXdQYWdlLAogICAgIENhbGxi
YWNrVHlwZVdpbmRvd1RhcFJlY29nbml6ZWQsCisgICAgQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRh
Y3RQaWNrZXIsCisgICAgQ2FsbGJhY2tUeXBlRGlkSGlkZUNvbnRhY3RQaWNrZXIsCiAgICAgQ2Fs
bGJhY2tUeXBlTm9uUGVyc2lzdGVudCA9IGZpcnN0Tm9uUGVyc2lzdGVudENhbGxiYWNrSUQKIH0g
Q2FsbGJhY2tUeXBlOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGJlMTM2YmQwNjBiM2Iz
MjIxM2M1MTRiNWI1ZDU2YTgxZmI0ZTNmYzguLjdlNDgwN2IxNTRmYmE0NjM2YTk2NWUyYWVhMGJi
NzA5YmI1YjZkYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNzcsNiArMjc3LDE3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTT2JqZWN0UmVmIGF0dGFjaG1lbnRJbmZvKEpTU3RyaW5n
UmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2
b2lkIGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYs
IEpTVmFsdWVSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgLy8gQ29udGFjdCBQaWNr
ZXIKKworICAgIHZpcnR1YWwgdm9pZCBzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKEpT
VmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaygp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dpbmdDb250YWN0UGlja2VyKCkgY29uc3Qg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBz
ZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpOworICAgIEpTVmFsdWVS
ZWYgZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygpIGNvbnN0OworCisgICAgdmlydHVhbCB2
b2lkIGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKEpTVmFsdWVSZWYpIHsgbm90SW1w
bGVtZW50ZWQoKTsgfQorCiAgICAgLy8gQ2FsbGJhY2tzCiAgICAgCiAgICAgdmlydHVhbCB2b2lk
IHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250cm9sbGVyU2hhcmVkLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKaW5kZXggYmZmNGYzNDMzZGJkMjk1
NzVkNjI1YjczOTRlNmQ5ZDM4MWNhZWMyNi4uOWU0OTQwY2UzYThiMTAyMjdmZWRlMWZlMmUyZjgx
ZjE5YThkYTY0NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwCkBAIC0y
MTMsNiArMjEzLDI2IEBAIEpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNz
UG9wb3ZlckNhbGxiYWNrKCkgY29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dp
dGhJRChDYWxsYmFja1R5cGVEaWREaXNtaXNzUG9wb3Zlcik7CiB9CiAKK3ZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2Fs
bGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxs
YmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRD
b250cm9sbGVyOjpkaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93Q29udGFj
dFBpY2tlcik7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRlQ29udGFj
dFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5y
ZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBpY2tl
cik7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlQ29udGFjdFBp
Y2tlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dp
dGhJRChDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBpY2tlcik7Cit9CisKIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjp1aVNjcmlwdENvbXBsZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkKIHsKICAg
ICBtX2NvbnRleHQtPnJlcXVlc3RVSVNjcmlwdENvbXBsZXRpb24ocmVzdWx0KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKaW5kZXgg
ZjU1NGUxMjNlYTNlNTQxYTEwN2M3ZGQ2NzZmZTRjNWZlNzFlNmQ2OC4uZjU3MWU0ZGRkOGZjODli
MzIzMWFkNjA4Nzg4NGRjMjkxMTBlYzVhZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKQEAgLTczLDYgKzczLDkgQEAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ01lbnUpIEJPT0wgc2hv
d2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dNZW51
Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRI
aWRlTWVudUNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
Z2V0dGVyPWlzU2hvd2luZ0NvbnRhY3RQaWNrZXIpIEJPT0wgc2hvd2luZ0NvbnRhY3RQaWNrZXI7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dDb250YWN0UGlja2Vy
Q2FsbGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRI
aWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZXRhaW4sIHNldHRlcj1fc2V0U3RhYmxlU3RhdGVPdmVycmlkZTopIE5TTnVtYmVyICpfc3RhYmxl
U3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbGlu
Z1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJs
ZWRGb3JUZXN0aW5nOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29h
L1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RSdW5uZXJXS1dlYlZpZXcubW0KaW5kZXggOTE1ZjQ3NmM2MTVhZTYxMDkwZDkwY2E3OTc2YmY4
ZjJjOTliNTY2Yi4uNTcwNmE3YjExNWI1MTQyNGYyYjY1Yzg0Y2E4MWM4MDg0MjAzNzhjOCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmll
dy5tbQpAQCAtNzgsNiArNzgsNyBAQCBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hv
d2luZ01lbnUsIHNldHRlcj1zZXRJc1Nob3dpbmdNZW51OikgQk9PTCBzaG93aQogQHByb3BlcnR5
IChub25hdG9taWMsIGdldHRlcj1pc0Rpc21pc3NpbmdNZW51LCBzZXR0ZXI9c2V0SXNEaXNtaXNz
aW5nTWVudTopIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0
dGVyPWlzU2hvd2luZ1BvcG92ZXIsIHNldHRlcj1zZXRJc1Nob3dpbmdQb3BvdmVyOikgQk9PTCBz
aG93aW5nUG9wb3ZlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nQ29u
dGV4dE1lbnUsIHNldHRlcj1zZXRJc1Nob3dpbmdDb250ZXh0TWVudTopIEJPT0wgc2hvd2luZ0Nv
bnRleHRNZW51OworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdDb250YWN0
UGlja2VyLCBzZXR0ZXI9c2V0SXNTaG93aW5nQ29udGFjdFBpY2tlcjopIEJPT0wgc2hvd2luZ0Nv
bnRhY3RQaWNrZXI7CiAKIEBlbmQKIApAQCAtMTcxLDYgKzE3Miw4IEBAIC0gKHZvaWQpcmVzZXRJ
bnRlcmFjdGlvbkNhbGxiYWNrcwogewogICAgIHNlbGYuZGlkU2hvd01lbnVDYWxsYmFjayA9IG5p
bDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWRTaG93
Q29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOworICAgIHNlbGYuZGlkSGlkZUNvbnRhY3RQaWNr
ZXJDYWxsYmFjayA9IG5pbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHNlbGYuZGlk
U3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRF
bmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7CkBAIC01NDUsNCArNTQ4LDI0
IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0
dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgoreworICAgIGlmIChzZWxm
LnNob3dpbmdDb250YWN0UGlja2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxmLnNob3dp
bmdDb250YWN0UGlja2VyID0gWUVTOworICAgIGlmIChzZWxmLmRpZFNob3dDb250YWN0UGlja2Vy
Q2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaygpOwor
fQorCistICh2b2lkKV9kaWREaXNtaXNzQ29udGFjdFBpY2tlcgoreworICAgIGlmICghc2VsZi5z
aG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5n
Q29udGFjdFBpY2tlciA9IE5POworICAgIGlmIChzZWxmLmRpZEhpZGVDb250YWN0UGlja2VyQ2Fs
bGJhY2spCisgICAgICAgIHNlbGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygpOworfQor
CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLmgKaW5kZXggY2M5ODEzOTQyNGYyODgwNjQ0Mzk4OTgzNDVjM2U3ZDRl
YTU1MzM3OC4uZThjZGMzY2YwYzExNTQxYTg3ZGFjODUwMWU3MDhmNjg4ZWFjYjE4NCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2Nv
YS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVy
Q29jb2EuaApAQCAtNjQsNiArNjQsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5zZXJ0QXR0
YWNobWVudEZvckZpbGVQYXRoKEpTU3RyaW5nUmVmIGZpbGVQYXRoLCBKU1N0cmluZ1JlZiBjb250
ZW50VHlwZSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldERp
ZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwor
ICAgIGJvb2wgaXNTaG93aW5nQ29udGFjdFBpY2tlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZv
aWQgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7
CisKICAgICB2b2lkIGNvbXBsZXRlVGFza0FzeW5jaHJvbm91c2x5QWZ0ZXJBY3Rpdml0eVN0YXRl
VXBkYXRlKHVuc2lnbmVkIGNhbGxiYWNrSUQpOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggNTg0
Nzk3NmYyMTg1N2Y1M2Y0ODVlY2IxZmIxZWI5MTE3MjFhNTZkYS4uYmI1NGEyYTE2NGJhNThkY2Rj
NDhkMTY3NmQ0NWE5YWM4Y2I0NzY0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC0yMjUsNCArMjI1LDM2
IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6Omluc2VydEF0dGFjaG1lbnRGb3JGaWxl
UGF0aChKU1N0cmluZ1JlZiBmaWxlUGF0aCwKICAgICB9XTsKIH0KIAordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXJDb2NvYTo6c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhKU1ZhbHVlUmVm
IGNhbGxiYWNrKQoreworICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0NvbnRhY3RQ
aWNrZXJDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmlldygpLmRpZFNob3dDb250YWN0UGlj
a2VyQ2FsbGJhY2sgPSBeeworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkU2hv
d0NvbnRhY3RQaWNrZXIpOworICAgIH07Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29j
b2E6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykK
K3sKKyAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJh
Y2soY2FsbGJhY2spOworICAgIHdlYlZpZXcoKS5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNr
ID0gXnsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZEhpZGVDb250YWN0UGlj
a2VyKTsKKyAgICB9OworfQorCitib29sIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dp
bmdDb250YWN0UGlja2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gd2ViVmlldygpLnNob3dpbmdD
b250YWN0UGlja2VyOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpkaXNtaXNz
Q29udGFjdFBpY2tlcldpdGhDb250YWN0cyhKU1ZhbHVlUmVmIGNvbnRhY3RzKQoreworICAgIEpT
Q29udGV4dCAqY29udGV4dCA9IFtKU0NvbnRleHQgY29udGV4dFdpdGhKU0dsb2JhbENvbnRleHRS
ZWY6bV9jb250ZXh0LT5qc0NvbnRleHQoKV07CisgICAgSlNWYWx1ZSAqdmFsdWUgPSBbSlNWYWx1
ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmNvbnRhY3RzIGluQ29udGV4dDpjb250ZXh0XTsKKyAgICBb
d2ViVmlldygpIF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpbdmFsdWUgdG9BcnJh
eV1dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNzNiZTlmOWE5YzJlNWEyNTZh
NDQ5NGE1ZTA3MDQ5YzViY2JhMzYxLi4zZjE3ZTE5ODA4YzY1MzVjNDdhYWUwOTc4YTJlZGY2MzYy
NTE0OGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhp
ICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFk
ZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5
ODYyMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIHRlc3RzIHRvIHZlcmlmeSB0aGUgcHJlc2VudGF0aW9uIGFuZCBkaXNtaXNzYWwgb2Yg
YSBjb250YWN0CisgICAgICAgIHBpY2tlciBvbiBpT1MuIFRoZSBuZXcgdGVzdHMgYXJlIG9ubHkg
cnVuIG9uIGlPUyBXSzIsIHNpbmNlIHRoYXQgaXMgdGhlCisgICAgICAgIG9ubHkgcGxhdGZvcm0g
d2hpY2ggY3VycmVudGx5IHN1cHBvcnRzIHRoZSBwcmVzZW50YXRpb24gb2YgYSBjb250YWN0Cisg
ICAgICAgIHBpY2tlci4gTm90ZSB0aGF0IHRoZXNlIHRlc3RzIHdpbGwgYmUgZW5hYmxlZCBvbiBt
YWNPUyBXSzIgb25jZSBzdXBwb3J0CisgICAgICAgIGlzIGFkZGVkIGluIGEgZm9ydGhjb21pbmcg
cGF0Y2guCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGNvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRl
ci1kaXNtaXNzaW5nLXBpY2tlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hp
bGUtcHJlc2VudGluZy1waWNrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNr
ZXIvY29udGFjdHMtc2VsZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgor
ICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KToKKyAg
ICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSk6CisgICAg
ICAgICh3aW5kb3cuVUlIZWxwZXIuZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgor
CiAyMDIwLTEwLTI1ICBFbWlsaW8gQ29ib3Mgw4FsdmFyZXogIDxlbWlsaW9AY3Jpc2FsLmlvPgog
CiAgICAgICAgIFVwZGF0ZSBDU1NPTSBXUFQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBh
ODE2ZWE3Y2Y2MjBkNjhjYTNjMDVkZTMyM2JiZDliYmFlNjYyMjQxLi5kYjU2OTI3ZTUzOTA2OTlk
YTExNDhkNWIyNzhkN2M5OTgzMTgyODcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkwLDYgKzkw
LDExIEBAIGZhc3QvZm9ybXMvZW50ZXJrZXloaW50LWF0dHJpYnV0ZS12YWx1ZXMuaHRtbCBbIFNr
aXAgXQogIyBIaWdobGlnaHRpbmcgbWFya2VkIHRleHQgcmFuZ2VzIGZyb20gbGF5b3V0IHRlc3Rz
IGlzIG9ubHkgc3VwcG9ydGVkIGluIFdlYktpdDIuCiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9u
LWhpZ2hsaWdodHMuaHRtbCBbIFNraXAgXQogCisjIENvY29hIFdLMiBvbmx5LiBPdGhlciBwbGF0
Zm9ybXMgZG8gbm90IHByZXNlbnQgYSBjb250YWN0IHBpY2tlciBVSS4KK2NvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sIFsgU2tpcCBdCitj
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXIuaHRt
bCBbIFNraXAgXQorY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgWyBTa2lwIF0K
KwogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1leHRlcm5hbC1lbnRpdHktbm8t
bG9nZ2luZy54bWwgWyBTa2lwIF0KIAogIyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIG9ubHkg
dGVzdGVkIGluIER1bXBSZW5kZXJUcmVlIG9uIE1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qt
YWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MTg0YWY2
NjI1NjdmMGI1MGYxYjQ1Y2UzNjRlODljM2VhODhjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1w
aWNrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0
aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxs
IHRvIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgd2FzIGNvbXBsZXRlZC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BlcmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4K
K1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkg
aXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jvb2tb
MF0uZW1haWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEudGVsLCBhZGRy
ZXNzQm9va1swXS50ZWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIubmFt
ZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250
YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29udGFjdDIu
dGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUsIGFkZHJl
c3NCb29rWzJdLm5hbWUpIGlzIHRydWUKK1BBU1MgY29udGFjdDMuZW1haWwubGVuZ3RoIGlzIDAK
K1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMudGVsLCBhZGRyZXNzQm9va1syXS50ZWwpIGlz
IHRydWUKK1BBU1MgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uIGJlY2FtZSB0cnVlCisKK1BlcmZv
cm1pbmcgc2Vjb25kIGNvbnRhY3RzIHJlcXVlc3QuCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRh
Y3QxLm5hbWUsIGFkZHJlc3NCb29rWzBdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1
YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGFy
ZUFycmF5c0VxdWFsKGNvbnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSBpcyB0cnVlCitQ
QVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIGlz
IHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFd
LmVtYWlsKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBhcmVB
cnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVlCitQ
QVNTIGNvbnRhY3QzLmVtYWlsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRh
Y3QzLnRlbCwgYWRkcmVzc0Jvb2tbMl0udGVsKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNz
aW5nLXBpY2tlci5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MxNTE0YzgwNmMz
ZWM1MDM5YzcwNmU4M2RiM2VjMWI2YTQzYzNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tl
ci5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91
aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgZmluaXNoZWRDb250YWN0U2VsZWN0aW9u
ID0gZmFsc2U7CisKKyAgICAgICAgY29uc3QgYWRkcmVzc0Jvb2sgPSBbCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBBIl0sCisgICAgICAgICAgICAgICAg
ImVtYWlsIjogWyJwZXJzb24uYUB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICAgICAgInRlbCI6
IFsiNTU1LTU1NTUiXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAibmFtZSI6IFsiUGVyc29uIEIiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBl
cnNvbi5iQHdlYmtpdC5vcmciLCAicGVyc29uLmIuYWx0QHdlYmtpdC5vcmciXSwKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBD
Il0sCisgICAgICAgICAgICAgICAgInRlbCI6IFsiNzc3LTc3NzciXSwKKyAgICAgICAgICAgIH0K
KyAgICAgICAgXTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAg
eworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmln
YXRvci5jb250YWN0cy5zZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxsIHRvIG5hdmln
YXRvci5jb250YWN0cy5zZWxlY3Qgd2FzIGNvbXBsZXRlZC5cbiIpOworCisgICAgICAgICAgICBj
b25zdCBjb250YWN0c0J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIp
OworICAgICAgICAgICAgY29udGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkQ29udGFjdFNlbGVjdGlv
bikgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiXG5QZXJmb3JtaW5nIHNlY29uZCBjb250
YWN0cyByZXF1ZXN0LiIpCisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgZGVidWcoIlBlcmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4iKQorICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuYXZpZ2F0b3Iu
Y29udGFjdHMuc2VsZWN0KFsibmFtZSIsICJlbWFpbCIsICJ0ZWwiXSk7CisKKyAgICAgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpOworICAgICAg
ICAgICAgICAgIFVJSGVscGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKGFkZHJl
c3NCb29rKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBp
Y2tlclRvSGlkZSgpOworCisgICAgICAgICAgICAgICAgW2NvbnRhY3QxLCBjb250YWN0MiwgY29u
dGFjdDNdID0gYXdhaXQgcmVxdWVzdDsKKworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
YXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWls
LCBhZGRyZXNzQm9va1swXS5lbWFpbCkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUo
ImFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSIpOworCisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5uYW1l
LCBhZGRyZXNzQm9va1sxXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
YXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDIudGVsLmxlbmd0
aCIsIDApOworCisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChj
b250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMuZW1haWwubGVuZ3RoIiwgMCk7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0My50ZWwsIGFkZHJl
c3NCb29rWzJdLnRlbCkiKTsKKworICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZENvbnRhY3RT
ZWxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRDb250YWN0U2Vs
ZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsK
KyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1
YWwoImZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbiIsICJ0cnVlIiwgcmVzb2x2ZSkpOworICAgICAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAg
ICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhhYzdjNTE0YWE2N2Q1MzJk
YTYwYjIzZjQyZjM3YmZjNjBiNzNlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBA
QAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBwcmVz
ZW50cyBhIGNvbnRhY3QgcGlja2VyIGFuZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250YWN0cy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVuZ3RoIGlz
IDMKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFt
ZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jv
b2tbMF0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29udGFjdDEudGVsLmxlbmd0aCBpcyAwCitQQVNT
IGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIGlzIHRy
dWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVt
YWlsKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJh
eXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVlCitQQVNT
IGNvbnRhY3QzLmVtYWlsLmxlbmd0aCBpcyAwCitQQVNTIGNvbnRhY3QzLnRlbC5sZW5ndGggaXMg
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitTaG93
IGNvbnRhY3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0
cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDY3YjU5Y2ZlNDhiNzk1MGQ4ZTAyMTg4MDA5YWNm
YjFlZDA3NDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMu
c2VsZWN0IGZhaWxzIHdoZW4gYSBjb250YWN0IHBpY2tlciBpcyBhbHJlYWR5IGJlaW5nIGRpc3Bs
YXllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVu
Z3RoIGlzIDEKK1BBU1MgY29udGFjdC5uYW1lWzBdIGlzICJQZXJzb24gQSIKK1BBU1MgcmVzdWx0
c1sxXSBpcyAiSW52YWxpZFN0YXRlRXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tl
ci5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxl
LXByZXNlbnRpbmctcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhYTc3MzMwNDBlZTRjMzVlZWY3
OWUyMjNmNDQwNTc1ZmRiYmM2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRh
Y3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sCkBA
IC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4K
KyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAgICAgICAg
ICAgICAiZW1haWwiOiBbInBlcnNvbi5hQHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgICAgICAi
dGVsIjogWyI1NTUtNTU1NSJdCisgICAgICAgICAgICB9LAorICAgICAgICBdOworCisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBm
YWlscyB3aGVuIGEgY29udGFjdCBwaWNrZXIgaXMgYWxyZWFkeSBiZWluZyBkaXNwbGF5ZWQuXG4i
KTsKKworICAgICAgICAgICAgY29uc3QgY29udGFjdHNCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29udGFjdHMiKTsKKyAgICAgICAgICAgIGNvbnRhY3RzQnV0dG9uLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IHBy
b21pc2UxID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAg
ICAgICAgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbJ25hbWUnXSkudGhlbihyZXNvbHZlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0
Y2goZSA9PiByZWplY3QoZS5tZXNzYWdlKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgICBjb25zdCBwcm9taXNlMiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoWyduYW1l
J10pLnRoZW4oY29udGFjdHMgPT4gcmVqZWN0KCJFeHBlY3RlZCBmYWlsdXJlLiIpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZSA9
PiByZXNvbHZlKGUubmFtZSkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb1Nob3coKTsKKyAgICAgICAg
ICAgICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNz
Qm9vayk7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNr
ZXJUb0hpZGUoKTsKKworICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFs
bChbcHJvbWlzZTEsIHByb21pc2UyXSk7CisgICAgICAgICAgICAgICAgY29udGFjdHMgPSByZXN1
bHRzWzBdOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdHMu
bGVuZ3RoIiwgMSk7CisgICAgICAgICAgICAgICAgY29udGFjdCA9IGNvbnRhY3RzWzBdOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY29udGFjdC5uYW1lWzBdIiwgIlBl
cnNvbiBBIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRz
WzFdIiwgIkludmFsaWRTdGF0ZUVycm9yIik7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0
b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iZmYzODdmNTZlMGJlYzcwODIxMWI3ZjZkYjNlYmQyM2Y4MjExY2JkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0Lmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAt
LT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGFkZHJlc3NCb29rID0g
WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24gQSJdLAor
ICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmFAd2Via2l0Lm9yZyJdLAorICAgICAg
ICAgICAgICAgICJ0ZWwiOiBbIjU1NS01NTU1Il0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBCIl0sCisgICAgICAgICAgICAg
ICAgImVtYWlsIjogWyJwZXJzb24uYkB3ZWJraXQub3JnIiwgInBlcnNvbi5iLmFsdEB3ZWJraXQu
b3JnIl0sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogWyJQZXJzb24gQyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjc3Ny03Nzc3Il0s
CisgICAgICAgICAgICB9CisgICAgICAgIF07CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVu
VGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IHByZXNlbnRzIGEgY29udGFjdCBw
aWNrZXIgYW5kIHJldHVybnMgdGhlIHNlbGVjdGVkIGNvbnRhY3RzLlxuIik7CisKKyAgICAgICAg
ICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRh
Y3RzIik7CisgICAgICAgICAgICBjb250YWN0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0c1JlcXVlc3Qg
PSBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFtZSIsICJlbWFpbCJdLCB7IG11bHRpcGxl
OiB0cnVlIH0pOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250YWN0
UGlja2VyVG9TaG93KCk7CisKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFj
dFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisKKyAgICAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpOworCisgICAgICAgICAgICAg
ICAgY29udGFjdHMgPSBhd2FpdCBjb250YWN0c1JlcXVlc3Q7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0cy5sZW5ndGgiLCAzKTsKKworICAgICAgICAgICAg
ICAgIGNvbnRhY3QxID0gY29udGFjdHNbMF07CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCJhcmVBcnJheXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1h
aWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb051bWJlcigiY29udGFjdDEudGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAgICAg
Y29udGFjdDIgPSBjb250YWN0c1sxXTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFy
ZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwg
YWRkcmVzc0Jvb2tbMV0uZW1haWwpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
TnVtYmVyKCJjb250YWN0Mi50ZWwubGVuZ3RoIiwgMCk7CisKKyAgICAgICAgICAgICAgICBjb250
YWN0MyA9IGNvbnRhY3RzWzJdOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJy
YXlzRXF1YWwoY29udGFjdDMubmFtZSwgYWRkcmVzc0Jvb2tbMl0ubmFtZSkiKTsKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImNvbnRhY3QzLmVtYWlsLmxlbmd0aCIsIDAp
OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMudGVsLmxl
bmd0aCIsIDApOworCisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAg
ICB9LCB7IG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlRWxlbWVudChjb250YWN0c0J1dHRvbik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
ICA8Ym9keSBvbmxvYWQ9cnVuVGVzdCgpPgorICAgICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+
U2hvdyBjb250YWN0czwvYnV0dG9uPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzOGUyNTE5YjBlOTE2
ZTdmN2JjY2QxNWQ2MGIwMmNlMTAxNjY2ZDE4Li4xMzQ0OTQ4MWIyZmEwYjRlMThkNjNkMjE2YTI4
MmVkM2MwNWI3MTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw5IEBAIGNvbXBvc2l0aW5nL3NoYXJlZC1iYWNraW5nL292
ZXJmbG93LXNjcm9sbCBbIFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5jLW92ZXJm
bG93LXNjcm9sbGluZyBbIFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5jLW92ZXJm
bG93LXNjcm9sbGluZy9tYWMgWyBTa2lwIF0KIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2Ns
aXBwaW5nLXNjb3BlIFsgUGFzcyBdCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0
ZXItZGlzbWlzc2luZy1waWNrZXIuaHRtbCBbIFBhc3MgXQorY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwgWyBQYXNzIF0KK2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRh
dGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcv
aW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA1ZDgxYjc1MGQ2
NTg4NDk2ZWQ2MTdmNzZkZDEyYmM2NGUzYThkMDc4Li5mZjNlNTE3Njc3M2IxZWY1N2NhNmRhZDky
MmQ1YWYzMjhjODNlZTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTEzODYs
NiArMTM4Niw0NCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAg
ICAgICAgICAgfSkoKTtgLCByZXN1bHQgPT4gcmVzb2x2ZShyZXN1bHQgPT09ICJ0cnVlIikpOwog
ICAgICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgd2FpdEZvckNvbnRhY3RQaWNrZXJUb1No
b3coKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpKQorICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAg
ICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF1aUNvbnRy
b2xsZXIuaXNTaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gKCkgPT4gdWlDb250cm9s
bGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAg
ICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIHN0
YXRpYyB3YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpCisgICAgeworICAgICAgICBpZiAoIXRo
aXMuaXNXZWJLaXQyKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisK
KyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ0NvbnRhY3RQaWNrZXIp
CisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkSGlkZUNvbnRhY3RQaWNr
ZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRo
Q29udGFjdHMoY29udGFjdHMpCisgICAgeworICAgICAgIGNvbnN0IHNjcmlwdCA9IGAoKCkgPT4g
dWlDb250cm9sbGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKCR7SlNPTi5zdHJp
bmdpZnkoY29udGFjdHMpfSkpKClgOworICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCByZXNvbHZlKSk7CisgICAgfQogfQog
CiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFzcyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412748</attachid>
            <date>2020-10-30 08:53:44 -0700</date>
            <delta_ts>2020-10-30 09:51:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218189-20201030115343.patch</filename>
            <type>text/plain</type>
            <size>67418</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmODcxYjk1YmJhMWVmOWQ1ZjdiYzg5
MDg4OTQ0NjQzNTRmNzljYWYuLjYyODA3NDRiMDdiYjNiYmQ5MDUzYjdlM2E2OGU0NDA0YWNjOGM1
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBw
b3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtSGF2ZS5oOgorCisgICAgICAgIEFkZGVkIEhBVkUoQ09OVEFDVFNVSSkgYW5kIEhB
VkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpIG1hY3Jvcy4KKwogMjAyMC0xMC0yOSAg
Smlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0g
TWFrZSBXZWJDb250ZW50IHByb2Nlc3MgdGFsayB0byB0aGUgV2ViQXV0aG4gcHJvY2VzcyBmb3Ig
V2ViQXV0aG4gcmVxdWVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmJmMDc3YjQ1MDBmZWYzNjgxNTIyNzFjZDVj
N2FhMDA5YTcyZmY4Mi4uMmNlZjI3ODg2ODg2YjUwNzcyY2JiZGJkZTFjM2ZiMDUwODE0NzE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3MSBAQAorMjAyMC0xMC0yNiAgQWRpdHlhIEtlZXJ0aGkgIDxh
a2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRkIHN1
cHBvcnQgZm9yIHBpY2tlciBVSSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODE4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIy
Nzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dGFjdHNNYW5hZ2VyLnNlbGVjdCgpIHNob3VsZCBwcmVzZW50IGEgY29udGFjdCBwaWNrZXIgb24g
cGxhdGZvcm1zCisgICAgICAgIHdoaWNoIHN1cHBvcnQgb25lLiBUaGlzIHBhdGNoIGVuYWJsZXMg
dGhlIGVuZC10by1lbmQgZnVuY3Rpb25hbGl0eSBvbgorICAgICAgICBpT1MsIHByZXNlbnRpbmcg
YSBjb250YWN0IHBpY2tlciB1cG9uIGEgY2FsbCB0byB0aGUgQVBJIGFuZCByZXR1cm5pbmcKKyAg
ICAgICAgdGhlIHNlbGVjdGVkIGNvbnRhY3RzIHVwb24gZGlzbWlzc2FsLgorCisgICAgICAgIFRl
c3RzOiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNr
ZXIuaHRtbAorICAgICAgICAgICAgICAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdo
aWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC5odG1sCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQ29u
dGFjdHNVSVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWREaXNtaXNzQ29udGFjdFBpY2tlcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dLQ29udGFjdFBpY2tlci5tbTogQWRkZWQuCisKKyAgICAgICAgV0tDb250YWN0UGlja2Vy
IGlzIGEgV2ViS2l0IHdyYXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVy
LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgaW5pdFdpdGhDb250YWN0
UGlja2VyRGVsZWdhdGU6XSk6CisKKyAgICAgICAgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBp
cyB3cmFwcGVyIGFyb3VuZCBDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZS4KKyAgICAgICAgVGhpcyBp
cyBuZWNlc3NhcnkgYXMgc2luZ2xlL211bHRpcGxlIHNlbGVjdGlvbiBpbiBhCisgICAgICAgIENO
Q29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyIGlzIGRldGVybWluZWQgYnkgd2hpY2ggZGVsZWdh
dGUgbWV0aG9kcworICAgICAgICBhcmUgaW1wbGVtZW50ZWQuIFRoZSB0d28gc3BlY2lhbGl6YXRp
b25zIG9mIHRoaXMgY2xhc3MgaW5jbHVkZSB0aGUKKyAgICAgICAgbWV0aG9kcyBuZWNlc3Nhcnkg
dG8gcHJlc2VudCBhIHNpbmdsZS1zZWxlY3QgYW5kIG11bHRpLXNlbGVjdCBwaWNrZXIKKyAgICAg
ICAgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUg
Y29udGFjdFBpY2tlckRpZENhbmNlbDpdKToKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJT
aW5nbGVTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRpZFNlbGVjdENvbnRhY3Q6XSk6Cisg
ICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlj
a2VyOmRpZFNlbGVjdENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGVs
ZWdhdGVdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIHNldERlbGVnYXRlOl0pOgorICAg
ICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRhY3RQaWNrZXIgcHJlc2VudFdpdGhSZXF1ZXN0RGF0YTpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6XSk6CisK
KyAgICAgICAgVGhpcyBkZWxlZ2F0ZSBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHBpY2tlciBp
cyBkaXNtaXNzZWQgYnkKKyAgICAgICAgdGFwcGluZyB0aGUgZG9uZSBidXR0b24gb3Igd2hlbiB0
aGUgcGlja2VyIGlzIGRpc21pc3NlZCBieSBzd2lwaW5nCisgICAgICAgIGRvd24uCisKKyAgICAg
ICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdDpdKToK
KyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFj
dHM6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdFBpY2tlckRpZERpc21p
c3NXaXRoQ29udGFjdEluZm86XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFj
dEluZm9Gcm9tQ05Db250YWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGlzbWlz
c1dpdGhDb250YWN0czpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0c0Zy
b21KU0NvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX3Nob3dDb250YWN0UGlja2VyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpdKToKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0yOSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTGlu
ayBDb250YWN0cy5mcmFtZXdvcmsgZHVyaW5nIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4
IDBhNTc1YWMxMjg0NzI4YjZhNGFmZmM4YjljNzNhYmQ5NTU3NDcyNzEuLjJjOGZlMDNjNDY1Nzdh
ODYwNzZiMjg5N2IxYzE3Y2MxZGU0YTE5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC03MzUs
MyArNzM1LDExIEBACiAjZGVmaW5lIEhBVkVfQVBQTEVfQVRURVNUQVRJT04gMQogI2VuZGlmCiAj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBM
QVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQ09OVEFDVFNVSSAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUiAxCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0NvbnRh
Y3RzVUlTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0NvbnRhY3RzVUlT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMzQwMDIxNjUyMjQzMmJjZWIyNWI2MDMxY2M1ZGQ2ZDYzZDBjNGQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQ29u
dGFjdHNVSVNQSS5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEhBVkUoQ09OVEFDVFNVSSkKKworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NP
TlRST0xMRVIpCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPENvbnRhY3Rz
VUkvQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXJfUHJpdmF0ZS5oPgorI2Vsc2UKKworQGlu
dGVyZmFjZSBDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAoKQorQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIE5TU3RyaW5nICpwcm9tcHQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorI2VuZGlmIC8vIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRS
T0xMRVIpCisKKyNlbmRpZiAvLyBIQVZFKENPTlRBQ1RTVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
aW5kZXggOTliZWExZmI1OWU5NmQ2YTAwZWYxYmJhMDhhNzI0YjFmMjg4NzAwNC4uMGM3NGNmYmFk
NGRiODA1NjJjODZiZDhkMTBlNjFkMGVjMWQ3ODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApA
QCAtMzk1LDYgKzM5NSw3IEBAIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQorVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbQogVUlQcm9jZXNzL0NvY29h
L1dLRWRpdENvbW1hbmQubW0KIFVJUHJvY2Vzcy9Db2NvYS9XS0Z1bGxLZXlib2FyZEFjY2Vzc1dh
dGNoZXIubW0KIFVJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVt
cHRlci5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCBiMWNkZTcwN2FkNWFjZTVj
M2I3NWJiZWEyMzhlMDI3ZjhmOWIwYTQxLi44NjJiOTQ4NWVmMzg5NGU0NDU4NzdmNTE2MzVmYTc4
ZDNjY2Q4NGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtNTgsNiArNTgsMTAg
QEAgdHlwZWRlZiBlbnVtIHsKIAogLSAodm9pZClfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVk
aWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOihCT09MKXJlc29sdmVkOwogCistICh2b2lk
KV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcjsKKy0gKHZvaWQpX2RpZERpc21pc3NDb250YWN0UGlj
a2VyOworLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkg
Kiljb250YWN0czsKKwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsaW5n
VXBkYXRlc0Rpc2FibGVkRm9yVGVzdGluZzopIEJPT0wgX3Njcm9sbGluZ1VwZGF0ZXNEaXNhYmxl
ZEZvclRlc3Rpbmc7CiAKIC0gKHZvaWQpX3Byb2Nlc3NXaWxsU3VzcGVuZEZvclRlc3Rpbmc6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRleCAxYjJjNjJjNWQ0
MmMyMWRhZWU5NDNkM2Y5ZDgzMGJhNzUyOWQ1MDg5Li5mMjI0ODM5YmQwYmUyODUxZDZjMzgyYzI4
MDRiNjdjYjcxYzUzZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtMjk2LDQgKzI5NiwyMSBAQCAtIChOU051
bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5YmFja0NvdW50ZXIKICAgICByZXR1cm4gQChfcGFnZS0+
c3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyKCkpOwogfQogCistICh2b2lkKV9kaWRQcmVzZW50
Q29udGFjdFBpY2tlcgoreworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgorfQor
CistICh2b2lkKV9kaWREaXNtaXNzQ29udGFjdFBpY2tlcgoreworICAgIC8vIEZvciBzdWJjbGFz
c2VzIHRvIG92ZXJyaWRlLgorfQorCistICh2b2lkKV9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhD
b250YWN0czooTlNBcnJheSAqKWNvbnRhY3RzCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBbX2NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpjb250
YWN0c107CisjZW5kaWYKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XS0NvbnRhY3RQaWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDg2NzI4OTZkNjY1MDU5OWY2NjRi
Mzc0MGRhYWRiODNjZDNkNDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShDT05UQUNUU1VJKQorCitAY2xhc3MgV0tXZWJW
aWV3OworQHByb3RvY29sIFdLQ29udGFjdFBpY2tlckRlbGVnYXRlOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitzdHJ1Y3QgQ29udGFjdEluZm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsK
K30KKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgOiBOU09iamVjdAorCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhWaWV3OihXS1dlYlZpZXcgKil2aWV3OworCistICh2b2lkKXByZXNlbnRX
aXRoUmVxdWVzdERhdGE6KGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVl
c3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKKworQHBy
b3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkPFdLQ29udGFjdFBpY2tlckRlbGVnYXRlPiBkZWxl
Z2F0ZTsKKworQGVuZAorCitAcHJvdG9jb2wgV0tDb250YWN0UGlja2VyRGVsZWdhdGUgPE5TT2Jq
ZWN0PgorQG9wdGlvbmFsCistICh2b2lkKWNvbnRhY3RQaWNrZXJEaWRQcmVzZW50OihXS0NvbnRh
Y3RQaWNrZXIgKiljb250YWN0UGlja2VyOworLSAodm9pZCljb250YWN0UGlja2VyRGlkRGlzbWlz
czooV0tDb250YWN0UGlja2VyICopY29udGFjdFBpY2tlcjsKK0BlbmQKKworQGludGVyZmFjZSBX
S0NvbnRhY3RQaWNrZXIgKFdLVGVzdGluZykKKy0gKHZvaWQpZGlzbWlzc1dpdGhDb250YWN0czoo
TlNBcnJheSAqKWNvbnRhY3RzOworQGVuZAorCisjZW5kaWYgLy8gSEFWRShDT05UQUNUU1VJKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2Vy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQyMTI1ZjdlMzY2NGU1YTVjMTg1ZTkxMDgwMTFhMjgwZDI5Mzg0ZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNr
ZXIubW0KQEAgLTAsMCArMSwzMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV0tDb250YWN0UGlja2VyLmgiCisKKyNpZiBIQVZFKENPTlRBQ1RTVUkpCisK
KyNpbXBvcnQgIkNvbnRhY3RzVUlTUEkuaCIKKyNpbXBvcnQgPENvbnRhY3RzL0NvbnRhY3RzLmg+
CisjaW1wb3J0IDxDb250YWN0c1VJL0NvbnRhY3RzVUkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29u
dGFjdEluZm8uaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgorI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNlbmRpZgorCitT
T0ZUX0xJTktfRlJBTUVXT1JLKENvbnRhY3RzKQorU09GVF9MSU5LX0NMQVNTKENvbnRhY3RzLCBD
TkNvbnRhY3RGb3JtYXR0ZXIpCitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMsIENOTGFiZWxlZFZh
bHVlKQorU09GVF9MSU5LX0NMQVNTKENvbnRhY3RzLCBDTk11dGFibGVDb250YWN0KQorU09GVF9M
SU5LX0NMQVNTKENvbnRhY3RzLCBDTlBob25lTnVtYmVyKQorCisjaWYgSEFWRShDTkNPTlRBQ1RQ
SUNLRVJWSUVXQ09OVFJPTExFUikKK1NPRlRfTElOS19GUkFNRVdPUksoQ29udGFjdHNVSSkKK1NP
RlRfTElOS19DTEFTUyhDb250YWN0c1VJLCBDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcikK
KyNlbmRpZgorCisjcHJhZ21hIG1hcmsgLSBEZWxlZ2F0ZSBXcmFwcGVycworCitAaW50ZXJmYWNl
IFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgOiBOU09iamVjdDxDTkNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZT4geworQHByb3RlY3RlZAorICAgIFdlYWtPYmpDUHRyPGlkPENOQ29udGFjdFBpY2tlckRl
bGVnYXRlPj4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOihpZDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4p
Y29udGFjdFBpY2tlckRlbGVnYXRlOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29u
dGFjdFBpY2tlckRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZTooaWQ8Q05Db250YWN0UGlja2VyRGVsZWdhdGU+KWNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9IGNvbnRhY3RQaWNrZXJEZWxlZ2F0
ZTsKKworICAgIHJldHVybiBzZWxmOworfQorCisjaWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVX
Q09OVFJPTExFUikKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZENhbmNlbDooQ05Db250YWN0UGlj
a2VyVmlld0NvbnRyb2xsZXIgKilwaWNrZXIKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0
ZSBjb250YWN0UGlja2VyRGlkQ2FuY2VsOnBpY2tlcl07Cit9CisjZW5kaWYKKworQGVuZAorCitA
aW50ZXJmYWNlIFdLQ05Db250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUgOiBXS0NOQ29u
dGFjdFBpY2tlckRlbGVnYXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBp
Y2tlclNpbmdsZVNlbGVjdERlbGVnYXRlCisKKyNpZiBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJRVdD
T05UUk9MTEVSKQorLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29u
dHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0OihDTkNvbnRhY3QgKiljb250YWN0Cit7
CisgICAgW19jb250YWN0UGlja2VyRGVsZWdhdGUgY29udGFjdFBpY2tlcjpwaWNrZXIgZGlkU2Vs
ZWN0Q29udGFjdDpjb250YWN0XTsKK30KKyNlbmRpZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tD
TkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlIDogV0tDTkNvbnRhY3RQaWNrZXJEZWxl
Z2F0ZQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVj
dERlbGVnYXRlCisKKyNpZiBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorLSAo
dm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tl
ciBkaWRTZWxlY3RDb250YWN0czooTlNBcnJheTxDTkNvbnRhY3QqPiAqKWNvbnRhY3RzCit7Cisg
ICAgW19jb250YWN0UGlja2VyRGVsZWdhdGUgY29udGFjdFBpY2tlcjpwaWNrZXIgZGlkU2VsZWN0
Q29udGFjdHM6Y29udGFjdHNdOworfQorI2VuZGlmCisKK0BlbmQKKworI3ByYWdtYSBtYXJrIC0g
V0tDb250YWN0UGlja2VyCisKK0BpbnRlcmZhY2UgV0tDb250YWN0UGlja2VyICgpIDxDTkNvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQ29udGFjdFBpY2tl
ciB7CisgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBfd2ViVmlldzsKKyAgICBXZWFrT2JqQ1B0
cjxpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKKworICAgIFZlY3RvcjxX
ZWJDb3JlOjpDb250YWN0UHJvcGVydHk+IF9wcm9wZXJ0aWVzOworICAgIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+JiYpPiBfY29tcGxldGlv
bkhhbmRsZXI7CisKKyAgICBSZXRhaW5QdHI8V0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4gX2Nv
bnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKyNpZiBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9M
TEVSKQorICAgIFJldGFpblB0cjxDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcj4gX2NvbnRh
Y3RQaWNrZXJWaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorfQorCistIChpZDxXS0NvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2RlbGVnYXRlLmdldCgpLmdldCgp
OworfQorCistICh2b2lkKXNldERlbGVnYXRlOihpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4p
ZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKK30KKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldworeworICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3dlYlZpZXcgPSB2aWV3
OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcHJlc2VudFdpdGhSZXF1ZXN0RGF0
YTooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERhdGEgY29tcGxl
dGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
Q29udGFjdEluZm8+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3Byb3BlcnRpZXMg
PSByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzOworICAgIF9jb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpOworCisgICAgaWYgKHJlcXVlc3REYXRhLm11bHRpcGxlKQor
ICAgICAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gYWRvcHROUyhbW1dLQ05Db250YWN0UGlj
a2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdh
dGU6c2VsZl0pOworICAgIGVsc2UKKyAgICAgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tXS0NOQ29udGFjdFBpY2tlclNpbmdsZVNlbGVjdERlbGVnYXRlIGFsbG9jXSBpbml0
V2l0aENvbnRhY3RQaWNrZXJEZWxlZ2F0ZTpzZWxmXSk7CisKKyNpZiBIQVZFKENOQ09OVEFDVFBJ
Q0tFUlZJRVdDT05UUk9MTEVSKQorICAgIF9jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgPSBh
ZG9wdE5TKFthbGxvY0NOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVySW5zdGFuY2UoKSBpbml0
XSk7CisgICAgW19jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6X2NvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW19jb250YWN0UGlja2VyVmlld0NvbnRyb2xs
ZXIgc2V0UHJvbXB0OnJlcXVlc3REYXRhLnVybF07CisKKyAgICBVSVZpZXdDb250cm9sbGVyICpw
cmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJv
bGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfd2ViVmlldy5nZXQoKS5nZXQo
KV07CisgICAgW3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyIHByZXNlbnRWaWV3Q29udHJvbGxl
cjpfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21wbGV0
aW9uOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGFjdFBpY2tlcj4oc2VsZildIHsKKyAg
ICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ry
b25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoW1tzdHJvbmdTZWxm
IGRlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRhY3RQaWNrZXJEaWRQ
cmVzZW50OildKQorICAgICAgICAgICAgW1tzdHJvbmdTZWxmIGRlbGVnYXRlXSBjb250YWN0UGlj
a2VyRGlkUHJlc2VudDpzdHJvbmdTZWxmLmdldCgpXTsKKyAgICB9XTsKKyNlbmRpZgorfQorCisj
cHJhZ21hIG1hcmsgLSBDb21wbGV0aW9uCisKKyNpZiBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJRVdD
T05UUk9MTEVSKQorCistICh2b2lkKWNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6KENOQ29udGFjdFBp
Y2tlclZpZXdDb250cm9sbGVyICopcGlja2VyCit7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRh
Y3RJbmZvPiBpbmZvOworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250
YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworLSAodm9pZCljb250YWN0UGlja2VyOihDTkNv
bnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0OihDTkNv
bnRhY3QgKiljb250YWN0Cit7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiBpbmZv
OworICAgIGluZm8uYXBwZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21DTkNvbnRhY3Q6Y29udGFj
dF0pOworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250YWN0SW5mbzpX
VEZNb3ZlKGluZm8pXTsKK30KKworLSAodm9pZCljb250YWN0UGlja2VyOihDTkNvbnRhY3RQaWNr
ZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0czooTlNBcnJheTxDTkNv
bnRhY3QqPiAqKWNvbnRhY3RzCit7CisgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiBp
bmZvOworICAgIGZvciAoQ05Db250YWN0ICpjb250YWN0IGluIGNvbnRhY3RzKQorICAgICAgICBp
bmZvLmFwcGVuZChbc2VsZiBfY29udGFjdEluZm9Gcm9tQ05Db250YWN0OmNvbnRhY3RdKTsKKyAg
ICBbc2VsZiBfY29udGFjdFBpY2tlckRpZERpc21pc3NXaXRoQ29udGFjdEluZm86V1RGTW92ZShp
bmZvKV07Cit9CisKKyNlbmRpZgorCistICh2b2lkKV9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dp
dGhDb250YWN0SW5mbzooVmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPiYmKWluZm8KK3sKKyAg
ICBfY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpbmZvKSk7CisKKyAgICBpZiAoW19kZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOild
KQorICAgICAgICBbX2RlbGVnYXRlIGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOnNlbGZdOworfQor
CistIChXZWJDb3JlOjpDb250YWN0SW5mbylfY29udGFjdEluZm9Gcm9tQ05Db250YWN0OihDTkNv
bnRhY3QgKiljb250YWN0Cit7CisgICAgV2ViQ29yZTo6Q29udGFjdEluZm8gY29udGFjdEluZm87
CisKKyAgICBpZiAoX3Byb3BlcnRpZXMuY29udGFpbnMoV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5
OjpOYW1lKSkgeworICAgICAgICBOU1N0cmluZyAqY29udGFjdE5hbWUgPSBbZ2V0Q05Db250YWN0
Rm9ybWF0dGVyQ2xhc3MoKSBzdHJpbmdGcm9tQ29udGFjdDpjb250YWN0IHN0eWxlOkNOQ29udGFj
dEZvcm1hdHRlclN0eWxlRnVsbE5hbWVdOworICAgICAgICBjb250YWN0SW5mby5uYW1lID0geyBj
b250YWN0TmFtZSB9OworICAgIH0KKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJD
b3JlOjpDb250YWN0UHJvcGVydHk6OkVtYWlsKSkgeworICAgICAgICBmb3IgKENOTGFiZWxlZFZh
bHVlPE5TU3RyaW5nICo+ICplbWFpbEFkZHJlc3MgaW4gY29udGFjdC5lbWFpbEFkZHJlc3NlcykK
KyAgICAgICAgICAgIGNvbnRhY3RJbmZvLmVtYWlsLmFwcGVuZChlbWFpbEFkZHJlc3MudmFsdWUp
OworICAgIH0KKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3JlOjpDb250YWN0
UHJvcGVydHk6OlRlbCkpIHsKKyAgICAgICAgZm9yIChDTkxhYmVsZWRWYWx1ZTxDTlBob25lTnVt
YmVyICo+ICpwaG9uZU51bWJlciBpbiBjb250YWN0LnBob25lTnVtYmVycykKKyAgICAgICAgICAg
IGNvbnRhY3RJbmZvLnRlbC5hcHBlbmQocGhvbmVOdW1iZXIudmFsdWUuc3RyaW5nVmFsdWUpOwor
ICAgIH0KKworICAgIHJldHVybiBjb250YWN0SW5mbzsKK30KKworI3ByYWdtYSBtYXJrIC0gVGVz
dGluZworCistICh2b2lkKWRpc21pc3NXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cwor
eworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpCisgICAgW19jb250YWN0
UGlja2VyVmlld0NvbnRyb2xsZXIgZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29t
cGxldGlvbjpbc2VsZiwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRhY3RQaWNrZXI+KHNl
bGYpLCBqc0NvbnRhY3RzID0gUmV0YWluUHRyPE5TQXJyYXk+KGNvbnRhY3RzKV0geworICAgICAg
ICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdT
ZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFtzdHJvbmdTZWxmIGNvbnRhY3RQ
aWNrZXI6X2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlci5nZXQoKSBkaWRTZWxlY3RDb250YWN0
czpbc3Ryb25nU2VsZiBfY29udGFjdHNGcm9tSlNDb250YWN0czpqc0NvbnRhY3RzLmdldCgpXV07
CisgICAgfV07CisjZW5kaWYKK30KKworLSAoTlNBcnJheTxDTkNvbnRhY3QqPiAqKV9jb250YWN0
c0Zyb21KU0NvbnRhY3RzOihOU0FycmF5ICopanNDb250YWN0cworeworICAgIGlmICghanNDb250
YWN0cykKKyAgICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5XTsKKworICAgIE5TTXV0YWJsZUFy
cmF5PENOQ29udGFjdCo+ICpjb250YWN0cyA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBh
Y2l0eTpqc0NvbnRhY3RzLmNvdW50XTsKKworICAgIE5TUHJlZGljYXRlICpzdHJpbmdWYWx1ZVBy
ZWRpY2F0ZSA9IFtOU1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAic2VsZiBpc0tpbmRP
ZkNsYXNzOiAlQCIsIFtOU1N0cmluZyBjbGFzc11dOworCisgICAgZm9yIChpZCBqc0NvbnRhY3Qg
aW4ganNDb250YWN0cykgeworICAgICAgICBpZiAoIVtqc0NvbnRhY3QgaXNLaW5kT2ZDbGFzczpb
TlNEaWN0aW9uYXJ5IGNsYXNzXV0pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBD
Tk11dGFibGVDb250YWN0ICpjb250YWN0ID0gW1thbGxvY0NOTXV0YWJsZUNvbnRhY3RJbnN0YW5j
ZSgpIGluaXRdIGF1dG9yZWxlYXNlXTsKKworICAgICAgICBpZCBuYW1lcyA9IFsoTlNEaWN0aW9u
YXJ5ICopanNDb250YWN0IG9iamVjdEZvcktleTpAIm5hbWUiXTsKKyAgICAgICAgaWYgKFtuYW1l
cyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIGZvciAoTlNT
dHJpbmcgKm5hbWUgaW4gW25hbWVzIGZpbHRlcmVkQXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdW
YWx1ZVByZWRpY2F0ZV0pIHsKKyAgICAgICAgICAgICAgICBjb250YWN0LmdpdmVuTmFtZSA9IG5h
bWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwor
ICAgICAgICBpZCBlbWFpbHMgPSBbKE5TRGljdGlvbmFyeSAqKWpzQ29udGFjdCBvYmplY3RGb3JL
ZXk6QCJlbWFpbCJdOworICAgICAgICBpZiAoW2VtYWlscyBpc0tpbmRPZkNsYXNzOltOU0FycmF5
IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPE5T
U3RyaW5nKj4qPiAqZW1haWxBZGRyZXNzZXMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAg
ICAgICAgICAgZm9yIChOU1N0cmluZyAqZW1haWwgaW4gW2VtYWlscyBmaWx0ZXJlZEFycmF5VXNp
bmdQcmVkaWNhdGU6c3RyaW5nVmFsdWVQcmVkaWNhdGVdKSB7CisgICAgICAgICAgICAgICAgQ05M
YWJlbGVkVmFsdWU8TlNTdHJpbmcqPiAqbGFiZWxlZFZhbHVlID0gW2dldENOTGFiZWxlZFZhbHVl
Q2xhc3MoKSBsYWJlbGVkVmFsdWVXaXRoTGFiZWw6bmlsIHZhbHVlOmVtYWlsXTsKKyAgICAgICAg
ICAgICAgICBbZW1haWxBZGRyZXNzZXMgYWRkT2JqZWN0OmxhYmVsZWRWYWx1ZV07CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjb250YWN0LmVtYWlsQWRkcmVzc2VzID0gZW1haWxBZGRyZXNz
ZXM7CisgICAgICAgIH0KKworICAgICAgICBpZCBwaG9uZU51bWJlcnMgPSBbKE5TRGljdGlvbmFy
eSAqKWpzQ29udGFjdCBvYmplY3RGb3JLZXk6QCJ0ZWwiXTsKKyAgICAgICAgaWYgKFtwaG9uZU51
bWJlcnMgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKSB7CisgICAgICAgICAgICBOU011
dGFibGVBcnJheTxDTkxhYmVsZWRWYWx1ZTxDTlBob25lTnVtYmVyKj4qPiAqbnVtYmVycyA9IFtO
U011dGFibGVBcnJheSBhcnJheV07CisgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICpwaG9uZU51
bWJlciBpbiBbcGhvbmVOdW1iZXJzIGZpbHRlcmVkQXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdW
YWx1ZVByZWRpY2F0ZV0pIHsKKyAgICAgICAgICAgICAgICBDTlBob25lTnVtYmVyICpjblBob25l
TnVtYmVyID0gW2dldENOUGhvbmVOdW1iZXJDbGFzcygpIHBob25lTnVtYmVyV2l0aFN0cmluZ1Zh
bHVlOnBob25lTnVtYmVyXTsKKyAgICAgICAgICAgICAgICBDTkxhYmVsZWRWYWx1ZTxDTlBob25l
TnVtYmVyKj4gKmxhYmVsZWRWYWx1ZSA9IFtnZXRDTkxhYmVsZWRWYWx1ZUNsYXNzKCkgbGFiZWxl
ZFZhbHVlV2l0aExhYmVsOm5pbCB2YWx1ZTpjblBob25lTnVtYmVyXTsKKyAgICAgICAgICAgICAg
ICBbbnVtYmVycyBhZGRPYmplY3Q6bGFiZWxlZFZhbHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGNvbnRhY3QucGhvbmVOdW1iZXJzID0gbnVtYmVyczsKKyAgICAgICAgfQorCisgICAg
ICAgIFtjb250YWN0cyBhZGRPYmplY3Q6Y29udGFjdF07CisgICAgfQorCisgICAgcmV0dXJuIGNv
bnRhY3RzOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKENPTlRBQ1RTVUkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDc3YWZj
YWZjNDA0MGZiOWVjOTg4YzdmMWFlZDYyZjZlZDE4NTQyZWUuLmJlMDMwMWZiN2NiMThiYWM3Y2Rl
MzkwZWQzY2YxYTg1NTViOThkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xNzcsNiArMTc3LDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgaGFuZGxlUnVuT3BlblBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBj
b25zdCBGcmFtZUluZm9EYXRhJiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eSopIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvd1NoYXJlU2hl
ZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzaG93Q29udGFjdFBp
Y2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYm
KSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmlu
Z1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBo
YW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBm
aXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9y
dE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGFmY2M0
NWU5Mzc2ZDczYTY0ZDEyYTZjYTc5MDVmYTcyNTU2YzVhZWQuLmI2YWI5NjJiNzMzNDM5MjMyYmY3
ZGQ5MmM5NmE2YjIxMmMxYTg2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTYzOSw2ICs2MzksMTEgQEAgYm9vbCBQYWdlQ2xp
ZW50SW1wbDo6c2hvd1NoYXJlU2hlZXQoY29uc3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgc2hh
cmVEYXRhLCBXVEYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVx
dWVzdERhdGEsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBbbV9j
b250ZW50VmlldyBfc2hvd0NvbnRhY3RQaWNrZXI6cmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRs
ZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzaG93SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6
OkhpZ2hsaWdodCYgaGlnaGxpZ2h0KQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zaG93SW5zcGVj
dG9ySGlnaGxpZ2h0OmhpZ2hsaWdodF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOTMwNzllYzVkZjgyNzVi
YmJmZGExYTQ3MDdkYWQ1YTQ2MWI5ZGQ1NC4uOWZkM2E0YjY0MzI4ZDk4MmVkMTc4MDNmOGM3OWUz
MGMwOWM5YWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKICNpbXBvcnQgIldLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCIKICNpbXBvcnQgIldL
QWlyUGxheVJvdXRlUGlja2VyLmgiCisjaW1wb3J0ICJXS0NvbnRhY3RQaWNrZXIuaCIKICNpbXBv
cnQgIldLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldLRmlsZVVwbG9h
ZFBhbmVsLmgiCiAjaW1wb3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgiCkBAIC03OSw2ICs4MCw4IEBA
IGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgSW50U2l6ZTsKIGNsYXNzIFNl
bGVjdGlvblJlY3Q7CitzdHJ1Y3QgQ29udGFjdEluZm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0
RGF0YTsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogc3RydWN0IFNoYXJlRGF0YVdp
dGhQYXJzZWRVUkw7CiBlbnVtIGNsYXNzIERPTVBhc3RlQWNjZXNzUmVzcG9uc2UgOiB1aW50OF90
OwpAQCAtMjc0LDYgKzI3Nyw5IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIF9mcmFtZUluZm9Gb3JGaWxlVXBsb2FkUGFuZWw7CiAjaWYg
IVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogICAgIFJldGFpblB0cjxX
S1NoYXJlU2hlZXQ+IF9zaGFyZVNoZWV0OworI2VuZGlmCisjaWYgSEFWRShDT05UQUNUU1VJKQor
ICAgIFJldGFpblB0cjxXS0NvbnRhY3RQaWNrZXI+IF9jb250YWN0UGlja2VyOwogI2VuZGlmCiAg
ICAgUmV0YWluUHRyPFVJR2VzdHVyZVJlY29nbml6ZXI+IF9wcmV2aWV3R2VzdHVyZVJlY29nbml6
ZXI7CiAgICAgUmV0YWluUHRyPFVJR2VzdHVyZVJlY29nbml6ZXI+IF9wcmV2aWV3U2Vjb25kYXJ5
R2VzdHVyZVJlY29nbml6ZXI7CkBAIC00MjMsNiArNDI5LDkgQEAgc3RydWN0IFdLQXV0b0NvcnJl
Y3Rpb25EYXRhIHsKIEBlbmQKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0
aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVRleHRBdXRvc2Nyb2xsaW5nLCBV
SVRleHRJbnB1dE11bHRpRG9jdW1lbnQsIFVJVGV4dElucHV0UHJpdmF0ZSwgVUlXZWJGb3JtQWNj
ZXNzb3J5RGVsZWdhdGUsIFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplckRlbGVnYXRl
LCBVSVdLSW50ZXJhY3Rpb25WaWV3UHJvdG9jb2wsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxl
Z2F0ZSwgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSwgV0tLZXlib2FyZFNjcm9sbFZpZXdBbmlt
YXRvckRlbGVnYXRlLCBXS0RlZmVycmluZ0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUKKyNpZiBI
QVZFKENPTlRBQ1RTVUkpCisgICAgLCBXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZQorI2VuZGlmCiAj
aWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogICAgICwgV0tTaGFy
ZVNoZWV0RGVsZWdhdGUKICNlbmRpZgpAQCAtNTIwLDYgKzUyOSw3IEBAIEZPUl9FQUNIX1BSSVZB
VEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1Jf
V0VCX1ZJRVcpCiAtICh2b2lkKV9zaG93UGxheWJhY2tUYXJnZXRQaWNrZXI6KEJPT0wpaGFzVmlk
ZW8gZnJvbVJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKWVsZW1lbnRSZWN0IHJvdXRlU2hh
cmluZ1BvbGljeTooV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5KXBvbGljeSByb3V0aW5nQ29u
dGV4dFVJRDooTlNTdHJpbmcgKiljb250ZXh0VUlEOwogLSAodm9pZClfc2hvd1J1bk9wZW5QYW5l
bDooQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKilwYXJhbWV0ZXJzIGZyYW1lSW5mbzooY29uc3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhJilmcmFtZUluZm8gcmVzdWx0TGlzdGVuZXI6KFdlYktpdDo6
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSopbGlzdGVuZXI7CiAtICh2b2lkKV9zaG93
U2hhcmVTaGVldDooY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYpc2hhcmVE
YXRhIGluUmVjdDooV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KXJlY3QgY29tcGxl
dGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiljb21wbGV0
aW9uSGFuZGxlcjsKKy0gKHZvaWQpX3Nob3dDb250YWN0UGlja2VyOihjb25zdCBXZWJDb3JlOjpD
b250YWN0c1JlcXVlc3REYXRhJilyZXF1ZXN0RGF0YSBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5m
bz4+JiYpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClkaXNtaXNzRmlsZVBpY2tlcjsK
IC0gKHZvaWQpX2RpZEhhbmRsZUtleUV2ZW50Oig6OldlYkV2ZW50ICopZXZlbnQgZXZlbnRXYXNI
YW5kbGVkOihCT09MKWV2ZW50V2FzSGFuZGxlZDsKIC0gKFZlY3RvcjxXZWJLaXQ6Ok9wdGlvbkl0
ZW0+JikgZm9jdXNlZFNlbGVjdEVsZW1lbnRPcHRpb25zOwpAQCAtNjI3LDYgKzYzNyw3IEBAIEZP
Ul9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVX
X0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJ
bnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtOwogLSAodm9pZClfZG9B
ZnRlclJlc2V0dGluZ1NpbmdsZVRhcEdlc3R1cmU6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOwog
LSAodm9pZClfZG9BZnRlclJlY2VpdmluZ0VkaXREcmFnU25hcHNob3RGb3JUZXN0aW5nOihkaXNw
YXRjaF9ibG9ja190KWFjdGlvbjsKKy0gKHZvaWQpX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENv
bnRhY3RzOihOU0FycmF5ICopY29udGFjdHM7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZUZvclRlc3Rpbmc7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpzZWxlY3RGb3JtUG9wb3ZlclRpdGxlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggZGQ4OWMwZjBhZmE4MmIxMzBkNTI0MmVkMWM5OWQ2ZTJiYmY1NTg4OS4u
ZmZmYWFhNjVkZmU4NGM2ZTRiMDc3ZmM3YmNkNmYwMDAzZmE3NGVlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC03Myw3ICs3Myw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SU9TLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRl
LmgiCi0jaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oIgorI2ltcG9ydCAi
V0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCIKICNpbXBvcnQgIldlYkF1dG9jb3JyZWN0aW9u
Q29udGV4dC5oIgogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmgiCiAjaW1wb3J0ICJX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCIKQEAgLTY4NDgsNiArNjg0OCwzNiBA
QCAtICh2b2lkKXNoYXJlU2hlZXQ6KFdLU2hhcmVTaGVldCAqKXNoYXJlU2hlZXQgd2lsbFNob3dB
Y3Rpdml0eUl0ZW1zOihOU0FycmF5ICopYQogCiAjZW5kaWYKIAorLSAodm9pZClfc2hvd0NvbnRh
Y3RQaWNrZXI6KGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRh
IGNvbXBsZXRpb25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyNpZiBIQVZFKENPTlRBQ1RTVUkpCisgICAgX2NvbnRhY3RQaWNrZXIgPSBhZG9wdE5TKFtbV0tD
b250YWN0UGlja2VyIGFsbG9jXSBpbml0V2l0aFZpZXc6c2VsZi53ZWJWaWV3XSk7CisgICAgW19j
b250YWN0UGlja2VyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtfY29udGFjdFBpY2tlciBwcmVz
ZW50V2l0aFJlcXVlc3REYXRhOnJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXTsKKyNlbHNlCisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpu
dWxsb3B0KTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShDT05UQUNUU1VJKQorLSAodm9pZCljb250
YWN0UGlja2VyRGlkUHJlc2VudDooV0tDb250YWN0UGlja2VyICopY29udGFjdFBpY2tlcgorewor
ICAgIEFTU0VSVChfY29udGFjdFBpY2tlciA9PSBjb250YWN0UGlja2VyKTsKKworICAgIFtfd2Vi
VmlldyBfZGlkUHJlc2VudENvbnRhY3RQaWNrZXJdOworfQorCistICh2b2lkKWNvbnRhY3RQaWNr
ZXJEaWREaXNtaXNzOihXS0NvbnRhY3RQaWNrZXIgKiljb250YWN0UGlja2VyCit7CisgICAgQVNT
RVJUKF9jb250YWN0UGlja2VyID09IGNvbnRhY3RQaWNrZXIpOworCisgICAgW19jb250YWN0UGlj
a2VyIHNldERlbGVnYXRlOm5pbF07CisgICAgX2NvbnRhY3RQaWNrZXIgPSBuaWw7CisKKyAgICBb
X3dlYlZpZXcgX2RpZERpc21pc3NDb250YWN0UGlja2VyXTsKK30KKyNlbmRpZgorCiAtIChOU1N0
cmluZyAqKWlucHV0TGFiZWxUZXh0CiB7CiAgICAgaWYgKCFfZm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbi5sYWJlbC5pc0VtcHR5KCkpCkBAIC05MDk0LDYgKzkxMjQsMTMgQEAgLSAoTlNEaWN0aW9u
YXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbTooTlNTdHJpbmcgKil1c2VySW50ZXJm
YWNlSXRlbQogICAgIHJldHVybiBuaWw7CiB9CiAKKy0gKHZvaWQpX2Rpc21pc3NDb250YWN0UGlj
a2VyV2l0aENvbnRhY3RzOihOU0FycmF5ICopY29udGFjdHMKK3sKKyNpZiBIQVZFKENPTlRBQ1RT
VUkpCisgICAgW19jb250YWN0UGlja2VyIGRpc21pc3NXaXRoQ29udGFjdHM6Y29udGFjdHNdOwor
I2VuZGlmCit9CisKIEBlbmQKIAogI2lmIEhBVkUoTElOS19QUkVWSUVXKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDQwNmU5YjZlN2U2
ZjRhMDM2MmU2YzU2YmI4NDliZmViZWM4YzBjNy4uMGEzYmEwM2MwNDAxMjU2MDk1MjE1Njg2YWU2
Zjc4ZjYyMDc3YzFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xODUxLDYgKzE4NTEsNyBAQAogCQlFNDlENDBENzFBRDNGQjE3MDA2
NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OUQ0MEQ2MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3
b3JrQ2FjaGVCbG9iU3RvcmFnZS5oICovOyB9OwogCQlFNEQ1NEQwNDIxRjFENzJEMDA3RTNDMzYg
LyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQwQzFGOTMyMUYwQjk2RTAwNTMw
NzE4IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1MuaCAqLzsgfTsK
IAkJRTRFNTdGNkIyMUE4M0IxMjAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RTU3RjZBMjFBODNC
MTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi87IH07CisJCUU1MDYyMDkyMjU0
MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTA2MjA5MTI1NDIxMDIwMDBDNDMwOTEgLyogQ29udGFj
dHNVSVNQSS5oICovOyB9OwogCQlFNTJDRjU1MjIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0
aW9uUGlja2VyLmggKi87IH07CiAJCUU1NDhFQkQxMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1D
b2xvclBpY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTU0OEVCQ0YyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggKi87IH07
CiAJCUU1NUNEMUY1MjRDRjc0N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NUNEMUYzMjRDRjc0
N0QwMDQyREI5QyAvKiBXZWJEYXRlVGltZUNob29zZXIuaCAqLzsgfTsKQEAgLTE4NTgsNiArMTg1
OSw3IEBACiAJCUU1NUNEMjAzMjREMDlGMUYwMDQyREI5QyAvKiBXZWJEYXRlVGltZVBpY2tlck1h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0Qy
MDEyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyTWFjLmggKi87IH07CiAJCUU1
NjhCOTFGMjBBM0FCMkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1NjhCOTFF
MjBBM0FCMkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCAqLzsg
fTsKIAkJRTU2OEI5MjIyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNE
cm9wZG93bk1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTU2OEI5MjAyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9w
ZG93bk1hYy5oICovOyB9OworCQlFNTk2REQ2QTI1MUU3MUQ0MDBDMjc1QTcgLyogV0tDb250YWN0
UGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NTk2REQ2ODI1MUU3MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi87IH07CiAJCUU1
QkVGNjgyMjEzMEM0ODAwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25J
T1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkVG
NjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1Mu
aCAqLzsgfTsKIAkJRTVDQjA3REMyMEUxNjc4RjAwMjJDMTgzIC8qIFdLRm9ybUNvbG9yQ29udHJv
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDQjA3
REEyMEUxNjc4RjAwMjJDMTgzIC8qIFdLRm9ybUNvbG9yQ29udHJvbC5oICovOyB9OwogCQlFRDgy
QTdGMjEyOEM2RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVF
NzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQyMCw2ICs1NDIyLDcgQEAKIAkJRTQ5RDQwRDgxQUQz
RkIyMTAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRFNTdGNjgyMUE4M0IwMzAwMzQ1RjNDIC8qIFJl
bW90ZUxheWVyVHJlZU5vZGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBSZW1vdGVMYXllclRyZWVOb2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNEU1N0Y2QTIxQTgzQjExMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVMYXllclRyZWVOb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250
YWN0c1VJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRhY3RzVUlTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NTAyMEEzNUMzQTAwREFEQTI3IC8qIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25Q
aWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NTEyMEEzNUMzQTAw
REFEQTI3IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV0tGb3JtQ29sb3JQaWNrZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9X
S0Zvcm1Db2xvclBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTQzNCw2
ICs1NDM3LDggQEAKIAkJRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MjAyMEEzQUM2
QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTU2OEI5MjEyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0
U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNTk2REQ2ODI1MUU3MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGFjdFBpY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNTk2REQ2OTI1MUU3MUQ0MDBDMjc1QTcgLyogV0tDb250YWN0UGlj
a2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tDb250YWN0
UGlja2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJFRjY4MDIxMzBDNDdG
MDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklP
Uy5oOyBwYXRoID0gaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUJFRjY4MTIxMzBDNDdGMDBGMzExMTEgLyogV2Vi
RGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tOyBw
YXRoID0gaW9zL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTVDQjA3REEyMEUxNjc4RjAwMjJDMTgzIC8qIFdLRm9ybUNv
bG9yQ29udHJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvckNvbnRyb2wuaDsgcGF0aCA9
IGlvcy9mb3Jtcy9XS0Zvcm1Db2xvckNvbnRyb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY0NjMsNiArNjQ2OCw4IEBACiAJCQkJNTFEMTI0MzIxRTZERTUyMTAwMkIyODIwIC8q
IFdlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQkyREZDN0RCOTFCQ0NDMTk1MDBD
MTU0OEMgLyogV2ViVmlld0ltcGwuaCAqLywKIAkJCQkyREZDN0RCQTFCQ0NDMTk1MDBDMTU0OEMg
LyogV2ViVmlld0ltcGwubW0gKi8sCisJCQkJRTU5NkRENjgyNTFFNzFEMzAwQzI3NUE3IC8qIFdL
Q29udGFjdFBpY2tlci5oICovLAorCQkJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVBNyAvKiBXS0Nv
bnRhY3RQaWNrZXIubW0gKi8sCiAJCQkJMkVDRjY2Q0MyMUQ2Qjc3RTAwOUU1QzNGIC8qIFdLRWRp
dENvbW1hbmQuaCAqLywKIAkJCQkyRUNGNjZDRDIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29t
bWFuZC5tbSAqLywKIAkJCQlFMUFFQTIyRDE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9h
cmRBY2Nlc3NXYXRjaGVyLmggKi8sCkBAIC03MjY4LDYgKzcyNzUsNyBAQAogCQkJCUUzQ0FBQTQz
MjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovLAogCQkJCTU3
MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAqLywKIAkJCQkxQTU3MDUx
MDFCRTQxMEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywKKwkJCQlFNTA2MjA5MTI1NDIxMDIw
MDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oICovLAogCQkJCTM3QzIxQ0FEMUU5OTRDMEMwMDI5
RDVGOSAvKiBDb3JlUHJlZGljdGlvblNQSS5oICovLAogCQkJCTJEQUFEQThFMjI5OEMyMTAwMEUz
NkIwQyAvKiBEZXZpY2VNYW5hZ2VtZW50U1BJLmggKi8sCiAJCQkJNTc0MjE3OTEyNDAwRTA5ODAw
MkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCAqLywKQEAgLTEwOTY2LDYgKzEwOTc0
LDcgQEAKIAkJCQkzN0JFQzRFMTE5NDkxNDg2MDA4QjQyODYgLyogQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNEU5RjYxMzFDNkU3RTAwMjlCRDVB
IC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQUIxMEY0MzdEMTAwNThDMTVB
IC8qIENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU1MDYyMDkyMjU0MjEwMjAwMEM0
MzA5MSAvKiBDb250YWN0c1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQTA1Mzk3OTIzRUUz
MjQ0MDBBNTUzREMgLyogQ29udGVudEFzU3RyaW5nSW5jbHVkZXNDaGlsZEZyYW1lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEyOUVCMTIyM0QwREU3QjAwQUYxQ0Q3IC8qIENvbnRlbnRXb3JsZFNo
YXJlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwNkQ3QzQxOEJEQkU3MzAwMEFCMTY2IC8qIENv
bnRleHRNZW51Q29udGV4dERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMTE3MDEsNiArMTE3MTAs
NyBAQAogCQkJCUJDQTI4NEQ3MTQ5MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNUM3NUM4MTQ5NTREQTYwMEJDNDc3NSAvKiBXS0Nvbm5lY3Rpb25J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0QTYyOTcxNDczMTNBMDAwNkM2ODFBIC8q
IFdLQ29ubmVjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTU5NkRENkEyNTFFNzFENDAw
QzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2NTQx
RTcyMzVCMTAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0QyODY1NTFFNzIzNUI4MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2NTExRTcyMzU5OTAwOTRGREM4IC8qIFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg0MGQwNDkwNWE4YmMwNTk3NjJmYzBjMGIxZjZj
MDNiYzc1MjNmYWMuLjA5MjY2NDNjNmM1ZDQ4MDJmNzE3NjdhYzNmMzYzMjMwNmEwMDg2YTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOCBAQAorMjAyMC0xMC0yNiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRkIHN1cHBvcnQgZm9yIHBpY2tlciBV
SSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODE4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIyNzc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgVUlTY3JpcHRDb250cm9s
bGVyIGhvb2tzIHRvIG9ic2VydmUgdGhlIHByZXNlbnRhdGlvbiBhbmQKKyAgICAgICAgZGlzbWlz
c2FsIG9mIGEgY29udGFjdCBwaWNrZXIuIEZ1cnRoZXJtb3JlLCB0aGUKKyAgICAgICAgZGlzbWlz
c0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMgbWV0aG9kIHdhcyBhZGRlZCB0byBhbGxvdyB0ZXN0
cyB0bworICAgICAgICBkaXNtaXNzIHRoZSBwcmVzZW50ZWQgY29udGFjdCBwaWNrZXIgd2l0aCBh
IHNldCBvZiBzZWxlY3RlZCBjb250YWN0cy4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAg
ICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0Lmg6Cisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmg6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6aXNTaG93aW5nQ29udGFj
dFBpY2tlciBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlz
c0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHA6CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hvd0NvbnRhY3RQaWNrZXJD
YWxsYmFjayBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlk
SGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcjo6ZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayBjb25zdCk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtU
ZXN0UnVubmVyV0tXZWJWaWV3IHJlc2V0SW50ZXJhY3Rpb25DYWxsYmFja3NdKToKKyAgICAgICAg
KC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQaWNrZXJdKToKKyAgICAg
ICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXJdKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2Nv
YS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZFNob3dD
b250YWN0UGlja2VyQ2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJD
b2NvYTo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dpbmdDb250YWN0UGlja2VyIGNvbnN0KToKKyAg
ICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OmRpc21pc3NDb250YWN0UGlja2Vy
V2l0aENvbnRhY3RzKToKKwogMjAyMC0xMC0yOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUgc29mdCBsaW5raW5nIG9mIE5ldHdv
cmtFeHRlbnNpb24uZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbAppbmRleCAzZDU4MzJkMWQ5NjJjMGM5MzJmMzI3ZTNlYmMwMTg5ZGExMGM0ODVjLi4z
ZTA1ZWIxMzMwMmMzMjYyMTY5ODUzZjgxNGVkODMzMzgzYmI2YWE1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTM0OSw2ICszNDksMTEgQEAgaW50ZXJm
YWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgb2JqZWN0IGF0dGFjaG1lbnRJbmZvKERPTVN0
cmluZyBhdHRhY2htZW50SWRlbnRpZmllcik7CiAgICAgdW5kZWZpbmVkIGluc2VydEF0dGFjaG1l
bnRGb3JGaWxlUGF0aChET01TdHJpbmcgZmlsZVBhdGgsIERPTVN0cmluZyBjb250ZW50VHlwZSwg
b2JqZWN0IGNhbGxiYWNrKTsKIAorICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkU2hvd0NvbnRhY3RQ
aWNrZXJDYWxsYmFjazsKKyAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEhpZGVDb250YWN0UGlja2Vy
Q2FsbGJhY2s7CisgICAgdW5kZWZpbmVkIGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3Rz
KG9iamVjdCBjb250YWN0cyk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93
aW5nQ29udGFjdFBpY2tlcjsKKwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFz
dFVuZG9MYWJlbDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZpcnN0UmVkb0xh
YmVsOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udGV4dC5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250ZXh0LmgKaW5kZXggZmJhMzJjOTM3YjI5ODMxZTAyNmY5OTEzODYw
YjJlMDcyMWUwZjI1NC4uMmI1ZjRiZjgxNmQwMTQ0YjMxOWI2MjZkMTA3MDg0ODNjOWRmMWViOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250ZXh0LmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDggQEAgdHlwZWRlZiBlbnVtICB7CiAgICAg
Q2FsbGJhY2tUeXBlRGlkRGlzbWlzc0NvbnRleHRNZW51LAogICAgIENhbGxiYWNrVHlwZVdpbGxD
cmVhdGVOZXdQYWdlLAogICAgIENhbGxiYWNrVHlwZVdpbmRvd1RhcFJlY29nbml6ZWQsCisgICAg
Q2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRhY3RQaWNrZXIsCisgICAgQ2FsbGJhY2tUeXBlRGlkSGlk
ZUNvbnRhY3RQaWNrZXIsCiAgICAgQ2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCA9IGZpcnN0Tm9u
UGVyc2lzdGVudENhbGxiYWNrSUQKIH0gQ2FsbGJhY2tUeXBlOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5oCmluZGV4IGJlMTM2YmQwNjBiM2IzMjIxM2M1MTRiNWI1ZDU2YTgxZmI0ZTNmYzguLjdlNDgw
N2IxNTRmYmE0NjM2YTk2NWUyYWVhMGJiNzA5YmI1YjZkYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBi
L1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5oCkBAIC0yNzcsNiArMjc3LDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEpTT2JqZWN0UmVm
IGF0dGFjaG1lbnRJbmZvKEpTU3RyaW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBu
dWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChK
U1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsg
fQogCisgICAgLy8gQ29udGFjdCBQaWNrZXIKKworICAgIHZpcnR1YWwgdm9pZCBzZXREaWRTaG93
Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgZGlkU2hv
d0NvbnRhY3RQaWNrZXJDYWxsYmFjaygpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dp
bmdDb250YWN0UGlja2VyKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpT
VmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygp
IGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRh
Y3RzKEpTVmFsdWVSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorCiAgICAgLy8gQ2FsbGJhY2tz
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlv
bkNhbGxiYWNrKEpTVmFsdWVSZWYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCBiL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5j
cHAKaW5kZXggYmZmNGYzNDMzZGJkMjk1NzVkNjI1YjczOTRlNmQ5ZDM4MWNhZWMyNi4uOWU0OTQw
Y2UzYThiMTAyMjdmZWRlMWZlMmUyZjgxZjE5YThkYTY0NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNw
cAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXJTaGFyZWQuY3BwCkBAIC0yMTMsNiArMjEzLDI2IEBAIEpTVmFsdWVSZWYgVUlTY3Jp
cHRDb250cm9sbGVyOjpkaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCkgY29uc3QKICAgICByZXR1
cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWREaXNtaXNzUG9wb3Zl
cik7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29udGFjdFBpY2tl
ckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3Rl
ckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7Cit9
CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93Q29udGFjdFBpY2tlckNh
bGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChD
YWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFj
a1R5cGVEaWRIaWRlQ29udGFjdFBpY2tlcik7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250
cm9sbGVyOjpkaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBp
Y2tlcik7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp1aVNjcmlwdENvbXBsZXRlKEpT
U3RyaW5nUmVmIHJlc3VsdCkKIHsKICAgICBtX2NvbnRleHQtPnJlcXVlc3RVSVNjcmlwdENvbXBs
ZXRpb24ocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggZjU1NGUxMjNlYTNlNTQxYTEwN2M3ZGQ2NzZmZTRjNWZl
NzFlNmQ2OC4uZjU3MWU0ZGRkOGZjODliMzIzMWFkNjA4Nzg4NGRjMjkxMTBlYzVhZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgK
QEAgLTczLDYgKzczLDkgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVy
PWlzU2hvd2luZ01lbnUpIEJPT0wgc2hvd2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgdm9pZCAoXmRpZFNob3dNZW51Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlTWVudUNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0NvbnRhY3RQaWNrZXIpIEJP
T0wgc2hvd2luZ0NvbnRhY3RQaWNrZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9p
ZCAoXmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKSh2b2lkKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4sIHNldHRlcj1fc2V0U3RhYmxlU3RhdGVPdmVy
cmlkZTopIE5TTnVtYmVyICpfc3RhYmxlU3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09M
IF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0gYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KaW5kZXggOTE1ZjQ3
NmM2MTVhZTYxMDkwZDkwY2E3OTc2YmY4ZjJjOTliNTY2Yi4uNTcwNmE3YjExNWI1MTQyNGYyYjY1
Yzg0Y2E4MWM4MDg0MjAzNzhjOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQpAQCAtNzgsNiArNzgsNyBAQCBAcHJvcGVydHkg
KG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ01lbnUsIHNldHRlcj1zZXRJc1Nob3dpbmdNZW51
OikgQk9PTCBzaG93aQogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0Rpc21pc3NpbmdN
ZW51LCBzZXR0ZXI9c2V0SXNEaXNtaXNzaW5nTWVudTopIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ1BvcG92ZXIsIHNldHRlcj1zZXRJ
c1Nob3dpbmdQb3BvdmVyOikgQk9PTCBzaG93aW5nUG9wb3ZlcjsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNTaG93aW5nQ29udGV4dE1lbnUsIHNldHRlcj1zZXRJc1Nob3dpbmdDb250
ZXh0TWVudTopIEJPT0wgc2hvd2luZ0NvbnRleHRNZW51OworQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1pc1Nob3dpbmdDb250YWN0UGlja2VyLCBzZXR0ZXI9c2V0SXNTaG93aW5nQ29udGFj
dFBpY2tlcjopIEJPT0wgc2hvd2luZ0NvbnRhY3RQaWNrZXI7CiAKIEBlbmQKIApAQCAtMTcxLDYg
KzE3Miw4IEBAIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcwogewogICAgIHNlbGYu
ZGlkU2hvd01lbnVDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sg
PSBuaWw7CisgICAgc2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOworICAg
IHNlbGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayA9IG5pbDsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHNlbGYuZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sg
PSBuaWw7CkBAIC01NDUsNCArNTQ4LDI0IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJ
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFj
dFBpY2tlcgoreworICAgIGlmIChzZWxmLnNob3dpbmdDb250YWN0UGlja2VyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzZWxmLnNob3dpbmdDb250YWN0UGlja2VyID0gWUVTOworICAgIGlmIChz
ZWxmLmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkU2hvd0Nv
bnRhY3RQaWNrZXJDYWxsYmFjaygpOworfQorCistICh2b2lkKV9kaWREaXNtaXNzQ29udGFjdFBp
Y2tlcgoreworICAgIGlmICghc2VsZi5zaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGFjdFBpY2tlciA9IE5POworICAgIGlmIChzZWxm
LmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkSGlkZUNvbnRh
Y3RQaWNrZXJDYWxsYmFjaygpOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKaW5kZXggY2M5ODEzOTQy
NGYyODgwNjQ0Mzk4OTgzNDVjM2U3ZDRlYTU1MzM3OC4uZThjZGMzY2YwYzExNTQxYTg3ZGFjODUw
MWU3MDhmNjg4ZWFjYjE4NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaApAQCAtNjQsNiArNjQsMTEgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgaW5zZXJ0QXR0YWNobWVudEZvckZpbGVQYXRoKEpTU3RyaW5nUmVmIGZp
bGVQYXRoLCBKU1N0cmluZ1JlZiBjb250ZW50VHlwZSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykgb3Zl
cnJpZGU7CiAKKyAgICB2b2lkIHNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1
ZVJlZikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNr
KEpTVmFsdWVSZWYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5nQ29udGFjdFBpY2tlcigp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFj
dHMoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisKICAgICB2b2lkIGNvbXBsZXRlVGFza0FzeW5jaHJv
bm91c2x5QWZ0ZXJBY3Rpdml0eVN0YXRlVXBkYXRlKHVuc2lnbmVkIGNhbGxiYWNrSUQpOwogfTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250
cm9sbGVyQ29jb2EubW0KaW5kZXggNTg0Nzk3NmYyMTg1N2Y1M2Y0ODVlY2IxZmIxZWI5MTE3MjFh
NTZkYS4uYmI1NGEyYTE2NGJhNThkY2RjNDhkMTY3NmQ0NWE5YWM4Y2I0NzY0YSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNv
Y29hLm1tCkBAIC0yMjUsNCArMjI1LDM2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6
Omluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChKU1N0cmluZ1JlZiBmaWxlUGF0aCwKICAgICB9
XTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkU2hvd0NvbnRhY3RQ
aWNrZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFVJU2NyaXB0Q29udHJv
bGxlcjo6c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2Vi
VmlldygpLmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2sgPSBeeworICAgICAgICBpZiAoIW1f
Y29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2Fs
bGJhY2soQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRhY3RQaWNrZXIpOworICAgIH07Cit9CisKK3Zv
aWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJh
Y2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERp
ZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soY2FsbGJhY2spOworICAgIHdlYlZpZXcoKS5kaWRI
aWRlQ29udGFjdFBpY2tlckNhbGxiYWNrID0gXnsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxi
YWNrVHlwZURpZEhpZGVDb250YWN0UGlja2VyKTsKKyAgICB9OworfQorCitib29sIFVJU2NyaXB0
Q29udHJvbGxlckNvY29hOjppc1Nob3dpbmdDb250YWN0UGlja2VyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gd2ViVmlldygpLnNob3dpbmdDb250YWN0UGlja2VyOworfQorCit2b2lkIFVJU2NyaXB0
Q29udHJvbGxlckNvY29hOjpkaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhKU1ZhbHVl
UmVmIGNvbnRhY3RzKQoreworICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtKU0NvbnRleHQgY29u
dGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6bV9jb250ZXh0LT5qc0NvbnRleHQoKV07CisgICAg
SlNWYWx1ZSAqdmFsdWUgPSBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOmNvbnRhY3RzIGlu
Q29udGV4dDpjb250ZXh0XTsKKyAgICBbd2ViVmlldygpIF9kaXNtaXNzQ29udGFjdFBpY2tlcldp
dGhDb250YWN0czpbdmFsdWUgdG9BcnJheV1dOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA5ZDZlOGFkMWE1NzBiNGJjYTVhMzJmMDhlYzY5NDVmNjBkM2MwOTQ4Li45ZjNmMDQ0ZTkz
ZTEzYTAwZDk5ZGIwOTc3Nzg0ZWQzNWVhMDY5Yjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIw
MjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBwb3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIHZlcmlmeSB0aGUgcHJlc2Vu
dGF0aW9uIGFuZCBkaXNtaXNzYWwgb2YgYSBjb250YWN0CisgICAgICAgIHBpY2tlciBvbiBpT1Mu
IFRoZSBuZXcgdGVzdHMgYXJlIG9ubHkgcnVuIG9uIGlPUyBXSzIsIHNpbmNlIHRoYXQgaXMgdGhl
CisgICAgICAgIG9ubHkgcGxhdGZvcm0gd2hpY2ggY3VycmVudGx5IHN1cHBvcnRzIHRoZSBwcmVz
ZW50YXRpb24gb2YgYSBjb250YWN0CisgICAgICAgIHBpY2tlci4gTm90ZSB0aGF0IHRoZXNlIHRl
c3RzIHdpbGwgYmUgZW5hYmxlZCBvbiBtYWNPUyBXSzIgb25jZSBzdXBwb3J0CisgICAgICAgIGlz
IGFkZGVkIGluIGEgZm9ydGhjb21pbmcgcGF0Y2guCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNt
aXNzaW5nLXBpY2tlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJl
c2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBp
Y2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXIuaHRtbDogQWRkZWQu
CisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBy
ZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JD
b250YWN0UGlja2VyVG9TaG93KToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yQ29u
dGFjdFBpY2tlclRvSGlkZSk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuZGlzbWlzc0NvbnRh
Y3RQaWNrZXJXaXRoQ29udGFjdHMpOgorCiAyMDIwLTEwLTI5ICBLYXJsIFJhY2tsZXIgIDxyYWNr
bGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY5MDcwKTogWyBCaWcgU3Vy
IF0gZWRpdGluZy9pbnB1dC9yZXZlYWwtY2FyZXQtb2YtbXVsdGlsaW5lLWlucHV0Lmh0bWwgaXMg
YSBjb25zdGFudCBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYzgzOThiMmQ4ZDE0NzJj
YmQ3OWNlZTQ3Y2Q0NTlkMjAxNjEwZDIwLi5kZTY5MGUyYTZjN2NiODM1NTEyNTdiODUyZmVmNWY2
Mzk1ZTgwZTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkwLDYgKzkwLDExIEBAIGZhc3QvZm9y
bXMvZW50ZXJrZXloaW50LWF0dHJpYnV0ZS12YWx1ZXMuaHRtbCBbIFNraXAgXQogIyBIaWdobGln
aHRpbmcgbWFya2VkIHRleHQgcmFuZ2VzIGZyb20gbGF5b3V0IHRlc3RzIGlzIG9ubHkgc3VwcG9y
dGVkIGluIFdlYktpdDIuCiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLWhpZ2hsaWdodHMuaHRt
bCBbIFNraXAgXQogCisjIENvY29hIFdLMiBvbmx5LiBPdGhlciBwbGF0Zm9ybXMgZG8gbm90IHBy
ZXNlbnQgYSBjb250YWN0IHBpY2tlciBVSS4KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVj
dC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sIFsgU2tpcCBdCitjb250YWN0LXBpY2tlci9j
b250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXIuaHRtbCBbIFNraXAgXQorY29u
dGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgWyBTa2lwIF0KKwogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELXhzbC1leHRlcm5hbC1lbnRpdHktbm8tbG9nZ2luZy54bWwgWyBT
a2lwIF0KIAogIyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIG9ubHkgdGVzdGVkIGluIER1bXBS
ZW5kZXJUcmVlIG9uIE1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2lu
Zy1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MTg0YWY2NjI1NjdmMGI1MGYxYjQ1
Y2UzNjRlODljM2VhODhjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5j
b250YWN0cy5zZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxsIHRvIG5hdmlnYXRvci5j
b250YWN0cy5zZWxlY3Qgd2FzIGNvbXBsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BlcmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4KK1BBU1MgYXJlQXJyYXlz
RXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBh
cmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRy
dWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwp
IGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tb
MV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRk
cmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29udGFjdDIudGVsLmxlbmd0aCBpcyAw
CitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUsIGFkZHJlc3NCb29rWzJdLm5hbWUp
IGlzIHRydWUKK1BBU1MgY29udGFjdDMuZW1haWwubGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoY29udGFjdDMudGVsLCBhZGRyZXNzQm9va1syXS50ZWwpIGlzIHRydWUKK1BBU1MgZmlu
aXNoZWRDb250YWN0U2VsZWN0aW9uIGJlY2FtZSB0cnVlCisKK1BlcmZvcm1pbmcgc2Vjb25kIGNv
bnRhY3RzIHJlcXVlc3QuCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLm5hbWUsIGFkZHJl
c3NCb29rWzBdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1h
aWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNv
bnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0Vx
dWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJl
QXJyYXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSBpcyB0cnVl
CitQQVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVhbChjb250
YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QzLmVt
YWlsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLnRlbCwgYWRkcmVz
c0Jvb2tbMl0udGVsKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1s
IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21p
c3NpbmctcGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MxNTE0YzgwNmMzZWM1MDM5YzcwNmU4M2Ri
M2VjMWI2YTQzYzNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sCkBAIC0wLDAg
KzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVy
aW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8
aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKyAgICAgICAgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uID0gZmFsc2U7CisKKyAg
ICAgICAgY29uc3QgYWRkcmVzc0Jvb2sgPSBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgIm5hbWUiOiBbIlBlcnNvbiBBIl0sCisgICAgICAgICAgICAgICAgImVtYWlsIjogWyJwZXJz
b24uYUB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICAgICAgInRlbCI6IFsiNTU1LTU1NTUiXQor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsi
UGVyc29uIEIiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBlcnNvbi5iQHdlYmtpdC5v
cmciLCAicGVyc29uLmIuYWx0QHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBDIl0sCisgICAgICAgICAg
ICAgICAgInRlbCI6IFsiNzc3LTc3NzciXSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXTsKKwor
ICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAg
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5z
ZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxsIHRvIG5hdmlnYXRvci5jb250YWN0cy5z
ZWxlY3Qgd2FzIGNvbXBsZXRlZC5cbiIpOworCisgICAgICAgICAgICBjb25zdCBjb250YWN0c0J1
dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIpOworICAgICAgICAgICAg
Y29udGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbikgeworICAgICAgICAg
ICAgICAgICAgICBkZWJ1ZygiXG5QZXJmb3JtaW5nIHNlY29uZCBjb250YWN0cyByZXF1ZXN0LiIp
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIlBl
cmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4iKQorICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0
KFsibmFtZSIsICJlbWFpbCIsICJ0ZWwiXSk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpOworICAgICAgICAgICAgICAgIFVJSGVs
cGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKGFkZHJlc3NCb29rKTsKKyAgICAg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpOwor
CisgICAgICAgICAgICAgICAgW2NvbnRhY3QxLCBjb250YWN0MiwgY29udGFjdDNdID0gYXdhaXQg
cmVxdWVzdDsKKworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1sw
XS5lbWFpbCkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFs
KGNvbnRhY3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSIpOworCisgICAgICAgICAgICAgICAg
c2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5uYW1lLCBhZGRyZXNzQm9va1sx
XS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDIudGVsLmxlbmd0aCIsIDApOworCisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBh
ZGRyZXNzQm9va1syXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051
bWJlcigiY29udGFjdDMuZW1haWwubGVuZ3RoIiwgMCk7CisgICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0My50ZWwsIGFkZHJlc3NCb29rWzJdLnRlbCki
KTsKKworICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24pIHsKKyAg
ICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImZpbmlzaGVkQ29u
dGFjdFNlbGVjdGlvbiIsICJ0cnVlIiwgcmVzb2x2ZSkpOworICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9
ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODhhYzdjNTE0YWE2N2Q1MzJkYTYwYjIzZjQyZjM3YmZj
NjBiNzNlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBwcmVzZW50cyBhIGNvbnRhY3Qg
cGlja2VyIGFuZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250YWN0cy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVuZ3RoIGlzIDMKK1BBU1MgYXJlQXJy
YXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFT
UyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlz
IHRydWUKK1BBU1MgY29udGFjdDEudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFs
KGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJy
YXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSBpcyB0cnVlCitQ
QVNTIGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0
My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QzLmVtYWls
Lmxlbmd0aCBpcyAwCitQQVNTIGNvbnRhY3QzLnRlbC5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitTaG93IGNvbnRhY3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUt
cHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNr
ZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MDY3YjU5Y2ZlNDhiNzk1MGQ4ZTAyMTg4MDA5YWNmYjFlZDA3NDRmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
aGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIHdo
ZW4gYSBjb250YWN0IHBpY2tlciBpcyBhbHJlYWR5IGJlaW5nIGRpc3BsYXllZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVuZ3RoIGlzIDEKK1BBU1Mg
Y29udGFjdC5uYW1lWzBdIGlzICJQZXJzb24gQSIKK1BBU1MgcmVzdWx0c1sxXSBpcyAiSW52YWxp
ZFN0YXRlRXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sIGIvTGF5b3V0
VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlj
a2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhYTc3MzMwNDBlZTRjMzVlZWY3OWUyMjNmNDQwNTc1ZmRi
YmM2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRh
Y3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpD
b250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAibmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBb
InBlcnNvbi5hQHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgICAgICAidGVsIjogWyI1NTUtNTU1
NSJdCisgICAgICAgICAgICB9LAorICAgICAgICBdOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9u
IHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyB3aGVuIGEgY29u
dGFjdCBwaWNrZXIgaXMgYWxyZWFkeSBiZWluZyBkaXNwbGF5ZWQuXG4iKTsKKworICAgICAgICAg
ICAgY29uc3QgY29udGFjdHNCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFj
dHMiKTsKKyAgICAgICAgICAgIGNvbnRhY3RzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IHByb21pc2UxID0gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgICAgbmF2aWdhdG9y
LmNvbnRhY3RzLnNlbGVjdChbJ25hbWUnXSkudGhlbihyZXNvbHZlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZSA9PiByZWplY3Qo
ZS5tZXNzYWdlKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBjb25z
dCBwcm9taXNlMiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgICAgICAgIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoWyduYW1lJ10pLnRoZW4oY29udGFj
dHMgPT4gcmVqZWN0KCJFeHBlY3RlZCBmYWlsdXJlLiIpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goZSA9PiByZXNvbHZlKGUubmFt
ZSkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb1Nob3coKTsKKyAgICAgICAgICAgICAgICBVSUhlbHBl
ci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisgICAgICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUoKTsKKwor
ICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbcHJvbWlzZTEsIHBy
b21pc2UyXSk7CisgICAgICAgICAgICAgICAgY29udGFjdHMgPSByZXN1bHRzWzBdOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdHMubGVuZ3RoIiwgMSk7Cisg
ICAgICAgICAgICAgICAgY29udGFjdCA9IGNvbnRhY3RzWzBdOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiY29udGFjdC5uYW1lWzBdIiwgIlBlcnNvbiBBIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRzWzFdIiwgIkludmFsaWRT
dGF0ZUVycm9yIik7CisKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAg
ICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0
aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0Pgor
ICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3Rz
Ij5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZmYzODdmNTZlMGJlYzcwODIxMWI3ZjZkYjNlYmQyM2Y4MjExY2JkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwKQEAgLTAs
MCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGFkZHJlc3NCb29rID0gWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24gQSJdLAorICAgICAgICAgICAgICAg
ICJlbWFpbCI6IFsicGVyc29uLmFAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgICAgICJ0ZWwi
OiBbIjU1NS01NTU1Il0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgIm5hbWUiOiBbIlBlcnNvbiBCIl0sCisgICAgICAgICAgICAgICAgImVtYWlsIjogWyJw
ZXJzb24uYkB3ZWJraXQub3JnIiwgInBlcnNvbi5iLmFsdEB3ZWJraXQub3JnIl0sCisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24g
QyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjc3Ny03Nzc3Il0sCisgICAgICAgICAgICB9
CisgICAgICAgIF07CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZp
Z2F0b3IuY29udGFjdHMuc2VsZWN0IHByZXNlbnRzIGEgY29udGFjdCBwaWNrZXIgYW5kIHJldHVy
bnMgdGhlIHNlbGVjdGVkIGNvbnRhY3RzLlxuIik7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbnRh
Y3RzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhY3RzIik7CisgICAgICAg
ICAgICBjb250YWN0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+
IHsKKyAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0c1JlcXVlc3QgPSBuYXZpZ2F0b3IuY29u
dGFjdHMuc2VsZWN0KFsibmFtZSIsICJlbWFpbCJdLCB7IG11bHRpcGxlOiB0cnVlIH0pOworICAg
ICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KCk7
CisKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250
YWN0cyhhZGRyZXNzQm9vayk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0
Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpOworCisgICAgICAgICAgICAgICAgY29udGFjdHMgPSBh
d2FpdCBjb250YWN0c1JlcXVlc3Q7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVt
YmVyKCJjb250YWN0cy5sZW5ndGgiLCAzKTsKKworICAgICAgICAgICAgICAgIGNvbnRhY3QxID0g
Y29udGFjdHNbMF07CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVh
bChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29r
WzBdLmVtYWlsKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29u
dGFjdDEudGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAgICAgY29udGFjdDIgPSBjb250
YWN0c1sxXTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNv
bnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0u
ZW1haWwpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0
Mi50ZWwubGVuZ3RoIiwgMCk7CisKKyAgICAgICAgICAgICAgICBjb250YWN0MyA9IGNvbnRhY3Rz
WzJdOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFj
dDMubmFtZSwgYWRkcmVzc0Jvb2tbMl0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9OdW1iZXIoImNvbnRhY3QzLmVtYWlsLmxlbmd0aCIsIDApOworICAgICAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMudGVsLmxlbmd0aCIsIDApOworCisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCB7IG9uY2U6IHRy
dWUgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChjb250
YWN0c0J1dHRvbik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBvbmxvYWQ9
cnVuVGVzdCgpPgorICAgICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBjb250YWN0czwv
YnV0dG9uPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZmIzMWVkZjk2Mjk3NjVjODEyYmJkNDRmN2Fl
M2E3NmI3Zjg1ZTM5Li43NzQ1ZWM5NmU2MzJlMWJlNDljOTdiYzQyMjYzZmUyOTI4ZjZjOTllIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
MSw2ICsxMSw5IEBAIGNvbXBvc2l0aW5nL3NoYXJlZC1iYWNraW5nL292ZXJmbG93LXNjcm9sbCBb
IFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5jLW92ZXJmbG93LXNjcm9sbGluZyBb
IFBhc3MgXQogY29tcG9zaXRpbmcvc2Nyb2xsaW5nL2FzeW5jLW92ZXJmbG93LXNjcm9sbGluZy9t
YWMgWyBTa2lwIF0KIGNvbXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlIFsg
UGFzcyBdCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1w
aWNrZXIuaHRtbCBbIFBhc3MgXQorY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxl
LXByZXNlbnRpbmctcGlja2VyLmh0bWwgWyBQYXNzIF0KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC5odG1sIFsgUGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQog
ZmFzdC9oaXN0b3J5L2lvcyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA4MzQ4NGE1MDNiZTAzYjBkYzg4YTUyNjk0
M2MyYzM5MTJlMTI3OTVhLi4yMmVlNTJmNTFjNWI4ODBlNzczMjBkZjQzMmM2MzA4N2JlNWJjZTNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xh
eW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTE0MDYsNiArMTQwNiw0NCBAQCB3
aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgICAgICBgLCByZXNvbHZl
KTsKICAgICAgICAgfSk7CiAgICAgfQorCisgICAgc3RhdGljIHdhaXRGb3JDb250YWN0UGlja2Vy
VG9TaG93KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSkKKyAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAg
ICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdWlD
b250cm9sbGVyLmlzU2hvd2luZ0NvbnRhY3RQaWNrZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayA9ICgpID0+IHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7Cisg
ICAgICAgICAgICAgICAgfSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgd2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUoKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLmlzV2ViS2l0MigpKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgp
OworCisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHVpQ29udHJvbGxlci5pc1Nob3dpbmdDb250YWN0UGlj
a2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRpZEhpZGVDb250YWN0
UGlja2VyQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRy
b2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZl
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIGRpc21pc3NDb250YWN0UGlja2Vy
V2l0aENvbnRhY3RzKGNvbnRhY3RzKQorICAgIHsKKyAgICAgICBjb25zdCBzY3JpcHQgPSBgKCgp
ID0+IHVpQ29udHJvbGxlci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cygke0pTT04u
c3RyaW5naWZ5KGNvbnRhY3RzKX0pKSgpYDsKKyAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KHNjcmlwdCwgcmVzb2x2ZSkpOworICAgIH0K
IH0KIAogVUlIZWxwZXIuRXZlbnRTdHJlYW1CdWlsZGVyID0gY2xhc3Mgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412760</attachid>
            <date>2020-10-30 09:51:38 -0700</date>
            <delta_ts>2020-11-03 13:11:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218189-20201030125136.patch</filename>
            <type>text/plain</type>
            <size>67420</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmODcxYjk1YmJhMWVmOWQ1ZjdiYzg5
MDg4OTQ0NjQzNTRmNzljYWYuLjYyODA3NDRiMDdiYjNiYmQ5MDUzYjdlM2E2OGU0NDA0YWNjOGM1
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBw
b3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtSGF2ZS5oOgorCisgICAgICAgIEFkZGVkIEhBVkUoQ09OVEFDVFNVSSkgYW5kIEhB
VkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpIG1hY3Jvcy4KKwogMjAyMC0xMC0yOSAg
Smlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0g
TWFrZSBXZWJDb250ZW50IHByb2Nlc3MgdGFsayB0byB0aGUgV2ViQXV0aG4gcHJvY2VzcyBmb3Ig
V2ViQXV0aG4gcmVxdWVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmJmMDc3YjQ1MDBmZWYzNjgxNTIyNzFjZDVj
N2FhMDA5YTcyZmY4Mi4uMmNlZjI3ODg2ODg2YjUwNzcyY2JiZGJkZTFjM2ZiMDUwODE0NzE1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3MSBAQAorMjAyMC0xMC0yNiAgQWRpdHlhIEtlZXJ0aGkgIDxh
a2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRkIHN1
cHBvcnQgZm9yIHBpY2tlciBVSSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODE4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIy
Nzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29u
dGFjdHNNYW5hZ2VyLnNlbGVjdCgpIHNob3VsZCBwcmVzZW50IGEgY29udGFjdCBwaWNrZXIgb24g
cGxhdGZvcm1zCisgICAgICAgIHdoaWNoIHN1cHBvcnQgb25lLiBUaGlzIHBhdGNoIGVuYWJsZXMg
dGhlIGVuZC10by1lbmQgZnVuY3Rpb25hbGl0eSBvbgorICAgICAgICBpT1MsIHByZXNlbnRpbmcg
YSBjb250YWN0IHBpY2tlciB1cG9uIGEgY2FsbCB0byB0aGUgQVBJIGFuZCByZXR1cm5pbmcKKyAg
ICAgICAgdGhlIHNlbGVjdGVkIGNvbnRhY3RzIHVwb24gZGlzbWlzc2FsLgorCisgICAgICAgIFRl
c3RzOiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNr
ZXIuaHRtbAorICAgICAgICAgICAgICAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdo
aWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC5odG1sCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQ29u
dGFjdHNVSVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQaWNrZXJdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9kaWREaXNtaXNzQ29udGFjdFBpY2tlcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dLQ29udGFjdFBpY2tlci5tbTogQWRkZWQuCisKKyAgICAgICAgV0tDb250YWN0UGlja2Vy
IGlzIGEgV2ViS2l0IHdyYXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVy
LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUgaW5pdFdpdGhDb250YWN0
UGlja2VyRGVsZWdhdGU6XSk6CisKKyAgICAgICAgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBp
cyB3cmFwcGVyIGFyb3VuZCBDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZS4KKyAgICAgICAgVGhpcyBp
cyBuZWNlc3NhcnkgYXMgc2luZ2xlL211bHRpcGxlIHNlbGVjdGlvbiBpbiBhCisgICAgICAgIENO
Q29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyIGlzIGRldGVybWluZWQgYnkgd2hpY2ggZGVsZWdh
dGUgbWV0aG9kcworICAgICAgICBhcmUgaW1wbGVtZW50ZWQuIFRoZSB0d28gc3BlY2lhbGl6YXRp
b25zIG9mIHRoaXMgY2xhc3MgaW5jbHVkZSB0aGUKKyAgICAgICAgbWV0aG9kcyBuZWNlc3Nhcnkg
dG8gcHJlc2VudCBhIHNpbmdsZS1zZWxlY3QgYW5kIG11bHRpLXNlbGVjdCBwaWNrZXIKKyAgICAg
ICAgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyRGVsZWdhdGUg
Y29udGFjdFBpY2tlckRpZENhbmNlbDpdKToKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJT
aW5nbGVTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlja2VyOmRpZFNlbGVjdENvbnRhY3Q6XSk6Cisg
ICAgICAgICgtW1dLQ05Db250YWN0UGlja2VyTXVsdGlTZWxlY3REZWxlZ2F0ZSBjb250YWN0UGlj
a2VyOmRpZFNlbGVjdENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGVs
ZWdhdGVdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIHNldERlbGVnYXRlOl0pOgorICAg
ICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgaW5pdFdpdGhWaWV3Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRhY3RQaWNrZXIgcHJlc2VudFdpdGhSZXF1ZXN0RGF0YTpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6XSk6CisK
KyAgICAgICAgVGhpcyBkZWxlZ2F0ZSBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHBpY2tlciBp
cyBkaXNtaXNzZWQgYnkKKyAgICAgICAgdGFwcGluZyB0aGUgZG9uZSBidXR0b24gb3Igd2hlbiB0
aGUgcGlja2VyIGlzIGRpc21pc3NlZCBieSBzd2lwaW5nCisgICAgICAgIGRvd24uCisKKyAgICAg
ICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdDpdKToK
KyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFj
dHM6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFjdFBpY2tlckRpZERpc21p
c3NXaXRoQ29udGFjdEluZm86XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBfY29udGFj
dEluZm9Gcm9tQ05Db250YWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgZGlzbWlz
c1dpdGhDb250YWN0czpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0c0Zy
b21KU0NvbnRhY3RzOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX3Nob3dDb250YWN0UGlja2VyOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWRQcmVzZW50Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNvbnRhY3RQaWNrZXJEaWREaXNtaXNzOl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpdKToKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMC0yOSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTGlu
ayBDb250YWN0cy5mcmFtZXdvcmsgZHVyaW5nIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4
IDBhNTc1YWMxMjg0NzI4YjZhNGFmZmM4YjljNzNhYmQ5NTU3NDcyNzEuLjJjOGZlMDNjNDY1Nzdh
ODYwNzZiMjg5N2IxYzE3Y2MxZGU0YTE5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC03MzUs
MyArNzM1LDExIEBACiAjZGVmaW5lIEhBVkVfQVBQTEVfQVRURVNUQVRJT04gMQogI2VuZGlmCiAj
ZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBM
QVRGT1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQ09OVEFDVFNVSSAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZPUk0o
QVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUiAxCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0NvbnRh
Y3RzVUlTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0NvbnRhY3RzVUlT
UEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNjRhNmY2YWRkZTNhNDY4Y2M0MWMzYjEzNzliZmVlM2ZjODFjNTli
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQ29u
dGFjdHNVSVNQSS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEhBVkUoQ09OVEFDVFNVSSkKKworI2ltcG9ydCA8Q29udGFjdHNVSS9Db250YWN0c1VJ
Lmg+CisKKyNpZiBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxDb250YWN0c1VJL0NOQ29udGFjdFBpY2tlclZp
ZXdDb250cm9sbGVyX1ByaXZhdGUuaD4KKyNlbHNlCisKK0BpbnRlcmZhY2UgQ05Db250YWN0UGlj
a2VyVmlld0NvbnRyb2xsZXIgKCkKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmlu
ZyAqcHJvbXB0OworQGVuZAorCisjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNl
bmRpZiAvLyBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorCisjZW5kaWYgLy8g
SEFWRShDT05UQUNUU1VJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDk5YmVhMWZiNTllOTZk
NmEwMGVmMWJiYTA4YTcyNGIxZjI4ODcwMDQuLjBjNzRjZmJhZDRkYjgwNTYyYzg2YmQ4ZDEwZTYx
ZDBlYzFkNzg2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5NSw2ICszOTUsNyBAQCBV
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQcm94eUNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxl
ckNvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KK1VJUHJvY2Vzcy9Db2Nv
YS9XS0NvbnRhY3RQaWNrZXIubW0KIFVJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCiBV
SVByb2Nlc3MvQ29jb2EvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tCiBVSVByb2Nlc3Mv
Q29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGVGb3JUZXN0aW5nLmgKaW5kZXggYjFjZGU3MDdhZDVhY2U1YzNiNzViYmVhMjM4ZTAyN2Y4Zjli
MGE0MS4uODYyYjk0ODVlZjM4OTRlNDQ1ODc3ZjUxNjM1ZmE3OGQzY2NkODRmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTU4LDYgKzU4LDEwIEBAIHR5cGVkZWYgZW51bSB7CiAK
IC0gKHZvaWQpX3NldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9u
Rm9yVGVzdGluZzooQk9PTClyZXNvbHZlZDsKIAorLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQ
aWNrZXI7CistICh2b2lkKV9kaWREaXNtaXNzQ29udGFjdFBpY2tlcjsKKy0gKHZvaWQpX2Rpc21p
c3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOihOU0FycmF5ICopY29udGFjdHM7CisKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRl
c3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCiAtICh2
b2lkKV9wcm9jZXNzV2lsbFN1c3BlbmRGb3JUZXN0aW5nOih2b2lkICheKSh2b2lkKSljb21wbGV0
aW9uSGFuZGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1Rlc3RpbmcubW0KaW5kZXggMWIyYzYyYzVkNDJjMjFkYWVlOTQzZDNmOWQ4MzBi
YTc1MjlkNTA4OS4uZjIyNDgzOWJkMGJlMjg1MWQ2YzM4MmMyODA0YjY3Y2I3MWM1M2Y2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rl
c3RpbmcubW0KQEAgLTI5Niw0ICsyOTYsMjEgQEAgLSAoTlNOdW1iZXIgKilfc3VzcGVuZE1lZGlh
UGxheWJhY2tDb3VudGVyCiAgICAgcmV0dXJuIEAoX3BhZ2UtPnN1c3BlbmRNZWRpYVBsYXliYWNr
Q291bnRlcigpKTsKIH0KIAorLSAodm9pZClfZGlkUHJlc2VudENvbnRhY3RQaWNrZXIKK3sKKyAg
ICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClfZGlkRGlzbWlz
c0NvbnRhY3RQaWNrZXIKK3sKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30K
KworLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKilj
b250YWN0cworeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgW19jb250ZW50VmlldyBf
ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6Y29udGFjdHNdOworI2VuZGlmCit9CisK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFj
dFBpY2tlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2Vy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzQ4NjcyODk2ZDY2NTA1OTlmNjY0YjM3NDBkYWFkYjgzY2QzZDQwNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFj
dFBpY2tlci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEhBVkUoQ09OVEFDVFNVSSkKKworQGNsYXNzIFdLV2ViVmlldzsKK0Bwcm90b2NvbCBXS0Nv
bnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IENvbnRh
Y3RJbmZvOworc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7Cit9CisKK0BpbnRlcmZhY2UgV0tD
b250YWN0UGlja2VyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzoo
V0tXZWJWaWV3ICopdmlldzsKKworLSAodm9pZClwcmVzZW50V2l0aFJlcXVlc3REYXRhOihjb25z
dCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJilyZXF1ZXN0RGF0YSBjb21wbGV0aW9uSGFu
ZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb250YWN0
SW5mbz4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrKSBpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CisKK0BlbmQKKworQHBy
b3RvY29sIFdLQ29udGFjdFBpY2tlckRlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAo
dm9pZCljb250YWN0UGlja2VyRGlkUHJlc2VudDooV0tDb250YWN0UGlja2VyICopY29udGFjdFBp
Y2tlcjsKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZERpc21pc3M6KFdLQ29udGFjdFBpY2tlciAq
KWNvbnRhY3RQaWNrZXI7CitAZW5kCisKK0BpbnRlcmZhY2UgV0tDb250YWN0UGlja2VyIChXS1Rl
c3RpbmcpCistICh2b2lkKWRpc21pc3NXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsK
K0BlbmQKKworI2VuZGlmIC8vIEhBVkUoQ09OVEFDVFNVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjc0ZjMwOTMx
MDQ0YWJiZGJkMDRkYmIwMDA3Nzc5ZTIxZWQ4NTkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tCkBAIC0wLDAgKzEsMzAy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ29udGFj
dFBpY2tlci5oIgorCisjaWYgSEFWRShDT05UQUNUU1VJKQorCisjaW1wb3J0ICJDb250YWN0c1VJ
U1BJLmgiCisjaW1wb3J0IDxDb250YWN0cy9Db250YWN0cy5oPgorI2ltcG9ydCA8V2ViQ29yZS9D
b250YWN0SW5mby5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db250YWN0c1JlcXVlc3REYXRhLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2VuZGlmCisK
K1NPRlRfTElOS19GUkFNRVdPUksoQ29udGFjdHMpCitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMs
IENOQ29udGFjdEZvcm1hdHRlcikKK1NPRlRfTElOS19DTEFTUyhDb250YWN0cywgQ05MYWJlbGVk
VmFsdWUpCitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMsIENOTXV0YWJsZUNvbnRhY3QpCitTT0ZU
X0xJTktfQ0xBU1MoQ29udGFjdHMsIENOUGhvbmVOdW1iZXIpCisKKyNpZiBIQVZFKENOQ09OVEFD
VFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorU09GVF9MSU5LX0ZSQU1FV09SSyhDb250YWN0c1VJKQor
U09GVF9MSU5LX0NMQVNTKENvbnRhY3RzVUksIENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVy
KQorI2VuZGlmCisKKyNwcmFnbWEgbWFyayAtIERlbGVnYXRlIFdyYXBwZXJzCisKK0BpbnRlcmZh
Y2UgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PENOQ29udGFjdFBpY2tlckRl
bGVnYXRlPiB7CitAcHJvdGVjdGVkCisgICAgV2Vha09iakNQdHI8aWQ8Q05Db250YWN0UGlja2Vy
RGVsZWdhdGU+PiBfY29udGFjdFBpY2tlckRlbGVnYXRlOworfQorCistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdhdGU6KGlkPENOQ29udGFjdFBpY2tlckRlbGVnYXRl
Piljb250YWN0UGlja2VyRGVsZWdhdGU7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQ05D
b250YWN0UGlja2VyRGVsZWdhdGUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29udGFjdFBp
Y2tlckRlbGVnYXRlOihpZDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pY29udGFjdFBpY2tlckRl
bGVnYXRlCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVy
biBuaWw7CisKKyAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gY29udGFjdFBpY2tlckRlbGVn
YXRlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNpZiBIQVZFKENOQ09OVEFDVFBJQ0tFUlZJ
RVdDT05UUk9MTEVSKQorLSAodm9pZCljb250YWN0UGlja2VyRGlkQ2FuY2VsOihDTkNvbnRhY3RQ
aWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlcgoreworICAgIFtfY29udGFjdFBpY2tlckRlbGVn
YXRlIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6cGlja2VyXTsKK30KKyNlbmRpZgorCitAZW5kCisK
K0BpbnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJTaW5nbGVTZWxlY3REZWxlZ2F0ZSA6IFdLQ05D
b250YWN0UGlja2VyRGVsZWdhdGUKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQ05Db250YWN0
UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUKKworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklF
V0NPTlRST0xMRVIpCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdD
b250cm9sbGVyICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QK
K3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2VyOnBpY2tlciBkaWRT
ZWxlY3RDb250YWN0OmNvbnRhY3RdOworfQorI2VuZGlmCisKK0BlbmQKKworQGludGVyZmFjZSBX
S0NOQ29udGFjdFBpY2tlck11bHRpU2VsZWN0RGVsZWdhdGUgOiBXS0NOQ29udGFjdFBpY2tlckRl
bGVnYXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBpY2tlck11bHRpU2Vs
ZWN0RGVsZWdhdGUKKworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpCist
ICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyICopcGlj
a2VyIGRpZFNlbGVjdENvbnRhY3RzOihOU0FycmF5PENOQ29udGFjdCo+ICopY29udGFjdHMKK3sK
KyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2VyOnBpY2tlciBkaWRTZWxl
Y3RDb250YWN0czpjb250YWN0c107Cit9CisjZW5kaWYKKworQGVuZAorCisjcHJhZ21hIG1hcmsg
LSBXS0NvbnRhY3RQaWNrZXIKKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgKCkgPENOQ29u
dGFjdFBpY2tlckRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tDb250YWN0UGlj
a2VyIHsKKyAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IF93ZWJWaWV3OworICAgIFdlYWtPYmpD
UHRyPGlkPFdLQ29udGFjdFBpY2tlckRlbGVnYXRlPj4gX2RlbGVnYXRlOworCisgICAgVmVjdG9y
PFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eT4gX3Byb3BlcnRpZXM7CisgICAgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4mJik+IF9jb21wbGV0
aW9uSGFuZGxlcjsKKworICAgIFJldGFpblB0cjxXS0NOQ29udGFjdFBpY2tlckRlbGVnYXRlPiBf
Y29udGFjdFBpY2tlckRlbGVnYXRlOworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRS
T0xMRVIpCisgICAgUmV0YWluUHRyPENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyPiBfY29u
dGFjdFBpY2tlclZpZXdDb250cm9sbGVyOworI2VuZGlmCit9CisKKy0gKGlkPFdLQ29udGFjdFBp
Y2tlckRlbGVnYXRlPilkZWxlZ2F0ZQoreworICAgIHJldHVybiBfZGVsZWdhdGUuZ2V0KCkuZ2V0
KCk7Cit9CisKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkPFdLQ29udGFjdFBpY2tlckRlbGVnYXRl
PilkZWxlZ2F0ZQoreworICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworfQorCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhWaWV3OihXS1dlYlZpZXcgKil2aWV3Cit7CisgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfd2ViVmlldyA9IHZp
ZXc7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClwcmVzZW50V2l0aFJlcXVlc3RE
YXRhOihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJilyZXF1ZXN0RGF0YSBjb21w
bGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3Jl
OjpDb250YWN0SW5mbz4mJik+JiYpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcHJvcGVydGll
cyA9IHJlcXVlc3REYXRhLnByb3BlcnRpZXM7CisgICAgX2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcik7CisKKyAgICBpZiAocmVxdWVzdERhdGEubXVsdGlwbGUp
CisgICAgICAgIF9jb250YWN0UGlja2VyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tDTkNvbnRhY3RQ
aWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbnRhY3RQaWNrZXJEZWxl
Z2F0ZTpzZWxmXSk7CisgICAgZWxzZQorICAgICAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0g
YWRvcHROUyhbW1dLQ05Db250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUgYWxsb2NdIGlu
aXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOnNlbGZdKTsKKworI2lmIEhBVkUoQ05DT05UQUNU
UElDS0VSVklFV0NPTlRST0xMRVIpCisgICAgX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciA9
IGFkb3B0TlMoW2FsbG9jQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXJJbnN0YW5jZSgpIGlu
aXRdKTsKKyAgICBbX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpfY29u
dGFjdFBpY2tlckRlbGVnYXRlLmdldCgpXTsKKyAgICBbX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJv
bGxlciBzZXRQcm9tcHQ6cmVxdWVzdERhdGEudXJsXTsKKworICAgIFVJVmlld0NvbnRyb2xsZXIg
KnByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250
cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3Ol93ZWJWaWV3LmdldCgpLmdl
dCgpXTsKKyAgICBbcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9s
bGVyOl9jb250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIuZ2V0KCkgYW5pbWF0ZWQ6WUVTIGNvbXBs
ZXRpb246W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250YWN0UGlja2VyPihzZWxmKV0gewor
ICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgaWYgKCFz
dHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChbW3N0cm9uZ1Nl
bGYgZGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGFjdFBpY2tlckRp
ZFByZXNlbnQ6KV0pCisgICAgICAgICAgICBbW3N0cm9uZ1NlbGYgZGVsZWdhdGVdIGNvbnRhY3RQ
aWNrZXJEaWRQcmVzZW50OnN0cm9uZ1NlbGYuZ2V0KCldOworICAgIH1dOworI2VuZGlmCit9CisK
KyNwcmFnbWEgbWFyayAtIENvbXBsZXRpb24KKworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklF
V0NPTlRST0xMRVIpCisKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZENhbmNlbDooQ05Db250YWN0
UGlja2VyVmlld0NvbnRyb2xsZXIgKilwaWNrZXIKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q29u
dGFjdEluZm8+IGluZm87CisgICAgW3NlbGYgX2NvbnRhY3RQaWNrZXJEaWREaXNtaXNzV2l0aENv
bnRhY3RJbmZvOldURk1vdmUoaW5mbyldOworfQorCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENO
Q29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3Q6KENO
Q29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+IGlu
Zm87CisgICAgaW5mby5hcHBlbmQoW3NlbGYgX2NvbnRhY3RJbmZvRnJvbUNOQ29udGFjdDpjb250
YWN0XSk7CisgICAgW3NlbGYgX2NvbnRhY3RQaWNrZXJEaWREaXNtaXNzV2l0aENvbnRhY3RJbmZv
OldURk1vdmUoaW5mbyldOworfQorCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBp
Y2tlclZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3RzOihOU0FycmF5PENO
Q29udGFjdCo+ICopY29udGFjdHMKK3sKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+
IGluZm87CisgICAgZm9yIChDTkNvbnRhY3QgKmNvbnRhY3QgaW4gY29udGFjdHMpCisgICAgICAg
IGluZm8uYXBwZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21DTkNvbnRhY3Q6Y29udGFjdF0pOwor
ICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250YWN0SW5mbzpXVEZNb3Zl
KGluZm8pXTsKK30KKworI2VuZGlmCisKKy0gKHZvaWQpX2NvbnRhY3RQaWNrZXJEaWREaXNtaXNz
V2l0aENvbnRhY3RJbmZvOihWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+JiYpaW5mbworewor
ICAgIF9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluZm8pKTsKKworICAgIGlmIChbX2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGFjdFBpY2tlckRpZERpc21pc3M6
KV0pCisgICAgICAgIFtfZGVsZWdhdGUgY29udGFjdFBpY2tlckRpZERpc21pc3M6c2VsZl07Cit9
CisKKy0gKFdlYkNvcmU6OkNvbnRhY3RJbmZvKV9jb250YWN0SW5mb0Zyb21DTkNvbnRhY3Q6KENO
Q29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBXZWJDb3JlOjpDb250YWN0SW5mbyBjb250YWN0SW5m
bzsKKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3JlOjpDb250YWN0UHJvcGVy
dHk6Ok5hbWUpKSB7CisgICAgICAgIE5TU3RyaW5nICpjb250YWN0TmFtZSA9IFtnZXRDTkNvbnRh
Y3RGb3JtYXR0ZXJDbGFzcygpIHN0cmluZ0Zyb21Db250YWN0OmNvbnRhY3Qgc3R5bGU6Q05Db250
YWN0Rm9ybWF0dGVyU3R5bGVGdWxsTmFtZV07CisgICAgICAgIGNvbnRhY3RJbmZvLm5hbWUgPSB7
IGNvbnRhY3ROYW1lIH07CisgICAgfQorCisgICAgaWYgKF9wcm9wZXJ0aWVzLmNvbnRhaW5zKFdl
YkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6RW1haWwpKSB7CisgICAgICAgIGZvciAoQ05MYWJlbGVk
VmFsdWU8TlNTdHJpbmcgKj4gKmVtYWlsQWRkcmVzcyBpbiBjb250YWN0LmVtYWlsQWRkcmVzc2Vz
KQorICAgICAgICAgICAgY29udGFjdEluZm8uZW1haWwuYXBwZW5kKGVtYWlsQWRkcmVzcy52YWx1
ZSk7CisgICAgfQorCisgICAgaWYgKF9wcm9wZXJ0aWVzLmNvbnRhaW5zKFdlYkNvcmU6OkNvbnRh
Y3RQcm9wZXJ0eTo6VGVsKSkgeworICAgICAgICBmb3IgKENOTGFiZWxlZFZhbHVlPENOUGhvbmVO
dW1iZXIgKj4gKnBob25lTnVtYmVyIGluIGNvbnRhY3QucGhvbmVOdW1iZXJzKQorICAgICAgICAg
ICAgY29udGFjdEluZm8udGVsLmFwcGVuZChwaG9uZU51bWJlci52YWx1ZS5zdHJpbmdWYWx1ZSk7
CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRhY3RJbmZvOworfQorCisjcHJhZ21hIG1hcmsgLSBU
ZXN0aW5nCisKKy0gKHZvaWQpZGlzbWlzc1dpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRhY3Rz
Cit7CisjaWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUikKKyAgICBbX2NvbnRh
Y3RQaWNrZXJWaWV3Q29udHJvbGxlciBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRlZDpOTyBj
b21wbGV0aW9uOltzZWxmLCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGFjdFBpY2tlcj4o
c2VsZiksIGpzQ29udGFjdHMgPSBSZXRhaW5QdHI8TlNBcnJheT4oY29udGFjdHMpXSB7CisgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9u
Z1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgW3N0cm9uZ1NlbGYgY29udGFj
dFBpY2tlcjpfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLmdldCgpIGRpZFNlbGVjdENvbnRh
Y3RzOltzdHJvbmdTZWxmIF9jb250YWN0c0Zyb21KU0NvbnRhY3RzOmpzQ29udGFjdHMuZ2V0KCld
XTsKKyAgICB9XTsKKyNlbmRpZgorfQorCistIChOU0FycmF5PENOQ29udGFjdCo+ICopX2NvbnRh
Y3RzRnJvbUpTQ29udGFjdHM6KE5TQXJyYXkgKilqc0NvbnRhY3RzCit7CisgICAgaWYgKCFqc0Nv
bnRhY3RzKQorICAgICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXldOworCisgICAgTlNNdXRhYmxl
QXJyYXk8Q05Db250YWN0Kj4gKmNvbnRhY3RzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENh
cGFjaXR5OmpzQ29udGFjdHMuY291bnRdOworCisgICAgTlNQcmVkaWNhdGUgKnN0cmluZ1ZhbHVl
UHJlZGljYXRlID0gW05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJzZWxmIGlzS2lu
ZE9mQ2xhc3M6ICVAIiwgW05TU3RyaW5nIGNsYXNzXV07CisKKyAgICBmb3IgKGlkIGpzQ29udGFj
dCBpbiBqc0NvbnRhY3RzKSB7CisgICAgICAgIGlmICghW2pzQ29udGFjdCBpc0tpbmRPZkNsYXNz
OltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IENOTXV0YWJsZUNvbnRhY3QgKmNvbnRhY3QgPSBbW2FsbG9jQ05NdXRhYmxlQ29udGFjdEluc3Rh
bmNlKCkgaW5pdF0gYXV0b3JlbGVhc2VdOworCisgICAgICAgIGlkIG5hbWVzID0gWyhOU0RpY3Rp
b25hcnkgKilqc0NvbnRhY3Qgb2JqZWN0Rm9yS2V5OkAibmFtZSJdOworICAgICAgICBpZiAoW25h
bWVzIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkgeworICAgICAgICAgICAgZm9yIChO
U1N0cmluZyAqbmFtZSBpbiBbbmFtZXMgZmlsdGVyZWRBcnJheVVzaW5nUHJlZGljYXRlOnN0cmlu
Z1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAgICAgICAgICAgIGNvbnRhY3QuZ2l2ZW5OYW1lID0g
bmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIGlkIGVtYWlscyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0IG9iamVjdEZv
cktleTpAImVtYWlsIl07CisgICAgICAgIGlmIChbZW1haWxzIGlzS2luZE9mQ2xhc3M6W05TQXJy
YXkgY2xhc3NdXSkgeworICAgICAgICAgICAgTlNNdXRhYmxlQXJyYXk8Q05MYWJlbGVkVmFsdWU8
TlNTdHJpbmcqPio+ICplbWFpbEFkZHJlc3NlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07Cisg
ICAgICAgICAgICBmb3IgKE5TU3RyaW5nICplbWFpbCBpbiBbZW1haWxzIGZpbHRlcmVkQXJyYXlV
c2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRpY2F0ZV0pIHsKKyAgICAgICAgICAgICAgICBD
TkxhYmVsZWRWYWx1ZTxOU1N0cmluZyo+ICpsYWJlbGVkVmFsdWUgPSBbZ2V0Q05MYWJlbGVkVmFs
dWVDbGFzcygpIGxhYmVsZWRWYWx1ZVdpdGhMYWJlbDpuaWwgdmFsdWU6ZW1haWxdOworICAgICAg
ICAgICAgICAgIFtlbWFpbEFkZHJlc3NlcyBhZGRPYmplY3Q6bGFiZWxlZFZhbHVlXTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRhY3QuZW1haWxBZGRyZXNzZXMgPSBlbWFpbEFkZHJl
c3NlczsKKyAgICAgICAgfQorCisgICAgICAgIGlkIHBob25lTnVtYmVycyA9IFsoTlNEaWN0aW9u
YXJ5ICopanNDb250YWN0IG9iamVjdEZvcktleTpAInRlbCJdOworICAgICAgICBpZiAoW3Bob25l
TnVtYmVycyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKKyAgICAgICAgICAgIE5T
TXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPENOUGhvbmVOdW1iZXIqPio+ICpudW1iZXJzID0g
W05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICAgICAgICAgIGZvciAoTlNTdHJpbmcgKnBob25l
TnVtYmVyIGluIFtwaG9uZU51bWJlcnMgZmlsdGVyZWRBcnJheVVzaW5nUHJlZGljYXRlOnN0cmlu
Z1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAgICAgICAgICAgIENOUGhvbmVOdW1iZXIgKmNuUGhv
bmVOdW1iZXIgPSBbZ2V0Q05QaG9uZU51bWJlckNsYXNzKCkgcGhvbmVOdW1iZXJXaXRoU3RyaW5n
VmFsdWU6cGhvbmVOdW1iZXJdOworICAgICAgICAgICAgICAgIENOTGFiZWxlZFZhbHVlPENOUGhv
bmVOdW1iZXIqPiAqbGFiZWxlZFZhbHVlID0gW2dldENOTGFiZWxlZFZhbHVlQ2xhc3MoKSBsYWJl
bGVkVmFsdWVXaXRoTGFiZWw6bmlsIHZhbHVlOmNuUGhvbmVOdW1iZXJdOworICAgICAgICAgICAg
ICAgIFtudW1iZXJzIGFkZE9iamVjdDpsYWJlbGVkVmFsdWVdOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY29udGFjdC5waG9uZU51bWJlcnMgPSBudW1iZXJzOworICAgICAgICB9CisKKyAg
ICAgICAgW2NvbnRhY3RzIGFkZE9iamVjdDpjb250YWN0XTsKKyAgICB9CisKKyAgICByZXR1cm4g
Y29udGFjdHM7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoQ09OVEFDVFNVSSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNzdh
ZmNhZmM0MDQwZmI5ZWM5ODhjN2YxYWVkNjJmNmVkMTg1NDJlZS4uYmUwMzAxZmI3Y2IxOGJhYzdj
ZGUzOTBlZDNjZjFhODU1NWI5OGQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTE3Nyw2ICsxNzcsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBoYW5kbGVSdW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSos
IGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVu
UGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93U2hhcmVT
aGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNob3dDb250YWN0
UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+
JiYpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVy
aW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElEKSBvdmVycmlkZTsKICAgICB2b2lk
IGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZW5kZXJSZWN0LCBib29s
IGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdw
b3J0TWF4aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZlbCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggYWZj
YzQ1ZTkzNzZkNzNhNjRkMTJhNmNhNzkwNWZhNzI1NTZjNWFlZC4uYjZhYjk2MmI3MzM0MzkyMzJi
ZjdkZDkyYzk2YTZiMjEyYzFhODZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNjM5LDYgKzYzOSwxMSBAQCBib29sIFBhZ2VD
bGllbnRJbXBsOjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBz
aGFyZURhdGEsIFdURgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFtt
X2NvbnRlbnRWaWV3IF9zaG93Q29udGFjdFBpY2tlcjpyZXF1ZXN0RGF0YSBjb21wbGV0aW9uSGFu
ZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07Cit9CisKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6SW5zcGVjdG9yT3Zlcmxh
eTo6SGlnaGxpZ2h0JiBoaWdobGlnaHQpCiB7CiAgICAgW21fY29udGVudFZpZXcgX3Nob3dJbnNw
ZWN0b3JIaWdobGlnaHQ6aGlnaGxpZ2h0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA5MzA3OWVjNWRmODI3
NWJiYmZkYTFhNDcwN2RhZDVhNDYxYjlkZDU0Li45ZmQzYTRiNjQzMjhkOTgyZWQxNzgwM2Y4Yzc5
ZTMwYzA5YzlhZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00Myw2ICs0Myw3IEBACiAjaW1wb3J0ICJV
SUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgogI2ltcG9ydCAi
V0tBaXJQbGF5Um91dGVQaWNrZXIuaCIKKyNpbXBvcnQgIldLQ29udGFjdFBpY2tlci5oIgogI2lt
cG9ydCAiV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIgogI2ltcG9ydCAiV0tGaWxlVXBs
b2FkUGFuZWwuaCIKICNpbXBvcnQgIldLRm9ybVBlcmlwaGVyYWwuaCIKQEAgLTc5LDYgKzgwLDgg
QEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBJbnRTaXplOwogY2xhc3Mg
U2VsZWN0aW9uUmVjdDsKK3N0cnVjdCBDb250YWN0SW5mbzsKK3N0cnVjdCBDb250YWN0c1JlcXVl
c3REYXRhOwogc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiBzdHJ1Y3QgU2hhcmVEYXRh
V2l0aFBhcnNlZFVSTDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NSZXNwb25zZSA6IHVpbnQ4
X3Q7CkBAIC0yNzQsNiArMjc3LDkgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAg
ICBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgX2ZyYW1lSW5mb0ZvckZpbGVVcGxvYWRQYW5lbDsKICNp
ZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAgICAgUmV0YWluUHRy
PFdLU2hhcmVTaGVldD4gX3NoYXJlU2hlZXQ7CisjZW5kaWYKKyNpZiBIQVZFKENPTlRBQ1RTVUkp
CisgICAgUmV0YWluUHRyPFdLQ29udGFjdFBpY2tlcj4gX2NvbnRhY3RQaWNrZXI7CiAjZW5kaWYK
ICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVjb2duaXplcj4gX3ByZXZpZXdHZXN0dXJlUmVjb2du
aXplcjsKICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVjb2duaXplcj4gX3ByZXZpZXdTZWNvbmRh
cnlHZXN0dXJlUmVjb2duaXplcjsKQEAgLTQyMyw2ICs0MjksOSBAQCBzdHJ1Y3QgV0tBdXRvQ29y
cmVjdGlvbkRhdGEgewogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdLSW50ZXJh
Y3Rpb24pIDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJVGV4dEF1dG9zY3JvbGxpbmcs
IFVJVGV4dElucHV0TXVsdGlEb2N1bWVudCwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1B
Y2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdh
dGUsIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbCwgV0tBY3Rpb25TaGVldEFzc2lzdGFudERl
bGVnYXRlLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0tleWJvYXJkU2Nyb2xsVmlld0Fu
aW1hdG9yRGVsZWdhdGUsIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorI2lm
IEhBVkUoQ09OVEFDVFNVSSkKKyAgICAsIFdLQ29udGFjdFBpY2tlckRlbGVnYXRlCisjZW5kaWYK
ICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCiAgICAgLCBXS1No
YXJlU2hlZXREZWxlZ2F0ZQogI2VuZGlmCkBAIC01MjAsNiArNTI5LDcgQEAgRk9SX0VBQ0hfUFJJ
VkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZP
Ul9XRUJfVklFVykKIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBpY2tlcjooQk9PTCloYXNW
aWRlbyBmcm9tUmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxlbWVudFJlY3Qgcm91dGVT
aGFyaW5nUG9saWN5OihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kpcG9saWN5IHJvdXRpbmdD
b250ZXh0VUlEOihOU1N0cmluZyAqKWNvbnRleHRVSUQ7CiAtICh2b2lkKV9zaG93UnVuT3BlblBh
bmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMgZnJhbWVJbmZvOihjb25z
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmKWZyYW1lSW5mbyByZXN1bHRMaXN0ZW5lcjooV2ViS2l0
OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5lcjsKIC0gKHZvaWQpX3No
b3dTaGFyZVNoZWV0Oihjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJilzaGFy
ZURhdGEgaW5SZWN0OihXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pcmVjdCBjb21w
bGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKWNvbXBs
ZXRpb25IYW5kbGVyOworLSAodm9pZClfc2hvd0NvbnRhY3RQaWNrZXI6KGNvbnN0IFdlYkNvcmU6
OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVyOihXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJ
bmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWRpc21pc3NGaWxlUGlja2Vy
OwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdh
c0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9u
SXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC02MjcsNiArNjM3LDcgQEAg
Rk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKE5TRGljdGlvbmFyeSAqKV9jb250ZW50c09mVXNl
ckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0ZW07CiAtICh2b2lkKV9k
b0FmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247
CiAtICh2b2lkKV9kb0FmdGVyUmVjZWl2aW5nRWRpdERyYWdTbmFwc2hvdEZvclRlc3Rpbmc6KGRp
c3BhdGNoX2Jsb2NrX3QpYWN0aW9uOworLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRo
Q29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlRm9yVGVzdGluZzsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnNlbGVjdEZvcm1Qb3BvdmVyVGl0bGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCBkZDg5YzBmMGFmYTgyYjEzMGQ1MjQyZWQxYzk5ZDZlMmJiZjU1ODg5
Li5mZmZhYWE2NWRmZTg0YzZlNGIwNzdmYzdiY2Q2ZjAwMDNmYTc0ZWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTczLDcgKzczLDcgQEAKICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJT1MuaCIKICNpbXBvcnQgIldLV2ViVmlld1ByaXZh
dGUuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgiCisjaW1wb3J0
ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiV2ViQXV0b2NvcnJlY3Rp
b25Db250ZXh0LmgiCiAjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCIKICNpbXBvcnQg
IldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgpAQCAtNjg0OCw2ICs2ODQ4LDM2
IEBAIC0gKHZvaWQpc2hhcmVTaGVldDooV0tTaGFyZVNoZWV0ICopc2hhcmVTaGVldCB3aWxsU2hv
d0FjdGl2aXR5SXRlbXM6KE5TQXJyYXkgKilhCiAKICNlbmRpZgogCistICh2b2lkKV9zaG93Q29u
dGFjdFBpY2tlcjooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERh
dGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcgor
eworI2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICBfY29udGFjdFBpY2tlciA9IGFkb3B0TlMoW1tX
S0NvbnRhY3RQaWNrZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLndlYlZpZXddKTsKKyAgICBb
X2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW19jb250YWN0UGlja2VyIHBy
ZXNlbnRXaXRoUmVxdWVzdERhdGE6cmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildOworI2Vsc2UKKyAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6
Om51bGxvcHQpOworI2VuZGlmCit9CisKKyNpZiBIQVZFKENPTlRBQ1RTVUkpCistICh2b2lkKWNv
bnRhY3RQaWNrZXJEaWRQcmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKiljb250YWN0UGlja2VyCit7
CisgICAgQVNTRVJUKF9jb250YWN0UGlja2VyID09IGNvbnRhY3RQaWNrZXIpOworCisgICAgW193
ZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl07Cit9CisKKy0gKHZvaWQpY29udGFjdFBp
Y2tlckRpZERpc21pc3M6KFdLQ29udGFjdFBpY2tlciAqKWNvbnRhY3RQaWNrZXIKK3sKKyAgICBB
U1NFUlQoX2NvbnRhY3RQaWNrZXIgPT0gY29udGFjdFBpY2tlcik7CisKKyAgICBbX2NvbnRhY3RQ
aWNrZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBfY29udGFjdFBpY2tlciA9IG5pbDsKKworICAg
IFtfd2ViVmlldyBfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXJdOworfQorI2VuZGlmCisKIC0gKE5T
U3RyaW5nICopaW5wdXRMYWJlbFRleHQKIHsKICAgICBpZiAoIV9mb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uLmxhYmVsLmlzRW1wdHkoKSkKQEAgLTkwOTQsNiArOTEyNCwxMyBAQCAtIChOU0RpY3Rp
b25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0cmluZyAqKXVzZXJJbnRl
cmZhY2VJdGVtCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClfZGlzbWlzc0NvbnRhY3RQ
aWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworeworI2lmIEhBVkUoQ09OVEFD
VFNVSSkKKyAgICBbX2NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhDb250YWN0czpjb250YWN0c107
CisjZW5kaWYKK30KKwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0NDA2ZTliNmU3
ZTZmNGEwMzYyZTZjNTZiYjg0OWJmZWJlYzhjMGM3Li4wYTNiYTAzYzA0MDEyNTYwOTUyMTU2ODZh
ZTZmNzhmNjIwNzdjMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE4NTEsNiArMTg1MSw3IEBACiAJCUU0OUQ0MEQ3MUFEM0ZCMTcw
MDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIxNzAwNjZCN0I5IC8qIE5l
dHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0MjFGMUQ3MkQwMDdFM0Mz
NiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlSU9TLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBDMUY5MzIxRjBCOTZFMDA1
MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZUlPUy5oICovOyB9
OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRFNTdGNkEyMUE4
M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsgfTsKKwkJRTUwNjIwOTIy
NTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250
YWN0c1VJU1BJLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAwQkUzQzMyIC8qIFdLRm9y
bUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29sb3JQaWNrZXIuaCAqLzsg
fTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU1Q0QxRjMyNENG
NzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9OwpAQCAtMTg1OCw2ICsx
ODU5LDcgQEAKIAkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2Vy
TWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTVD
RDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCAqLzsgfTsKIAkJ
RTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTU2OEI5
MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oICov
OyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duTWFjLmggKi87IH07CisJCUU1OTZERDZBMjUxRTcxRDQwMEMyNzVBNyAvKiBXS0NvbnRh
Y3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCAqLzsgfTsKIAkJ
RTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVC
RUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklP
Uy5oICovOyB9OwogCQlFNUNCMDdEQzIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250
cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNC
MDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi87IH07CiAJCUVE
ODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4
NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDIwLDYgKzU0MjIsNyBAQAogCQlFNDlENDBEODFB
RDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgzQjAzMDAzNDVGM0MgLyog
UmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXllclRyZWVOb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUwNjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENv
bnRhY3RzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFjdHNVSVNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlv
blBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MTIwQTM1QzNB
MDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBXS0Zvcm1Db2xvclBpY2tl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBwYXRoID0gaW9zL2Zvcm1z
L1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NDM0
LDYgKzU0MzcsOCBAQAogCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMDIwQTNB
QzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250YWN0UGlja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVBNyAvKiBXS0NvbnRhY3RQ
aWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0NvbnRh
Y3RQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVGNjgwMjEzMEM0
N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLmg7IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVGNjgxMjEzMEM0N0YwMEYzMTExMSAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW07
IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3Jt
Q29sb3JDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNvbG9yQ29udHJvbC5oOyBwYXRo
ID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNjQ2Myw2ICs2NDY4LDggQEAKIAkJCQk1MUQxMjQzMjFFNkRFNTIxMDAyQjI4MjAg
LyogV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tICovLAogCQkJCTJERkM3REI5MUJDQ0MxOTUw
MEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovLAogCQkJCTJERkM3REJBMUJDQ0MxOTUwMEMxNTQ4
QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKKwkJCQlFNTk2REQ2ODI1MUU3MUQzMDBDMjc1QTcgLyog
V0tDb250YWN0UGlja2VyLmggKi8sCisJCQkJRTU5NkRENjkyNTFFNzFENDAwQzI3NUE3IC8qIFdL
Q29udGFjdFBpY2tlci5tbSAqLywKIAkJCQkyRUNGNjZDQzIxRDZCNzdFMDA5RTVDM0YgLyogV0tF
ZGl0Q29tbWFuZC5oICovLAogCQkJCTJFQ0Y2NkNEMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRD
b21tYW5kLm1tICovLAogCQkJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXli
b2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKQEAgLTcyNjgsNiArNzI3NSw3IEBACiAJCQkJRTNDQUFB
NDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmggKi8sCiAJCQkJ
NTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oICovLAogCQkJCTFBNTcw
NTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9ja1NQSS5oICovLAorCQkJCUU1MDYyMDkxMjU0MjEw
MjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi8sCiAJCQkJMzdDMjFDQUQxRTk5NEMwQzAw
MjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggKi8sCiAJCQkJMkRBQURBOEUyMjk4QzIxMDAw
RTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywKIAkJCQk1NzQyMTc5MTI0MDBFMDk4
MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovLApAQCAtMTA5NjYsNiArMTA5
NzQsNyBAQAogCQkJCTM3QkVDNEUxMTk0OTE0ODYwMDhCNDI4NiAvKiBDb21wbGV0aW9uSGFuZGxl
ckNhbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0RTlGNjEzMUM2RTdFMDAyOUJE
NUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRBQjEwRjQzN0QxMDA1OEMx
NUEgLyogQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUwNjIwOTIyNTQyMTAyMDAw
QzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNBMDUzOTc5MjNF
RTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0NoaWxkRnJhbWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcgLyogQ29udGVudFdvcmxk
U2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA2RDdDNDE4QkRCRTczMDAwQUIxNjYgLyog
Q29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTcwMSw2ICsxMTcx
MCw3IEBACiAJCQkJQkNBMjg0RDcxNDkyRjJDNzAwMUY5MDQyIC8qIFdLQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc1QzgxNDk1NERBNjAwQkM0Nzc1IC8qIFdLQ29ubmVjdGlv
bkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0NzMxM0EwMDA2QzY4MUEg
LyogV0tDb25uZWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTk2REQ2QTI1MUU3MUQ0
MDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1
NDFFNzIzNUIxMDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDRDI4NjU1MUU3MjM1QjgwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdEludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1MTFFNzIzNTk5MDA5NEZEQzggLyogV0tDb250
ZW50UnVsZUxpc3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODQwZDA0OTA1YThiYzA1OTc2MmZjMGMwYjFm
NmMwM2JjNzUyM2ZhYy4uMDkyNjY0M2M2YzVkNDgwMmY3MTc2N2FjM2YzNjMyMzA2YTAwODZhMyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM4IEBACisyMDIwLTEwLTI2ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ29udGFjdCBQaWNrZXIgQVBJXSBBZGQgc3VwcG9ydCBmb3IgcGlja2Vy
IFVJIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE4MTg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjI3Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBVSVNjcmlwdENvbnRy
b2xsZXIgaG9va3MgdG8gb2JzZXJ2ZSB0aGUgcHJlc2VudGF0aW9uIGFuZAorICAgICAgICBkaXNt
aXNzYWwgb2YgYSBjb250YWN0IHBpY2tlci4gRnVydGhlcm1vcmUsIHRoZQorICAgICAgICBkaXNt
aXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyBtZXRob2Qgd2FzIGFkZGVkIHRvIGFsbG93IHRl
c3RzIHRvCisgICAgICAgIGRpc21pc3MgdGhlIHByZXNlbnRlZCBjb250YWN0IHBpY2tlciB3aXRo
IGEgc2V0IG9mIHNlbGVjdGVkIGNvbnRhY3RzLgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaDoK
KyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjppc1Nob3dpbmdDb250
YWN0UGlja2VyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaXNt
aXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcDoKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNr
KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93Q29udGFjdFBpY2tl
ckNhbGxiYWNrIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXRE
aWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250
cm9sbGVyOjpkaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrIGNvbnN0KToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgt
W1Rlc3RSdW5uZXJXS1dlYlZpZXcgcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrc10pOgorICAgICAg
ICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl0pOgorICAg
ICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWREaXNtaXNzQ29udGFjdFBpY2tlcl0pOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2Eu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNv
Y29hLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkU2hv
d0NvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxl
ckNvY29hOjpzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6
VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRhY3RQaWNrZXIgY29uc3QpOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6ZGlzbWlzc0NvbnRhY3RQaWNr
ZXJXaXRoQ29udGFjdHMpOgorCiAyMDIwLTEwLTI5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFJlbW92ZSBzb2Z0IGxpbmtpbmcgb2YgTmV0
d29ya0V4dGVuc2lvbi5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwgYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCmluZGV4IDNkNTgzMmQxZDk2MmMwYzkzMmYzMjdlM2ViYzAxODlkYTEwYzQ4NWMu
LjNlMDVlYjEzMzAyYzMyNjIxNjk4NTNmODE0ZWQ4MzMzODNiYjZhYTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
QmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbApAQCAtMzQ5LDYgKzM0OSwxMSBAQCBpbnRl
cmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICBvYmplY3QgYXR0YWNobWVudEluZm8oRE9N
U3RyaW5nIGF0dGFjaG1lbnRJZGVudGlmaWVyKTsKICAgICB1bmRlZmluZWQgaW5zZXJ0QXR0YWNo
bWVudEZvckZpbGVQYXRoKERPTVN0cmluZyBmaWxlUGF0aCwgRE9NU3RyaW5nIGNvbnRlbnRUeXBl
LCBvYmplY3QgY2FsbGJhY2spOwogCisgICAgYXR0cmlidXRlIG9iamVjdCBkaWRTaG93Q29udGFj
dFBpY2tlckNhbGxiYWNrOworICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkSGlkZUNvbnRhY3RQaWNr
ZXJDYWxsYmFjazsKKyAgICB1bmRlZmluZWQgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFj
dHMob2JqZWN0IGNvbnRhY3RzKTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1No
b3dpbmdDb250YWN0UGlja2VyOworCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBs
YXN0VW5kb0xhYmVsOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZmlyc3RSZWRv
TGFiZWw7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250ZXh0LmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaAppbmRleCBmYmEzMmM5MzdiMjk4MzFlMDI2Zjk5MTM4
NjBiMmUwNzIxZTBmMjU0Li4yYjVmNGJmODE2ZDAxNDRiMzE5YjYyNmQxMDcwODQ4M2M5ZGYxZWI4
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRleHQuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRleHQuaApAQCAtNjUsNiArNjUsOCBAQCB0eXBlZGVmIGVudW0gIHsKICAg
ICBDYWxsYmFja1R5cGVEaWREaXNtaXNzQ29udGV4dE1lbnUsCiAgICAgQ2FsbGJhY2tUeXBlV2ls
bENyZWF0ZU5ld1BhZ2UsCiAgICAgQ2FsbGJhY2tUeXBlV2luZG93VGFwUmVjb2duaXplZCwKKyAg
ICBDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlciwKKyAgICBDYWxsYmFja1R5cGVEaWRI
aWRlQ29udGFjdFBpY2tlciwKICAgICBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50ID0gZmlyc3RO
b25QZXJzaXN0ZW50Q2FsbGJhY2tJRAogfSBDYWxsYmFja1R5cGU7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmgKaW5kZXggYmUxMzZiZDA2MGIzYjMyMjEzYzUxNGI1YjVkNTZhODFmYjRlM2ZjOC4uN2U0
ODA3YjE1NGZiYTQ2MzZhOTY1ZTJhZWEwYmI3MDliYjViNmRhOCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmgKQEAgLTI3Nyw2ICsyNzcsMTcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSlNPYmplY3RS
ZWYgYXR0YWNobWVudEluZm8oSlNTdHJpbmdSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0QXR0YWNobWVudEZvckZpbGVQYXRo
KEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZikgeyBub3RJbXBsZW1lbnRlZCgp
OyB9CiAKKyAgICAvLyBDb250YWN0IFBpY2tlcgorCisgICAgdmlydHVhbCB2b2lkIHNldERpZFNo
b3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWRT
aG93Q29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzU2hv
d2luZ0NvbnRhY3RQaWNrZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxz
ZTsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2so
SlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNr
KCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29u
dGFjdHMoSlNWYWx1ZVJlZikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisKICAgICAvLyBDYWxsYmFj
a3MKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0
aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVk
LmNwcAppbmRleCBiZmY0ZjM0MzNkYmQyOTU3NWQ2MjViNzM5NGU2ZDlkMzgxY2FlYzI2Li45ZTQ5
NDBjZTNhOGIxMDIyN2ZlZGUxZmUyZTJmODFmMTlhOGRhNjQ2IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlclNoYXJlZC5jcHAKQEAgLTIxMyw2ICsyMTMsMjYgQEAgSlNWYWx1ZVJlZiBVSVNj
cmlwdENvbnRyb2xsZXI6OmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKSBjb25zdAogICAgIHJl
dHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NQb3Bv
dmVyKTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dDb250YWN0UGlj
a2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lz
dGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dDb250YWN0UGlja2VyKTsK
K30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFNob3dDb250YWN0UGlja2Vy
Q2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElE
KENhbGxiYWNrVHlwZURpZFNob3dDb250YWN0UGlja2VyKTsKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxi
YWNrVHlwZURpZEhpZGVDb250YWN0UGlja2VyKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENv
bnRyb2xsZXI6OmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEhpZGVDb250YWN0
UGlja2VyKTsKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0Q29tcGxldGUo
SlNTdHJpbmdSZWYgcmVzdWx0KQogewogICAgIG1fY29udGV4dC0+cmVxdWVzdFVJU2NyaXB0Q29t
cGxldGlvbihyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0UnVubmVyV0tXZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RSdW5uZXJXS1dlYlZpZXcuaAppbmRleCBmNTU0ZTEyM2VhM2U1NDFhMTA3YzdkZDY3NmZlNGM1
ZmU3MWU2ZDY4Li5mNTcxZTRkZGQ4ZmM4OWIzMjMxYWQ2MDg3ODg0ZGMyOTExMGVjNWFlIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
aApAQCAtNzMsNiArNzMsOSBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0
ZXI9aXNTaG93aW5nTWVudSkgQk9PTCBzaG93aW5nTWVudTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSB2b2lkICheZGlkU2hvd01lbnVDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgdm9pZCAoXmRpZEhpZGVNZW51Q2FsbGJhY2spKHZvaWQpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nQ29udGFjdFBpY2tlcikg
Qk9PTCBzaG93aW5nQ29udGFjdFBpY2tlcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaykodm9pZCk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgdm9pZCAoXmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2spKHZvaWQp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbiwgc2V0dGVyPV9zZXRTdGFibGVTdGF0ZU92
ZXJyaWRlOikgTlNOdW1iZXIgKl9zdGFibGVTdGF0ZU92ZXJyaWRlOwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGluZzopIEJP
T0wgX3Njcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQppbmRleCA5MTVm
NDc2YzYxNWFlNjEwOTBkOTBjYTc5NzZiZjhmMmM5OWI1NjZiLi41NzA2YTdiMTE1YjUxNDI0ZjJi
NjVjODRjYTgxYzgwODQyMDM3OGM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCkBAIC03OCw2ICs3OCw3IEBAIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nTWVudSwgc2V0dGVyPXNldElzU2hvd2luZ01l
bnU6KSBCT09MIHNob3dpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzRGlzbWlzc2lu
Z01lbnUsIHNldHRlcj1zZXRJc0Rpc21pc3NpbmdNZW51OikgQk9PTCBkaXNtaXNzaW5nTWVudTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nUG9wb3Zlciwgc2V0dGVyPXNl
dElzU2hvd2luZ1BvcG92ZXI6KSBCT09MIHNob3dpbmdQb3BvdmVyOwogQHByb3BlcnR5IChub25h
dG9taWMsIGdldHRlcj1pc1Nob3dpbmdDb250ZXh0TWVudSwgc2V0dGVyPXNldElzU2hvd2luZ0Nv
bnRleHRNZW51OikgQk9PTCBzaG93aW5nQ29udGV4dE1lbnU7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzU2hvd2luZ0NvbnRhY3RQaWNrZXIsIHNldHRlcj1zZXRJc1Nob3dpbmdDb250
YWN0UGlja2VyOikgQk9PTCBzaG93aW5nQ29udGFjdFBpY2tlcjsKIAogQGVuZAogCkBAIC0xNzEs
NiArMTcyLDggQEAgLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzCiB7CiAgICAgc2Vs
Zi5kaWRTaG93TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkSGlkZU1lbnVDYWxsYmFj
ayA9IG5pbDsKKyAgICBzZWxmLmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2sgPSBuaWw7Cisg
ICAgc2VsZi5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrID0gbmlsOwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgc2VsZi5kaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxs
YmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFj
ayA9IG5pbDsKQEAgLTU0NSw0ICs1NDgsMjQgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjoo
VUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlY29nbmkKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKy0gKHZvaWQpX2RpZFByZXNlbnRDb250
YWN0UGlja2VyCit7CisgICAgaWYgKHNlbGYuc2hvd2luZ0NvbnRhY3RQaWNrZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIHNlbGYuc2hvd2luZ0NvbnRhY3RQaWNrZXIgPSBZRVM7CisgICAgaWYg
KHNlbGYuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWRTaG93
Q29udGFjdFBpY2tlckNhbGxiYWNrKCk7Cit9CisKKy0gKHZvaWQpX2RpZERpc21pc3NDb250YWN0
UGlja2VyCit7CisgICAgaWYgKCFzZWxmLnNob3dpbmdDb250YWN0UGlja2VyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzZWxmLnNob3dpbmdDb250YWN0UGlja2VyID0gTk87CisgICAgaWYgKHNl
bGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWRIaWRlQ29u
dGFjdFBpY2tlckNhbGxiYWNrKCk7Cit9CisKIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaAppbmRleCBjYzk4MTM5
NDI0ZjI4ODA2NDQzOTg5ODM0NWMzZTdkNGVhNTUzMzc4Li5lOGNkYzNjZjBjMTE1NDFhODdkYWM4
NTAxZTcwOGY2ODhlYWNiMTg0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCkBAIC02NCw2ICs2NCwxMSBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBpbnNlcnRBdHRhY2htZW50Rm9yRmlsZVBhdGgoSlNTdHJpbmdSZWYg
ZmlsZVBhdGgsIEpTU3RyaW5nUmVmIGNvbnRlbnRUeXBlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBv
dmVycmlkZTsKIAorICAgIHZvaWQgc2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhKU1Zh
bHVlUmVmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJh
Y2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Nob3dpbmdDb250YWN0UGlja2Vy
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250
YWN0cyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKwogICAgIHZvaWQgY29tcGxldGVUYXNrQXN5bmNo
cm9ub3VzbHlBZnRlckFjdGl2aXR5U3RhdGVVcGRhdGUodW5zaWduZWQgY2FsbGJhY2tJRCk7CiB9
OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29u
dHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENv
bnRyb2xsZXJDb2NvYS5tbQppbmRleCA1ODQ3OTc2ZjIxODU3ZjUzZjQ4NWVjYjFmYjFlYjkxMTcy
MWE1NmRhLi5iYjU0YTJhMTY0YmE1OGRjZGM0OGQxNjc2ZDQ1YTlhYzhjYjQ3NjRhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29h
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVy
Q29jb2EubW0KQEAgLTIyNSw0ICsyMjUsMzYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2Nv
YTo6aW5zZXJ0QXR0YWNobWVudEZvckZpbGVQYXRoKEpTU3RyaW5nUmVmIGZpbGVQYXRoLAogICAg
IH1dOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRTaG93Q29udGFj
dFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250
cm9sbGVyOjpzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKGNhbGxiYWNrKTsKKyAgICB3
ZWJWaWV3KCkuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayA9IF57CisgICAgICAgIGlmICgh
bV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmZpcmVD
YWxsYmFjayhDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7CisgICAgfTsKK30KKwor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxs
YmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0
RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayhjYWxsYmFjayk7CisgICAgd2ViVmlldygpLmRp
ZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2sgPSBeeworICAgICAgICBpZiAoIW1fY29udGV4dCkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2Fs
bGJhY2tUeXBlRGlkSGlkZUNvbnRhY3RQaWNrZXIpOworICAgIH07Cit9CisKK2Jvb2wgVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRhY3RQaWNrZXIoKSBjb25zdAoreworICAg
IHJldHVybiB3ZWJWaWV3KCkuc2hvd2luZ0NvbnRhY3RQaWNrZXI7Cit9CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2E6OmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKEpTVmFs
dWVSZWYgY29udGFjdHMpCit7CisgICAgSlNDb250ZXh0ICpjb250ZXh0ID0gW0pTQ29udGV4dCBj
b250ZXh0V2l0aEpTR2xvYmFsQ29udGV4dFJlZjptX2NvbnRleHQtPmpzQ29udGV4dCgpXTsKKyAg
ICBKU1ZhbHVlICp2YWx1ZSA9IFtKU1ZhbHVlIHZhbHVlV2l0aEpTVmFsdWVSZWY6Y29udGFjdHMg
aW5Db250ZXh0OmNvbnRleHRdOworICAgIFt3ZWJWaWV3KCkgX2Rpc21pc3NDb250YWN0UGlja2Vy
V2l0aENvbnRhY3RzOlt2YWx1ZSB0b0FycmF5XV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDlkNmU4YWQxYTU3MGI0YmNhNWEzMmYwOGVjNjk0NWY2MGQzYzA5NDguLjlmM2YwNDRl
OTNlMTNhMDBkOTlkYjA5Nzc3ODRlZDM1ZWEwNjliOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAor
MjAyMC0xMC0yNiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRkIHN1cHBvcnQgZm9yIHBpY2tlciBVSSBvbiBpT1MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODE4OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIyNzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdmVyaWZ5IHRoZSBwcmVz
ZW50YXRpb24gYW5kIGRpc21pc3NhbCBvZiBhIGNvbnRhY3QKKyAgICAgICAgcGlja2VyIG9uIGlP
Uy4gVGhlIG5ldyB0ZXN0cyBhcmUgb25seSBydW4gb24gaU9TIFdLMiwgc2luY2UgdGhhdCBpcyB0
aGUKKyAgICAgICAgb25seSBwbGF0Zm9ybSB3aGljaCBjdXJyZW50bHkgc3VwcG9ydHMgdGhlIHBy
ZXNlbnRhdGlvbiBvZiBhIGNvbnRhY3QKKyAgICAgICAgcGlja2VyLiBOb3RlIHRoYXQgdGhlc2Ug
dGVzdHMgd2lsbCBiZSBlbmFibGVkIG9uIG1hY09TIFdLMiBvbmNlIHN1cHBvcnQKKyAgICAgICAg
aXMgYWRkZWQgaW4gYSBmb3J0aGNvbWluZyBwYXRjaC4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRp
c21pc3NpbmctcGlja2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1w
cmVzZW50aW5nLXBpY2tlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2FpdEZv
ckNvbnRhY3RQaWNrZXJUb1Nob3cpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JD
b250YWN0UGlja2VyVG9IaWRlKToKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5kaXNtaXNzQ29u
dGFjdFBpY2tlcldpdGhDb250YWN0cyk6CisKIDIwMjAtMTAtMjkgIEthcmwgUmFja2xlciAgPHJh
Y2tsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjkwNzApOiBbIEJpZyBT
dXIgXSBlZGl0aW5nL2lucHV0L3JldmVhbC1jYXJldC1vZi1tdWx0aWxpbmUtaW5wdXQuaHRtbCBp
cyBhIGNvbnN0YW50IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFjODM5OGIyZDhkMTQ3
MmNiZDc5Y2VlNDdjZDQ1OWQyMDE2MTBkMjAuLmRlNjkwZTJhNmM3Y2I4MzU1MTI1N2I4NTJmZWY1
ZjYzOTVlODBlMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTAsNiArOTAsMTEgQEAgZmFzdC9m
b3Jtcy9lbnRlcmtleWhpbnQtYXR0cmlidXRlLXZhbHVlcy5odG1sIFsgU2tpcCBdCiAjIEhpZ2hs
aWdodGluZyBtYXJrZWQgdGV4dCByYW5nZXMgZnJvbSBsYXlvdXQgdGVzdHMgaXMgb25seSBzdXBw
b3J0ZWQgaW4gV2ViS2l0Mi4KIGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24taGlnaGxpZ2h0cy5o
dG1sIFsgU2tpcCBdCiAKKyMgQ29jb2EgV0syIG9ubHkuIE90aGVyIHBsYXRmb3JtcyBkbyBub3Qg
cHJlc2VudCBhIGNvbnRhY3QgcGlja2VyIFVJLgorY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwgWyBTa2lwIF0KK2NvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sIFsgU2tpcCBdCitj
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbCBbIFNraXAgXQorCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWV4dGVybmFsLWVudGl0eS1uby1sb2dnaW5nLnhtbCBb
IFNraXAgXQogCiAjIHdpbmRvdy5zaG93TW9kYWxEaWFsb2cgaXMgb25seSB0ZXN0ZWQgaW4gRHVt
cFJlbmRlclRyZWUgb24gTWFjLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNr
ZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNz
aW5nLXBpY2tlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcxODRhZjY2MjU2N2YwYjUwZjFi
NDVjZTM2NGU4OWMzZWE4OGMxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRh
Y3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9y
LmNvbnRhY3RzLnNlbGVjdCBzdWNjZWVkcyBhZnRlciBhbm90aGVyIGNhbGwgdG8gbmF2aWdhdG9y
LmNvbnRhY3RzLnNlbGVjdCB3YXMgY29tcGxldGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUGVyZm9ybWluZyBmaXJzdCBjb250YWN0cyByZXF1ZXN0LgorUEFTUyBhcmVBcnJh
eXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSBpcyB0cnVlCitQQVNT
IGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFpbCkgaXMg
dHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS50ZWwsIGFkZHJlc3NCb29rWzBdLnRl
bCkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0Mi5uYW1lLCBhZGRyZXNzQm9v
a1sxXS5uYW1lKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLmVtYWlsLCBh
ZGRyZXNzQm9va1sxXS5lbWFpbCkgaXMgdHJ1ZQorUEFTUyBjb250YWN0Mi50ZWwubGVuZ3RoIGlz
IDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMubmFtZSwgYWRkcmVzc0Jvb2tbMl0ubmFt
ZSkgaXMgdHJ1ZQorUEFTUyBjb250YWN0My5lbWFpbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJh
eXNFcXVhbChjb250YWN0My50ZWwsIGFkZHJlc3NCb29rWzJdLnRlbCkgaXMgdHJ1ZQorUEFTUyBm
aW5pc2hlZENvbnRhY3RTZWxlY3Rpb24gYmVjYW1lIHRydWUKKworUGVyZm9ybWluZyBzZWNvbmQg
Y29udGFjdHMgcmVxdWVzdC4KK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRk
cmVzc0Jvb2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5l
bWFpbCwgYWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoY29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBh
cmVBcnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRy
dWUKK1BBU1MgY29udGFjdDIudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNv
bnRhY3QzLm5hbWUsIGFkZHJlc3NCb29rWzJdLm5hbWUpIGlzIHRydWUKK1BBU1MgY29udGFjdDMu
ZW1haWwubGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMudGVsLCBhZGRy
ZXNzQm9va1syXS50ZWwpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorU2hvdyBjb250YWN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlz
bWlzc2luZy1waWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzE1MTRjODA2YzNlYzUwMzljNzA2ZTgz
ZGIzZWMxYjZhNDNjM2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwKQEAgLTAs
MCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhw
ZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworICAgICAgICBmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24gPSBmYWxzZTsKKwor
ICAgICAgICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAibmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBl
cnNvbi5hQHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgICAgICAidGVsIjogWyI1NTUtNTU1NSJd
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjog
WyJQZXJzb24gQiJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmJAd2Via2l0
Lm9yZyIsICJwZXJzb24uYi5hbHRAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVyc29uIEMiXSwKKyAgICAgICAg
ICAgICAgICAidGVsIjogWyI3NzctNzc3NyJdLAorICAgICAgICAgICAgfQorICAgICAgICBdOwor
CisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3Rz
LnNlbGVjdCBzdWNjZWVkcyBhZnRlciBhbm90aGVyIGNhbGwgdG8gbmF2aWdhdG9yLmNvbnRhY3Rz
LnNlbGVjdCB3YXMgY29tcGxldGVkLlxuIik7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbnRhY3Rz
QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhY3RzIik7CisgICAgICAgICAg
ICBjb250YWN0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsK
KyAgICAgICAgICAgICAgICBpZiAoZmluaXNoZWRDb250YWN0U2VsZWN0aW9uKSB7CisgICAgICAg
ICAgICAgICAgICAgIGRlYnVnKCJcblBlcmZvcm1pbmcgc2Vjb25kIGNvbnRhY3RzIHJlcXVlc3Qu
IikKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZWJ1Zygi
UGVyZm9ybWluZyBmaXJzdCBjb250YWN0cyByZXF1ZXN0LiIpCisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5hdmlnYXRvci5jb250YWN0cy5zZWxl
Y3QoWyJuYW1lIiwgImVtYWlsIiwgInRlbCJdKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KCk7CisgICAgICAgICAgICAgICAgVUlI
ZWxwZXIuZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoYWRkcmVzc0Jvb2spOworICAg
ICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9IaWRlKCk7
CisKKyAgICAgICAgICAgICAgICBbY29udGFjdDEsIGNvbnRhY3QyLCBjb250YWN0M10gPSBhd2Fp
dCByZXF1ZXN0OworCisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVh
bChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSIpOworICAgICAgICAgICAgICAg
IHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29r
WzBdLmVtYWlsKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1
YWwoY29udGFjdDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwpIik7CisKKyAgICAgICAgICAgICAg
ICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29r
WzFdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVh
bChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0Mi50ZWwubGVuZ3RoIiwgMCk7CisKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUs
IGFkZHJlc3NCb29rWzJdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
TnVtYmVyKCJjb250YWN0My5lbWFpbC5sZW5ndGgiLCAwKTsKKyAgICAgICAgICAgICAgICBzaG91
bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLnRlbCwgYWRkcmVzc0Jvb2tbMl0udGVs
KSIpOworCisgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbikgewor
ICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24gPSB0cnVl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoY29udGFjdHNCdXR0b24pOworICAgICAgICAgICAg
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVFcXVhbCgiZmluaXNoZWRD
b250YWN0U2VsZWN0aW9uIiwgInRydWUiLCByZXNvbHZlKSk7CisgICAgICAgICAgICBhd2FpdCBV
SUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoY29udGFjdHNCdXR0b24pOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+CisgICAgPGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KKyAgICAgICAgPGJ1dHRvbiBp
ZD0iY29udGFjdHMiPlNob3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGFjN2M1MTRhYTY3ZDUzMmRhNjBiMjNmNDJmMzdi
ZmM2MGI3M2VjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3Qg
dmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IHByZXNlbnRzIGEgY29udGFj
dCBwaWNrZXIgYW5kIHJldHVybnMgdGhlIHNlbGVjdGVkIGNvbnRhY3RzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjb250YWN0cy5sZW5ndGggaXMgMworUEFTUyBhcmVB
cnJheXNFcXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSBpcyB0cnVlCitQ
QVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFpbCkg
aXMgdHJ1ZQorUEFTUyBjb250YWN0MS50ZWwubGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1
YWwoY29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVB
cnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRydWUK
K1BBU1MgY29udGFjdDIudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRh
Y3QzLm5hbWUsIGFkZHJlc3NCb29rWzJdLm5hbWUpIGlzIHRydWUKK1BBU1MgY29udGFjdDMuZW1h
aWwubGVuZ3RoIGlzIDAKK1BBU1MgY29udGFjdDMudGVsLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGls
ZS1wcmVzZW50aW5nLXBpY2tlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBp
Y2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYwNjdiNTljZmU0OGI3OTUwZDhlMDIxODgwMDlhY2ZiMWVkMDc0NGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QgZmFpbHMg
d2hlbiBhIGNvbnRhY3QgcGlja2VyIGlzIGFscmVhZHkgYmVpbmcgZGlzcGxheWVkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjb250YWN0cy5sZW5ndGggaXMgMQorUEFT
UyBjb250YWN0Lm5hbWVbMF0gaXMgIlBlcnNvbiBBIgorUEFTUyByZXN1bHRzWzFdIGlzICJJbnZh
bGlkU3RhdGVFcnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorU2hvdyBjb250YWN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwgYi9MYXlv
dXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1w
aWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2FhNzczMzA0MGVlNGMzNWVlZjc5ZTIyM2Y0NDA1NzVm
ZGJiYzYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwKQEAgLTAsMCArMSw1NCBA
QAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFs
OkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgICAgIGNvbnN0IGFkZHJlc3NCb29rID0gWworICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICJuYW1lIjogWyJQZXJzb24gQSJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6
IFsicGVyc29uLmFAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjU1NS01
NTU1Il0KKyAgICAgICAgICAgIH0sCisgICAgICAgIF07CisKKyAgICAgICAgYXN5bmMgZnVuY3Rp
b24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIHdoZW4gYSBj
b250YWN0IHBpY2tlciBpcyBhbHJlYWR5IGJlaW5nIGRpc3BsYXllZC5cbiIpOworCisgICAgICAg
ICAgICBjb25zdCBjb250YWN0c0J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250
YWN0cyIpOworICAgICAgICAgICAgY29udGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZTEgPSBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgICBuYXZpZ2F0
b3IuY29udGFjdHMuc2VsZWN0KFsnbmFtZSddKS50aGVuKHJlc29sdmUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChlID0+IHJlamVj
dChlLm1lc3NhZ2UpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIGNv
bnN0IHByb21pc2UyID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICAgICAgICAgICAgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbJ25hbWUnXSkudGhlbihjb250
YWN0cyA9PiByZWplY3QoIkV4cGVjdGVkIGZhaWx1cmUuIikpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaChlID0+IHJlc29sdmUoZS5u
YW1lKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpOworICAgICAgICAgICAgICAgIFVJSGVs
cGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKGFkZHJlc3NCb29rKTsKKyAgICAg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpOwor
CisgICAgICAgICAgICAgICAgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFtwcm9taXNlMSwg
cHJvbWlzZTJdKTsKKyAgICAgICAgICAgICAgICBjb250YWN0cyA9IHJlc3VsdHNbMF07CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0cy5sZW5ndGgiLCAxKTsK
KyAgICAgICAgICAgICAgICBjb250YWN0ID0gY29udGFjdHNbMF07CisgICAgICAgICAgICAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjb250YWN0Lm5hbWVbMF0iLCAiUGVyc29uIEEiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdHNbMV0iLCAiSW52YWxp
ZFN0YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5h
Y3RpdmF0ZUVsZW1lbnQoY29udGFjdHNCdXR0b24pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+
CisgICAgPGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KKyAgICAgICAgPGJ1dHRvbiBpZD0iY29udGFj
dHMiPlNob3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbCBiL0xh
eW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJmZjM4N2Y1NmUwYmVjNzA4MjExYjdmNmRiM2ViZDIzZjgyMTFjYmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbApAQCAt
MCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q29udGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3QgYWRkcmVzc0Jvb2sgPSBbCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBBIl0sCisgICAgICAgICAgICAg
ICAgImVtYWlsIjogWyJwZXJzb24uYUB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICAgICAgInRl
bCI6IFsiNTU1LTU1NTUiXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAibmFtZSI6IFsiUGVyc29uIEIiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBb
InBlcnNvbi5iQHdlYmtpdC5vcmciLCAicGVyc29uLmIuYWx0QHdlYmtpdC5vcmciXSwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNv
biBDIl0sCisgICAgICAgICAgICAgICAgInRlbCI6IFsiNzc3LTc3NzciXSwKKyAgICAgICAgICAg
IH0KKyAgICAgICAgXTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5h
dmlnYXRvci5jb250YWN0cy5zZWxlY3QgcHJlc2VudHMgYSBjb250YWN0IHBpY2tlciBhbmQgcmV0
dXJucyB0aGUgc2VsZWN0ZWQgY29udGFjdHMuXG4iKTsKKworICAgICAgICAgICAgY29uc3QgY29u
dGFjdHNCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFjdHMiKTsKKyAgICAg
ICAgICAgIGNvbnRhY3RzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkg
PT4geworICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RzUmVxdWVzdCA9IG5hdmlnYXRvci5j
b250YWN0cy5zZWxlY3QoWyJuYW1lIiwgImVtYWlsIl0sIHsgbXVsdGlwbGU6IHRydWUgfSk7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb1Nob3co
KTsKKworICAgICAgICAgICAgICAgIFVJSGVscGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENv
bnRhY3RzKGFkZHJlc3NCb29rKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndh
aXRGb3JDb250YWN0UGlja2VyVG9IaWRlKCk7CisKKyAgICAgICAgICAgICAgICBjb250YWN0cyA9
IGF3YWl0IGNvbnRhY3RzUmVxdWVzdDsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9O
dW1iZXIoImNvbnRhY3RzLmxlbmd0aCIsIDMpOworCisgICAgICAgICAgICAgICAgY29udGFjdDEg
PSBjb250YWN0c1swXTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0Vx
dWFsKGNvbnRhY3QxLm5hbWUsIGFkZHJlc3NCb29rWzBdLm5hbWUpIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jv
b2tbMF0uZW1haWwpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJj
b250YWN0MS50ZWwubGVuZ3RoIiwgMCk7CisKKyAgICAgICAgICAgICAgICBjb250YWN0MiA9IGNv
bnRhY3RzWzFdOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLmVtYWlsLCBhZGRyZXNzQm9va1sx
XS5lbWFpbCkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImNvbnRh
Y3QyLnRlbC5sZW5ndGgiLCAwKTsKKworICAgICAgICAgICAgICAgIGNvbnRhY3QzID0gY29udGFj
dHNbMl07CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250
YWN0My5uYW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb051bWJlcigiY29udGFjdDMuZW1haWwubGVuZ3RoIiwgMCk7CisgICAgICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0My50ZWwubGVuZ3RoIiwgMCk7CisK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0sIHsgb25jZTog
dHJ1ZSB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNv
bnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9h
ZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3Rz
PC9idXR0b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdmYjMxZWRmOTYyOTc2NWM4MTJiYmQ0NGY3
YWUzYTc2YjdmODVlMzkuLjc3NDVlYzk2ZTYzMmUxYmU0OWM5N2JjNDIyNjNmZTI5MjhmNmM5OWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTExLDYgKzExLDkgQEAgY29tcG9zaXRpbmcvc2hhcmVkLWJhY2tpbmcvb3ZlcmZsb3ctc2Nyb2xs
IFsgUGFzcyBdCiBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Nyb2xsaW5n
IFsgUGFzcyBdCiBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ctc2Nyb2xsaW5n
L21hYyBbIFNraXAgXQogY29tcG9zaXRpbmcvbGF5ZXItY3JlYXRpb24vY2xpcHBpbmctc2NvcGUg
WyBQYXNzIF0KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5n
LXBpY2tlci5odG1sIFsgUGFzcyBdCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hp
bGUtcHJlc2VudGluZy1waWNrZXIuaHRtbCBbIFBhc3MgXQorY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0Lmh0bWwgWyBQYXNzIF0KIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgUGFzcyBd
CiBmYXN0L2hpc3RvcnkvaW9zIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9pb3MgWyBQYXNzIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDgzNDg0YTUwM2JlMDNiMGRjODhhNTI2
OTQzYzJjMzkxMmUxMjc5NWEuLjIyZWU1MmY1MWM1Yjg4MGU3NzMyMGRmNDMyYzYzMDg3YmU1YmNl
M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMTQwNiw2ICsxNDA2LDQ0IEBA
IHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgICAgIGAsIHJlc29s
dmUpOwogICAgICAgICB9KTsKICAgICB9CisKKyAgICBzdGF0aWMgd2FpdEZvckNvbnRhY3RQaWNr
ZXJUb1Nob3coKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpKQorICAgICAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAor
ICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF1
aUNvbnRyb2xsZXIuaXNTaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrID0gKCkgPT4gdWlD
b250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsK
KyAgICAgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIHN0YXRpYyB3YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpCisgICAgeworICAgICAgICBp
ZiAoIXRoaXMuaXNXZWJLaXQyKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZl
KCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ0NvbnRhY3RQ
aWNrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkSGlkZUNvbnRh
Y3RQaWNrZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7
CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgfSkoKWAsIHJlc29s
dmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgZGlzbWlzc0NvbnRhY3RQaWNr
ZXJXaXRoQ29udGFjdHMoY29udGFjdHMpCisgICAgeworICAgICAgIGNvbnN0IHNjcmlwdCA9IGAo
KCkgPT4gdWlDb250cm9sbGVyLmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKCR7SlNP
Ti5zdHJpbmdpZnkoY29udGFjdHMpfSkpKClgOworICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCByZXNvbHZlKSk7CisgICAg
fQogfQogCiBVSUhlbHBlci5FdmVudFN0cmVhbUJ1aWxkZXIgPSBjbGFzcyB7Cg==
</data>
<flag name="review"
          id="429257"
          type_id="1"
          status="+"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413168</attachid>
            <date>2020-11-04 08:54:29 -0800</date>
            <delta_ts>2020-11-04 10:58:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218189-20201104115429.patch</filename>
            <type>text/plain</type>
            <size>67346</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmODcxYjk1YmJhMWVmOWQ1ZjdiYzg5
MDg4OTQ0NjQzNTRmNzljYWYuLmQ0MTY3MDAwMDU2OTgwZjU1ZDBiNDhlNGViOGMyN2I2MTdkYzZj
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBw
b3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKworICAgICAgICBBZGRlZCBIQVZFKENPTlRBQ1RTVUkpIGFuZCBIQVZF
KENOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKSBtYWNyb3MuCisKIDIwMjAtMTAtMjkgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIE1h
a2UgV2ViQ29udGVudCBwcm9jZXNzIHRhbGsgdG8gdGhlIFdlYkF1dGhuIHByb2Nlc3MgZm9yIFdl
YkF1dGhuIHJlcXVlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiOWMzMjRiOWUxNjViOWFmNTRhNDVhMDUxN2Zl
ZTg5MThkYzMyYjYuLjA1YzZmOGNlMWY1YTI5NGViMGNjNDc2OGMzNGIzN2FmOGI5ZDNkOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBw
b3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBDb250YWN0
c01hbmFnZXIuc2VsZWN0KCkgc2hvdWxkIHByZXNlbnQgYSBjb250YWN0IHBpY2tlciBvbiBwbGF0
Zm9ybXMKKyAgICAgICAgd2hpY2ggc3VwcG9ydCBvbmUuIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUg
ZW5kLXRvLWVuZCBmdW5jdGlvbmFsaXR5IG9uCisgICAgICAgIGlPUywgcHJlc2VudGluZyBhIGNv
bnRhY3QgcGlja2VyIHVwb24gYSBjYWxsIHRvIHRoZSBBUEkgYW5kIHJldHVybmluZworICAgICAg
ICB0aGUgc2VsZWN0ZWQgY29udGFjdHMgdXBvbiBkaXNtaXNzYWwuCisKKyAgICAgICAgVGVzdHM6
IGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5o
dG1sCisgICAgICAgICAgICAgICBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUt
cHJlc2VudGluZy1waWNrZXIuaHRtbAorICAgICAgICAgICAgICAgY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0Lmh0bWwKKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9Db250YWN0
c1VJU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2RpZERpc21pc3NDb250YWN0UGlja2VyXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlz
bWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dLQ29udGFjdFBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V0tDb250YWN0UGlja2VyLm1tOiBBZGRlZC4KKworICAgICAgICBXS0NvbnRhY3RQaWNrZXIgaXMg
YSBXZWJLaXQgd3JhcHBlciBhcm91bmQgQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIuCisK
KyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBpbml0V2l0aENvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZTpdKToKKworICAgICAgICBXS0NOQ29udGFjdFBpY2tlckRlbGVnYXRlIGlzIHdy
YXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlckRlbGVnYXRlLgorICAgICAgICBUaGlzIGlzIG5l
Y2Vzc2FyeSBhcyBzaW5nbGUvbXVsdGlwbGUgc2VsZWN0aW9uIGluIGEKKyAgICAgICAgQ05Db250
YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgaXMgZGV0ZXJtaW5lZCBieSB3aGljaCBkZWxlZ2F0ZSBt
ZXRob2RzCisgICAgICAgIGFyZSBpbXBsZW1lbnRlZC4gVGhlIHR3byBzcGVjaWFsaXphdGlvbnMg
b2YgdGhpcyBjbGFzcyBpbmNsdWRlIHRoZQorICAgICAgICBtZXRob2RzIG5lY2Vzc2FyeSB0byBw
cmVzZW50IGEgc2luZ2xlLXNlbGVjdCBhbmQgbXVsdGktc2VsZWN0IHBpY2tlcgorICAgICAgICBy
ZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250
YWN0UGlja2VyRGlkQ2FuY2VsOl0pOgorICAgICAgICAoLVtXS0NOQ29udGFjdFBpY2tlclNpbmds
ZVNlbGVjdERlbGVnYXRlIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdDpdKToKKyAgICAg
ICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlIGNvbnRhY3RQaWNrZXI6
ZGlkU2VsZWN0Q29udGFjdHM6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBkZWxlZ2F0
ZV0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6XSk6CisgICAgICAg
ICgtW1dLQ29udGFjdFBpY2tlciBpbml0V2l0aFZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGFj
dFBpY2tlciBwcmVzZW50V2l0aFJlcXVlc3REYXRhOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgY29udGFjdFBpY2tlckRpZENhbmNlbDpdKToKKworICAg
ICAgICBUaGlzIGRlbGVnYXRlIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgcGlja2VyIGlzIGRp
c21pc3NlZCBieQorICAgICAgICB0YXBwaW5nIHRoZSBkb25lIGJ1dHRvbiBvciB3aGVuIHRoZSBw
aWNrZXIgaXMgZGlzbWlzc2VkIGJ5IHN3aXBpbmcKKyAgICAgICAgZG93bi4KKworICAgICAgICAo
LVtXS0NvbnRhY3RQaWNrZXIgY29udGFjdFBpY2tlcjpkaWRTZWxlY3RDb250YWN0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgY29udGFjdFBpY2tlcjpkaWRTZWxlY3RDb250YWN0czpd
KToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dp
dGhDb250YWN0SW5mbzpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0SW5m
b0Zyb21DTkNvbnRhY3Q6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBkaXNtaXNzV2l0
aENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgX2NvbnRhY3RzRnJvbUpT
Q29udGFjdHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvd0NvbnRhY3RQaWNrZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgY29udGFjdFBpY2tlckRpZFByZXNlbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgY29udGFjdFBpY2tlckRpZERpc21pc3M6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOl0pOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTI5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBMaW5rIENv
bnRhY3RzLmZyYW1ld29yayBkdXJpbmcgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMGE1
NzVhYzEyODQ3MjhiNmE0YWZmYzhiOWM3M2FiZDk1NTc0NzI3MS4uMmM4ZmUwM2M0NjU3N2E4NjA3
NmIyODk3YjFjMTdjYzFkZTRhMTk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTczNSwzICs3
MzUsMTEgQEAKICNkZWZpbmUgSEFWRV9BUFBMRV9BVFRFU1RBVElPTiAxCiAjZW5kaWYKICNlbmRp
ZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZP
Uk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DT05UQUNUU1VJIDEKKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQorI2RlZmluZSBIQVZFX0NOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSIDEKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQ29udGFjdHNV
SVNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQ29udGFjdHNVSVNQSS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA2NGE2ZjZhZGRlM2E0NjhjYzQxYzNiMTM3OWJmZWUzZmM4MWM1OWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9Db250YWN0
c1VJU1BJLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgSEFWRShDT05UQUNUU1VJKQorCisjaW1wb3J0IDxDb250YWN0c1VJL0NvbnRhY3RzVUkuaD4K
KworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPENvbnRhY3RzVUkvQ05Db250YWN0UGlja2VyVmlld0Nv
bnRyb2xsZXJfUHJpdmF0ZS5oPgorI2Vsc2UKKworQGludGVyZmFjZSBDTkNvbnRhY3RQaWNrZXJW
aWV3Q29udHJvbGxlciAoKQorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpw
cm9tcHQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2VuZGlm
IC8vIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpCisKKyNlbmRpZiAvLyBIQVZF
KENPTlRBQ1RTVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOTliZWExZmI1OWU5NmQ2YTAw
ZWYxYmJhMDhhNzI0YjFmMjg4NzAwNC4uMGM3NGNmYmFkNGRiODA1NjJjODZiZDhkMTBlNjFkMGVj
MWQ3ODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzk1LDYgKzM5NSw3IEBAIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorVUlQcm9jZXNzL0NvY29hL1dL
Q29udGFjdFBpY2tlci5tbQogVUlQcm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9XS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaAppbmRleCBiMWNkZTcwN2FkNWFjZTVjM2I3NWJiZWEyMzhlMDI3ZjhmOWIwYTQx
Li44NjJiOTQ4NWVmMzg5NGU0NDU4NzdmNTE2MzVmYTc4ZDNjY2Q4NGZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmcuaApAQCAtNTgsNiArNTgsMTAgQEAgdHlwZWRlZiBlbnVtIHsKIAogLSAo
dm9pZClfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JU
ZXN0aW5nOihCT09MKXJlc29sdmVkOwogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tl
cjsKKy0gKHZvaWQpX2RpZERpc21pc3NDb250YWN0UGlja2VyOworLSAodm9pZClfZGlzbWlzc0Nv
bnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsKKwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGlu
ZzopIEJPT0wgX3Njcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc7CiAKIC0gKHZvaWQp
X3Byb2Nlc3NXaWxsU3VzcGVuZEZvclRlc3Rpbmc6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3VGVzdGluZy5tbQppbmRleCAxYjJjNjJjNWQ0MmMyMWRhZWU5NDNkM2Y5ZDgzMGJhNzUy
OWQ1MDg5Li5mMjI0ODM5YmQwYmUyODUxZDZjMzgyYzI4MDRiNjdjYjcxYzUzZjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGlu
Zy5tbQpAQCAtMjk2LDQgKzI5NiwyMSBAQCAtIChOU051bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5
YmFja0NvdW50ZXIKICAgICByZXR1cm4gQChfcGFnZS0+c3VzcGVuZE1lZGlhUGxheWJhY2tDb3Vu
dGVyKCkpOwogfQogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgoreworICAgIC8v
IEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgorfQorCistICh2b2lkKV9kaWREaXNtaXNzQ29u
dGFjdFBpY2tlcgoreworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgorfQorCist
ICh2b2lkKV9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRh
Y3RzCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBbX2NvbnRlbnRWaWV3IF9kaXNt
aXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpjb250YWN0c107CisjZW5kaWYKK30KKwogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlj
a2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45OWUwYWQ0ZmU3OTlmMjNhNzRhYjUyYTdiMDdlNGQzNjFiOGU4MDU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlj
a2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
SEFWRShDT05UQUNUU1VJKQorCitAY2xhc3MgV0tXZWJWaWV3OworQHByb3RvY29sIFdLQ29udGFj
dFBpY2tlckRlbGVnYXRlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQ29udGFjdElu
Zm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKK30KKworQGludGVyZmFjZSBXS0NvbnRh
Y3RQaWNrZXIgOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS1dl
YlZpZXcgKil2aWV3OworCistICh2b2lkKXByZXNlbnRXaXRoUmVxdWVzdERhdGE6KGNvbnN0IFdl
YkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVy
OihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNv
bnRhY3RJbmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CisKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCB3ZWFrKSBpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CisKK0BlbmQK
KworQHByb3RvY29sIFdLQ29udGFjdFBpY2tlckRlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25h
bAorLSAodm9pZCljb250YWN0UGlja2VyRGlkUHJlc2VudDooV0tDb250YWN0UGlja2VyICopY29u
dGFjdFBpY2tlcjsKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZERpc21pc3M6KFdLQ29udGFjdFBp
Y2tlciAqKWNvbnRhY3RQaWNrZXI7CitAZW5kCisKK0BpbnRlcmZhY2UgV0tDb250YWN0UGlja2Vy
IChXS1Rlc3RpbmcpCistICh2b2lkKWRpc21pc3NXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250
YWN0czsKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoQ09OVEFDVFNVSSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjM1
ZGEyOTkyM2EwZGE2ODkwNmNkNDI1ZTAxMTZjN2ZlZTU5ZDIxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tCkBAIC0wLDAg
KzEsMzAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldL
Q29udGFjdFBpY2tlci5oIgorCisjaWYgSEFWRShDT05UQUNUU1VJKQorCisjaW1wb3J0ICJDb250
YWN0c1VJU1BJLmgiCisjaW1wb3J0IDxDb250YWN0cy9Db250YWN0cy5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Db250YWN0SW5mby5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db250YWN0c1JlcXVlc3REYXRh
Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcu
aD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2Vu
ZGlmCisKK1NPRlRfTElOS19GUkFNRVdPUksoQ29udGFjdHMpCitTT0ZUX0xJTktfQ0xBU1MoQ29u
dGFjdHMsIENOQ29udGFjdEZvcm1hdHRlcikKK1NPRlRfTElOS19DTEFTUyhDb250YWN0cywgQ05M
YWJlbGVkVmFsdWUpCitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMsIENOTXV0YWJsZUNvbnRhY3Qp
CitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMsIENOUGhvbmVOdW1iZXIpCisKKyNpZiBIQVZFKENO
Q09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorU09GVF9MSU5LX0ZSQU1FV09SSyhDb250YWN0
c1VJKQorU09GVF9MSU5LX0NMQVNTKENvbnRhY3RzVUksIENOQ29udGFjdFBpY2tlclZpZXdDb250
cm9sbGVyKQorI2VuZGlmCisKKyNwcmFnbWEgbWFyayAtIERlbGVnYXRlIFdyYXBwZXJzCisKK0Bp
bnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PENOQ29udGFjdFBp
Y2tlckRlbGVnYXRlPiB7CitAcHJvdGVjdGVkCisgICAgV2Vha09iakNQdHI8aWQ8Q05Db250YWN0
UGlja2VyRGVsZWdhdGU+PiBfY29udGFjdFBpY2tlckRlbGVnYXRlOworfQorCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdhdGU6KGlkPENOQ29udGFjdFBpY2tlckRl
bGVnYXRlPiljb250YWN0UGlja2VyRGVsZWdhdGU7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29u
dGFjdFBpY2tlckRlbGVnYXRlOihpZDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pY29udGFjdFBp
Y2tlckRlbGVnYXRlCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gY29udGFjdFBpY2tl
ckRlbGVnYXRlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNpZiBIQVZFKENOQ09OVEFDVFBJ
Q0tFUlZJRVdDT05UUk9MTEVSKQorLSAodm9pZCljb250YWN0UGlja2VyRGlkQ2FuY2VsOihDTkNv
bnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlcgoreworICAgIFtfY29udGFjdFBpY2tl
ckRlbGVnYXRlIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6cGlja2VyXTsKK30KKyNlbmRpZgorCitA
ZW5kCisKK0BpbnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJTaW5nbGVTZWxlY3REZWxlZ2F0ZSA6
IFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQ05D
b250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUKKworI2lmIEhBVkUoQ05DT05UQUNUUElD
S0VSVklFV0NPTlRST0xMRVIpCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tl
clZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3Q6KENOQ29udGFjdCAqKWNv
bnRhY3QKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2VyOnBpY2tl
ciBkaWRTZWxlY3RDb250YWN0OmNvbnRhY3RdOworfQorI2VuZGlmCisKK0BlbmQKKworQGludGVy
ZmFjZSBXS0NOQ29udGFjdFBpY2tlck11bHRpU2VsZWN0RGVsZWdhdGUgOiBXS0NOQ29udGFjdFBp
Y2tlckRlbGVnYXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBpY2tlck11
bHRpU2VsZWN0RGVsZWdhdGUKKworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xM
RVIpCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVy
ICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3RzOihOU0FycmF5PENOQ29udGFjdCo+ICopY29udGFj
dHMKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2VyOnBpY2tlciBk
aWRTZWxlY3RDb250YWN0czpjb250YWN0c107Cit9CisjZW5kaWYKKworQGVuZAorCisjcHJhZ21h
IG1hcmsgLSBXS0NvbnRhY3RQaWNrZXIKKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgKCkg
PENOQ29udGFjdFBpY2tlckRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tDb250
YWN0UGlja2VyIHsKKyAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IF93ZWJWaWV3OworICAgIFdl
YWtPYmpDUHRyPGlkPFdLQ29udGFjdFBpY2tlckRlbGVnYXRlPj4gX2RlbGVnYXRlOworCisgICAg
VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eT4gX3Byb3BlcnRpZXM7CisgICAgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5m
bz4+JiYpPiBfY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBSZXRhaW5QdHI8V0tDTkNvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZT4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKyNpZiBIQVZFKENOQ09OVEFD
VFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorICAgIFJldGFpblB0cjxDTkNvbnRhY3RQaWNrZXJWaWV3
Q29udHJvbGxlcj4gX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorfQorCist
IChpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2Rl
bGVnYXRlLmdldCgpLmdldCgpOworfQorCistICh2b2lkKXNldERlbGVnYXRlOihpZDxXS0NvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsK
K30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldworewor
ICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgX3dlYlZpZXcgPSB2aWV3OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcHJl
c2VudFdpdGhSZXF1ZXN0RGF0YTooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYp
cmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIF9wcm9wZXJ0aWVzID0gcmVxdWVzdERhdGEucHJvcGVydGllczsKKyAg
ICBfY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKKworICAg
IGlmIChyZXF1ZXN0RGF0YS5tdWx0aXBsZSkKKyAgICAgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXS0NOQ29udGFjdFBpY2tlck11bHRpU2VsZWN0RGVsZWdhdGUgYWxsb2Nd
IGluaXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOnNlbGZdKTsKKyAgICBlbHNlCisgICAgICAg
IF9jb250YWN0UGlja2VyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tDTkNvbnRhY3RQaWNrZXJTaW5n
bGVTZWxlY3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdhdGU6c2Vs
Zl0pOworCisjaWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUikKKyAgICBfY29u
dGFjdFBpY2tlclZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbYWxsb2NDTkNvbnRhY3RQaWNrZXJW
aWV3Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdF0pOworICAgIFtfY29udGFjdFBpY2tlclZpZXdD
b250cm9sbGVyIHNldERlbGVnYXRlOl9jb250YWN0UGlja2VyRGVsZWdhdGUuZ2V0KCldOworICAg
IFtfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyIHNldFByb21wdDpyZXF1ZXN0RGF0YS51cmxd
OworCisgICAgVUlWaWV3Q29udHJvbGxlciAqcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBb
VUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9u
RnJvbVZpZXc6X3dlYlZpZXcuZ2V0KCkuZ2V0KCldOworICAgIFtwcmVzZW50YXRpb25WaWV3Q29u
dHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxl
ci5nZXQoKSBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0NvbnRhY3RQaWNrZXI+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKFtbc3Ryb25nU2VsZiBkZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihjb250YWN0UGlja2VyRGlkUHJlc2VudDopXSkKKyAgICAgICAgICAgIFtbc3Ry
b25nU2VsZiBkZWxlZ2F0ZV0gY29udGFjdFBpY2tlckRpZFByZXNlbnQ6c3Ryb25nU2VsZi5nZXQo
KV07CisgICAgfV07CisjZW5kaWYKK30KKworI3ByYWdtYSBtYXJrIC0gQ29tcGxldGlvbgorCisj
aWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUikKKworLSAodm9pZCljb250YWN0
UGlja2VyRGlkQ2FuY2VsOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlcgor
eworICAgIFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4gaW5mbzsKKyAgICBbc2VsZiBfY29u
dGFjdFBpY2tlckRpZERpc21pc3NXaXRoQ29udGFjdEluZm86V1RGTW92ZShpbmZvKV07Cit9CisK
Ky0gKHZvaWQpY29udGFjdFBpY2tlcjooQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgKilw
aWNrZXIgZGlkU2VsZWN0Q29udGFjdDooQ05Db250YWN0ICopY29udGFjdAoreworICAgIFZlY3Rv
cjxXZWJDb3JlOjpDb250YWN0SW5mbz4gaW5mbyA9IHsgW3NlbGYgX2NvbnRhY3RJbmZvRnJvbUNO
Q29udGFjdDpjb250YWN0XSB9OworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dp
dGhDb250YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworLSAodm9pZCljb250YWN0UGlja2Vy
OihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0
czooTlNBcnJheTxDTkNvbnRhY3QqPiAqKWNvbnRhY3RzCit7CisgICAgVmVjdG9yPFdlYkNvcmU6
OkNvbnRhY3RJbmZvPiBpbmZvOworICAgIGluZm8ucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb250
YWN0cy5jb3VudCk7CisgICAgZm9yIChDTkNvbnRhY3QgKmNvbnRhY3QgaW4gY29udGFjdHMpCisg
ICAgICAgIGluZm8udW5jaGVja2VkQXBwZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21DTkNvbnRh
Y3Q6Y29udGFjdF0pOworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250
YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworI2VuZGlmCisKKy0gKHZvaWQpX2NvbnRhY3RQ
aWNrZXJEaWREaXNtaXNzV2l0aENvbnRhY3RJbmZvOihWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+JiYpaW5mbworeworICAgIF9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluZm8pKTsKKwor
ICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGFjdFBp
Y2tlckRpZERpc21pc3M6KV0pCisgICAgICAgIFtfZGVsZWdhdGUgY29udGFjdFBpY2tlckRpZERp
c21pc3M6c2VsZl07Cit9CisKKy0gKFdlYkNvcmU6OkNvbnRhY3RJbmZvKV9jb250YWN0SW5mb0Zy
b21DTkNvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBXZWJDb3JlOjpDb250YWN0
SW5mbyBjb250YWN0SW5mbzsKKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3Jl
OjpDb250YWN0UHJvcGVydHk6Ok5hbWUpKSB7CisgICAgICAgIE5TU3RyaW5nICpjb250YWN0TmFt
ZSA9IFtnZXRDTkNvbnRhY3RGb3JtYXR0ZXJDbGFzcygpIHN0cmluZ0Zyb21Db250YWN0OmNvbnRh
Y3Qgc3R5bGU6Q05Db250YWN0Rm9ybWF0dGVyU3R5bGVGdWxsTmFtZV07CisgICAgICAgIGNvbnRh
Y3RJbmZvLm5hbWUgPSB7IGNvbnRhY3ROYW1lIH07CisgICAgfQorCisgICAgaWYgKF9wcm9wZXJ0
aWVzLmNvbnRhaW5zKFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6RW1haWwpKSB7CisgICAgICAg
IGZvciAoQ05MYWJlbGVkVmFsdWU8TlNTdHJpbmcgKj4gKmVtYWlsQWRkcmVzcyBpbiBjb250YWN0
LmVtYWlsQWRkcmVzc2VzKQorICAgICAgICAgICAgY29udGFjdEluZm8uZW1haWwuYXBwZW5kKGVt
YWlsQWRkcmVzcy52YWx1ZSk7CisgICAgfQorCisgICAgaWYgKF9wcm9wZXJ0aWVzLmNvbnRhaW5z
KFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6VGVsKSkgeworICAgICAgICBmb3IgKENOTGFiZWxl
ZFZhbHVlPENOUGhvbmVOdW1iZXIgKj4gKnBob25lTnVtYmVyIGluIGNvbnRhY3QucGhvbmVOdW1i
ZXJzKQorICAgICAgICAgICAgY29udGFjdEluZm8udGVsLmFwcGVuZChwaG9uZU51bWJlci52YWx1
ZS5zdHJpbmdWYWx1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRhY3RJbmZvOworfQorCisj
cHJhZ21hIG1hcmsgLSBUZXN0aW5nCisKKy0gKHZvaWQpZGlzbWlzc1dpdGhDb250YWN0czooTlNB
cnJheSAqKWNvbnRhY3RzCit7CisjaWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExF
UikKKyAgICBbX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciBkaXNtaXNzVmlld0NvbnRyb2xs
ZXJBbmltYXRlZDpOTyBjb21wbGV0aW9uOltzZWxmLCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdL
Q29udGFjdFBpY2tlcj4oc2VsZiksIGpzQ29udGFjdHMgPSBSZXRhaW5QdHI8TlNBcnJheT4oY29u
dGFjdHMpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAg
ICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgW3N0
cm9uZ1NlbGYgY29udGFjdFBpY2tlcjpfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLmdldCgp
IGRpZFNlbGVjdENvbnRhY3RzOltzdHJvbmdTZWxmIF9jb250YWN0c0Zyb21KU0NvbnRhY3RzOmpz
Q29udGFjdHMuZ2V0KCldXTsKKyAgICB9XTsKKyNlbmRpZgorfQorCistIChOU0FycmF5PENOQ29u
dGFjdCo+ICopX2NvbnRhY3RzRnJvbUpTQ29udGFjdHM6KE5TQXJyYXkgKilqc0NvbnRhY3RzCit7
CisgICAgaWYgKCFqc0NvbnRhY3RzKQorICAgICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXldOwor
CisgICAgTlNNdXRhYmxlQXJyYXk8Q05Db250YWN0Kj4gKmNvbnRhY3RzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5V2l0aENhcGFjaXR5OmpzQ29udGFjdHMuY291bnRdOworCisgICAgTlNQcmVkaWNh
dGUgKnN0cmluZ1ZhbHVlUHJlZGljYXRlID0gW05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3Jt
YXQ6QCJzZWxmIGlzS2luZE9mQ2xhc3M6ICVAIiwgW05TU3RyaW5nIGNsYXNzXV07CisKKyAgICBm
b3IgKGlkIGpzQ29udGFjdCBpbiBqc0NvbnRhY3RzKSB7CisgICAgICAgIGlmICghW2pzQ29udGFj
dCBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIENOTXV0YWJsZUNvbnRhY3QgKmNvbnRhY3QgPSBbW2FsbG9jQ05NdXRh
YmxlQ29udGFjdEluc3RhbmNlKCkgaW5pdF0gYXV0b3JlbGVhc2VdOworCisgICAgICAgIGlkIG5h
bWVzID0gWyhOU0RpY3Rpb25hcnkgKilqc0NvbnRhY3Qgb2JqZWN0Rm9yS2V5OkAibmFtZSJdOwor
ICAgICAgICBpZiAoW25hbWVzIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkgeworICAg
ICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFtZSBpbiBbbmFtZXMgZmlsdGVyZWRBcnJheVVzaW5n
UHJlZGljYXRlOnN0cmluZ1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAgICAgICAgICAgIGNvbnRh
Y3QuZ2l2ZW5OYW1lID0gbmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGlkIGVtYWlscyA9IFsoTlNEaWN0aW9uYXJ5ICopanND
b250YWN0IG9iamVjdEZvcktleTpAImVtYWlsIl07CisgICAgICAgIGlmIChbZW1haWxzIGlzS2lu
ZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkgeworICAgICAgICAgICAgTlNNdXRhYmxlQXJyYXk8
Q05MYWJlbGVkVmFsdWU8TlNTdHJpbmcqPio+ICplbWFpbEFkZHJlc3NlcyA9IFtOU011dGFibGVB
cnJheSBhcnJheV07CisgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICplbWFpbCBpbiBbZW1haWxz
IGZpbHRlcmVkQXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRpY2F0ZV0pIHsKKyAg
ICAgICAgICAgICAgICBDTkxhYmVsZWRWYWx1ZTxOU1N0cmluZyo+ICpsYWJlbGVkVmFsdWUgPSBb
Z2V0Q05MYWJlbGVkVmFsdWVDbGFzcygpIGxhYmVsZWRWYWx1ZVdpdGhMYWJlbDpuaWwgdmFsdWU6
ZW1haWxdOworICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3NlcyBhZGRPYmplY3Q6bGFiZWxl
ZFZhbHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRhY3QuZW1haWxBZGRyZXNz
ZXMgPSBlbWFpbEFkZHJlc3NlczsKKyAgICAgICAgfQorCisgICAgICAgIGlkIHBob25lTnVtYmVy
cyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0IG9iamVjdEZvcktleTpAInRlbCJdOworICAg
ICAgICBpZiAoW3Bob25lTnVtYmVycyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsK
KyAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPENOUGhvbmVOdW1iZXIq
Pio+ICpudW1iZXJzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICAgICAgICAgIGZvciAo
TlNTdHJpbmcgKnBob25lTnVtYmVyIGluIFtwaG9uZU51bWJlcnMgZmlsdGVyZWRBcnJheVVzaW5n
UHJlZGljYXRlOnN0cmluZ1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAgICAgICAgICAgIENOUGhv
bmVOdW1iZXIgKmNuUGhvbmVOdW1iZXIgPSBbZ2V0Q05QaG9uZU51bWJlckNsYXNzKCkgcGhvbmVO
dW1iZXJXaXRoU3RyaW5nVmFsdWU6cGhvbmVOdW1iZXJdOworICAgICAgICAgICAgICAgIENOTGFi
ZWxlZFZhbHVlPENOUGhvbmVOdW1iZXIqPiAqbGFiZWxlZFZhbHVlID0gW2dldENOTGFiZWxlZFZh
bHVlQ2xhc3MoKSBsYWJlbGVkVmFsdWVXaXRoTGFiZWw6bmlsIHZhbHVlOmNuUGhvbmVOdW1iZXJd
OworICAgICAgICAgICAgICAgIFtudW1iZXJzIGFkZE9iamVjdDpsYWJlbGVkVmFsdWVdOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgY29udGFjdC5waG9uZU51bWJlcnMgPSBudW1iZXJzOwor
ICAgICAgICB9CisKKyAgICAgICAgW2NvbnRhY3RzIGFkZE9iamVjdDpjb250YWN0XTsKKyAgICB9
CisKKyAgICByZXR1cm4gY29udGFjdHM7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoQ09O
VEFDVFNVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggNzdhZmNhZmM0MDQwZmI5ZWM5ODhjN2YxYWVkNjJmNmVkMTg1NDJlZS4uYmUw
MzAxZmI3Y2IxOGJhYzdjZGUzOTBlZDNjZjFhODU1NWI5OGQ3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTE3Nyw2ICsxNzcsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBoYW5kbGVSdW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSosIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFt
ZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJM
JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEm
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNv
bnRhY3RJbmZvPj4mJik+JiYpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlzYWJsZURvdWJs
ZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElEKSBvdmVy
cmlkZTsKICAgICB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90
ZW50aWFsVGFwKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBy
ZW5kZXJSZWN0LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2Fs
ZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZlbCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KaW5kZXggYWZjYzQ1ZTkzNzZkNzNhNjRkMTJhNmNhNzkwNWZhNzI1NTZjNWFlZC4uYjZh
Yjk2MmI3MzM0MzkyMzJiZjdkZDkyYzk2YTZiMjEyYzFhODZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNjM5LDYgKzYzOSwx
MSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFX
aXRoUGFyc2VkVVJMJiBzaGFyZURhdGEsIFdURgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0
c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIFttX2NvbnRlbnRWaWV3IF9zaG93Q29udGFjdFBpY2tlcjpyZXF1ZXN0RGF0
YSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07Cit9CisKIHZv
aWQgUGFnZUNsaWVudEltcGw6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6SGlnaGxpZ2h0JiBoaWdobGlnaHQpCiB7CiAgICAgW21fY29udGVu
dFZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6aGlnaGxpZ2h0XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCA5MzA3OWVjNWRmODI3NWJiYmZkYTFhNDcwN2RhZDVhNDYxYjlkZDU0Li45ZmQzYTRiNjQzMjhk
OTgyZWQxNzgwM2Y4Yzc5ZTMwYzA5YzlhZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00Myw2ICs0Myw3
IEBACiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oIgogI2ltcG9ydCAiV0tBaXJQbGF5Um91dGVQaWNrZXIuaCIKKyNpbXBvcnQgIldLQ29udGFj
dFBpY2tlci5oIgogI2ltcG9ydCAiV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIgogI2lt
cG9ydCAiV0tGaWxlVXBsb2FkUGFuZWwuaCIKICNpbXBvcnQgIldLRm9ybVBlcmlwaGVyYWwuaCIK
QEAgLTc5LDYgKzgwLDggQEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgU2VsZWN0aW9uUmVjdDsKK3N0cnVjdCBDb250YWN0SW5mbzsKK3N0cnVj
dCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiBz
dHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSA6IHVpbnQ4X3Q7CkBAIC0yNzQsNiArMjc3LDkgQEAgc3RydWN0IFdLQXV0b0NvcnJl
Y3Rpb25EYXRhIHsKICAgICBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgX2ZyYW1lSW5mb0ZvckZpbGVV
cGxvYWRQYW5lbDsKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYp
CiAgICAgUmV0YWluUHRyPFdLU2hhcmVTaGVldD4gX3NoYXJlU2hlZXQ7CisjZW5kaWYKKyNpZiBI
QVZFKENPTlRBQ1RTVUkpCisgICAgUmV0YWluUHRyPFdLQ29udGFjdFBpY2tlcj4gX2NvbnRhY3RQ
aWNrZXI7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVjb2duaXplcj4gX3ByZXZp
ZXdHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVjb2duaXplcj4g
X3ByZXZpZXdTZWNvbmRhcnlHZXN0dXJlUmVjb2duaXplcjsKQEAgLTQyMyw2ICs0MjksOSBAQCBz
dHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVu
dFZpZXcgKFdLSW50ZXJhY3Rpb24pIDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJVGV4
dEF1dG9zY3JvbGxpbmcsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudCwgVUlUZXh0SW5wdXRQcml2
YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVS
ZWNvZ25pemVyRGVsZWdhdGUsIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbCwgV0tBY3Rpb25T
aGVldEFzc2lzdGFudERlbGVnYXRlLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0tleWJv
YXJkU2Nyb2xsVmlld0FuaW1hdG9yRGVsZWdhdGUsIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZQorI2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICAsIFdLQ29udGFjdFBpY2tlckRl
bGVnYXRlCisjZW5kaWYKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExF
VFYpCiAgICAgLCBXS1NoYXJlU2hlZXREZWxlZ2F0ZQogI2VuZGlmCkBAIC01MjAsNiArNTI5LDcg
QEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVO
VFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBp
Y2tlcjooQk9PTCloYXNWaWRlbyBmcm9tUmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxl
bWVudFJlY3Qgcm91dGVTaGFyaW5nUG9saWN5OihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kp
cG9saWN5IHJvdXRpbmdDb250ZXh0VUlEOihOU1N0cmluZyAqKWNvbnRleHRVSUQ7CiAtICh2b2lk
KV9zaG93UnVuT3BlblBhbmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMg
ZnJhbWVJbmZvOihjb25zdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmKWZyYW1lSW5mbyByZXN1bHRM
aXN0ZW5lcjooV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5l
cjsKIC0gKHZvaWQpX3Nob3dTaGFyZVNoZWV0Oihjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRo
UGFyc2VkVVJMJilzaGFyZURhdGEgaW5SZWN0OihXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4pcmVjdCBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfc2hvd0NvbnRhY3RQaWNrZXI6
KGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRp
b25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdl
YkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWRp
c21pc3NGaWxlUGlja2VyOwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQg
KilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9y
PFdlYktpdDo6T3B0aW9uSXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC02
MjcsNiArNjM3LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNM
QVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKE5TRGljdGlvbmFyeSAq
KV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0
ZW07CiAtICh2b2lkKV9kb0FmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hf
YmxvY2tfdClhY3Rpb247CiAtICh2b2lkKV9kb0FmdGVyUmVjZWl2aW5nRWRpdERyYWdTbmFwc2hv
dEZvclRlc3Rpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOworLSAodm9pZClfZGlzbWlzc0Nv
bnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlRm9yVGVzdGlu
ZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnNlbGVjdEZvcm1Q
b3BvdmVyVGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkZDg5YzBmMGFmYTgyYjEzMGQ1MjQyZWQx
Yzk5ZDZlMmJiZjU1ODg5Li5mZmZhYWE2NWRmZTg0YzZlNGIwNzdmYzdiY2Q2ZjAwMDNmYTc0ZWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTczLDcgKzczLDcgQEAKICNpbXBvcnQgIldLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJT1MuaCIKICNpbXBvcnQg
IldLV2ViVmlld1ByaXZhdGUuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
SU9TLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAi
V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0LmgiCiAjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRh
dGEuaCIKICNpbXBvcnQgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgpAQCAt
Njg0OCw2ICs2ODQ4LDM2IEBAIC0gKHZvaWQpc2hhcmVTaGVldDooV0tTaGFyZVNoZWV0ICopc2hh
cmVTaGVldCB3aWxsU2hvd0FjdGl2aXR5SXRlbXM6KE5TQXJyYXkgKilhCiAKICNlbmRpZgogCist
ICh2b2lkKV9zaG93Q29udGFjdFBpY2tlcjooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0
RGF0YSYpcmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21w
bGV0aW9uSGFuZGxlcgoreworI2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICBfY29udGFjdFBpY2tl
ciA9IGFkb3B0TlMoW1tXS0NvbnRhY3RQaWNrZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLndl
YlZpZXddKTsKKyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW19j
b250YWN0UGlja2VyIHByZXNlbnRXaXRoUmVxdWVzdERhdGE6cmVxdWVzdERhdGEgY29tcGxldGlv
bkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworI2Vsc2UKKyAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworI2VuZGlmCit9CisKKyNpZiBIQVZFKENPTlRBQ1RT
VUkpCistICh2b2lkKWNvbnRhY3RQaWNrZXJEaWRQcmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKilj
b250YWN0UGlja2VyCit7CisgICAgQVNTRVJUKF9jb250YWN0UGlja2VyID09IGNvbnRhY3RQaWNr
ZXIpOworCisgICAgW193ZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl07Cit9CisKKy0g
KHZvaWQpY29udGFjdFBpY2tlckRpZERpc21pc3M6KFdLQ29udGFjdFBpY2tlciAqKWNvbnRhY3RQ
aWNrZXIKK3sKKyAgICBBU1NFUlQoX2NvbnRhY3RQaWNrZXIgPT0gY29udGFjdFBpY2tlcik7CisK
KyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBfY29udGFjdFBpY2tl
ciA9IG5pbDsKKworICAgIFtfd2ViVmlldyBfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXJdOworfQor
I2VuZGlmCisKIC0gKE5TU3RyaW5nICopaW5wdXRMYWJlbFRleHQKIHsKICAgICBpZiAoIV9mb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uLmxhYmVsLmlzRW1wdHkoKSkKQEAgLTkwOTQsNiArOTEyNCwx
MyBAQCAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0
cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClf
ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworewor
I2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICBbX2NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhDb250
YWN0czpjb250YWN0c107CisjZW5kaWYKK30KKwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BSRVZJ
RVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA0NDA2ZTliNmU3ZTZmNGEwMzYyZTZjNTZiYjg0OWJmZWJlYzhjMGM3Li4wYTNiYTAzYzA0
MDEyNTYwOTUyMTU2ODZhZTZmNzhmNjIwNzdjMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NTEsNiArMTg1MSw3IEBACiAJCUU0
OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIx
NzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0
MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBD
MUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5
ZXJUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsg
fTsKKwkJRTUwNjIwOTIyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MDYyMDkxMjU0MjEwMjAw
MEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERB
REEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAw
QkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29s
b3JQaWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVU
aW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9
OwpAQCAtMTg1OCw2ICsxODU5LDcgQEAKIAkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdl
YkRhdGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJN
YWMuaCAqLzsgfTsKIAkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5oICovOyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi87IH07CisJCUU1OTZERDZBMjUxRTcxRDQwMEMy
NzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNr
ZXIuaCAqLzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5oICovOyB9OwogCQlFNUNCMDdEQzIwRTE2NzhGMDAyMkMxODMgLyog
V0tGb3JtQ29sb3JDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9s
LmggKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVy
bGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIy
RjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDIwLDYgKzU0MjIsNyBA
QAogCQlFNDlENDBEODFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxv
YlN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgz
QjAzMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXll
clRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVy
VHJlZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUwNjIwOTEyNTQyMTAy
MDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFjdHNVSVNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURB
MjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBX
S0Zvcm1Db2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBw
YXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01NDM0LDYgKzU0MzcsOCBAQAogCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQ
aWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250YWN0UGlja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVB
NyAvKiBXS0NvbnRhY3RQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS0NvbnRhY3RQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1QkVGNjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duSU9TLmg7IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVGNjgxMjEzMEM0
N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25JT1MubW07IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQTIwRTE2NzhGMDAy
MkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNvbG9y
Q29udHJvbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ2Myw2ICs2NDY4LDggQEAKIAkJCQk1MUQxMjQzMjFF
NkRFNTIxMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tICovLAogCQkJCTJE
RkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovLAogCQkJCTJERkM3REJB
MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKKwkJCQlFNTk2REQ2ODI1MUU3
MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi8sCisJCQkJRTU5NkRENjkyNTFFNzFE
NDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5tbSAqLywKIAkJCQkyRUNGNjZDQzIxRDZCNzdF
MDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5oICovLAogCQkJCTJFQ0Y2NkNEMjFENkI3N0UwMDlF
NUMzRiAvKiBXS0VkaXRDb21tYW5kLm1tICovLAogCQkJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2
OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKQEAgLTcyNjgsNiArNzI3NSw3
IEBACiAJCQkJRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmggKi8sCiAJCQkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5o
ICovLAogCQkJCTFBNTcwNTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9ja1NQSS5oICovLAorCQkJ
CUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi8sCiAJCQkJMzdD
MjFDQUQxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggKi8sCiAJCQkJMkRB
QURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywKIAkJCQk1
NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovLApA
QCAtMTA5NjYsNiArMTA5NzQsNyBAQAogCQkJCTM3QkVDNEUxMTk0OTE0ODYwMDhCNDI4NiAvKiBD
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0RTlG
NjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRB
QjEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUw
NjIwOTIyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcg
LyogQ29udGVudFdvcmxkU2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA2RDdDNDE4QkRC
RTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMTcwMSw2ICsxMTcxMCw3IEBACiAJCQkJQkNBMjg0RDcxNDkyRjJDNzAwMUY5MDQyIC8qIFdL
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc1QzgxNDk1NERBNjAwQkM0Nzc1
IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0
NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NTk2REQ2QTI1MUU3MUQ0MDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0QyODY1NDFFNzIzNUIxMDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDRDI4NjU1MUU3MjM1QjgwMDk0RkRDOCAvKiBXS0NvbnRlbnRS
dWxlTGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1MTFFNzIzNTk5MDA5
NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODQwZDA0OTA1YThi
YzA1OTc2MmZjMGMwYjFmNmMwM2JjNzUyM2ZhYy4uMDkyNjY0M2M2YzVkNDgwMmY3MTc2N2FjM2Yz
NjMyMzA2YTAwODZhMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEwLTI2ICBBZGl0eWEgS2VlcnRoaSAgPGFr
ZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNrZXIgQVBJXSBBZGQgc3Vw
cG9ydCBmb3IgcGlja2VyIFVJIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjI3
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBVSVNjcmlwdENvbnRyb2xsZXIgaG9va3MgdG8gb2JzZXJ2ZSB0aGUgcHJlc2VudGF0aW9uIGFu
ZAorICAgICAgICBkaXNtaXNzYWwgb2YgYSBjb250YWN0IHBpY2tlci4gRnVydGhlcm1vcmUsIHRo
ZQorICAgICAgICBkaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyBtZXRob2Qgd2FzIGFk
ZGVkIHRvIGFsbG93IHRlc3RzIHRvCisgICAgICAgIGRpc21pc3MgdGhlIHByZXNlbnRlZCBjb250
YWN0IHBpY2tlciB3aXRoIGEgc2V0IG9mIHNlbGVjdGVkIGNvbnRhY3RzLgorCisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRleHQuaDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
Ojppc1Nob3dpbmdDb250YWN0UGlja2VyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpkaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyk6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVk
LmNwcDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29udGFj
dFBpY2tlckNhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaWRT
aG93Q29udGFjdFBpY2tlckNhbGxiYWNrIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjpzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKToKKyAgICAgICAgKFdU
Ujo6VUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrIGNvbnN0
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
aDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgcmVzZXRJbnRlcmFjdGlvbkNhbGxi
YWNrc10pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWRQcmVzZW50Q29udGFj
dFBpY2tlcl0pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWREaXNtaXNzQ29u
dGFjdFBpY2tlcl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRD
b250cm9sbGVyQ29jb2EuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2Ny
aXB0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJD
b2NvYTo6c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKToK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRhY3RQ
aWNrZXIgY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6ZGlz
bWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgorCiAyMDIwLTEwLTI5ICBBZGl0eWEgS2Vl
cnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFJlbW92ZSBzb2Z0
IGxpbmtpbmcgb2YgTmV0d29ya0V4dGVuc2lvbi5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCmluZGV4IDNkNTgzMmQxZDk2MmMwYzkzMmYzMjdlM2Vi
YzAxODlkYTEwYzQ4NWMuLjNlMDVlYjEzMzAyYzMyNjIxNjk4NTNmODE0ZWQ4MzMzODNiYjZhYTUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRp
bmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbApAQCAtMzQ5LDYg
KzM0OSwxMSBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICBvYmplY3QgYXR0
YWNobWVudEluZm8oRE9NU3RyaW5nIGF0dGFjaG1lbnRJZGVudGlmaWVyKTsKICAgICB1bmRlZmlu
ZWQgaW5zZXJ0QXR0YWNobWVudEZvckZpbGVQYXRoKERPTVN0cmluZyBmaWxlUGF0aCwgRE9NU3Ry
aW5nIGNvbnRlbnRUeXBlLCBvYmplY3QgY2FsbGJhY2spOwogCisgICAgYXR0cmlidXRlIG9iamVj
dCBkaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrOworICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlk
SGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjazsKKyAgICB1bmRlZmluZWQgZGlzbWlzc0NvbnRhY3RQ
aWNrZXJXaXRoQ29udGFjdHMob2JqZWN0IGNvbnRhY3RzKTsKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBpc1Nob3dpbmdDb250YWN0UGlja2VyOworCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBsYXN0VW5kb0xhYmVsOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgZmlyc3RSZWRvTGFiZWw7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmggYi9Ub29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaAppbmRleCBmYmEzMmM5Mzdi
Mjk4MzFlMDI2Zjk5MTM4NjBiMmUwNzIxZTBmMjU0Li4yYjVmNGJmODE2ZDAxNDRiMzE5YjYyNmQx
MDcwODQ4M2M5ZGYxZWI4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaApAQCAtNjUsNiArNjUsOCBAQCB0eXBl
ZGVmIGVudW0gIHsKICAgICBDYWxsYmFja1R5cGVEaWREaXNtaXNzQ29udGV4dE1lbnUsCiAgICAg
Q2FsbGJhY2tUeXBlV2lsbENyZWF0ZU5ld1BhZ2UsCiAgICAgQ2FsbGJhY2tUeXBlV2luZG93VGFw
UmVjb2duaXplZCwKKyAgICBDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlciwKKyAgICBD
YWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBpY2tlciwKICAgICBDYWxsYmFja1R5cGVOb25QZXJz
aXN0ZW50ID0gZmlyc3ROb25QZXJzaXN0ZW50Q2FsbGJhY2tJRAogfSBDYWxsYmFja1R5cGU7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYmUxMzZiZDA2MGIzYjMyMjEzYzUxNGI1YjVkNTZh
ODFmYjRlM2ZjOC4uN2U0ODA3YjE1NGZiYTQ2MzZhOTY1ZTJhZWEwYmI3MDliYjViNmRhOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTI3Nyw2ICsyNzcsMTcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgSlNPYmplY3RSZWYgYXR0YWNobWVudEluZm8oSlNTdHJpbmdSZWYpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0QXR0YWNo
bWVudEZvckZpbGVQYXRoKEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZikgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CiAKKyAgICAvLyBDb250YWN0IFBpY2tlcgorCisgICAgdmlydHVh
bCB2b2lkIHNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZik7CisgICAg
SlNWYWx1ZVJlZiBkaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGlzU2hvd2luZ0NvbnRhY3RQaWNrZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldERpZEhpZGVDb250YWN0
UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWRIaWRlQ29udGFj
dFBpY2tlckNhbGxiYWNrKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvbnRh
Y3RQaWNrZXJXaXRoQ29udGFjdHMoSlNWYWx1ZVJlZikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisK
ICAgICAvLyBDYWxsYmFja3MKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlkU3RhcnRGb3Jt
Q29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFy
ZWQuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyU2hhcmVkLmNwcAppbmRleCBiZmY0ZjM0MzNkYmQyOTU3NWQ2MjViNzM5NGU2ZDlk
MzgxY2FlYzI2Li45ZTQ5NDBjZTNhOGIxMDIyN2ZlZGUxZmUyZTJmODFmMTlhOGRhNjQ2IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXJTaGFyZWQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKQEAgLTIxMyw2ICsyMTMsMjYgQEAg
SlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2so
KSBjb25zdAogICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlw
ZURpZERpc21pc3NQb3BvdmVyKTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERp
ZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBt
X2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dD
b250YWN0UGlja2VyKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFNo
b3dDb250YWN0UGlja2VyQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQt
PmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZFNob3dDb250YWN0UGlja2VyKTsKK30KKwor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2so
SlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2so
Y2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZEhpZGVDb250YWN0UGlja2VyKTsKK30KKworSlNWYWx1
ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soKSBj
b25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlw
ZURpZEhpZGVDb250YWN0UGlja2VyKTsKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnVp
U2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQogewogICAgIG1fY29udGV4dC0+cmVx
dWVzdFVJU2NyaXB0Q29tcGxldGlvbihyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaAppbmRleCBmNTU0ZTEyM2VhM2U1NDFh
MTA3YzdkZDY3NmZlNGM1ZmU3MWU2ZDY4Li5mNTcxZTRkZGQ4ZmM4OWIzMjMxYWQ2MDg3ODg0ZGMy
OTExMGVjNWFlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RS
dW5uZXJXS1dlYlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RS
dW5uZXJXS1dlYlZpZXcuaApAQCAtNzMsNiArNzMsOSBAQAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nTWVudSkgQk9PTCBzaG93aW5nTWVudTsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkU2hvd01lbnVDYWxsYmFjaykodm9pZCk7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEhpZGVNZW51Q2FsbGJhY2sp
KHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5n
Q29udGFjdFBpY2tlcikgQk9PTCBzaG93aW5nQ29udGFjdFBpY2tlcjsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSB2b2lkICheZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaykodm9pZCk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZEhpZGVDb250YWN0UGlja2Vy
Q2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbiwgc2V0dGVyPV9z
ZXRTdGFibGVTdGF0ZU92ZXJyaWRlOikgTlNOdW1iZXIgKl9zdGFibGVTdGF0ZU92ZXJyaWRlOwog
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVk
Rm9yVGVzdGluZzopIEJPT0wgX3Njcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc7CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2Vi
Vmlldy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmll
dy5tbQppbmRleCA5MTVmNDc2YzYxNWFlNjEwOTBkOTBjYTc5NzZiZjhmMmM5OWI1NjZiLi41NzA2
YTdiMTE1YjUxNDI0ZjJiNjVjODRjYTgxYzgwODQyMDM3OGM4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCkBAIC03OCw2ICs3
OCw3IEBAIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nTWVudSwgc2V0dGVy
PXNldElzU2hvd2luZ01lbnU6KSBCT09MIHNob3dpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0
dGVyPWlzRGlzbWlzc2luZ01lbnUsIHNldHRlcj1zZXRJc0Rpc21pc3NpbmdNZW51OikgQk9PTCBk
aXNtaXNzaW5nTWVudTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nUG9w
b3Zlciwgc2V0dGVyPXNldElzU2hvd2luZ1BvcG92ZXI6KSBCT09MIHNob3dpbmdQb3BvdmVyOwog
QHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdDb250ZXh0TWVudSwgc2V0dGVy
PXNldElzU2hvd2luZ0NvbnRleHRNZW51OikgQk9PTCBzaG93aW5nQ29udGV4dE1lbnU7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ0NvbnRhY3RQaWNrZXIsIHNldHRlcj1z
ZXRJc1Nob3dpbmdDb250YWN0UGlja2VyOikgQk9PTCBzaG93aW5nQ29udGFjdFBpY2tlcjsKIAog
QGVuZAogCkBAIC0xNzEsNiArMTcyLDggQEAgLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJh
Y2tzCiB7CiAgICAgc2VsZi5kaWRTaG93TWVudUNhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlk
SGlkZU1lbnVDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLmRpZFNob3dDb250YWN0UGlja2VyQ2Fs
bGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrID0gbmls
OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc2VsZi5kaWRTdGFydEZvcm1Db250cm9s
SW50ZXJhY3Rpb25DYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEVuZEZvcm1Db250cm9sSW50
ZXJhY3Rpb25DYWxsYmFjayA9IG5pbDsKQEAgLTU0NSw0ICs1NDgsMjQgQEAgLSAoQk9PTClnZXN0
dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNo
b3VsZFJlY29nbmkKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKy0gKHZvaWQp
X2RpZFByZXNlbnRDb250YWN0UGlja2VyCit7CisgICAgaWYgKHNlbGYuc2hvd2luZ0NvbnRhY3RQ
aWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbGYuc2hvd2luZ0NvbnRhY3RQaWNrZXIg
PSBZRVM7CisgICAgaWYgKHNlbGYuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaykKKyAgICAg
ICAgc2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKCk7Cit9CisKKy0gKHZvaWQpX2Rp
ZERpc21pc3NDb250YWN0UGlja2VyCit7CisgICAgaWYgKCFzZWxmLnNob3dpbmdDb250YWN0UGlj
a2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxmLnNob3dpbmdDb250YWN0UGlja2VyID0g
Tk87CisgICAgaWYgKHNlbGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaykKKyAgICAgICAg
c2VsZi5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKCk7Cit9CisKIEBlbmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2Eu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2Eu
aAppbmRleCBjYzk4MTM5NDI0ZjI4ODA2NDQzOTg5ODM0NWMzZTdkNGVhNTUzMzc4Li5lOGNkYzNj
ZjBjMTE1NDFhODdkYWM4NTAxZTcwOGY2ODhlYWNiMTg0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCkBAIC02NCw2
ICs2NCwxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBpbnNlcnRBdHRhY2htZW50Rm9yRmlsZVBh
dGgoSlNTdHJpbmdSZWYgZmlsZVBhdGgsIEpTU3RyaW5nUmVmIGNvbnRlbnRUeXBlLCBKU1ZhbHVl
UmVmIGNhbGxiYWNrKSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0RGlkU2hvd0NvbnRhY3RQaWNr
ZXJDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldERpZEhpZGVDb250
YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Nob3dp
bmdDb250YWN0UGlja2VyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNtaXNzQ29udGFj
dFBpY2tlcldpdGhDb250YWN0cyhKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKwogICAgIHZvaWQgY29t
cGxldGVUYXNrQXN5bmNocm9ub3VzbHlBZnRlckFjdGl2aXR5U3RhdGVVcGRhdGUodW5zaWduZWQg
Y2FsbGJhY2tJRCk7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA1ODQ3OTc2ZjIxODU3ZjUzZjQ4
NWVjYjFmYjFlYjkxMTcyMWE1NmRhLi5iYjU0YTJhMTY0YmE1OGRjZGM0OGQxNjc2ZDQ1YTlhYzhj
YjQ3NjRhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EubW0KQEAgLTIyNSw0ICsyMjUsMzYgQEAgdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXJDb2NvYTo6aW5zZXJ0QXR0YWNobWVudEZvckZpbGVQYXRoKEpTU3RyaW5nUmVm
IGZpbGVQYXRoLAogICAgIH1dOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpz
ZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cisg
ICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKGNh
bGxiYWNrKTsKKyAgICB3ZWJWaWV3KCkuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayA9IF57
CisgICAgICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBt
X2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7
CisgICAgfTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkSGlkZUNv
bnRhY3RQaWNrZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIFVJU2NyaXB0
Q29udHJvbGxlcjo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayhjYWxsYmFjayk7Cisg
ICAgd2ViVmlldygpLmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2sgPSBeeworICAgICAgICBp
ZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5m
aXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkSGlkZUNvbnRhY3RQaWNrZXIpOworICAgIH07Cit9
CisKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OmlzU2hvd2luZ0NvbnRhY3RQaWNrZXIo
KSBjb25zdAoreworICAgIHJldHVybiB3ZWJWaWV3KCkuc2hvd2luZ0NvbnRhY3RQaWNrZXI7Cit9
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OmRpc21pc3NDb250YWN0UGlja2VyV2l0
aENvbnRhY3RzKEpTVmFsdWVSZWYgY29udGFjdHMpCit7CisgICAgSlNDb250ZXh0ICpjb250ZXh0
ID0gW0pTQ29udGV4dCBjb250ZXh0V2l0aEpTR2xvYmFsQ29udGV4dFJlZjptX2NvbnRleHQtPmpz
Q29udGV4dCgpXTsKKyAgICBKU1ZhbHVlICp2YWx1ZSA9IFtKU1ZhbHVlIHZhbHVlV2l0aEpTVmFs
dWVSZWY6Y29udGFjdHMgaW5Db250ZXh0OmNvbnRleHRdOworICAgIFt3ZWJWaWV3KCkgX2Rpc21p
c3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOlt2YWx1ZSB0b0FycmF5XV07Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmNmNhYzE1ZTNiMDVlNzM1NTJlMzhjNmUzMWI1YjVhMDc1
M2U5YzkuLjliNzI3YWE4MDc3NTY0NWM2YTdlNjYyMTlhYmZjODk5MWVjN2ZmNTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAyMC0xMC0yNiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRkIHN1cHBvcnQgZm9yIHBp
Y2tlciBVSSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODE4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIyNzc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIHZl
cmlmeSB0aGUgcHJlc2VudGF0aW9uIGFuZCBkaXNtaXNzYWwgb2YgYSBjb250YWN0CisgICAgICAg
IHBpY2tlciBvbiBpT1MuIFRoZSBuZXcgdGVzdHMgYXJlIG9ubHkgcnVuIG9uIGlPUyBXSzIsIHNp
bmNlIHRoYXQgaXMgdGhlCisgICAgICAgIG9ubHkgcGxhdGZvcm0gd2hpY2ggY3VycmVudGx5IHN1
cHBvcnRzIHRoZSBwcmVzZW50YXRpb24gb2YgYSBjb250YWN0CisgICAgICAgIHBpY2tlci4gTm90
ZSB0aGF0IHRoZXNlIHRlc3RzIHdpbGwgYmUgZW5hYmxlZCBvbiBtYWNPUyBXSzIgb25jZSBzdXBw
b3J0CisgICAgICAgIGlzIGFkZGVkIGluIGEgZm9ydGhjb21pbmcgcGF0Y2guCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNr
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93LlVJ
SGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KToKKyAgICAgICAgKHdpbmRvdy5VSUhl
bHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSk6CisgICAgICAgICh3aW5kb3cuVUlIZWxw
ZXIuZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgorCiAyMDIwLTExLTAzICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChC
aWcgU3VyKTogZmFzdC9mb3Jtcy9oaWRwaS10ZXh0ZmllbGQtYmFja2dyb3VuZC1ibGVlZGluZy5o
dG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFjODM5OGIyZDhkMTQ3MmNiZDc5
Y2VlNDdjZDQ1OWQyMDE2MTBkMjAuLmRlNjkwZTJhNmM3Y2I4MzU1MTI1N2I4NTJmZWY1ZjYzOTVl
ODBlMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTAsNiArOTAsMTEgQEAgZmFzdC9mb3Jtcy9l
bnRlcmtleWhpbnQtYXR0cmlidXRlLXZhbHVlcy5odG1sIFsgU2tpcCBdCiAjIEhpZ2hsaWdodGlu
ZyBtYXJrZWQgdGV4dCByYW5nZXMgZnJvbSBsYXlvdXQgdGVzdHMgaXMgb25seSBzdXBwb3J0ZWQg
aW4gV2ViS2l0Mi4KIGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24taGlnaGxpZ2h0cy5odG1sIFsg
U2tpcCBdCiAKKyMgQ29jb2EgV0syIG9ubHkuIE90aGVyIHBsYXRmb3JtcyBkbyBub3QgcHJlc2Vu
dCBhIGNvbnRhY3QgcGlja2VyIFVJLgorY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFm
dGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwgWyBTa2lwIF0KK2NvbnRhY3QtcGlja2VyL2NvbnRh
Y3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sIFsgU2tpcCBdCitjb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbCBbIFNraXAgXQorCiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzcy1ERU5JRUQteHNsLWV4dGVybmFsLWVudGl0eS1uby1sb2dnaW5nLnhtbCBbIFNraXAg
XQogCiAjIHdpbmRvdy5zaG93TW9kYWxEaWFsb2cgaXMgb25seSB0ZXN0ZWQgaW4gRHVtcFJlbmRl
clRyZWUgb24gTWFjLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBp
Y2tlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcxODRhZjY2MjU2N2YwYjUwZjFiNDVjZTM2
NGU4OWMzZWE4OGMxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzMSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRh
Y3RzLnNlbGVjdCBzdWNjZWVkcyBhZnRlciBhbm90aGVyIGNhbGwgdG8gbmF2aWdhdG9yLmNvbnRh
Y3RzLnNlbGVjdCB3YXMgY29tcGxldGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUGVyZm9ybWluZyBmaXJzdCBjb250YWN0cyByZXF1ZXN0LgorUEFTUyBhcmVBcnJheXNFcXVh
bChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSBpcyB0cnVlCitQQVNTIGFyZUFy
cmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFpbCkgaXMgdHJ1ZQor
UEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS50ZWwsIGFkZHJlc3NCb29rWzBdLnRlbCkgaXMg
dHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0Mi5uYW1lLCBhZGRyZXNzQm9va1sxXS5u
YW1lKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLmVtYWlsLCBhZGRyZXNz
Qm9va1sxXS5lbWFpbCkgaXMgdHJ1ZQorUEFTUyBjb250YWN0Mi50ZWwubGVuZ3RoIGlzIDAKK1BB
U1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMubmFtZSwgYWRkcmVzc0Jvb2tbMl0ubmFtZSkgaXMg
dHJ1ZQorUEFTUyBjb250YWN0My5lbWFpbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVh
bChjb250YWN0My50ZWwsIGFkZHJlc3NCb29rWzJdLnRlbCkgaXMgdHJ1ZQorUEFTUyBmaW5pc2hl
ZENvbnRhY3RTZWxlY3Rpb24gYmVjYW1lIHRydWUKKworUGVyZm9ybWluZyBzZWNvbmQgY29udGFj
dHMgcmVxdWVzdC4KK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jv
b2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwg
YWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFj
dDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJh
eXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRydWUKK1BB
U1MgY29udGFjdDIudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3Qz
Lm5hbWUsIGFkZHJlc3NCb29rWzJdLm5hbWUpIGlzIHRydWUKK1BBU1MgY29udGFjdDMuZW1haWwu
bGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDMudGVsLCBhZGRyZXNzQm9v
a1syXS50ZWwpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorU2hvdyBjb250YWN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFj
dC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwgYi9M
YXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2lu
Zy1waWNrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzE1MTRjODA2YzNlYzUwMzljNzA2ZTgzZGIzZWMx
YjZhNDNjM2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwKQEAgLTAsMCArMSw3
NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVu
dGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFk
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworICAgICAgICBmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24gPSBmYWxzZTsKKworICAgICAg
ICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAi
bmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBlcnNvbi5h
QHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgICAgICAidGVsIjogWyI1NTUtNTU1NSJdCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJz
b24gQiJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmJAd2Via2l0Lm9yZyIs
ICJwZXJzb24uYi5hbHRAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVyc29uIEMiXSwKKyAgICAgICAgICAgICAg
ICAidGVsIjogWyI3NzctNzc3NyJdLAorICAgICAgICAgICAgfQorICAgICAgICBdOworCisgICAg
ICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNj
cmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dCBzdWNjZWVkcyBhZnRlciBhbm90aGVyIGNhbGwgdG8gbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dCB3YXMgY29tcGxldGVkLlxuIik7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9u
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhY3RzIik7CisgICAgICAgICAgICBjb250
YWN0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAoZmluaXNoZWRDb250YWN0U2VsZWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgICAgIGRlYnVnKCJcblBlcmZvcm1pbmcgc2Vjb25kIGNvbnRhY3RzIHJlcXVlc3QuIikKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZygiUGVyZm9y
bWluZyBmaXJzdCBjb250YWN0cyByZXF1ZXN0LiIpCisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoWyJu
YW1lIiwgImVtYWlsIiwgInRlbCJdKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KCk7CisgICAgICAgICAgICAgICAgVUlIZWxwZXIu
ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoYWRkcmVzc0Jvb2spOworICAgICAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9IaWRlKCk7CisKKyAg
ICAgICAgICAgICAgICBbY29udGFjdDEsIGNvbnRhY3QyLCBjb250YWN0M10gPSBhd2FpdCByZXF1
ZXN0OworCisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250
YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVt
YWlsKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29u
dGFjdDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwpIik7CisKKyAgICAgICAgICAgICAgICBzaG91
bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5h
bWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250
YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0Mi50ZWwubGVuZ3RoIiwgMCk7CisKKyAgICAgICAg
ICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUsIGFkZHJl
c3NCb29rWzJdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVy
KCJjb250YWN0My5lbWFpbC5sZW5ndGgiLCAwKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRy
dWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLnRlbCwgYWRkcmVzc0Jvb2tbMl0udGVsKSIpOwor
CisgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbikgeworICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24gPSB0cnVlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhd2FpdCBVSUhl
bHBlci5hY3RpdmF0ZUVsZW1lbnQoY29udGFjdHNCdXR0b24pOworICAgICAgICAgICAgYXdhaXQg
bmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVFcXVhbCgiZmluaXNoZWRDb250YWN0
U2VsZWN0aW9uIiwgInRydWUiLCByZXNvbHZlKSk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBl
ci5hY3RpdmF0ZUVsZW1lbnQoY29udGFjdHNCdXR0b24pOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+CisgICAgPGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KKyAgICAgICAgPGJ1dHRvbiBpZD0iY29u
dGFjdHMiPlNob3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44OGFjN2M1MTRhYTY3ZDUzMmRhNjBiMjNmNDJmMzdiZmM2MGI3
M2VjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3QgdmVyaWZp
ZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IHByZXNlbnRzIGEgY29udGFjdCBwaWNr
ZXIgYW5kIHJldHVybnMgdGhlIHNlbGVjdGVkIGNvbnRhY3RzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBjb250YWN0cy5sZW5ndGggaXMgMworUEFTUyBhcmVBcnJheXNF
cXVhbChjb250YWN0MS5uYW1lLCBhZGRyZXNzQm9va1swXS5uYW1lKSBpcyB0cnVlCitQQVNTIGFy
ZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFpbCkgaXMgdHJ1
ZQorUEFTUyBjb250YWN0MS50ZWwubGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29u
dGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNF
cXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIGlzIHRydWUKK1BBU1Mg
Y29udGFjdDIudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5h
bWUsIGFkZHJlc3NCb29rWzJdLm5hbWUpIGlzIHRydWUKK1BBU1MgY29udGFjdDMuZW1haWwubGVu
Z3RoIGlzIDAKK1BBU1MgY29udGFjdDMudGVsLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVz
ZW50aW5nLXBpY2tlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9j
b250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYwNjdiNTljZmU0OGI3OTUwZDhlMDIxODgwMDlhY2ZiMWVkMDc0NGYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hp
bGUtcHJlc2VudGluZy1waWNrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMg
dGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QgZmFpbHMgd2hlbiBh
IGNvbnRhY3QgcGlja2VyIGlzIGFscmVhZHkgYmVpbmcgZGlzcGxheWVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjb250YWN0cy5sZW5ndGggaXMgMQorUEFTUyBjb250
YWN0Lm5hbWVbMF0gaXMgIlBlcnNvbiBBIgorUEFTUyByZXN1bHRzWzFdIGlzICJJbnZhbGlkU3Rh
dGVFcnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorU2hvdyBjb250YWN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIv
Y29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zODgwYmJmYzQ2MThmNTIzN2EyNTRjMjMyOWZhODMwZWMwMmE5ODlk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMt
c2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRh
Y3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgICAgIGNvbnN0IGFkZHJlc3NCb29rID0gWworICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogWyJQZXJzb24gQSJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVy
c29uLmFAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjU1NS01NTU1Il0K
KyAgICAgICAgICAgIH0sCisgICAgICAgIF07CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVu
VGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIHdoZW4gYSBjb250YWN0
IHBpY2tlciBpcyBhbHJlYWR5IGJlaW5nIGRpc3BsYXllZC5cbiIpOworCisgICAgICAgICAgICBj
b25zdCBjb250YWN0c0J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIp
OworICAgICAgICAgICAgY29udGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBh
c3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IHByb21pc2UxID0gbmF2aWdhdG9yLmNv
bnRhY3RzLnNlbGVjdChbJ25hbWUnXSkuY2F0Y2goKGVycm9yKSA9PiB7IHRocm93IGVycm9yLm1l
c3NhZ2U7IH0pOworCisgICAgICAgICAgICAgICAgbGV0IHByb21pc2UyID0gbmV3IFByb21pc2Uo
KHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNvbnRh
Y3RzLnNlbGVjdChbJ25hbWUnXSkudGhlbihjb250YWN0cyA9PiByZWplY3QoIkV4cGVjdGVkIGZh
aWx1cmUuIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHJlc29sdmUoZXJyb3IubmFtZSkpOworICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRh
Y3RQaWNrZXJUb1Nob3coKTsKKyAgICAgICAgICAgICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFj
dFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9vayk7CisgICAgICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUoKTsKKworICAgICAgICAgICAgICAg
IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChbcHJvbWlzZTEsIHByb21pc2UyXSk7CisgICAg
ICAgICAgICAgICAgY29udGFjdHMgPSByZXN1bHRzWzBdOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb051bWJlcigiY29udGFjdHMubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICAgICAg
Y29udGFjdCA9IGNvbnRhY3RzWzBdOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiY29udGFjdC5uYW1lWzBdIiwgIlBlcnNvbiBBIik7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHRzWzFdIiwgIkludmFsaWRTdGF0ZUVycm9yIik7CisK
KyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIH0sIHsgb25jZTog
dHJ1ZSB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNv
bnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9h
ZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3Rz
PC9idXR0b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmYzODdmNTZlMGJlYzcw
ODIxMWI3ZjZkYjNlYmQyM2Y4MjExY2JkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwKQEAgLTAsMCArMSw2NiBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRh
Y3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgICAgIGNvbnN0IGFkZHJlc3NCb29rID0gWworICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogWyJQZXJzb24gQSJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVy
c29uLmFAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgICAgICJ0ZWwiOiBbIjU1NS01NTU1Il0K
KyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiBb
IlBlcnNvbiBCIl0sCisgICAgICAgICAgICAgICAgImVtYWlsIjogWyJwZXJzb24uYkB3ZWJraXQu
b3JnIiwgInBlcnNvbi5iLmFsdEB3ZWJraXQub3JnIl0sCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQZXJzb24gQyJdLAorICAgICAgICAg
ICAgICAgICJ0ZWwiOiBbIjc3Ny03Nzc3Il0sCisgICAgICAgICAgICB9CisgICAgICAgIF07CisK
KyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMu
c2VsZWN0IHByZXNlbnRzIGEgY29udGFjdCBwaWNrZXIgYW5kIHJldHVybnMgdGhlIHNlbGVjdGVk
IGNvbnRhY3RzLlxuIik7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhY3RzIik7CisgICAgICAgICAgICBjb250YWN0c0J1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAg
ICAgICBjb25zdCBjb250YWN0c1JlcXVlc3QgPSBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsi
bmFtZSIsICJlbWFpbCJdLCB7IG11bHRpcGxlOiB0cnVlIH0pOworICAgICAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KCk7CisKKyAgICAgICAgICAg
ICAgICBVSUhlbHBlci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhhZGRyZXNzQm9v
ayk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tl
clRvSGlkZSgpOworCisgICAgICAgICAgICAgICAgY29udGFjdHMgPSBhd2FpdCBjb250YWN0c1Jl
cXVlc3Q7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0cy5s
ZW5ndGgiLCAzKTsKKworICAgICAgICAgICAgICAgIGNvbnRhY3QxID0gY29udGFjdHNbMF07Cisg
ICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0MS5uYW1l
LCBhZGRyZXNzQm9va1swXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
YXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFkZHJlc3NCb29rWzBdLmVtYWlsKSIpOwor
ICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDEudGVsLmxlbmd0
aCIsIDApOworCisgICAgICAgICAgICAgICAgY29udGFjdDIgPSBjb250YWN0c1sxXTsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QyLm5hbWUsIGFk
ZHJlc3NCb29rWzFdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVB
cnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jvb2tbMV0uZW1haWwpIik7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJjb250YWN0Mi50ZWwubGVuZ3RoIiwg
MCk7CisKKyAgICAgICAgICAgICAgICBjb250YWN0MyA9IGNvbnRhY3RzWzJdOworICAgICAgICAg
ICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDMubmFtZSwgYWRkcmVz
c0Jvb2tbMl0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIo
ImNvbnRhY3QzLmVtYWlsLmxlbmd0aCIsIDApOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb051bWJlcigiY29udGFjdDMudGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisKKyAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChjb250YWN0c0J1dHRvbik7Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBvbmxvYWQ9cnVuVGVzdCgpPgorICAg
ICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBjb250YWN0czwvYnV0dG9uPgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA3ZmIzMWVkZjk2Mjk3NjVjODEyYmJkNDRmN2FlM2E3NmI3Zjg1ZTM5Li43
NzQ1ZWM5NmU2MzJlMWJlNDljOTdiYzQyMjYzZmUyOTI4ZjZjOTllIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMSw2ICsxMSw5IEBAIGNv
bXBvc2l0aW5nL3NoYXJlZC1iYWNraW5nL292ZXJmbG93LXNjcm9sbCBbIFBhc3MgXQogY29tcG9z
aXRpbmcvc2Nyb2xsaW5nL2FzeW5jLW92ZXJmbG93LXNjcm9sbGluZyBbIFBhc3MgXQogY29tcG9z
aXRpbmcvc2Nyb2xsaW5nL2FzeW5jLW92ZXJmbG93LXNjcm9sbGluZy9tYWMgWyBTa2lwIF0KIGNv
bXBvc2l0aW5nL2xheWVyLWNyZWF0aW9uL2NsaXBwaW5nLXNjb3BlIFsgUGFzcyBdCitjb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIuaHRtbCBbIFBh
c3MgXQorY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlj
a2VyLmh0bWwgWyBQYXNzIF0KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIFsg
UGFzcyBdCiBmYXN0L2RldmljZS1vcmllbnRhdGlvbiBbIFBhc3MgXQogZmFzdC9oaXN0b3J5L2lv
cyBbIFBhc3MgXQogZmFzdC9zY3JvbGxpbmcvaW9zIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcwppbmRleCA4MzQ4NGE1MDNiZTAzYjBkYzg4YTUyNjk0M2MyYzM5MTJlMTI3OTVh
Li4yMmVlNTJmNTFjNWI4ODBlNzczMjBkZjQzMmM2MzA4N2JlNWJjZTNmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291
cmNlcy91aS1oZWxwZXIuanMKQEAgLTE0MDYsNiArMTQwNiw0NCBAQCB3aW5kb3cuVUlIZWxwZXIg
PSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgICAgICBgLCByZXNvbHZlKTsKICAgICAgICAgfSk7
CiAgICAgfQorCisgICAgc3RhdGljIHdhaXRGb3JDb250YWN0UGlja2VyVG9TaG93KCkKKyAgICB7
CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICAo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdWlDb250cm9sbGVyLmlzU2hv
d2luZ0NvbnRhY3RQaWNrZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
ZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayA9ICgpID0+IHVpQ29udHJvbGxlci51aVNjcmlw
dENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAg
fSkoKWAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdGF0aWMgd2FpdEZv
ckNvbnRhY3RQaWNrZXJUb0hpZGUoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0
MigpKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQoYAorICAgICAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHVpQ29udHJvbGxlci5pc1Nob3dpbmdDb250YWN0UGlja2VyKQorICAgICAgICAg
ICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2sg
PSAoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRD
b21wbGV0ZSgpOworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgc3RhdGljIGRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKGNv
bnRhY3RzKQorICAgIHsKKyAgICAgICBjb25zdCBzY3JpcHQgPSBgKCgpID0+IHVpQ29udHJvbGxl
ci5kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cygke0pTT04uc3RyaW5naWZ5KGNvbnRh
Y3RzKX0pKSgpYDsKKyAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KHNjcmlwdCwgcmVzb2x2ZSkpOworICAgIH0KIH0KIAogVUlIZWxwZXIu
RXZlbnRTdHJlYW1CdWlsZGVyID0gY2xhc3Mgewo=
</data>
<flag name="commit-queue"
          id="429735"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413181</attachid>
            <date>2020-11-04 10:57:59 -0800</date>
            <delta_ts>2020-11-04 14:36:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218189-20201104135758.patch</filename>
            <type>text/plain</type>
            <size>67344</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmODcxYjk1YmJhMWVmOWQ1ZjdiYzg5
MDg4OTQ0NjQzNTRmNzljYWYuLmQ0MTY3MDAwMDU2OTgwZjU1ZDBiNDhlNGViOGMyN2I2MTdkYzZj
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBw
b3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybUhhdmUuaDoKKworICAgICAgICBBZGRlZCBIQVZFKENPTlRBQ1RTVUkpIGFuZCBIQVZF
KENOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKSBtYWNyb3MuCisKIDIwMjAtMTAtMjkgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIE1h
a2UgV2ViQ29udGVudCBwcm9jZXNzIHRhbGsgdG8gdGhlIFdlYkF1dGhuIHByb2Nlc3MgZm9yIFdl
YkF1dGhuIHJlcXVlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiOWMzMjRiOWUxNjViOWFmNTRhNDVhMDUxN2Zl
ZTg5MThkYzMyYjYuLjA1YzZmOGNlMWY1YTI5NGViMGNjNDc2OGMzNGIzN2FmOGI5ZDNkOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBw
b3J0IGZvciBwaWNrZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBDb250YWN0
c01hbmFnZXIuc2VsZWN0KCkgc2hvdWxkIHByZXNlbnQgYSBjb250YWN0IHBpY2tlciBvbiBwbGF0
Zm9ybXMKKyAgICAgICAgd2hpY2ggc3VwcG9ydCBvbmUuIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUg
ZW5kLXRvLWVuZCBmdW5jdGlvbmFsaXR5IG9uCisgICAgICAgIGlPUywgcHJlc2VudGluZyBhIGNv
bnRhY3QgcGlja2VyIHVwb24gYSBjYWxsIHRvIHRoZSBBUEkgYW5kIHJldHVybmluZworICAgICAg
ICB0aGUgc2VsZWN0ZWQgY29udGFjdHMgdXBvbiBkaXNtaXNzYWwuCisKKyAgICAgICAgVGVzdHM6
IGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5o
dG1sCisgICAgICAgICAgICAgICBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUt
cHJlc2VudGluZy1waWNrZXIuaHRtbAorICAgICAgICAgICAgICAgY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0Lmh0bWwKKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9Db250YWN0
c1VJU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX2RpZERpc21pc3NDb250YWN0UGlja2VyXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlz
bWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dLQ29udGFjdFBpY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V0tDb250YWN0UGlja2VyLm1tOiBBZGRlZC4KKworICAgICAgICBXS0NvbnRhY3RQaWNrZXIgaXMg
YSBXZWJLaXQgd3JhcHBlciBhcm91bmQgQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIuCisK
KyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBpbml0V2l0aENvbnRhY3RQaWNr
ZXJEZWxlZ2F0ZTpdKToKKworICAgICAgICBXS0NOQ29udGFjdFBpY2tlckRlbGVnYXRlIGlzIHdy
YXBwZXIgYXJvdW5kIENOQ29udGFjdFBpY2tlckRlbGVnYXRlLgorICAgICAgICBUaGlzIGlzIG5l
Y2Vzc2FyeSBhcyBzaW5nbGUvbXVsdGlwbGUgc2VsZWN0aW9uIGluIGEKKyAgICAgICAgQ05Db250
YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgaXMgZGV0ZXJtaW5lZCBieSB3aGljaCBkZWxlZ2F0ZSBt
ZXRob2RzCisgICAgICAgIGFyZSBpbXBsZW1lbnRlZC4gVGhlIHR3byBzcGVjaWFsaXphdGlvbnMg
b2YgdGhpcyBjbGFzcyBpbmNsdWRlIHRoZQorICAgICAgICBtZXRob2RzIG5lY2Vzc2FyeSB0byBw
cmVzZW50IGEgc2luZ2xlLXNlbGVjdCBhbmQgbXVsdGktc2VsZWN0IHBpY2tlcgorICAgICAgICBy
ZXNwZWN0aXZlbHkuCisKKyAgICAgICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250
YWN0UGlja2VyRGlkQ2FuY2VsOl0pOgorICAgICAgICAoLVtXS0NOQ29udGFjdFBpY2tlclNpbmds
ZVNlbGVjdERlbGVnYXRlIGNvbnRhY3RQaWNrZXI6ZGlkU2VsZWN0Q29udGFjdDpdKToKKyAgICAg
ICAgKC1bV0tDTkNvbnRhY3RQaWNrZXJNdWx0aVNlbGVjdERlbGVnYXRlIGNvbnRhY3RQaWNrZXI6
ZGlkU2VsZWN0Q29udGFjdHM6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBkZWxlZ2F0
ZV0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6XSk6CisgICAgICAg
ICgtW1dLQ29udGFjdFBpY2tlciBpbml0V2l0aFZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGFj
dFBpY2tlciBwcmVzZW50V2l0aFJlcXVlc3REYXRhOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgY29udGFjdFBpY2tlckRpZENhbmNlbDpdKToKKworICAg
ICAgICBUaGlzIGRlbGVnYXRlIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgcGlja2VyIGlzIGRp
c21pc3NlZCBieQorICAgICAgICB0YXBwaW5nIHRoZSBkb25lIGJ1dHRvbiBvciB3aGVuIHRoZSBw
aWNrZXIgaXMgZGlzbWlzc2VkIGJ5IHN3aXBpbmcKKyAgICAgICAgZG93bi4KKworICAgICAgICAo
LVtXS0NvbnRhY3RQaWNrZXIgY29udGFjdFBpY2tlcjpkaWRTZWxlY3RDb250YWN0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgY29udGFjdFBpY2tlcjpkaWRTZWxlY3RDb250YWN0czpd
KToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dp
dGhDb250YWN0SW5mbzpdKToKKyAgICAgICAgKC1bV0tDb250YWN0UGlja2VyIF9jb250YWN0SW5m
b0Zyb21DTkNvbnRhY3Q6XSk6CisgICAgICAgICgtW1dLQ29udGFjdFBpY2tlciBkaXNtaXNzV2l0
aENvbnRhY3RzOl0pOgorICAgICAgICAoLVtXS0NvbnRhY3RQaWNrZXIgX2NvbnRhY3RzRnJvbUpT
Q29udGFjdHM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvd0NvbnRhY3RQaWNrZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgY29udGFjdFBpY2tlckRpZFByZXNlbnQ6XSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgY29udGFjdFBpY2tlckRpZERpc21pc3M6XSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2Rpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzOl0pOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTI5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBMaW5rIENv
bnRhY3RzLmZyYW1ld29yayBkdXJpbmcgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMGE1
NzVhYzEyODQ3MjhiNmE0YWZmYzhiOWM3M2FiZDk1NTc0NzI3MS4uMmM4ZmUwM2M0NjU3N2E4NjA3
NmIyODk3YjFjMTdjYzFkZTRhMTk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTczNSwzICs3
MzUsMTEgQEAKICNkZWZpbmUgSEFWRV9BUFBMRV9BVFRFU1RBVElPTiAxCiAjZW5kaWYKICNlbmRp
ZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhUExBVEZP
Uk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DT05UQUNUU1VJIDEKKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBM
RVRWKQorI2RlZmluZSBIQVZFX0NOQ09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSIDEKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQ29udGFjdHNV
SVNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQ29udGFjdHNVSVNQSS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA2NGE2ZjZhZGRlM2E0NjhjYzQxYzNiMTM3OWJmZWUzZmM4MWM1OWIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9Db250YWN0
c1VJU1BJLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgSEFWRShDT05UQUNUU1VJKQorCisjaW1wb3J0IDxDb250YWN0c1VJL0NvbnRhY3RzVUkuaD4K
KworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPENvbnRhY3RzVUkvQ05Db250YWN0UGlja2VyVmlld0Nv
bnRyb2xsZXJfUHJpdmF0ZS5oPgorI2Vsc2UKKworQGludGVyZmFjZSBDTkNvbnRhY3RQaWNrZXJW
aWV3Q29udHJvbGxlciAoKQorQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpw
cm9tcHQ7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2VuZGlm
IC8vIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xMRVIpCisKKyNlbmRpZiAvLyBIQVZF
KENPTlRBQ1RTVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggOTliZWExZmI1OWU5NmQ2YTAw
ZWYxYmJhMDhhNzI0YjFmMjg4NzAwNC4uMGM3NGNmYmFkNGRiODA1NjJjODZiZDhkMTBlNjFkMGVj
MWQ3ODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMzk1LDYgKzM5NSw3IEBAIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Byb3h5Q29jb2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJVUkxTY2hlbWVIYW5kbGVyQ29j
b2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorVUlQcm9jZXNzL0NvY29hL1dL
Q29udGFjdFBpY2tlci5tbQogVUlQcm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9XS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW0KIFVJUHJvY2Vzcy9Db2Nv
YS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaAppbmRleCBiMWNkZTcwN2FkNWFjZTVjM2I3NWJiZWEyMzhlMDI3ZjhmOWIwYTQx
Li44NjJiOTQ4NWVmMzg5NGU0NDU4NzdmNTE2MzVmYTc4ZDNjY2Q4NGZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmcuaApAQCAtNTgsNiArNTgsMTAgQEAgdHlwZWRlZiBlbnVtIHsKIAogLSAo
dm9pZClfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JU
ZXN0aW5nOihCT09MKXJlc29sdmVkOwogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tl
cjsKKy0gKHZvaWQpX2RpZERpc21pc3NDb250YWN0UGlja2VyOworLSAodm9pZClfZGlzbWlzc0Nv
bnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsKKwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsaW5nVXBkYXRlc0Rpc2FibGVkRm9yVGVzdGlu
ZzopIEJPT0wgX3Njcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc7CiAKIC0gKHZvaWQp
X3Byb2Nlc3NXaWxsU3VzcGVuZEZvclRlc3Rpbmc6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3VGVzdGluZy5tbQppbmRleCAxYjJjNjJjNWQ0MmMyMWRhZWU5NDNkM2Y5ZDgzMGJhNzUy
OWQ1MDg5Li5mMjI0ODM5YmQwYmUyODUxZDZjMzgyYzI4MDRiNjdjYjcxYzUzZjY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGlu
Zy5tbQpAQCAtMjk2LDQgKzI5NiwyMSBAQCAtIChOU051bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5
YmFja0NvdW50ZXIKICAgICByZXR1cm4gQChfcGFnZS0+c3VzcGVuZE1lZGlhUGxheWJhY2tDb3Vu
dGVyKCkpOwogfQogCistICh2b2lkKV9kaWRQcmVzZW50Q29udGFjdFBpY2tlcgoreworICAgIC8v
IEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgorfQorCistICh2b2lkKV9kaWREaXNtaXNzQ29u
dGFjdFBpY2tlcgoreworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRlLgorfQorCist
ICh2b2lkKV9kaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czooTlNBcnJheSAqKWNvbnRh
Y3RzCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBbX2NvbnRlbnRWaWV3IF9kaXNt
aXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0czpjb250YWN0c107CisjZW5kaWYKK30KKwogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlj
a2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0NvbnRhY3RQaWNrZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45OWUwYWQ0ZmU3OTlmMjNhNzRhYjUyYTdiMDdlNGQzNjFiOGU4MDU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlj
a2VyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
SEFWRShDT05UQUNUU1VJKQorCitAY2xhc3MgV0tXZWJWaWV3OworQHByb3RvY29sIFdLQ29udGFj
dFBpY2tlckRlbGVnYXRlOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQ29udGFjdElu
Zm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKK30KKworQGludGVyZmFjZSBXS0NvbnRh
Y3RQaWNrZXIgOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS1dl
YlZpZXcgKil2aWV3OworCistICh2b2lkKXByZXNlbnRXaXRoUmVxdWVzdERhdGE6KGNvbnN0IFdl
YkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRpb25IYW5kbGVy
OihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNv
bnRhY3RJbmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CisKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCB3ZWFrKSBpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CisKK0BlbmQK
KworQHByb3RvY29sIFdLQ29udGFjdFBpY2tlckRlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25h
bAorLSAodm9pZCljb250YWN0UGlja2VyRGlkUHJlc2VudDooV0tDb250YWN0UGlja2VyICopY29u
dGFjdFBpY2tlcjsKKy0gKHZvaWQpY29udGFjdFBpY2tlckRpZERpc21pc3M6KFdLQ29udGFjdFBp
Y2tlciAqKWNvbnRhY3RQaWNrZXI7CitAZW5kCisKK0BpbnRlcmZhY2UgV0tDb250YWN0UGlja2Vy
IChXS1Rlc3RpbmcpCistICh2b2lkKWRpc21pc3NXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250
YWN0czsKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoQ09OVEFDVFNVSSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLQ29udGFjdFBpY2tlci5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjM1
ZGEyOTkyM2EwZGE2ODkwNmNkNDI1ZTAxMTZjN2ZlZTU5ZDIxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tDb250YWN0UGlja2VyLm1tCkBAIC0wLDAg
KzEsMzAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldL
Q29udGFjdFBpY2tlci5oIgorCisjaWYgSEFWRShDT05UQUNUU1VJKQorCisjaW1wb3J0ICJDb250
YWN0c1VJU1BJLmgiCisjaW1wb3J0IDxDb250YWN0cy9Db250YWN0cy5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Db250YWN0SW5mby5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db250YWN0c1JlcXVlc3REYXRh
Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcu
aD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2Vu
ZGlmCisKK1NPRlRfTElOS19GUkFNRVdPUksoQ29udGFjdHMpCitTT0ZUX0xJTktfQ0xBU1MoQ29u
dGFjdHMsIENOQ29udGFjdEZvcm1hdHRlcikKK1NPRlRfTElOS19DTEFTUyhDb250YWN0cywgQ05M
YWJlbGVkVmFsdWUpCitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMsIENOTXV0YWJsZUNvbnRhY3Qp
CitTT0ZUX0xJTktfQ0xBU1MoQ29udGFjdHMsIENOUGhvbmVOdW1iZXIpCisKKyNpZiBIQVZFKENO
Q09OVEFDVFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorU09GVF9MSU5LX0ZSQU1FV09SSyhDb250YWN0
c1VJKQorU09GVF9MSU5LX0NMQVNTKENvbnRhY3RzVUksIENOQ29udGFjdFBpY2tlclZpZXdDb250
cm9sbGVyKQorI2VuZGlmCisKKyNwcmFnbWEgbWFyayAtIERlbGVnYXRlIFdyYXBwZXJzCisKK0Bp
bnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PENOQ29udGFjdFBp
Y2tlckRlbGVnYXRlPiB7CitAcHJvdGVjdGVkCisgICAgV2Vha09iakNQdHI8aWQ8Q05Db250YWN0
UGlja2VyRGVsZWdhdGU+PiBfY29udGFjdFBpY2tlckRlbGVnYXRlOworfQorCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdhdGU6KGlkPENOQ29udGFjdFBpY2tlckRl
bGVnYXRlPiljb250YWN0UGlja2VyRGVsZWdhdGU7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29u
dGFjdFBpY2tlckRlbGVnYXRlOihpZDxDTkNvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pY29udGFjdFBp
Y2tlckRlbGVnYXRlCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAg
IHJldHVybiBuaWw7CisKKyAgICBfY29udGFjdFBpY2tlckRlbGVnYXRlID0gY29udGFjdFBpY2tl
ckRlbGVnYXRlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNpZiBIQVZFKENOQ09OVEFDVFBJ
Q0tFUlZJRVdDT05UUk9MTEVSKQorLSAodm9pZCljb250YWN0UGlja2VyRGlkQ2FuY2VsOihDTkNv
bnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlcgoreworICAgIFtfY29udGFjdFBpY2tl
ckRlbGVnYXRlIGNvbnRhY3RQaWNrZXJEaWRDYW5jZWw6cGlja2VyXTsKK30KKyNlbmRpZgorCitA
ZW5kCisKK0BpbnRlcmZhY2UgV0tDTkNvbnRhY3RQaWNrZXJTaW5nbGVTZWxlY3REZWxlZ2F0ZSA6
IFdLQ05Db250YWN0UGlja2VyRGVsZWdhdGUKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQ05D
b250YWN0UGlja2VyU2luZ2xlU2VsZWN0RGVsZWdhdGUKKworI2lmIEhBVkUoQ05DT05UQUNUUElD
S0VSVklFV0NPTlRST0xMRVIpCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tl
clZpZXdDb250cm9sbGVyICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3Q6KENOQ29udGFjdCAqKWNv
bnRhY3QKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2VyOnBpY2tl
ciBkaWRTZWxlY3RDb250YWN0OmNvbnRhY3RdOworfQorI2VuZGlmCisKK0BlbmQKKworQGludGVy
ZmFjZSBXS0NOQ29udGFjdFBpY2tlck11bHRpU2VsZWN0RGVsZWdhdGUgOiBXS0NOQ29udGFjdFBp
Y2tlckRlbGVnYXRlCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NOQ29udGFjdFBpY2tlck11
bHRpU2VsZWN0RGVsZWdhdGUKKworI2lmIEhBVkUoQ05DT05UQUNUUElDS0VSVklFV0NPTlRST0xM
RVIpCistICh2b2lkKWNvbnRhY3RQaWNrZXI6KENOQ29udGFjdFBpY2tlclZpZXdDb250cm9sbGVy
ICopcGlja2VyIGRpZFNlbGVjdENvbnRhY3RzOihOU0FycmF5PENOQ29udGFjdCo+ICopY29udGFj
dHMKK3sKKyAgICBbX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZSBjb250YWN0UGlja2VyOnBpY2tlciBk
aWRTZWxlY3RDb250YWN0czpjb250YWN0c107Cit9CisjZW5kaWYKKworQGVuZAorCisjcHJhZ21h
IG1hcmsgLSBXS0NvbnRhY3RQaWNrZXIKKworQGludGVyZmFjZSBXS0NvbnRhY3RQaWNrZXIgKCkg
PENOQ29udGFjdFBpY2tlckRlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tDb250
YWN0UGlja2VyIHsKKyAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IF93ZWJWaWV3OworICAgIFdl
YWtPYmpDUHRyPGlkPFdLQ29udGFjdFBpY2tlckRlbGVnYXRlPj4gX2RlbGVnYXRlOworCisgICAg
VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eT4gX3Byb3BlcnRpZXM7CisgICAgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5m
bz4+JiYpPiBfY29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBSZXRhaW5QdHI8V0tDTkNvbnRhY3RQ
aWNrZXJEZWxlZ2F0ZT4gX2NvbnRhY3RQaWNrZXJEZWxlZ2F0ZTsKKyNpZiBIQVZFKENOQ09OVEFD
VFBJQ0tFUlZJRVdDT05UUk9MTEVSKQorICAgIFJldGFpblB0cjxDTkNvbnRhY3RQaWNrZXJWaWV3
Q29udHJvbGxlcj4gX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorfQorCist
IChpZDxXS0NvbnRhY3RQaWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICByZXR1cm4gX2Rl
bGVnYXRlLmdldCgpLmdldCgpOworfQorCistICh2b2lkKXNldERlbGVnYXRlOihpZDxXS0NvbnRh
Y3RQaWNrZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBfZGVsZWdhdGUgPSBkZWxlZ2F0ZTsK
K30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tXZWJWaWV3ICopdmlldworewor
ICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgX3dlYlZpZXcgPSB2aWV3OworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcHJl
c2VudFdpdGhSZXF1ZXN0RGF0YTooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYp
cmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21wbGV0aW9u
SGFuZGxlcgoreworICAgIF9wcm9wZXJ0aWVzID0gcmVxdWVzdERhdGEucHJvcGVydGllczsKKyAg
ICBfY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKKworICAg
IGlmIChyZXF1ZXN0RGF0YS5tdWx0aXBsZSkKKyAgICAgICAgX2NvbnRhY3RQaWNrZXJEZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXS0NOQ29udGFjdFBpY2tlck11bHRpU2VsZWN0RGVsZWdhdGUgYWxsb2Nd
IGluaXRXaXRoQ29udGFjdFBpY2tlckRlbGVnYXRlOnNlbGZdKTsKKyAgICBlbHNlCisgICAgICAg
IF9jb250YWN0UGlja2VyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tDTkNvbnRhY3RQaWNrZXJTaW5n
bGVTZWxlY3REZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb250YWN0UGlja2VyRGVsZWdhdGU6c2Vs
Zl0pOworCisjaWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUikKKyAgICBfY29u
dGFjdFBpY2tlclZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbYWxsb2NDTkNvbnRhY3RQaWNrZXJW
aWV3Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdF0pOworICAgIFtfY29udGFjdFBpY2tlclZpZXdD
b250cm9sbGVyIHNldERlbGVnYXRlOl9jb250YWN0UGlja2VyRGVsZWdhdGUuZ2V0KCldOworICAg
IFtfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyIHNldFByb21wdDpyZXF1ZXN0RGF0YS51cmxd
OworCisgICAgVUlWaWV3Q29udHJvbGxlciAqcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBb
VUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9u
RnJvbVZpZXc6X3dlYlZpZXcuZ2V0KCkuZ2V0KCldOworICAgIFtwcmVzZW50YXRpb25WaWV3Q29u
dHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6X2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxl
ci5nZXQoKSBhbmltYXRlZDpZRVMgY29tcGxldGlvbjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxX
S0NvbnRhY3RQaWNrZXI+KHNlbGYpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaWYgKFtbc3Ryb25nU2VsZiBkZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihjb250YWN0UGlja2VyRGlkUHJlc2VudDopXSkKKyAgICAgICAgICAgIFtbc3Ry
b25nU2VsZiBkZWxlZ2F0ZV0gY29udGFjdFBpY2tlckRpZFByZXNlbnQ6c3Ryb25nU2VsZi5nZXQo
KV07CisgICAgfV07CisjZW5kaWYKK30KKworI3ByYWdtYSBtYXJrIC0gQ29tcGxldGlvbgorCisj
aWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExFUikKKworLSAodm9pZCljb250YWN0
UGlja2VyRGlkQ2FuY2VsOihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlcgor
eworICAgIFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4gaW5mbzsKKyAgICBbc2VsZiBfY29u
dGFjdFBpY2tlckRpZERpc21pc3NXaXRoQ29udGFjdEluZm86V1RGTW92ZShpbmZvKV07Cit9CisK
Ky0gKHZvaWQpY29udGFjdFBpY2tlcjooQ05Db250YWN0UGlja2VyVmlld0NvbnRyb2xsZXIgKilw
aWNrZXIgZGlkU2VsZWN0Q29udGFjdDooQ05Db250YWN0ICopY29udGFjdAoreworICAgIFZlY3Rv
cjxXZWJDb3JlOjpDb250YWN0SW5mbz4gaW5mbyA9IHsgW3NlbGYgX2NvbnRhY3RJbmZvRnJvbUNO
Q29udGFjdDpjb250YWN0XSB9OworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dp
dGhDb250YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworLSAodm9pZCljb250YWN0UGlja2Vy
OihDTkNvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciAqKXBpY2tlciBkaWRTZWxlY3RDb250YWN0
czooTlNBcnJheTxDTkNvbnRhY3QqPiAqKWNvbnRhY3RzCit7CisgICAgVmVjdG9yPFdlYkNvcmU6
OkNvbnRhY3RJbmZvPiBpbmZvOworICAgIGluZm8ucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb250
YWN0cy5jb3VudCk7CisgICAgZm9yIChDTkNvbnRhY3QgKmNvbnRhY3QgaW4gY29udGFjdHMpCisg
ICAgICAgIGluZm8udW5jaGVja2VkQXBwZW5kKFtzZWxmIF9jb250YWN0SW5mb0Zyb21DTkNvbnRh
Y3Q6Y29udGFjdF0pOworICAgIFtzZWxmIF9jb250YWN0UGlja2VyRGlkRGlzbWlzc1dpdGhDb250
YWN0SW5mbzpXVEZNb3ZlKGluZm8pXTsKK30KKworI2VuZGlmCisKKy0gKHZvaWQpX2NvbnRhY3RQ
aWNrZXJEaWREaXNtaXNzV2l0aENvbnRhY3RJbmZvOihWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+JiYpaW5mbworeworICAgIF9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGluZm8pKTsKKwor
ICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGFjdFBp
Y2tlckRpZERpc21pc3M6KV0pCisgICAgICAgIFtfZGVsZWdhdGUgY29udGFjdFBpY2tlckRpZERp
c21pc3M6c2VsZl07Cit9CisKKy0gKFdlYkNvcmU6OkNvbnRhY3RJbmZvKV9jb250YWN0SW5mb0Zy
b21DTkNvbnRhY3Q6KENOQ29udGFjdCAqKWNvbnRhY3QKK3sKKyAgICBXZWJDb3JlOjpDb250YWN0
SW5mbyBjb250YWN0SW5mbzsKKworICAgIGlmIChfcHJvcGVydGllcy5jb250YWlucyhXZWJDb3Jl
OjpDb250YWN0UHJvcGVydHk6Ok5hbWUpKSB7CisgICAgICAgIE5TU3RyaW5nICpjb250YWN0TmFt
ZSA9IFtnZXRDTkNvbnRhY3RGb3JtYXR0ZXJDbGFzcygpIHN0cmluZ0Zyb21Db250YWN0OmNvbnRh
Y3Qgc3R5bGU6Q05Db250YWN0Rm9ybWF0dGVyU3R5bGVGdWxsTmFtZV07CisgICAgICAgIGNvbnRh
Y3RJbmZvLm5hbWUgPSB7IGNvbnRhY3ROYW1lIH07CisgICAgfQorCisgICAgaWYgKF9wcm9wZXJ0
aWVzLmNvbnRhaW5zKFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6RW1haWwpKSB7CisgICAgICAg
IGZvciAoQ05MYWJlbGVkVmFsdWU8TlNTdHJpbmcgKj4gKmVtYWlsQWRkcmVzcyBpbiBjb250YWN0
LmVtYWlsQWRkcmVzc2VzKQorICAgICAgICAgICAgY29udGFjdEluZm8uZW1haWwuYXBwZW5kKGVt
YWlsQWRkcmVzcy52YWx1ZSk7CisgICAgfQorCisgICAgaWYgKF9wcm9wZXJ0aWVzLmNvbnRhaW5z
KFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6VGVsKSkgeworICAgICAgICBmb3IgKENOTGFiZWxl
ZFZhbHVlPENOUGhvbmVOdW1iZXIgKj4gKnBob25lTnVtYmVyIGluIGNvbnRhY3QucGhvbmVOdW1i
ZXJzKQorICAgICAgICAgICAgY29udGFjdEluZm8udGVsLmFwcGVuZChwaG9uZU51bWJlci52YWx1
ZS5zdHJpbmdWYWx1ZSk7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRhY3RJbmZvOworfQorCisj
cHJhZ21hIG1hcmsgLSBUZXN0aW5nCisKKy0gKHZvaWQpZGlzbWlzc1dpdGhDb250YWN0czooTlNB
cnJheSAqKWNvbnRhY3RzCit7CisjaWYgSEFWRShDTkNPTlRBQ1RQSUNLRVJWSUVXQ09OVFJPTExF
UikKKyAgICBbX2NvbnRhY3RQaWNrZXJWaWV3Q29udHJvbGxlciBkaXNtaXNzVmlld0NvbnRyb2xs
ZXJBbmltYXRlZDpOTyBjb21wbGV0aW9uOltzZWxmLCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdL
Q29udGFjdFBpY2tlcj4oc2VsZiksIGpzQ29udGFjdHMgPSBSZXRhaW5QdHI8TlNBcnJheT4oY29u
dGFjdHMpXSB7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAg
ICAgICBpZiAoIXN0cm9uZ1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgW3N0
cm9uZ1NlbGYgY29udGFjdFBpY2tlcjpfY29udGFjdFBpY2tlclZpZXdDb250cm9sbGVyLmdldCgp
IGRpZFNlbGVjdENvbnRhY3RzOltzdHJvbmdTZWxmIF9jb250YWN0c0Zyb21KU0NvbnRhY3RzOmpz
Q29udGFjdHMuZ2V0KCldXTsKKyAgICB9XTsKKyNlbmRpZgorfQorCistIChOU0FycmF5PENOQ29u
dGFjdCo+ICopX2NvbnRhY3RzRnJvbUpTQ29udGFjdHM6KE5TQXJyYXkgKilqc0NvbnRhY3RzCit7
CisgICAgaWYgKCFqc0NvbnRhY3RzKQorICAgICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXldOwor
CisgICAgTlNNdXRhYmxlQXJyYXk8Q05Db250YWN0Kj4gKmNvbnRhY3RzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5V2l0aENhcGFjaXR5OmpzQ29udGFjdHMuY291bnRdOworCisgICAgTlNQcmVkaWNh
dGUgKnN0cmluZ1ZhbHVlUHJlZGljYXRlID0gW05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3Jt
YXQ6QCJzZWxmIGlzS2luZE9mQ2xhc3M6ICVAIiwgW05TU3RyaW5nIGNsYXNzXV07CisKKyAgICBm
b3IgKGlkIGpzQ29udGFjdCBpbiBqc0NvbnRhY3RzKSB7CisgICAgICAgIGlmICghW2pzQ29udGFj
dCBpc0tpbmRPZkNsYXNzOltOU0RpY3Rpb25hcnkgY2xhc3NdXSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIENOTXV0YWJsZUNvbnRhY3QgKmNvbnRhY3QgPSBbW2FsbG9jQ05NdXRh
YmxlQ29udGFjdEluc3RhbmNlKCkgaW5pdF0gYXV0b3JlbGVhc2VdOworCisgICAgICAgIGlkIG5h
bWVzID0gWyhOU0RpY3Rpb25hcnkgKilqc0NvbnRhY3Qgb2JqZWN0Rm9yS2V5OkAibmFtZSJdOwor
ICAgICAgICBpZiAoW25hbWVzIGlzS2luZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkgeworICAg
ICAgICAgICAgZm9yIChOU1N0cmluZyAqbmFtZSBpbiBbbmFtZXMgZmlsdGVyZWRBcnJheVVzaW5n
UHJlZGljYXRlOnN0cmluZ1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAgICAgICAgICAgIGNvbnRh
Y3QuZ2l2ZW5OYW1lID0gbmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGlkIGVtYWlscyA9IFsoTlNEaWN0aW9uYXJ5ICopanND
b250YWN0IG9iamVjdEZvcktleTpAImVtYWlsIl07CisgICAgICAgIGlmIChbZW1haWxzIGlzS2lu
ZE9mQ2xhc3M6W05TQXJyYXkgY2xhc3NdXSkgeworICAgICAgICAgICAgTlNNdXRhYmxlQXJyYXk8
Q05MYWJlbGVkVmFsdWU8TlNTdHJpbmcqPio+ICplbWFpbEFkZHJlc3NlcyA9IFtOU011dGFibGVB
cnJheSBhcnJheV07CisgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICplbWFpbCBpbiBbZW1haWxz
IGZpbHRlcmVkQXJyYXlVc2luZ1ByZWRpY2F0ZTpzdHJpbmdWYWx1ZVByZWRpY2F0ZV0pIHsKKyAg
ICAgICAgICAgICAgICBDTkxhYmVsZWRWYWx1ZTxOU1N0cmluZyo+ICpsYWJlbGVkVmFsdWUgPSBb
Z2V0Q05MYWJlbGVkVmFsdWVDbGFzcygpIGxhYmVsZWRWYWx1ZVdpdGhMYWJlbDpuaWwgdmFsdWU6
ZW1haWxdOworICAgICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3NlcyBhZGRPYmplY3Q6bGFiZWxl
ZFZhbHVlXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNvbnRhY3QuZW1haWxBZGRyZXNz
ZXMgPSBlbWFpbEFkZHJlc3NlczsKKyAgICAgICAgfQorCisgICAgICAgIGlkIHBob25lTnVtYmVy
cyA9IFsoTlNEaWN0aW9uYXJ5ICopanNDb250YWN0IG9iamVjdEZvcktleTpAInRlbCJdOworICAg
ICAgICBpZiAoW3Bob25lTnVtYmVycyBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsK
KyAgICAgICAgICAgIE5TTXV0YWJsZUFycmF5PENOTGFiZWxlZFZhbHVlPENOUGhvbmVOdW1iZXIq
Pio+ICpudW1iZXJzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICAgICAgICAgIGZvciAo
TlNTdHJpbmcgKnBob25lTnVtYmVyIGluIFtwaG9uZU51bWJlcnMgZmlsdGVyZWRBcnJheVVzaW5n
UHJlZGljYXRlOnN0cmluZ1ZhbHVlUHJlZGljYXRlXSkgeworICAgICAgICAgICAgICAgIENOUGhv
bmVOdW1iZXIgKmNuUGhvbmVOdW1iZXIgPSBbZ2V0Q05QaG9uZU51bWJlckNsYXNzKCkgcGhvbmVO
dW1iZXJXaXRoU3RyaW5nVmFsdWU6cGhvbmVOdW1iZXJdOworICAgICAgICAgICAgICAgIENOTGFi
ZWxlZFZhbHVlPENOUGhvbmVOdW1iZXIqPiAqbGFiZWxlZFZhbHVlID0gW2dldENOTGFiZWxlZFZh
bHVlQ2xhc3MoKSBsYWJlbGVkVmFsdWVXaXRoTGFiZWw6bmlsIHZhbHVlOmNuUGhvbmVOdW1iZXJd
OworICAgICAgICAgICAgICAgIFtudW1iZXJzIGFkZE9iamVjdDpsYWJlbGVkVmFsdWVdOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgY29udGFjdC5waG9uZU51bWJlcnMgPSBudW1iZXJzOwor
ICAgICAgICB9CisKKyAgICAgICAgW2NvbnRhY3RzIGFkZE9iamVjdDpjb250YWN0XTsKKyAgICB9
CisKKyAgICByZXR1cm4gY29udGFjdHM7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoQ09O
VEFDVFNVSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKaW5kZXggNzdhZmNhZmM0MDQwZmI5ZWM5ODhjN2YxYWVkNjJmNmVkMTg1NDJlZS4uYmUw
MzAxZmI3Y2IxOGJhYzdjZGUzOTBlZDNjZjFhODU1NWI5OGQ3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTE3Nyw2ICsxNzcsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBoYW5kbGVSdW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSosIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFt
ZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5Kikgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJM
JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEm
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNv
bnRhY3RJbmZvPj4mJik+JiYpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlzYWJsZURvdWJs
ZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElEKSBvdmVy
cmlkZTsKICAgICB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90
ZW50aWFsVGFwKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBy
ZW5kZXJSZWN0LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2Fs
ZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZlbCkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KaW5kZXggYWZjYzQ1ZTkzNzZkNzNhNjRkMTJhNmNhNzkwNWZhNzI1NTZjNWFlZC4uYjZh
Yjk2MmI3MzM0MzkyMzJiZjdkZDkyYzk2YTZiMjEyYzFhODZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNjM5LDYgKzYzOSwx
MSBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFX
aXRoUGFyc2VkVVJMJiBzaGFyZURhdGEsIFdURgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0
c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIFttX2NvbnRlbnRWaWV3IF9zaG93Q29udGFjdFBpY2tlcjpyZXF1ZXN0RGF0
YSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07Cit9CisKIHZv
aWQgUGFnZUNsaWVudEltcGw6OnNob3dJbnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheTo6SGlnaGxpZ2h0JiBoaWdobGlnaHQpCiB7CiAgICAgW21fY29udGVu
dFZpZXcgX3Nob3dJbnNwZWN0b3JIaWdobGlnaHQ6aGlnaGxpZ2h0XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCA5MzA3OWVjNWRmODI3NWJiYmZkYTFhNDcwN2RhZDVhNDYxYjlkZDU0Li45ZmQzYTRiNjQzMjhk
OTgyZWQxNzgwM2Y4Yzc5ZTMwYzA5YzlhZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00Myw2ICs0Myw3
IEBACiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oIgogI2ltcG9ydCAiV0tBaXJQbGF5Um91dGVQaWNrZXIuaCIKKyNpbXBvcnQgIldLQ29udGFj
dFBpY2tlci5oIgogI2ltcG9ydCAiV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXplci5oIgogI2lt
cG9ydCAiV0tGaWxlVXBsb2FkUGFuZWwuaCIKICNpbXBvcnQgIldLRm9ybVBlcmlwaGVyYWwuaCIK
QEAgLTc5LDYgKzgwLDggQEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBJ
bnRTaXplOwogY2xhc3MgU2VsZWN0aW9uUmVjdDsKK3N0cnVjdCBDb250YWN0SW5mbzsKK3N0cnVj
dCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiBz
dHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIGVudW0gY2xhc3MgRE9NUGFzdGVBY2Nlc3NS
ZXNwb25zZSA6IHVpbnQ4X3Q7CkBAIC0yNzQsNiArMjc3LDkgQEAgc3RydWN0IFdLQXV0b0NvcnJl
Y3Rpb25EYXRhIHsKICAgICBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgX2ZyYW1lSW5mb0ZvckZpbGVV
cGxvYWRQYW5lbDsKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYp
CiAgICAgUmV0YWluUHRyPFdLU2hhcmVTaGVldD4gX3NoYXJlU2hlZXQ7CisjZW5kaWYKKyNpZiBI
QVZFKENPTlRBQ1RTVUkpCisgICAgUmV0YWluUHRyPFdLQ29udGFjdFBpY2tlcj4gX2NvbnRhY3RQ
aWNrZXI7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVjb2duaXplcj4gX3ByZXZp
ZXdHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVjb2duaXplcj4g
X3ByZXZpZXdTZWNvbmRhcnlHZXN0dXJlUmVjb2duaXplcjsKQEAgLTQyMyw2ICs0MjksOSBAQCBz
dHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVu
dFZpZXcgKFdLSW50ZXJhY3Rpb24pIDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJVGV4
dEF1dG9zY3JvbGxpbmcsIFVJVGV4dElucHV0TXVsdGlEb2N1bWVudCwgVUlUZXh0SW5wdXRQcml2
YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVS
ZWNvZ25pemVyRGVsZWdhdGUsIFVJV0tJbnRlcmFjdGlvblZpZXdQcm90b2NvbCwgV0tBY3Rpb25T
aGVldEFzc2lzdGFudERlbGVnYXRlLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlLCBXS0tleWJv
YXJkU2Nyb2xsVmlld0FuaW1hdG9yRGVsZWdhdGUsIFdLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZQorI2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICAsIFdLQ29udGFjdFBpY2tlckRl
bGVnYXRlCisjZW5kaWYKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExF
VFYpCiAgICAgLCBXS1NoYXJlU2hlZXREZWxlZ2F0ZQogI2VuZGlmCkBAIC01MjAsNiArNTI5LDcg
QEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVO
VFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3Nob3dQbGF5YmFja1RhcmdldFBp
Y2tlcjooQk9PTCloYXNWaWRlbyBmcm9tUmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpZWxl
bWVudFJlY3Qgcm91dGVTaGFyaW5nUG9saWN5OihXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kp
cG9saWN5IHJvdXRpbmdDb250ZXh0VUlEOihOU1N0cmluZyAqKWNvbnRleHRVSUQ7CiAtICh2b2lk
KV9zaG93UnVuT3BlblBhbmVsOihBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqKXBhcmFtZXRlcnMg
ZnJhbWVJbmZvOihjb25zdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmKWZyYW1lSW5mbyByZXN1bHRM
aXN0ZW5lcjooV2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KilsaXN0ZW5l
cjsKIC0gKHZvaWQpX3Nob3dTaGFyZVNoZWV0Oihjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRo
UGFyc2VkVVJMJilzaGFyZURhdGEgaW5SZWN0OihXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4pcmVjdCBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfc2hvd0NvbnRhY3RQaWNrZXI6
KGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmKXJlcXVlc3REYXRhIGNvbXBsZXRp
b25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdl
YkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKWRp
c21pc3NGaWxlUGlja2VyOwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQg
KilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9y
PFdlYktpdDo6T3B0aW9uSXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CkBAIC02
MjcsNiArNjM3LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNM
QVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKE5TRGljdGlvbmFyeSAq
KV9jb250ZW50c09mVXNlckludGVyZmFjZUl0ZW06KE5TU3RyaW5nICopdXNlckludGVyZmFjZUl0
ZW07CiAtICh2b2lkKV9kb0FmdGVyUmVzZXR0aW5nU2luZ2xlVGFwR2VzdHVyZTooZGlzcGF0Y2hf
YmxvY2tfdClhY3Rpb247CiAtICh2b2lkKV9kb0FmdGVyUmVjZWl2aW5nRWRpdERyYWdTbmFwc2hv
dEZvclRlc3Rpbmc6KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uOworLSAodm9pZClfZGlzbWlzc0Nv
bnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0czsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlRm9yVGVzdGlu
ZzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnNlbGVjdEZvcm1Q
b3BvdmVyVGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBkZDg5YzBmMGFmYTgyYjEzMGQ1MjQyZWQx
Yzk5ZDZlMmJiZjU1ODg5Li5mZmZhYWE2NWRmZTg0YzZlNGIwNzdmYzdiY2Q2ZjAwMDNmYTc0ZWU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTczLDcgKzczLDcgQEAKICNpbXBvcnQgIldLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmgiCiAjaW1wb3J0ICJXS1dlYlZpZXdJT1MuaCIKICNpbXBvcnQg
IldLV2ViVmlld1ByaXZhdGUuaCIKLSNpbXBvcnQgIldLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
SU9TLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAi
V2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0LmgiCiAjaW1wb3J0ICJXZWJBdXRvY29ycmVjdGlvbkRh
dGEuaCIKICNpbXBvcnQgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIgpAQCAt
Njg0OCw2ICs2ODQ4LDM2IEBAIC0gKHZvaWQpc2hhcmVTaGVldDooV0tTaGFyZVNoZWV0ICopc2hh
cmVTaGVldCB3aWxsU2hvd0FjdGl2aXR5SXRlbXM6KE5TQXJyYXkgKilhCiAKICNlbmRpZgogCist
ICh2b2lkKV9zaG93Q29udGFjdFBpY2tlcjooY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0
RGF0YSYpcmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiljb21w
bGV0aW9uSGFuZGxlcgoreworI2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICBfY29udGFjdFBpY2tl
ciA9IGFkb3B0TlMoW1tXS0NvbnRhY3RQaWNrZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLndl
YlZpZXddKTsKKyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW19j
b250YWN0UGlja2VyIHByZXNlbnRXaXRoUmVxdWVzdERhdGE6cmVxdWVzdERhdGEgY29tcGxldGlv
bkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOworI2Vsc2UKKyAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOworI2VuZGlmCit9CisKKyNpZiBIQVZFKENPTlRBQ1RT
VUkpCistICh2b2lkKWNvbnRhY3RQaWNrZXJEaWRQcmVzZW50OihXS0NvbnRhY3RQaWNrZXIgKilj
b250YWN0UGlja2VyCit7CisgICAgQVNTRVJUKF9jb250YWN0UGlja2VyID09IGNvbnRhY3RQaWNr
ZXIpOworCisgICAgW193ZWJWaWV3IF9kaWRQcmVzZW50Q29udGFjdFBpY2tlcl07Cit9CisKKy0g
KHZvaWQpY29udGFjdFBpY2tlckRpZERpc21pc3M6KFdLQ29udGFjdFBpY2tlciAqKWNvbnRhY3RQ
aWNrZXIKK3sKKyAgICBBU1NFUlQoX2NvbnRhY3RQaWNrZXIgPT0gY29udGFjdFBpY2tlcik7CisK
KyAgICBbX2NvbnRhY3RQaWNrZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBfY29udGFjdFBpY2tl
ciA9IG5pbDsKKworICAgIFtfd2ViVmlldyBfZGlkRGlzbWlzc0NvbnRhY3RQaWNrZXJdOworfQor
I2VuZGlmCisKIC0gKE5TU3RyaW5nICopaW5wdXRMYWJlbFRleHQKIHsKICAgICBpZiAoIV9mb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uLmxhYmVsLmlzRW1wdHkoKSkKQEAgLTkwOTQsNiArOTEyNCwx
MyBAQCAtIChOU0RpY3Rpb25hcnkgKilfY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtOihOU1N0
cmluZyAqKXVzZXJJbnRlcmZhY2VJdGVtCiAgICAgcmV0dXJuIG5pbDsKIH0KIAorLSAodm9pZClf
ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHM6KE5TQXJyYXkgKiljb250YWN0cworewor
I2lmIEhBVkUoQ09OVEFDVFNVSSkKKyAgICBbX2NvbnRhY3RQaWNrZXIgZGlzbWlzc1dpdGhDb250
YWN0czpjb250YWN0c107CisjZW5kaWYKK30KKwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BSRVZJ
RVcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA0NDA2ZTliNmU3ZTZmNGEwMzYyZTZjNTZiYjg0OWJmZWJlYzhjMGM3Li4wYTNiYTAzYzA0
MDEyNTYwOTUyMTU2ODZhZTZmNzhmNjIwNzdjMWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4NTEsNiArMTg1MSw3IEBACiAJCUU0
OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5RDQwRDYxQUQzRkIx
NzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggKi87IH07CiAJCUU0RDU0RDA0
MjFGMUQ3MkQwMDdFM0MzNiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3Rl
SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDBD
MUY5MzIxRjBCOTZFMDA1MzA3MTggLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZUlPUy5oICovOyB9OwogCQlFNEU1N0Y2QjIxQTgzQjEyMDAzNDVGM0MgLyogUmVtb3RlTGF5
ZXJUcmVlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTRFNTdGNkEyMUE4M0IxMTAwMzQ1RjNDIC8qIFJlbW90ZUxheWVyVHJlZU5vZGUuaCAqLzsg
fTsKKwkJRTUwNjIwOTIyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MDYyMDkxMjU0MjEwMjAw
MEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi87IH07CiAJCUU1MkNGNTUyMjBBMzVDM0EwMERB
REEyNyAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTUwMjBBMzVDM0EwMERBREEyNyAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgfTsKIAkJRTU0OEVCRDEyMTAxNUYwRTAw
QkUzQzMyIC8qIFdLRm9ybUNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTQ4RUJDRjIxMDE1RjBFMDBCRTNDMzIgLyogV0tGb3JtQ29s
b3JQaWNrZXIuaCAqLzsgfTsKIAkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVU
aW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTU1Q0QxRjMyNENGNzQ3RDAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oICovOyB9
OwpAQCAtMTg1OCw2ICsxODU5LDcgQEAKIAkJRTU1Q0QyMDMyNEQwOUYxRjAwNDJEQjlDIC8qIFdl
YkRhdGVUaW1lUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTVDRDIwMTI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJN
YWMuaCAqLzsgfTsKIAkJRTU2OEI5MUYyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTU2OEI5MUUyMEEzQUIyRjAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5oICovOyB9OwogCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0
YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggKi87IH07CisJCUU1OTZERDZBMjUxRTcxRDQwMEMy
NzVBNyAvKiBXS0NvbnRhY3RQaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQaWNr
ZXIuaCAqLzsgfTsKIAkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3Vn
Z2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5oICovOyB9OwogCQlFNUNCMDdEQzIwRTE2NzhGMDAyMkMxODMgLyog
V0tGb3JtQ29sb3JDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9s
LmggKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVy
bGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIy
RjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDIwLDYgKzU0MjIsNyBA
QAogCQlFNDlENDBEODFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlQmxv
YlN0b3JhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEU1N0Y2ODIxQTgz
QjAzMDAzNDVGM0MgLyogUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZUxheWVyVHJlZU5vZGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0RTU3RjZBMjFBODNCMTEwMDM0NUYzQyAvKiBSZW1vdGVMYXll
clRyZWVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVy
VHJlZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUwNjIwOTEyNTQyMTAy
MDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFjdHNVSVNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU1MDIwQTM1QzNBMDBEQURB
MjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTJDRjU1MTIwQTM1QzNBMDBEQURBMjcgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1NDhFQkNGMjEwMTVGMEUwMEJFM0MzMiAvKiBX
S0Zvcm1Db2xvclBpY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0Zvcm1Db2xvclBpY2tlci5oOyBw
YXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yUGlja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01NDM0LDYgKzU0MzcsOCBAQAogCQlFNTY4QjkxRTIwQTNBQjJGMDBFM0M4NTYg
LyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNTY4QjkyMDIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1h
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTY4QjkyMTIwQTNBQzZBMDBFM0M4
NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY4MjUxRTcxRDMwMEMyNzVBNyAvKiBXS0NvbnRhY3RQ
aWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250YWN0UGlja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1OTZERDY5MjUxRTcxRDQwMEMyNzVB
NyAvKiBXS0NvbnRhY3RQaWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXS0NvbnRhY3RQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU1QkVGNjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRv
d25JT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duSU9TLmg7IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duSU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1QkVGNjgxMjEzMEM0
N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25z
RHJvcGRvd25JT1MubW07IHBhdGggPSBpb3MvV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNUNCMDdEQTIwRTE2NzhGMDAy
MkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNvbG9y
Q29udHJvbC5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLRm9ybUNvbG9yQ29udHJvbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ2Myw2ICs2NDY4LDggQEAKIAkJCQk1MUQxMjQzMjFF
NkRFNTIxMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tICovLAogCQkJCTJE
RkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovLAogCQkJCTJERkM3REJB
MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKKwkJCQlFNTk2REQ2ODI1MUU3
MUQzMDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggKi8sCisJCQkJRTU5NkRENjkyNTFFNzFE
NDAwQzI3NUE3IC8qIFdLQ29udGFjdFBpY2tlci5tbSAqLywKIAkJCQkyRUNGNjZDQzIxRDZCNzdF
MDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5oICovLAogCQkJCTJFQ0Y2NkNEMjFENkI3N0UwMDlF
NUMzRiAvKiBXS0VkaXRDb21tYW5kLm1tICovLAogCQkJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2
OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKQEAgLTcyNjgsNiArNzI3NSw3
IEBACiAJCQkJRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2liaWxpdHlTdXBwb3J0
U1BJLmggKi8sCiAJCQkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5o
ICovLAogCQkJCTFBNTcwNTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9ja1NQSS5oICovLAorCQkJ
CUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi8sCiAJCQkJMzdD
MjFDQUQxRTk5NEMwQzAwMjlENUY5IC8qIENvcmVQcmVkaWN0aW9uU1BJLmggKi8sCiAJCQkJMkRB
QURBOEUyMjk4QzIxMDAwRTM2QjBDIC8qIERldmljZU1hbmFnZW1lbnRTUEkuaCAqLywKIAkJCQk1
NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovLApA
QCAtMTA5NjYsNiArMTA5NzQsNyBAQAogCQkJCTM3QkVDNEUxMTk0OTE0ODYwMDhCNDI4NiAvKiBD
b21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0RTlG
NjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkRB
QjEwRjQzN0QxMDA1OEMxNUEgLyogQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUw
NjIwOTIyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNBMDUzOTc5MjNFRTMyNDQwMEE1NTNEQyAvKiBDb250ZW50QXNTdHJpbmdJbmNsdWRlc0No
aWxkRnJhbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTI5RUIxMjIzRDBERTdCMDBBRjFDRDcg
LyogQ29udGVudFdvcmxkU2hhcmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA2RDdDNDE4QkRC
RTczMDAwQUIxNjYgLyogQ29udGV4dE1lbnVDb250ZXh0RGF0YS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMTcwMSw2ICsxMTcxMCw3IEBACiAJCQkJQkNBMjg0RDcxNDkyRjJDNzAwMUY5MDQyIC8qIFdL
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc1QzgxNDk1NERBNjAwQkM0Nzc1
IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzRBNjI5NzE0
NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
NTk2REQ2QTI1MUU3MUQ0MDBDMjc1QTcgLyogV0tDb250YWN0UGlja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0QyODY1NDFFNzIzNUIxMDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDRDI4NjU1MUU3MjM1QjgwMDk0RkRDOCAvKiBXS0NvbnRlbnRS
dWxlTGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODY1MTFFNzIzNTk5MDA5
NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODQwZDA0OTA1YThi
YzA1OTc2MmZjMGMwYjFmNmMwM2JjNzUyM2ZhYy4uMmVkYjkwOWNiOTNmNmViNmNkNGRjOTA2ZWEw
ZGZhMGI3ZDNmNTMyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIwLTEwLTI2ICBBZGl0eWEgS2VlcnRoaSAgPGFr
ZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNrZXIgQVBJXSBBZGQgc3Vw
cG9ydCBmb3IgcGlja2VyIFVJIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MTg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjI3
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQWRkZWQg
VUlTY3JpcHRDb250cm9sbGVyIGhvb2tzIHRvIG9ic2VydmUgdGhlIHByZXNlbnRhdGlvbiBhbmQK
KyAgICAgICAgZGlzbWlzc2FsIG9mIGEgY29udGFjdCBwaWNrZXIuIEZ1cnRoZXJtb3JlLCB0aGUK
KyAgICAgICAgZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMgbWV0aG9kIHdhcyBhZGRl
ZCB0byBhbGxvdyB0ZXN0cyB0bworICAgICAgICBkaXNtaXNzIHRoZSBwcmVzZW50ZWQgY29udGFj
dCBwaWNrZXIgd2l0aCBhIHNldCBvZiBzZWxlY3RlZCBjb250YWN0cy4KKworICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250ZXh0Lmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
aXNTaG93aW5nQ29udGFjdFBpY2tlciBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlcjo6ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMpOgorICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5j
cHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0NvbnRhY3RQ
aWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hv
d0NvbnRhY3RQaWNrZXJDYWxsYmFjayBjb25zdCk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlcjo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayk6CisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayBjb25zdCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IHJlc2V0SW50ZXJhY3Rpb25DYWxsYmFj
a3NdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkUHJlc2VudENvbnRhY3RQ
aWNrZXJdKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBfZGlkRGlzbWlzc0NvbnRh
Y3RQaWNrZXJdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29u
dHJvbGxlckNvY29hLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlw
dENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29j
b2E6OnNldERpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0RGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayk6Cisg
ICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dpbmdDb250YWN0UGlj
a2VyIGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OmRpc21p
c3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKToKKwogMjAyMC0xMC0yOSAgQWRpdHlhIEtlZXJ0
aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBSZW1vdmUgc29mdCBs
aW5raW5nIG9mIE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3b3JrCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xs
ZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3Mv
VUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAzZDU4MzJkMWQ5NjJjMGM5MzJmMzI3ZTNlYmMw
MTg5ZGExMGM0ODVjLi4zZTA1ZWIxMzMwMmMzMjYyMTY5ODUzZjgxNGVkODMzMzgzYmI2YWE1IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTM0OSw2ICsz
NDksMTEgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgb2JqZWN0IGF0dGFj
aG1lbnRJbmZvKERPTVN0cmluZyBhdHRhY2htZW50SWRlbnRpZmllcik7CiAgICAgdW5kZWZpbmVk
IGluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChET01TdHJpbmcgZmlsZVBhdGgsIERPTVN0cmlu
ZyBjb250ZW50VHlwZSwgb2JqZWN0IGNhbGxiYWNrKTsKIAorICAgIGF0dHJpYnV0ZSBvYmplY3Qg
ZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjazsKKyAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEhp
ZGVDb250YWN0UGlja2VyQ2FsbGJhY2s7CisgICAgdW5kZWZpbmVkIGRpc21pc3NDb250YWN0UGlj
a2VyV2l0aENvbnRhY3RzKG9iamVjdCBjb250YWN0cyk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gaXNTaG93aW5nQ29udGFjdFBpY2tlcjsKKwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgbGFzdFVuZG9MYWJlbDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGZpcnN0UmVkb0xhYmVsOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKaW5kZXggZmJhMzJjOTM3YjI5
ODMxZTAyNmY5OTEzODYwYjJlMDcyMWUwZjI1NC4uMmI1ZjRiZjgxNmQwMTQ0YjMxOWI2MjZkMTA3
MDg0ODNjOWRmMWViOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDggQEAgdHlwZWRl
ZiBlbnVtICB7CiAgICAgQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0NvbnRleHRNZW51LAogICAgIENh
bGxiYWNrVHlwZVdpbGxDcmVhdGVOZXdQYWdlLAogICAgIENhbGxiYWNrVHlwZVdpbmRvd1RhcFJl
Y29nbml6ZWQsCisgICAgQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRhY3RQaWNrZXIsCisgICAgQ2Fs
bGJhY2tUeXBlRGlkSGlkZUNvbnRhY3RQaWNrZXIsCiAgICAgQ2FsbGJhY2tUeXBlTm9uUGVyc2lz
dGVudCA9IGZpcnN0Tm9uUGVyc2lzdGVudENhbGxiYWNrSUQKIH0gQ2FsbGJhY2tUeXBlOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IGJlMTM2YmQwNjBiM2IzMjIxM2M1MTRiNWI1ZDU2YTgx
ZmI0ZTNmYzguLjdlNDgwN2IxNTRmYmE0NjM2YTk2NWUyYWVhMGJiNzA5YmI1YjZkYTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5oCkBAIC0yNzcsNiArMjc3LDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIEpTT2JqZWN0UmVmIGF0dGFjaG1lbnRJbmZvKEpTU3RyaW5nUmVmKSB7IG5vdEltcGxlbWVu
dGVkKCk7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIGluc2VydEF0dGFjaG1l
bnRGb3JGaWxlUGF0aChKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQogCisgICAgLy8gQ29udGFjdCBQaWNrZXIKKworICAgIHZpcnR1YWwg
dm9pZCBzZXREaWRTaG93Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpOworICAgIEpT
VmFsdWVSZWYgZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaygpIGNvbnN0OworICAgIHZpcnR1
YWwgYm9vbCBpc1Nob3dpbmdDb250YWN0UGlja2VyKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXREaWRIaWRlQ29udGFjdFBp
Y2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgZGlkSGlkZUNvbnRhY3RQ
aWNrZXJDYWxsYmFjaygpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb250YWN0
UGlja2VyV2l0aENvbnRhY3RzKEpTVmFsdWVSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorCiAg
ICAgLy8gQ2FsbGJhY2tzCiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldERpZFN0YXJ0Rm9ybUNv
bnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVk
LmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlclNoYXJlZC5jcHAKaW5kZXggYmZmNGYzNDMzZGJkMjk1NzVkNjI1YjczOTRlNmQ5ZDM4
MWNhZWMyNi4uOWU0OTQwY2UzYThiMTAyMjdmZWRlMWZlMmUyZjgxZjE5YThkYTY0NiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyU2hhcmVkLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwCkBAIC0yMTMsNiArMjEzLDI2IEBAIEpT
VmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNzUG9wb3ZlckNhbGxiYWNrKCkg
Y29uc3QKICAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVE
aWREaXNtaXNzUG9wb3Zlcik7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRT
aG93Q29udGFjdFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9j
b250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTaG93Q29u
dGFjdFBpY2tlcik7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93
Q29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5j
YWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93Q29udGFjdFBpY2tlcik7Cit9CisKK3Zv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKEpT
VmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNh
bGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlQ29udGFjdFBpY2tlcik7Cit9CisKK0pTVmFsdWVS
ZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVE
aWRIaWRlQ29udGFjdFBpY2tlcik7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjp1aVNj
cmlwdENvbXBsZXRlKEpTU3RyaW5nUmVmIHJlc3VsdCkKIHsKICAgICBtX2NvbnRleHQtPnJlcXVl
c3RVSVNjcmlwdENvbXBsZXRpb24ocmVzdWx0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKaW5kZXggZjU1NGUxMjNlYTNlNTQxYTEw
N2M3ZGQ2NzZmZTRjNWZlNzFlNmQ2OC4uZjU3MWU0ZGRkOGZjODliMzIzMWFkNjA4Nzg4NGRjMjkx
MTBlYzVhZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVu
bmVyV0tXZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVu
bmVyV0tXZWJWaWV3LmgKQEAgLTczLDYgKzczLDkgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ01lbnUpIEJPT0wgc2hvd2luZ01lbnU7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dNZW51Q2FsbGJhY2spKHZvaWQpOwog
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlTWVudUNhbGxiYWNrKSh2
b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ0Nv
bnRhY3RQaWNrZXIpIEJPT0wgc2hvd2luZ0NvbnRhY3RQaWNrZXI7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spKHZvaWQpOwor
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlQ29udGFjdFBpY2tlckNh
bGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4sIHNldHRlcj1fc2V0
U3RhYmxlU3RhdGVPdmVycmlkZTopIE5TTnVtYmVyICpfc3RhYmxlU3RhdGVPdmVycmlkZTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZv
clRlc3Rpbmc6KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZp
ZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
bW0KaW5kZXggOTE1ZjQ3NmM2MTVhZTYxMDkwZDkwY2E3OTc2YmY4ZjJjOTliNTY2Yi4uNTcwNmE3
YjExNWI1MTQyNGYyYjY1Yzg0Y2E4MWM4MDg0MjAzNzhjOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQpAQCAtNzgsNiArNzgs
NyBAQCBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ01lbnUsIHNldHRlcj1z
ZXRJc1Nob3dpbmdNZW51OikgQk9PTCBzaG93aQogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRl
cj1pc0Rpc21pc3NpbmdNZW51LCBzZXR0ZXI9c2V0SXNEaXNtaXNzaW5nTWVudTopIEJPT0wgZGlz
bWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2hvd2luZ1BvcG92
ZXIsIHNldHRlcj1zZXRJc1Nob3dpbmdQb3BvdmVyOikgQk9PTCBzaG93aW5nUG9wb3ZlcjsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNTaG93aW5nQ29udGV4dE1lbnUsIHNldHRlcj1z
ZXRJc1Nob3dpbmdDb250ZXh0TWVudTopIEJPT0wgc2hvd2luZ0NvbnRleHRNZW51OworQHByb3Bl
cnR5IChub25hdG9taWMsIGdldHRlcj1pc1Nob3dpbmdDb250YWN0UGlja2VyLCBzZXR0ZXI9c2V0
SXNTaG93aW5nQ29udGFjdFBpY2tlcjopIEJPT0wgc2hvd2luZ0NvbnRhY3RQaWNrZXI7CiAKIEBl
bmQKIApAQCAtMTcxLDYgKzE3Miw4IEBAIC0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNr
cwogewogICAgIHNlbGYuZGlkU2hvd01lbnVDYWxsYmFjayA9IG5pbDsKICAgICBzZWxmLmRpZEhp
ZGVNZW51Q2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWRTaG93Q29udGFjdFBpY2tlckNhbGxi
YWNrID0gbmlsOworICAgIHNlbGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjayA9IG5pbDsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHNlbGYuZGlkU3RhcnRGb3JtQ29udHJvbElu
dGVyYWN0aW9uQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uQ2FsbGJhY2sgPSBuaWw7CkBAIC01NDUsNCArNTQ4LDI0IEBAIC0gKEJPT0wpZ2VzdHVy
ZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBzaG91
bGRSZWNvZ25pCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCistICh2b2lkKV9k
aWRQcmVzZW50Q29udGFjdFBpY2tlcgoreworICAgIGlmIChzZWxmLnNob3dpbmdDb250YWN0UGlj
a2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxmLnNob3dpbmdDb250YWN0UGlja2VyID0g
WUVTOworICAgIGlmIChzZWxmLmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2spCisgICAgICAg
IHNlbGYuZGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjaygpOworfQorCistICh2b2lkKV9kaWRE
aXNtaXNzQ29udGFjdFBpY2tlcgoreworICAgIGlmICghc2VsZi5zaG93aW5nQ29udGFjdFBpY2tl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VsZi5zaG93aW5nQ29udGFjdFBpY2tlciA9IE5P
OworICAgIGlmIChzZWxmLmRpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2spCisgICAgICAgIHNl
bGYuZGlkSGlkZUNvbnRhY3RQaWNrZXJDYWxsYmFjaygpOworfQorCiBAZW5kCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgK
aW5kZXggY2M5ODEzOTQyNGYyODgwNjQ0Mzk4OTgzNDVjM2U3ZDRlYTU1MzM3OC4uZThjZGMzY2Yw
YzExNTQxYTg3ZGFjODUwMWU3MDhmNjg4ZWFjYjE4NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaApAQCAtNjQsNiAr
NjQsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5zZXJ0QXR0YWNobWVudEZvckZpbGVQYXRo
KEpTU3RyaW5nUmVmIGZpbGVQYXRoLCBKU1N0cmluZ1JlZiBjb250ZW50VHlwZSwgSlNWYWx1ZVJl
ZiBjYWxsYmFjaykgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldERpZFNob3dDb250YWN0UGlja2Vy
Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXREaWRIaWRlQ29udGFj
dFBpY2tlckNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRlOworICAgIGJvb2wgaXNTaG93aW5n
Q29udGFjdFBpY2tlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgZGlzbWlzc0NvbnRhY3RQ
aWNrZXJXaXRoQ29udGFjdHMoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CisKICAgICB2b2lkIGNvbXBs
ZXRlVGFza0FzeW5jaHJvbm91c2x5QWZ0ZXJBY3Rpdml0eVN0YXRlVXBkYXRlKHVuc2lnbmVkIGNh
bGxiYWNrSUQpOwogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KaW5kZXggNTg0Nzk3NmYyMTg1N2Y1M2Y0ODVl
Y2IxZmIxZWI5MTE3MjFhNTZkYS4uYmI1NGEyYTE2NGJhNThkY2RjNDhkMTY3NmQ0NWE5YWM4Y2I0
NzY0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENv
bnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2Ny
aXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC0yMjUsNCArMjI1LDM2IEBAIHZvaWQgVUlTY3JpcHRD
b250cm9sbGVyQ29jb2E6Omluc2VydEF0dGFjaG1lbnRGb3JGaWxlUGF0aChKU1N0cmluZ1JlZiBm
aWxlUGF0aCwKICAgICB9XTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0
RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAg
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0NvbnRhY3RQaWNrZXJDYWxsYmFjayhjYWxs
YmFjayk7CisgICAgd2ViVmlldygpLmRpZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2sgPSBeewor
ICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9j
b250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRhY3RQaWNrZXIpOwor
ICAgIH07Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZEhpZGVDb250
YWN0UGlja2VyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBVSVNjcmlwdENv
bnRyb2xsZXI6OnNldERpZEhpZGVDb250YWN0UGlja2VyQ2FsbGJhY2soY2FsbGJhY2spOworICAg
IHdlYlZpZXcoKS5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrID0gXnsKKyAgICAgICAgaWYg
KCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+Zmly
ZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZEhpZGVDb250YWN0UGlja2VyKTsKKyAgICB9OworfQor
Citib29sIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dpbmdDb250YWN0UGlja2VyKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gd2ViVmlldygpLnNob3dpbmdDb250YWN0UGlja2VyOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpkaXNtaXNzQ29udGFjdFBpY2tlcldpdGhD
b250YWN0cyhKU1ZhbHVlUmVmIGNvbnRhY3RzKQoreworICAgIEpTQ29udGV4dCAqY29udGV4dCA9
IFtKU0NvbnRleHQgY29udGV4dFdpdGhKU0dsb2JhbENvbnRleHRSZWY6bV9jb250ZXh0LT5qc0Nv
bnRleHQoKV07CisgICAgSlNWYWx1ZSAqdmFsdWUgPSBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVl
UmVmOmNvbnRhY3RzIGluQ29udGV4dDpjb250ZXh0XTsKKyAgICBbd2ViVmlldygpIF9kaXNtaXNz
Q29udGFjdFBpY2tlcldpdGhDb250YWN0czpbdmFsdWUgdG9BcnJheV1dOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBkZjZjYWMxNWUzYjA1ZTczNTUyZTM4YzZlMzFiNWI1YTA3NTNl
OWM5Li45YjcyN2FhODA3NzU2NDVjNmE3ZTY2MjE5YWJmYzg5OTFlYzdmZjU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMjAtMTAtMjYgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBzdXBwb3J0IGZvciBwaWNr
ZXIgVUkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTgxODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMjc3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2ZXJp
ZnkgdGhlIHByZXNlbnRhdGlvbiBhbmQgZGlzbWlzc2FsIG9mIGEgY29udGFjdAorICAgICAgICBw
aWNrZXIgb24gaU9TLiBUaGUgbmV3IHRlc3RzIGFyZSBvbmx5IHJ1biBvbiBpT1MgV0syLCBzaW5j
ZSB0aGF0IGlzIHRoZQorICAgICAgICBvbmx5IHBsYXRmb3JtIHdoaWNoIGN1cnJlbnRseSBzdXBw
b3J0cyB0aGUgcHJlc2VudGF0aW9uIG9mIGEgY29udGFjdAorICAgICAgICBwaWNrZXIuIE5vdGUg
dGhhdCB0aGVzZSB0ZXN0cyB3aWxsIGJlIGVuYWJsZWQgb24gbWFjT1MgV0syIG9uY2Ugc3VwcG9y
dAorICAgICAgICBpcyBhZGRlZCBpbiBhIGZvcnRoY29taW5nIHBhdGNoLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2Vy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhl
bHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdyk6CisgICAgICAgICh3aW5kb3cuVUlIZWxw
ZXIud2FpdEZvckNvbnRhY3RQaWNrZXJUb0hpZGUpOgorICAgICAgICAod2luZG93LlVJSGVscGVy
LmRpc21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKToKKwogMjAyMC0xMS0wMyAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAoQmln
IFN1cik6IGZhc3QvZm9ybXMvaGlkcGktdGV4dGZpZWxkLWJhY2tncm91bmQtYmxlZWRpbmcuaHRt
bCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYzgzOThiMmQ4ZDE0NzJjYmQ3OWNl
ZTQ3Y2Q0NTlkMjAxNjEwZDIwLi5kZTY5MGUyYTZjN2NiODM1NTEyNTdiODUyZmVmNWY2Mzk1ZTgw
ZTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkwLDYgKzkwLDExIEBAIGZhc3QvZm9ybXMvZW50
ZXJrZXloaW50LWF0dHJpYnV0ZS12YWx1ZXMuaHRtbCBbIFNraXAgXQogIyBIaWdobGlnaHRpbmcg
bWFya2VkIHRleHQgcmFuZ2VzIGZyb20gbGF5b3V0IHRlc3RzIGlzIG9ubHkgc3VwcG9ydGVkIGlu
IFdlYktpdDIuCiBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLWhpZ2hsaWdodHMuaHRtbCBbIFNr
aXAgXQogCisjIENvY29hIFdLMiBvbmx5LiBPdGhlciBwbGF0Zm9ybXMgZG8gbm90IHByZXNlbnQg
YSBjb250YWN0IHBpY2tlciBVSS4KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRl
ci1kaXNtaXNzaW5nLXBpY2tlci5odG1sIFsgU2tpcCBdCitjb250YWN0LXBpY2tlci9jb250YWN0
cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1waWNrZXIuaHRtbCBbIFNraXAgXQorY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwgWyBTa2lwIF0KKwogaHR0cC90ZXN0cy9zZWN1cml0
eS94c3MtREVOSUVELXhzbC1leHRlcm5hbC1lbnRpdHktbm8tbG9nZ2luZy54bWwgWyBTa2lwIF0K
IAogIyB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIG9ubHkgdGVzdGVkIGluIER1bXBSZW5kZXJU
cmVlIG9uIE1hYy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRh
Y3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNr
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MTg0YWY2NjI1NjdmMGI1MGYxYjQ1Y2UzNjRl
ODljM2VhODhjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QtYWZ0ZXItZGlzbWlzc2luZy1waWNrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0
cy5zZWxlY3Qgc3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxsIHRvIG5hdmlnYXRvci5jb250YWN0
cy5zZWxlY3Qgd2FzIGNvbXBsZXRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BlcmZvcm1pbmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4KK1BBU1MgYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJh
eXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRydWUKK1BB
U1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEudGVsLCBhZGRyZXNzQm9va1swXS50ZWwpIGlzIHRy
dWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDIubmFtZSwgYWRkcmVzc0Jvb2tbMV0ubmFt
ZSkgaXMgdHJ1ZQorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0Mi5lbWFpbCwgYWRkcmVzc0Jv
b2tbMV0uZW1haWwpIGlzIHRydWUKK1BBU1MgY29udGFjdDIudGVsLmxlbmd0aCBpcyAwCitQQVNT
IGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUsIGFkZHJlc3NCb29rWzJdLm5hbWUpIGlzIHRy
dWUKK1BBU1MgY29udGFjdDMuZW1haWwubGVuZ3RoIGlzIDAKK1BBU1MgYXJlQXJyYXlzRXF1YWwo
Y29udGFjdDMudGVsLCBhZGRyZXNzQm9va1syXS50ZWwpIGlzIHRydWUKK1BBU1MgZmluaXNoZWRD
b250YWN0U2VsZWN0aW9uIGJlY2FtZSB0cnVlCisKK1BlcmZvcm1pbmcgc2Vjb25kIGNvbnRhY3Rz
IHJlcXVlc3QuCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLm5hbWUsIGFkZHJlc3NCb29r
WzBdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1YWwoY29udGFjdDEuZW1haWwsIGFk
ZHJlc3NCb29rWzBdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3Qx
LnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSBpcyB0cnVlCitQQVNTIGFyZUFycmF5c0VxdWFsKGNv
bnRhY3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSBpcyB0cnVlCitQQVNT
IGNvbnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0My5u
YW1lLCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QzLmVtYWlsLmxl
bmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLnRlbCwgYWRkcmVzc0Jvb2tb
Ml0udGVsKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sIGIvTGF5
b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3Npbmct
cGlja2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2MxNTE0YzgwNmMzZWM1MDM5YzcwNmU4M2RiM2VjMWI2
YTQzYzNmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC1hZnRlci1kaXNtaXNzaW5nLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNzQg
QEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRh
bDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKyAgICAgICAgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uID0gZmFsc2U7CisKKyAgICAgICAg
Y29uc3QgYWRkcmVzc0Jvb2sgPSBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5h
bWUiOiBbIlBlcnNvbiBBIl0sCisgICAgICAgICAgICAgICAgImVtYWlsIjogWyJwZXJzb24uYUB3
ZWJraXQub3JnIl0sCisgICAgICAgICAgICAgICAgInRlbCI6IFsiNTU1LTU1NTUiXQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVyc29u
IEIiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBlcnNvbi5iQHdlYmtpdC5vcmciLCAi
cGVyc29uLmIuYWx0QHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgIm5hbWUiOiBbIlBlcnNvbiBDIl0sCisgICAgICAgICAgICAgICAg
InRlbCI6IFsiNzc3LTc3NzciXSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgXTsKKworICAgICAg
ICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qg
c3VjY2VlZHMgYWZ0ZXIgYW5vdGhlciBjYWxsIHRvIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qg
d2FzIGNvbXBsZXRlZC5cbiIpOworCisgICAgICAgICAgICBjb25zdCBjb250YWN0c0J1dHRvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIpOworICAgICAgICAgICAgY29udGFj
dHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKGZpbmlzaGVkQ29udGFjdFNlbGVjdGlvbikgeworICAgICAgICAgICAgICAg
ICAgICBkZWJ1ZygiXG5QZXJmb3JtaW5nIHNlY29uZCBjb250YWN0cyByZXF1ZXN0LiIpCisgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoIlBlcmZvcm1p
bmcgZmlyc3QgY29udGFjdHMgcmVxdWVzdC4iKQorICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFt
ZSIsICJlbWFpbCIsICJ0ZWwiXSk7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53
YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpOworICAgICAgICAgICAgICAgIFVJSGVscGVyLmRp
c21pc3NDb250YWN0UGlja2VyV2l0aENvbnRhY3RzKGFkZHJlc3NCb29rKTsKKyAgICAgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvSGlkZSgpOworCisgICAg
ICAgICAgICAgICAgW2NvbnRhY3QxLCBjb250YWN0MiwgY29udGFjdDNdID0gYXdhaXQgcmVxdWVz
dDsKKworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFj
dDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFp
bCkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRh
Y3QxLnRlbCwgYWRkcmVzc0Jvb2tbMF0udGVsKSIpOworCisgICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5uYW1lLCBhZGRyZXNzQm9va1sxXS5uYW1l
KSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFj
dDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb051bWJlcigiY29udGFjdDIudGVsLmxlbmd0aCIsIDApOworCisgICAgICAgICAg
ICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0My5uYW1lLCBhZGRyZXNz
Qm9va1syXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigi
Y29udGFjdDMuZW1haWwubGVuZ3RoIiwgMCk7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCJhcmVBcnJheXNFcXVhbChjb250YWN0My50ZWwsIGFkZHJlc3NCb29rWzJdLnRlbCkiKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZENvbnRhY3RTZWxlY3Rpb24pIHsKKyAgICAgICAg
ICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgZmluaXNoZWRDb250YWN0U2VsZWN0aW9uID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImZpbmlzaGVkQ29udGFjdFNl
bGVjdGlvbiIsICJ0cnVlIiwgcmVzb2x2ZSkpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
YWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0
PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRh
Y3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODhhYzdjNTE0YWE2N2Q1MzJkYTYwYjIzZjQyZjM3YmZjNjBiNzNl
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBwcmVzZW50cyBhIGNvbnRhY3QgcGlja2Vy
IGFuZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBjb250YWN0cy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVuZ3RoIGlzIDMKK1BBU1MgYXJlQXJyYXlzRXF1
YWwoY29udGFjdDEubmFtZSwgYWRkcmVzc0Jvb2tbMF0ubmFtZSkgaXMgdHJ1ZQorUEFTUyBhcmVB
cnJheXNFcXVhbChjb250YWN0MS5lbWFpbCwgYWRkcmVzc0Jvb2tbMF0uZW1haWwpIGlzIHRydWUK
K1BBU1MgY29udGFjdDEudGVsLmxlbmd0aCBpcyAwCitQQVNTIGFyZUFycmF5c0VxdWFsKGNvbnRh
Y3QyLm5hbWUsIGFkZHJlc3NCb29rWzFdLm5hbWUpIGlzIHRydWUKK1BBU1MgYXJlQXJyYXlzRXF1
YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSBpcyB0cnVlCitQQVNTIGNv
bnRhY3QyLnRlbC5sZW5ndGggaXMgMAorUEFTUyBhcmVBcnJheXNFcXVhbChjb250YWN0My5uYW1l
LCBhZGRyZXNzQm9va1syXS5uYW1lKSBpcyB0cnVlCitQQVNTIGNvbnRhY3QzLmVtYWlsLmxlbmd0
aCBpcyAwCitQQVNTIGNvbnRhY3QzLnRlbC5sZW5ndGggaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitTaG93IGNvbnRhY3RzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2Vu
dGluZy1waWNrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MDY3YjU5Y2ZlNDhiNzk1MGQ4ZTAyMTg4MDA5YWNmYjFlZDA3NDRmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxl
LXByZXNlbnRpbmctcGlja2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIHdoZW4gYSBj
b250YWN0IHBpY2tlciBpcyBhbHJlYWR5IGJlaW5nIGRpc3BsYXllZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29udGFjdHMubGVuZ3RoIGlzIDEKK1BBU1MgY29udGFj
dC5uYW1lWzBdIGlzICJQZXJzb24gQSIKK1BBU1MgcmVzdWx0c1sxXSBpcyAiSW52YWxpZFN0YXRl
RXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sIGIvTGF5b3V0VGVzdHMv
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctcGlja2VyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzg4MGJiZmM0NjE4ZjUyMzdhMjU0YzIzMjlmYTgzMGVjMDJhOTg5ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tlci5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0
UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwv
aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAibmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBlcnNv
bi5hQHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgICAgICAidGVsIjogWyI1NTUtNTU1NSJdCisg
ICAgICAgICAgICB9LAorICAgICAgICBdOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRl
c3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlm
aWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyB3aGVuIGEgY29udGFjdCBw
aWNrZXIgaXMgYWxyZWFkeSBiZWluZyBkaXNwbGF5ZWQuXG4iKTsKKworICAgICAgICAgICAgY29u
c3QgY29udGFjdHNCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFjdHMiKTsK
KyAgICAgICAgICAgIGNvbnRhY3RzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5
bmMgKCkgPT4geworICAgICAgICAgICAgICAgIGxldCBwcm9taXNlMSA9IG5hdmlnYXRvci5jb250
YWN0cy5zZWxlY3QoWyduYW1lJ10pLmNhdGNoKChlcnJvcikgPT4geyB0aHJvdyBlcnJvci5tZXNz
YWdlOyB9KTsKKworICAgICAgICAgICAgICAgIGxldCBwcm9taXNlMiA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jb250YWN0
cy5zZWxlY3QoWyduYW1lJ10pLnRoZW4oY29udGFjdHMgPT4gcmVqZWN0KCJFeHBlY3RlZCBmYWls
dXJlLiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAuY2F0Y2goKGVycm9yKSA9PiByZXNvbHZlKGVycm9yLm5hbWUpKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JDb250YWN0
UGlja2VyVG9TaG93KCk7CisgICAgICAgICAgICAgICAgVUlIZWxwZXIuZGlzbWlzc0NvbnRhY3RQ
aWNrZXJXaXRoQ29udGFjdHMoYWRkcmVzc0Jvb2spOworICAgICAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLndhaXRGb3JDb250YWN0UGlja2VyVG9IaWRlKCk7CisKKyAgICAgICAgICAgICAgICBy
ZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoW3Byb21pc2UxLCBwcm9taXNlMl0pOworICAgICAg
ICAgICAgICAgIGNvbnRhY3RzID0gcmVzdWx0c1swXTsKKyAgICAgICAgICAgICAgICBzaG91bGRC
ZUVxdWFsVG9OdW1iZXIoImNvbnRhY3RzLmxlbmd0aCIsIDEpOworICAgICAgICAgICAgICAgIGNv
bnRhY3QgPSBjb250YWN0c1swXTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImNvbnRhY3QubmFtZVswXSIsICJQZXJzb24gQSIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVzdWx0c1sxXSIsICJJbnZhbGlkU3RhdGVFcnJvciIpOworCisg
ICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9LCB7IG9uY2U6IHRy
dWUgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChjb250
YWN0c0J1dHRvbik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBvbmxvYWQ9
cnVuVGVzdCgpPgorICAgICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBjb250YWN0czwv
YnV0dG9uPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZmMzg3ZjU2ZTBiZWM3MDgy
MTFiN2Y2ZGIzZWJkMjNmODIxMWNiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0
UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwv
aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICBjb25zdCBhZGRyZXNzQm9vayA9IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAibmFtZSI6IFsiUGVyc29uIEEiXSwKKyAgICAgICAgICAgICAgICAiZW1haWwiOiBbInBlcnNv
bi5hQHdlYmtpdC5vcmciXSwKKyAgICAgICAgICAgICAgICAidGVsIjogWyI1NTUtNTU1NSJdCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogWyJQ
ZXJzb24gQiJdLAorICAgICAgICAgICAgICAgICJlbWFpbCI6IFsicGVyc29uLmJAd2Via2l0Lm9y
ZyIsICJwZXJzb24uYi5hbHRAd2Via2l0Lm9yZyJdLAorICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IFsiUGVyc29uIEMiXSwKKyAgICAgICAgICAg
ICAgICAidGVsIjogWyI3NzctNzc3NyJdLAorICAgICAgICAgICAgfQorICAgICAgICBdOworCisg
ICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNl
bGVjdCBwcmVzZW50cyBhIGNvbnRhY3QgcGlja2VyIGFuZCByZXR1cm5zIHRoZSBzZWxlY3RlZCBj
b250YWN0cy5cbiIpOworCisgICAgICAgICAgICBjb25zdCBjb250YWN0c0J1dHRvbiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIpOworICAgICAgICAgICAgY29udGFjdHNCdXR0
b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAg
ICAgY29uc3QgY29udGFjdHNSZXF1ZXN0ID0gbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbIm5h
bWUiLCAiZW1haWwiXSwgeyBtdWx0aXBsZTogdHJ1ZSB9KTsKKyAgICAgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpOworCisgICAgICAgICAgICAg
ICAgVUlIZWxwZXIuZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoYWRkcmVzc0Jvb2sp
OworCisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvckNvbnRhY3RQaWNrZXJU
b0hpZGUoKTsKKworICAgICAgICAgICAgICAgIGNvbnRhY3RzID0gYXdhaXQgY29udGFjdHNSZXF1
ZXN0OworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdHMubGVu
Z3RoIiwgMyk7CisKKyAgICAgICAgICAgICAgICBjb250YWN0MSA9IGNvbnRhY3RzWzBdOworICAg
ICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJyYXlzRXF1YWwoY29udGFjdDEubmFtZSwg
YWRkcmVzc0Jvb2tbMF0ubmFtZSkiKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoImFy
ZUFycmF5c0VxdWFsKGNvbnRhY3QxLmVtYWlsLCBhZGRyZXNzQm9va1swXS5lbWFpbCkiKTsKKyAg
ICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImNvbnRhY3QxLnRlbC5sZW5ndGgi
LCAwKTsKKworICAgICAgICAgICAgICAgIGNvbnRhY3QyID0gY29udGFjdHNbMV07CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJhcmVBcnJheXNFcXVhbChjb250YWN0Mi5uYW1lLCBhZGRy
ZXNzQm9va1sxXS5uYW1lKSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgiYXJlQXJy
YXlzRXF1YWwoY29udGFjdDIuZW1haWwsIGFkZHJlc3NCb29rWzFdLmVtYWlsKSIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiY29udGFjdDIudGVsLmxlbmd0aCIsIDAp
OworCisgICAgICAgICAgICAgICAgY29udGFjdDMgPSBjb250YWN0c1syXTsKKyAgICAgICAgICAg
ICAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGNvbnRhY3QzLm5hbWUsIGFkZHJlc3NC
b29rWzJdLm5hbWUpIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJj
b250YWN0My5lbWFpbC5sZW5ndGgiLCAwKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9OdW1iZXIoImNvbnRhY3QzLnRlbC5sZW5ndGgiLCAwKTsKKworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworCisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoY29udGFjdHNCdXR0b24pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KKyAgICAg
ICAgPGJ1dHRvbiBpZD0iY29udGFjdHMiPlNob3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggN2ZiMzFlZGY5NjI5NzY1YzgxMmJiZDQ0ZjdhZTNhNzZiN2Y4NWUzOS4uNzc0
NWVjOTZlNjMyZTFiZTQ5Yzk3YmM0MjI2M2ZlMjkyOGY2Yzk5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTEsNiArMTEsOSBAQCBjb21w
b3NpdGluZy9zaGFyZWQtYmFja2luZy9vdmVyZmxvdy1zY3JvbGwgWyBQYXNzIF0KIGNvbXBvc2l0
aW5nL3Njcm9sbGluZy9hc3luYy1vdmVyZmxvdy1zY3JvbGxpbmcgWyBQYXNzIF0KIGNvbXBvc2l0
aW5nL3Njcm9sbGluZy9hc3luYy1vdmVyZmxvdy1zY3JvbGxpbmcvbWFjIFsgU2tpcCBdCiBjb21w
b3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1zY29wZSBbIFBhc3MgXQorY29udGFjdC1w
aWNrZXIvY29udGFjdHMtc2VsZWN0LWFmdGVyLWRpc21pc3NpbmctcGlja2VyLmh0bWwgWyBQYXNz
IF0KK2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLXBpY2tl
ci5odG1sIFsgUGFzcyBdCitjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QuaHRtbCBbIFBh
c3MgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBQYXNzIF0KIGZhc3QvaGlzdG9yeS9pb3Mg
WyBQYXNzIF0KIGZhc3Qvc2Nyb2xsaW5nL2lvcyBbIFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMKaW5kZXggODM0ODRhNTAzYmUwM2IwZGM4OGE1MjY5NDNjMmMzOTEyZTEyNzk1YS4u
MjJlZTUyZjUxYzViODgwZTc3MzIwZGY0MzJjNjMwODdiZTViY2UzZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzCkBAIC0xNDA2LDYgKzE0MDYsNDQgQEAgd2luZG93LlVJSGVscGVyID0g
Y2xhc3MgVUlIZWxwZXIgewogICAgICAgICAgICAgYCwgcmVzb2x2ZSk7CiAgICAgICAgIH0pOwog
ICAgIH0KKworICAgIHN0YXRpYyB3YWl0Rm9yQ29udGFjdFBpY2tlclRvU2hvdygpCisgICAgewor
ICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZXNvbHZlKCk7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXVpQ29udHJvbGxlci5pc1Nob3dp
bmdDb250YWN0UGlja2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRp
ZFNob3dDb250YWN0UGlja2VyQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRD
b21wbGV0ZSgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAgICAgIH0p
KClgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3RhdGljIHdhaXRGb3JD
b250YWN0UGlja2VyVG9IaWRlKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIo
KSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh1aUNvbnRyb2xsZXIuaXNTaG93aW5nQ29udGFjdFBpY2tlcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRIaWRlQ29udGFjdFBpY2tlckNhbGxiYWNrID0g
KCkgPT4gdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29t
cGxldGUoKTsKKyAgICAgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHN0YXRpYyBkaXNtaXNzQ29udGFjdFBpY2tlcldpdGhDb250YWN0cyhjb250
YWN0cykKKyAgICB7CisgICAgICAgY29uc3Qgc2NyaXB0ID0gYCgoKSA9PiB1aUNvbnRyb2xsZXIu
ZGlzbWlzc0NvbnRhY3RQaWNrZXJXaXRoQ29udGFjdHMoJHtKU09OLnN0cmluZ2lmeShjb250YWN0
cyl9KSkoKWA7CisgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdChzY3JpcHQsIHJlc29sdmUpKTsKKyAgICB9CiB9CiAKIFVJSGVscGVyLkV2
ZW50U3RyZWFtQnVpbGRlciA9IGNsYXNzIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>